diff options
Diffstat (limited to 'usr/src/uts/common/rpc/clnt_gen.c')
-rw-r--r-- | usr/src/uts/common/rpc/clnt_gen.c | 5 |
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; } |