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:
@@ -784,9 +784,6 @@ sudoers_io_close(int exit_status, int error)
|
|||||||
if (io_operations.close != NULL)
|
if (io_operations.close != NULL)
|
||||||
io_operations.close(exit_status, error, &errstr);
|
io_operations.close(exit_status, error, &errstr);
|
||||||
|
|
||||||
sudo_freepwcache();
|
|
||||||
sudo_freegrcache();
|
|
||||||
|
|
||||||
if (errstr != NULL && !warned) {
|
if (errstr != NULL && !warned) {
|
||||||
/* Only warn about I/O log file errors once. */
|
/* Only warn about I/O log file errors once. */
|
||||||
log_warning(SLOG_SEND_MAIL,
|
log_warning(SLOG_SEND_MAIL,
|
||||||
@@ -794,9 +791,11 @@ sudoers_io_close(int exit_status, int error)
|
|||||||
warned = true;
|
warned = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
sudoers_debug_deregister();
|
sudo_freepwcache();
|
||||||
|
sudo_freegrcache();
|
||||||
|
|
||||||
return;
|
/* sudoers_debug_deregister() calls sudo_debug_exit() for us. */
|
||||||
|
sudoers_debug_deregister();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@@ -931,9 +931,8 @@ sudoers_policy_close(int exit_status, int error_code)
|
|||||||
free(audit_msg);
|
free(audit_msg);
|
||||||
audit_msg = NULL;
|
audit_msg = NULL;
|
||||||
|
|
||||||
|
/* sudoers_debug_deregister() calls sudo_debug_exit() for us. */
|
||||||
sudoers_debug_deregister();
|
sudoers_debug_deregister();
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user