utmp: call prepare_utmp() even if utent is NULL

update_utmp() should also return 0 when success.

Fixes: 1f368e1c18 ("utmp: update
`update_utmp()")
Resolves: https://github.com/shadow-maint/shadow/issues/805

Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Cherry-picked-from: 5178f8c5af
Link: <https://github.com/shadow-maint/shadow/issues/805>
Link: <https://github.com/shadow-maint/shadow/pull/808>
Reviewed-by: Michael Vetter <jubalh@iodoru.org>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
Iker Pedrosa
2023-09-15 09:55:02 +02:00
committed by Alejandro Colomar
parent b5c99ec30e
commit de50b39475

View File

@@ -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,