summaryrefslogtreecommitdiffstats
path: root/login-utils/login.c
diff options
context:
space:
mode:
authorKarel Zak2007-09-21 00:34:30 +0200
committerKarel Zak2007-09-21 00:34:30 +0200
commite797d83232802cf439b2ed893e784d3636357349 (patch)
treeff3d5b5ee1c57031fadfed43b3634a0319fe4db4 /login-utils/login.c
parentionice: add a note about permissions to ionice.1 (diff)
downloadkernel-qcow2-util-linux-e797d83232802cf439b2ed893e784d3636357349.tar.gz
kernel-qcow2-util-linux-e797d83232802cf439b2ed893e784d3636357349.tar.xz
kernel-qcow2-util-linux-e797d83232802cf439b2ed893e784d3636357349.zip
login: login segfaults on EOF (rh#298461)
Stupid bug in audit code: $ login login: ^D login: ^D Segmentation fault Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'login-utils/login.c')
-rw-r--r--login-utils/login.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/login-utils/login.c b/login-utils/login.c
index e582779ef..1af87925a 100644
--- a/login-utils/login.c
+++ b/login-utils/login.c
@@ -330,12 +330,12 @@ logaudit(const char *tty, const char *username, const char *hostname,
audit_fd = audit_open();
if (audit_fd == -1)
return;
- if (!pwd)
+ if (!pwd && username)
pwd = getpwnam(username);
if (pwd)
snprintf(buf, sizeof(buf), "uid=%d", pwd->pw_uid);
else
- snprintf(buf, sizeof(buf), "acct=%s", username);
+ snprintf(buf, sizeof(buf), "acct=%s", username ? username : "(unknown)");
audit_log_user_message(audit_fd, AUDIT_USER_LOGIN,
buf, hostname, NULL, tty, status);