On Fri, May 25, 2018 at 02:07:05AM +0000, Marcelo Araujo wrote:
> Author: araujo
> Date: Fri May 25 02:07:05 2018
> New Revision: 334199
> URL: https://svnweb.freebsd.org/changeset/base/334199
> 
> Log:
>   Fix a memory leak on topology_parse().
>   
>   strdup(3) allocates memory for a copy of the string, does the copy and
>   returns a pointer to it. If there is no sufficient memory NULL is returned
>   and the global errno is set to ENOMEM.
>   We do a sanity check to see if it was possible to allocate enough memory.
>   
>   Also as we allocate memory, we need to free this memory used. Or it will
>   going out of scope leaks the storage it points to.
>   
>   Reviewed by:        rgrimes
>   MFC after:  3 weeks.
>   X-MFC:              r332298
>   Sponsored by:       iXsystems Inc.
>   Differential Revision:      https://reviews.freebsd.org/D15550
> 
> Modified:
>   head/usr.sbin/bhyve/bhyverun.c
> 
> Modified: head/usr.sbin/bhyve/bhyverun.c
> ==============================================================================
> --- head/usr.sbin/bhyve/bhyverun.c    Fri May 25 01:38:59 2018        
> (r334198)
> +++ head/usr.sbin/bhyve/bhyverun.c    Fri May 25 02:07:05 2018        
> (r334199)
> @@ -193,6 +193,7 @@ topology_parse(const char *opt)
>       c = 1, n = 1, s = 1, t = 1;
>       ns = false, scts = false;
>       str = strdup(opt);
> +     assert(str != NULL);

Using assert seems like an odd choice when you've already added a
failure path and the strsep will crash immediately if assert is elided.

-- Brooks

Attachment: signature.asc
Description: PGP signature

Reply via email to