useradd: free grp to avoid leak
covscan issue: Error: RESOURCE_LEAK (CWE-772): [#def39] [important] src/useradd.c:728: alloc_fn: Storage is returned from allocation function "get_local_group". src/useradd.c:728: var_assign: Assigning: "grp" = storage returned from "get_local_group(list)". src/useradd.c:728: overwrite_var: Overwriting "grp" in "grp = get_local_group(list)" leaks the storage that "grp" points to. 726| * GID values, otherwise the string is looked up as is. 727| */ 728|-> grp = get_local_group (list); 729| 730| /*
This commit is contained in:
parent
2df8c0728d
commit
569bd1d54f
@ -729,7 +729,7 @@ static int set_defaults (void)
|
|||||||
static int get_groups (char *list)
|
static int get_groups (char *list)
|
||||||
{
|
{
|
||||||
char *cp;
|
char *cp;
|
||||||
const struct group *grp;
|
struct group *grp;
|
||||||
int errors = 0;
|
int errors = 0;
|
||||||
int ngroups = 0;
|
int ngroups = 0;
|
||||||
|
|
||||||
@ -808,6 +808,7 @@ static int get_groups (char *list)
|
|||||||
* Add the group name to the user's list of groups.
|
* Add the group name to the user's list of groups.
|
||||||
*/
|
*/
|
||||||
user_groups[ngroups++] = xstrdup (grp->gr_name);
|
user_groups[ngroups++] = xstrdup (grp->gr_name);
|
||||||
|
free (grp);
|
||||||
} while (NULL != list);
|
} while (NULL != list);
|
||||||
|
|
||||||
close_group_files ();
|
close_group_files ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user