svn commit: r300620 - head/lib/libc/rpc
Conrad Meyer
cem at FreeBSD.org
Tue May 24 18:49:45 UTC 2016
On Tue, May 24, 2016 at 11:44 AM, Garrett Cooper <ngie at freebsd.org> wrote:
> Author: ngie
> Date: Tue May 24 18:44:50 2016
> New Revision: 300620
> URL: https://svnweb.freebsd.org/changeset/base/300620
>
> Log:
> Use reallocf instead of malloc to fix leak with outbuf_pmap
>
> ...
>
> Add a outbuf_pmap = NULL in the failure case to avoid a double-free
> at the bottom of the function.
>
> ...
> Modified: head/lib/libc/rpc/clnt_bcast.c
> ==============================================================================
> --- head/lib/libc/rpc/clnt_bcast.c Tue May 24 17:38:27 2016 (r300619)
> +++ head/lib/libc/rpc/clnt_bcast.c Tue May 24 18:44:50 2016 (r300620)
> @@ -346,7 +346,9 @@ rpc_broadcast_exp(rpcprog_t prog, rpcver
> #ifdef PORTMAP
> if (si.si_af == AF_INET && si.si_proto == IPPROTO_UDP) {
> udpbufsz = fdlist[fdlistno].dsize;
> - if ((outbuf_pmap = malloc(udpbufsz)) == NULL) {
> + outbuf_pmap = reallocf(outbuf_pmap, udpbufsz);
> + if (outbuf_pmap == NULL) {
> + outbuf_pmap = NULL;
Huh? This seems a little redundant.
> _close(fd);
> stat = RPC_SYSTEMERROR;
> goto done_broad;
>
Best,
Conrad
More information about the svn-src-head
mailing list