33 lines
712 B
Diff
33 lines
712 B
Diff
|
|
From feead2f639506d49cef9dde385eb56cd3413ecf0 Mon Sep 17 00:00:00 2001
|
||
|
|
From: sgakerru <sulmpx60@yandex.ru>
|
||
|
|
Date: Sat, 19 Oct 2024 13:26:44 +0400
|
||
|
|
Subject: [PATCH] src/useradd.c: get_groups(): Fix memory leak
|
||
|
|
|
||
|
|
---
|
||
|
|
src/useradd.c | 9 +++++++++
|
||
|
|
1 file changed, 9 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/src/useradd.c b/src/useradd.c
|
||
|
|
index 64e7a412..bd3b0624 100644
|
||
|
|
--- a/src/useradd.c
|
||
|
|
+++ b/src/useradd.c
|
||
|
|
@@ -760,6 +760,15 @@ static int get_groups (char *list)
|
||
|
|
int errors = 0;
|
||
|
|
int ngroups = 0;
|
||
|
|
|
||
|
|
+ /*
|
||
|
|
+ * Free previous group list before creating a new one.
|
||
|
|
+ */
|
||
|
|
+ int i = 0;
|
||
|
|
+ while (NULL != user_groups[i]) {
|
||
|
|
+ free(user_groups[i]);
|
||
|
|
+ user_groups[i++] = NULL;
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
if ('\0' == *list) {
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
--
|
||
|
|
2.33.0
|
||
|
|
|