]> err.no Git - util-linux/commitdiff
login: fix a small memory leak and remove unnecessary zeroing
authorKarel Zak <kzak@redhat.com>
Mon, 28 Jan 2008 13:02:35 +0000 (14:02 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 28 Jan 2008 13:07:16 +0000 (14:07 +0100)
This patch fix a small memory leak (rh#251539) and also remove
unnecessary pam_set_item(). We needn't to zeroing PAM_USER when the
value is already NULL, it doesn't make sense.

Addresses-Red-Hat-Bugzilla: #251539
Signed-off-by: Karel Zak <kzak@redhat.com>
login-utils/login.c

index d40381d4ef0c95c67c6ef5e0f3fe4d5ee643ad89..0e6db2b5ad886d966a8a6abcbc549b6b5c9782ea 100644 (file)
@@ -579,6 +579,12 @@ main(int argc, char **argv)
     fprintf(stderr,"\033(K");
 #endif
 
+    if (username) {
+       /* we need't the original username. We have to follow PAM. */
+       free(username);
+       username = NULL;
+    }
+
     /* if fflag == 1, then the user has already been authenticated */
     if (fflag && (getuid() == 0))
        passwd_req = 0;
@@ -590,8 +596,6 @@ main(int argc, char **argv)
 
        /* if we didn't get a user on the command line, set it to NULL */
        pam_get_item(pamh,  PAM_USER, (const void **) &username);
-       if (!username)
-               pam_set_item(pamh, PAM_USER, NULL);
 
        /* there may be better ways to deal with some of these
           conditions, but at least this way I don't think we'll