diff options
Diffstat (limited to 'daemon/logind/logind.c')
-rw-r--r-- | daemon/logind/logind.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/daemon/logind/logind.c b/daemon/logind/logind.c index 8d7a9e16..4c30a49d 100644 --- a/daemon/logind/logind.c +++ b/daemon/logind/logind.c @@ -832,8 +832,8 @@ auth_user_challenge(login_ctx *ctx) { char *uid = ctx->userid, *passbuf = ctx->passwd; - const char *free_uid = auth_is_free_userid(uid); + userec_t user = {0}; if (free_uid) { @@ -841,18 +841,17 @@ auth_user_challenge(login_ctx *ctx) return AUTH_RESULT_FREEID; } - // reuse cuser - memset(&cuser, 0, sizeof(cuser)); - if( initcuser(uid) < 1 || !cuser.userid[0] || - !checkpasswd(cuser.passwd, passbuf) ) + if (passwd_load_user(uid, &user) < 1 || + !user.userid[0] || + !checkpasswd(user.passwd, passbuf) ) { - if (cuser.userid[0]) - strcpy(uid, cuser.userid); + if (user.userid[0]) + strcpy(uid, user.userid); return AUTH_RESULT_FAIL; } // normalize user id - strcpy(uid, cuser.userid); + strcpy(uid, user.userid); return AUTH_RESULT_OK; } |