Free passwd and group caches in I/O plugin after log_warning(), not before.

The logging functions may try to use the cache via set_perms(PERM_ROOT).
This commit is contained in:
Todd C. Miller
2020-04-17 15:07:25 -06:00
parent 481427f9f0
commit ae7bb12335
2 changed files with 5 additions and 7 deletions

View File

@@ -784,9 +784,6 @@ sudoers_io_close(int exit_status, int error)
if (io_operations.close != NULL)
io_operations.close(exit_status, error, &errstr);
sudo_freepwcache();
sudo_freegrcache();
if (errstr != NULL && !warned) {
/* Only warn about I/O log file errors once. */
log_warning(SLOG_SEND_MAIL,
@@ -794,9 +791,11 @@ sudoers_io_close(int exit_status, int error)
warned = true;
}
sudoers_debug_deregister();
sudo_freepwcache();
sudo_freegrcache();
return;
/* sudoers_debug_deregister() calls sudo_debug_exit() for us. */
sudoers_debug_deregister();
}
static int

View File

@@ -931,9 +931,8 @@ sudoers_policy_close(int exit_status, int error_code)
free(audit_msg);
audit_msg = NULL;
/* sudoers_debug_deregister() calls sudo_debug_exit() for us. */
sudoers_debug_deregister();
return;
}
/*