From de50b394757eedcfa86298971cc20176ed8778ba Mon Sep 17 00:00:00 2001 From: Iker Pedrosa Date: Fri, 15 Sep 2023 09:55:02 +0200 Subject: [PATCH] utmp: call prepare_utmp() even if utent is NULL update_utmp() should also return 0 when success. Fixes: 1f368e1c1838de9d476a36897d7c53394569de08 ("utmp: update `update_utmp()") Resolves: https://github.com/shadow-maint/shadow/issues/805 Signed-off-by: Iker Pedrosa Cherry-picked-from: 5178f8c5afb612f6ddf5363823547e080e7f546b Link: Link: Reviewed-by: Michael Vetter Signed-off-by: Alejandro Colomar --- lib/utmp.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/utmp.c b/lib/utmp.c index 7c7da697..99833c4f 100644 --- a/lib/utmp.c +++ b/lib/utmp.c @@ -368,17 +368,16 @@ int update_utmp (const char *user, struct utmp *utent, *ut; utent = get_current_utmp (); - if (utent == NULL) { - return -1; - } - ut = prepare_utmp (user, tty, host, utent); (void) setutmp (ut); /* make entry in the utmp & wtmp files */ - free (utent); + + if (utent != NULL) { + free (utent); + } free (ut); - return 1; + return 0; } void record_failure(const char *failent_user,