mirror of
https://github.com/openssh/openssh-portable.git
synced 2026-06-24 08:48:18 +00:00
Fix ut_type for btmp records
According to man utmp ut_type is supposed to be only switched from LOGIN_PROCESS to USER_PROCESS after succesfull authentication and this is how sshd behaved before671c44078. Fixes:671c44078("use construct_utmp to construct btmp records") Signed-off-by: Artem Savkov <artem.savkov@gmail.com>
This commit is contained in:
committed by
Darren Tucker
parent
15fe1ceb29
commit
a393759f96
@@ -651,6 +651,9 @@ construct_utmp(struct logininfo *li,
|
||||
# ifdef HAVE_TYPE_IN_UTMP
|
||||
/* This is done here to keep utmp constants out of struct logininfo */
|
||||
switch (li->type) {
|
||||
case LTYPE_FAILED:
|
||||
ut->ut_type = LOGIN_PROCESS;
|
||||
break;
|
||||
case LTYPE_LOGIN:
|
||||
ut->ut_type = USER_PROCESS;
|
||||
break;
|
||||
@@ -1732,7 +1735,7 @@ record_failed_login(struct ssh *ssh, const char *username, const char *hostname,
|
||||
|
||||
/* Construct a logininfo and turn it into a utmp */
|
||||
memset(&li, 0, sizeof(li));
|
||||
li.type = LTYPE_LOGIN;
|
||||
li.type = LTYPE_FAILED;
|
||||
li.pid = getpid();
|
||||
strlcpy(li.line, "ssh:notty", sizeof(li.line));
|
||||
strlcpy(li.username, username, sizeof(li.username));
|
||||
|
||||
@@ -52,6 +52,7 @@ union login_netinfo {
|
||||
*/
|
||||
/* types - different to utmp.h 'type' macros */
|
||||
/* (though set to the same value as linux, openbsd and others...) */
|
||||
#define LTYPE_FAILED 6
|
||||
#define LTYPE_LOGIN 7
|
||||
#define LTYPE_LOGOUT 8
|
||||
|
||||
|
||||
Reference in New Issue
Block a user