]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
pam_systemd_home: port over to pam_get_item_many() 30739/head
authorLennart Poettering <lennart@poettering.net>
Tue, 28 Nov 2023 08:31:04 +0000 (09:31 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 4 Jan 2024 11:29:37 +0000 (12:29 +0100)
src/home/pam_systemd_home.c

index ba8d8f605456d69eb5c680873bdec7f16e3c97f2..30f624b6e2bb695093c6bffd9651f27f85d46272 100644 (file)
@@ -969,13 +969,12 @@ _public_ PAM_EXTERN int pam_sm_chauthtok(
                 return r;
 
         /* Start with cached credentials */
-        r = pam_get_item(handle, PAM_OLDAUTHTOK, (const void**) &old_password);
-        if (!IN_SET(r, PAM_BAD_ITEM, PAM_SUCCESS))
-                return pam_syslog_pam_error(handle, LOG_ERR, r, "Failed to get old password: @PAMERR@");
-
-        r = pam_get_item(handle, PAM_AUTHTOK, (const void**) &new_password);
-        if (!IN_SET(r, PAM_BAD_ITEM, PAM_SUCCESS))
-                return pam_syslog_pam_error(handle, LOG_ERR, r, "Failed to get cached password: @PAMERR@");
+        r = pam_get_item_many(
+                        handle,
+                        PAM_OLDAUTHTOK, &old_password,
+                        PAM_AUTHTOK, &new_password);
+        if (r != PAM_SUCCESS)
+                return pam_syslog_pam_error(handle, LOG_ERR, r, "Failed to get cached passwords: @PAMERR@");
 
         if (isempty(new_password)) {
                 /* No, it's not cached, then let's ask for the password and its verification, and cache