static struct {
bool initialized;
enum debug_logtype logtype; /* The type of logging we are doing: eg stdout, file, stderr */
- const char *prog_name;
+ char prog_name[255];
bool reopening_logs;
bool schedule_reopen_logs;
const char *prog_name, char *option)
{
if (enabled && !previously_enabled) {
+ const char *ident = NULL;
+ if ((prog_name != NULL) && (prog_name[0] != '\0')) {
+ ident = prog_name;
+ }
#ifdef LOG_DAEMON
- openlog(prog_name, LOG_PID, SYSLOG_FACILITY);
+ openlog(ident, LOG_PID, SYSLOG_FACILITY);
#else
/* for old systems that have no facility codes. */
- openlog(prog_name, LOG_PID );
+ openlog(ident, LOG_PID);
#endif
return;
}
prog_name = p + 1;
}
- state.prog_name = prog_name;
+ strlcpy(state.prog_name, prog_name, sizeof(state.prog_name));
}
reopen_logs_internal();
}