53 lines
1.7 KiB
Diff
53 lines
1.7 KiB
Diff
From bfcfa22589f2b4277a65e60c6b736b6bbfbd87d0 Mon Sep 17 00:00:00 2001
|
|
From: Florian Weimer <fweimer@redhat.com>
|
|
Date: Tue, 14 Aug 2018 10:51:07 +0200
|
|
Subject: [PATCH 05] nscd: Deallocate existing user names in file parser
|
|
|
|
This avoids a theoretical memory leak (theoretical because it depends on
|
|
multiple server-user/stat-user directives in the configuration file).
|
|
|
|
(cherry picked from commit 2d7acfac3ebf266dcbc82d0d6cc576f626953a03)
|
|
---
|
|
ChangeLog | 5 +++++
|
|
nscd/nscd_conf.c | 6 +++++-
|
|
2 files changed, 10 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/ChangeLog b/ChangeLog
|
|
index cc918e96a3..0cbfb504f4 100644
|
|
--- a/ChangeLog
|
|
+++ b/ChangeLog
|
|
@@ -1,3 +1,8 @@
|
|
+2018-08-14 Florian Weimer <fweimer@redhat.com>
|
|
+
|
|
+ * nscd/nscd_conf.c (nscd_parse_file): Deallocate old storage for
|
|
+ server_user, stat_user.
|
|
+
|
|
2018-08-13 Florian Weimer <fweimer@redhat.com>
|
|
|
|
* misc/error.c (error): Add missing va_end call.
|
|
diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c
|
|
index 265a02434d..7293b795b6 100644
|
|
--- a/nscd/nscd_conf.c
|
|
+++ b/nscd/nscd_conf.c
|
|
@@ -190,7 +190,10 @@ nscd_parse_file (const char *fname, struct database_dyn dbs[lastdb])
|
|
if (!arg1)
|
|
error (0, 0, _("Must specify user name for server-user option"));
|
|
else
|
|
- server_user = xstrdup (arg1);
|
|
+ {
|
|
+ free ((char *) server_user);
|
|
+ server_user = xstrdup (arg1);
|
|
+ }
|
|
}
|
|
else if (strcmp (entry, "stat-user") == 0)
|
|
{
|
|
@@ -198,6 +201,7 @@ nscd_parse_file (const char *fname, struct database_dyn dbs[lastdb])
|
|
error (0, 0, _("Must specify user name for stat-user option"));
|
|
else
|
|
{
|
|
+ free ((char *) stat_user);
|
|
stat_user = xstrdup (arg1);
|
|
|
|
struct passwd *pw = getpwnam (stat_user);
|
|
|