]> granicus.if.org Git - sudo/commitdiff
Add missing aix_restoreauthdb() call to match the aix_setauthdb()
authorTodd C. Miller <Todd.Miller@sudo.ws>
Mon, 23 Jul 2018 16:36:08 +0000 (10:36 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Mon, 23 Jul 2018 16:36:08 +0000 (10:36 -0600)
added in b8a011be9af7.  Fixes issues on AIX where local users/groups
may not be resolved when some NIS/AD/LDAP is used for users.

src/sudo.c

index d8d80c324e8e20b6fd99f6169c3b6982f00699cb..f560c938d5954f7d1cfd1478358f20706b399978 100644 (file)
@@ -525,6 +525,9 @@ get_user_info(struct user_details *ud)
     aix_setauthdb(IDtouser(ud->uid), NULL);
 #endif
     pw = getpwuid(ud->uid);
+#ifdef HAVE_SETAUTHDB
+    aix_restoreauthdb();
+#endif
     if (pw == NULL)
        sudo_fatalx(U_("unknown uid %u: who are you?"), (unsigned int)ud->uid);
 
@@ -820,11 +823,11 @@ command_info_to_details(char * const info[], struct command_details *details)
     aix_setauthdb(IDtouser(details->euid), NULL);
 #endif
     details->pw = getpwuid(details->euid);
-    if (details->pw != NULL && (details->pw = pw_dup(details->pw)) == NULL)
-       sudo_fatalx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
 #ifdef HAVE_SETAUTHDB
     aix_restoreauthdb();
 #endif
+    if (details->pw != NULL && (details->pw = pw_dup(details->pw)) == NULL)
+       sudo_fatalx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
 
 #ifdef HAVE_SELINUX
     if (details->selinux_role != NULL && is_selinux_enabled() > 0)