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:
parent
e22ee9b247
commit
635a2c892c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=334216
@ -193,7 +193,8 @@ topology_parse(const char *opt)
|
|||||||
c = 1, n = 1, s = 1, t = 1;
|
c = 1, n = 1, s = 1, t = 1;
|
||||||
ns = false, scts = false;
|
ns = false, scts = false;
|
||||||
str = strdup(opt);
|
str = strdup(opt);
|
||||||
assert(str != NULL);
|
if (str == NULL)
|
||||||
|
goto out;
|
||||||
|
|
||||||
while ((cp = strsep(&str, ",")) != NULL) {
|
while ((cp = strsep(&str, ",")) != NULL) {
|
||||||
if (sscanf(cp, "%i%n", &tmp, &chk) == 1) {
|
if (sscanf(cp, "%i%n", &tmp, &chk) == 1) {
|
||||||
@ -225,6 +226,7 @@ topology_parse(const char *opt)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
free(str);
|
free(str);
|
||||||
|
str = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Range check 1 <= n <= UINT16_MAX all values
|
* Range check 1 <= n <= UINT16_MAX all values
|
||||||
@ -253,7 +255,8 @@ topology_parse(const char *opt)
|
|||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
free(str);
|
if (str != NULL)
|
||||||
|
free(str);
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user