From f68f813073ba94dc86198f695a4ee0bb8399d027 Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Thu, 6 Aug 2015 00:11:06 -0500 Subject: [PATCH] Fix a resource leak in syslog_sg Reported at https://alioth.debian.org/tracker/?func=detail&atid=411478&aid=315135&group_id=30580 by Alejandro Joya (afjoyacr-guest) Signed-off-by: Serge Hallyn --- src/newgrp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/newgrp.c b/src/newgrp.c index 49dd1512..b8d3ddc8 100644 --- a/src/newgrp.c +++ b/src/newgrp.c @@ -255,12 +255,15 @@ static void syslog_sg (const char *name, const char *group) { const char *loginname = getlogin (); const char *tty = ttyname (0); + char *free_login = NULL, *free_tty = NULL; if (loginname != NULL) { - loginname = xstrdup (loginname); + free_login = xstrdup (loginname); + loginname = free_login; } if (tty != NULL) { - tty = xstrdup (tty); + free_tty = xstrdup (tty); + tty = free_tty; } if (loginname == NULL) { @@ -372,6 +375,8 @@ static void syslog_sg (const char *name, const char *group) (void) signal (SIGTTOU, SIG_DFL); } #endif /* USE_PAM */ + free(free_login); + free(free_tty); } #endif /* USE_SYSLOG */