On Fri, May 25, 2018 at 10:08:46PM +0300, Konstantin Belousov wrote:
> On Fri, May 25, 2018 at 06:54:40PM +0000, Marcelo Araujo wrote:
> > Author: araujo
> > Date: Fri May 25 18:54:40 2018
> > New Revision: 334216
> > URL: https://svnweb.freebsd.org/changeset/base/334216
> > 
> > Log:
> >   After a long discussion about assert(3), we gonna use a HardenedBSD
> >   approach to chek strdup(3) memory allocation.
> >   
> >   Submitted by:     Shaw Webb <shawn.w...@hardenedbsd.org>
> >   Reported by:      brooks
> >   Obtained from:    HardenedBSD
> > 
> > Modified:
> >   head/usr.sbin/bhyve/bhyverun.c
> > 
> > Modified: head/usr.sbin/bhyve/bhyverun.c
> > ==============================================================================
> > --- head/usr.sbin/bhyve/bhyverun.c  Fri May 25 18:11:13 2018        
> > (r334215)
> > +++ head/usr.sbin/bhyve/bhyverun.c  Fri May 25 18:54:40 2018        
> > (r334216)
> > @@ -193,7 +193,8 @@ topology_parse(const char *opt)
> >     c = 1, n = 1, s = 1, t = 1;
> >     ns = false, scts = false;
> >     str = strdup(opt);
> > -   assert(str != NULL);
> > +   if (str == NULL)
> > +           goto out;
> >  
> >     while ((cp = strsep(&str, ",")) != NULL) {
> >             if (sscanf(cp, "%i%n", &tmp, &chk) == 1) {
> > @@ -225,6 +226,7 @@ topology_parse(const char *opt)
> >                     goto out;
> >     }
> >     free(str);
> > +   str = NULL;
> >  
> >     /*
> >      * Range check 1 <= n <= UINT16_MAX all values
> > @@ -253,7 +255,8 @@ topology_parse(const char *opt)
> >     return(0);
> >  
> >  out:
> > -   free(str);
> > +   if (str != NULL)
> This check is useless.  Free(3) is fine handling NULL argument.

Good catch. Thanks!

-- 
Shawn Webb
Cofounder and Security Engineer
HardenedBSD

Tor-ified Signal:    +1 443-546-8752
Tor+XMPP+OTR:        latt...@is.a.hacker.sx
GPG Key ID:          0x6A84658F52456EEE
GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89  3D9E 6A84 658F 5245 6EEE

Attachment: signature.asc
Description: PGP signature

Reply via email to