After a long discussion about assert(3), we gonna use a HardenedBSD

approach to chek strdup(3) memory allocation.

Submitted by:	Shaw Webb <shawn.webb@hardenedbsd.org>
Reported by:	brooks
Obtained from:	HardenedBSD
This commit is contained in:
Marcelo Araujo 2018-05-25 18:54:40 +00:00
parent e22ee9b247
commit 635a2c892c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=334216

View File

@ -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)
free(str);
return (-1);
}