Commit 62d57b9b authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

Log: Fix locking during log reconfiguration

The log subsystem should be locked earlier, as default_log_list() may
internally manipulate with the current_log_list (if it is also a default
log list).
parent 0ef082c5
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -382,12 +382,12 @@ log_switch(int initial, list *logs, const char *new_syslog_name)
{
  struct log_config *l;

  /* We should not manipulate with log list when other threads may use it */
  log_lock();

  if (!logs || EMPTY_LIST(*logs))
    logs = default_log_list(initial, &new_syslog_name);

  /* We shouldn't close the logs when other threads may use them */
  log_lock();

  /* Close the logs to avoid pinning them on disk when deleted */
  if (current_log_list)
    WALK_LIST(l, *current_log_list)