summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/rpc/clnt_gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/rpc/clnt_gen.c')
-rw-r--r--usr/src/uts/common/rpc/clnt_gen.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/usr/src/uts/common/rpc/clnt_gen.c b/usr/src/uts/common/rpc/clnt_gen.c
index 0093210bd5..4c557b563f 100644
--- a/usr/src/uts/common/rpc/clnt_gen.c
+++ b/usr/src/uts/common/rpc/clnt_gen.c
@@ -346,6 +346,11 @@ bindresvport_again:
}
if (!error && bound_addr) {
+ if (bound_addr->maxlen < ret->addr.len) {
+ kmem_free(bound_addr->buf, bound_addr->maxlen);
+ bound_addr->buf = kmem_zalloc(ret->addr.len, KM_SLEEP);
+ bound_addr->maxlen = ret->addr.len;
+ }
bcopy(ret->addr.buf, bound_addr->buf, ret->addr.len);
bound_addr->len = ret->addr.len;
}