42 lines
1.1 KiB
Diff
42 lines
1.1 KiB
Diff
From fd9d79a1a3438ba7703939cfcd45fc266782c64e Mon Sep 17 00:00:00 2001
|
|
From: whzhe <wanghongzhe@huawei.com>
|
|
Date: Thu, 17 Dec 2020 03:27:15 -0500
|
|
Subject: [PATCH] useradd.c:fix memleak in get_groups
|
|
|
|
Signed-off-by: whzhe <wanghongzhe@huawei.com>
|
|
---
|
|
src/useradd.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/useradd.c b/src/useradd.c
|
|
index 107e65f8..822b67f5 100644
|
|
--- a/src/useradd.c
|
|
+++ b/src/useradd.c
|
|
@@ -793,6 +793,7 @@ static int get_groups (char *list)
|
|
fprintf (stderr,
|
|
_("%s: group '%s' is a NIS group.\n"),
|
|
Prog, grp->gr_name);
|
|
+ gr_free(grp);
|
|
continue;
|
|
}
|
|
#endif
|
|
@@ -801,6 +802,7 @@ static int get_groups (char *list)
|
|
fprintf (stderr,
|
|
_("%s: too many groups specified (max %d).\n"),
|
|
Prog, ngroups);
|
|
+ gr_free(grp);
|
|
break;
|
|
}
|
|
|
|
@@ -808,7 +810,7 @@ static int get_groups (char *list)
|
|
* Add the group name to the user's list of groups.
|
|
*/
|
|
user_groups[ngroups++] = xstrdup (grp->gr_name);
|
|
- free (grp);
|
|
+ gr_free (grp);
|
|
} while (NULL != list);
|
|
|
|
close_group_files ();
|
|
--
|
|
|