On Tue, May 24, 2016 at 11:44 AM, Garrett Cooper <n...@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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to