diff options
author | delphij <delphij@FreeBSD.org> | 2015-10-02 16:36:16 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2015-10-02 16:36:16 +0000 |
commit | 12a956c8b5d4528486a03a7622270b8b99112e90 (patch) | |
tree | f995b360b8ce05c93aeb03eb770fffe7f5310ada /usr.sbin/rpcbind | |
parent | ef46b98fe1a6a019eb37105d85e5bf32f8a088a0 (diff) | |
download | FreeBSD-src-12a956c8b5d4528486a03a7622270b8b99112e90.zip FreeBSD-src-12a956c8b5d4528486a03a7622270b8b99112e90.tar.gz |
Fix a regression with SA-15:24 patch that prevented NIS from
working.
Diffstat (limited to 'usr.sbin/rpcbind')
-rw-r--r-- | usr.sbin/rpcbind/rpcb_svc_com.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.sbin/rpcbind/rpcb_svc_com.c b/usr.sbin/rpcbind/rpcb_svc_com.c index a725273..72fea28 100644 --- a/usr.sbin/rpcbind/rpcb_svc_com.c +++ b/usr.sbin/rpcbind/rpcb_svc_com.c @@ -1053,12 +1053,15 @@ static bool_t netbuf_copybuf(struct netbuf *dst, const struct netbuf *src) { - assert(dst->buf == NULL); + if (dst->len != src->len || dst->buf == NULL) { + if (dst->buf != NULL) + free(dst->buf); + if ((dst->buf = malloc(src->len)) == NULL) + return (FALSE); - if ((dst->buf = malloc(src->len)) == NULL) - return (FALSE); + dst->maxlen = dst->len = src->len; + } - dst->maxlen = dst->len = src->len; memcpy(dst->buf, src->buf, src->len); return (TRUE); } |