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

Unix: Fix bug in syslog name handling

Pointer to current_log_name has to be changed even if the name is the
same, because the old one will be invalid/freed after reconfiguration.
parent 487c6961
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -284,17 +284,18 @@ log_switch(int debug, list *l, char *new_syslog_name)
  current_log_list = l;

#ifdef HAVE_SYSLOG
  if (current_syslog_name && new_syslog_name &&
      !strcmp(current_syslog_name, new_syslog_name))
  char *old_syslog_name = current_syslog_name;
  current_syslog_name = new_syslog_name;

  if (old_syslog_name && new_syslog_name &&
      !strcmp(old_syslog_name, new_syslog_name))
    return;

  if (current_syslog_name)
  if (old_syslog_name)
    closelog();

  if (new_syslog_name)
    openlog(new_syslog_name, LOG_CONS | LOG_NDELAY, LOG_DAEMON);

  current_syslog_name = new_syslog_name;
#endif
}