]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
Fix a resource leak in syslog_sg 8/head
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Thu, 6 Aug 2015 05:11:06 +0000 (00:11 -0500)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Thu, 6 Aug 2015 05:25:01 +0000 (00:25 -0500)
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 <serge.hallyn@ubuntu.com>
src/newgrp.c

index 49dd15127c8398924a8c5ecc76cd8707da016ed6..b8d3ddc8b53b58e923ca882a97e8515faf475292 100644 (file)
@@ -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 */