diff options
author | Karel Zak | 2007-09-21 00:34:30 +0200 |
---|---|---|
committer | Karel Zak | 2007-09-21 00:34:30 +0200 |
commit | e797d83232802cf439b2ed893e784d3636357349 (patch) | |
tree | ff3d5b5ee1c57031fadfed43b3634a0319fe4db4 /login-utils/login.c | |
parent | ionice: add a note about permissions to ionice.1 (diff) | |
download | kernel-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.c | 4 |
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); |