diff --git a/conf.c b/conf.c index b6a2b18..a88df6f 100644 --- a/conf.c +++ b/conf.c @@ -330,8 +330,8 @@ CNF_Initialise(int r) ntp_restrictions = ARR_CreateInstance(sizeof (AllowDeny)); cmd_restrictions = ARR_CreateInstance(sizeof (AllowDeny)); - dumpdir = Strdup("."); - logdir = Strdup("."); + dumpdir = Strdup(""); + logdir = Strdup(""); bind_cmd_path = Strdup(DEFAULT_COMMAND_SOCKET); pidfile = Strdup(DEFAULT_PID_FILE); rtc_device = Strdup(DEFAULT_RTC_DEVICE); @@ -1247,8 +1247,10 @@ CNF_CreateDirs(uid_t uid, gid_t gid) { char *dir; - UTI_CreateDirAndParents(logdir, 0755, uid, gid); - UTI_CreateDirAndParents(dumpdir, 0755, uid, gid); + if (logdir[0]) + UTI_CreateDirAndParents(logdir, 0755, uid, gid); + if (dumpdir[0]) + UTI_CreateDirAndParents(dumpdir, 0755, uid, gid); /* Create a directory for the Unix domain command socket */ if (bind_cmd_path[0]) { diff --git a/logging.c b/logging.c index 7eb680d..35562c0 100644 --- a/logging.c +++ b/logging.c @@ -238,10 +238,16 @@ LOG_FileWrite(LOG_FileID id, const char *format, ...) return; if (!logfiles[id].file) { - char filename[512]; + char filename[512], *logdir = CNF_GetLogDir(); + + if (logdir[0] == '\0') { + LOG(LOGS_WARN, LOGF_Logging, "logdir not specified"); + logfiles[id].name = NULL; + return; + } if (snprintf(filename, sizeof(filename), "%s/%s.log", - CNF_GetLogDir(), logfiles[id].name) >= sizeof(filename) || + logdir, logfiles[id].name) >= sizeof (filename) || !(logfiles[id].file = fopen(filename, "a"))) { LOG(LOGS_WARN, LOGF_Refclock, "Couldn't open logfile %s for update", filename); logfiles[id].name = NULL; diff --git a/sources.c b/sources.c index 8109172..6a78366 100644 --- a/sources.c +++ b/sources.c @@ -1172,15 +1172,21 @@ static FILE *open_dumpfile(SRC_Instance inst, const char *mode) { FILE *f; - char filename[1024]; + char filename[1024], *dumpdir; + + dumpdir = CNF_GetDumpDir(); + if (dumpdir[0] == '\0') { + LOG(LOGS_WARN, LOGF_Sources, "dumpdir not specified"); + return NULL; + } /* Include IP address in the name for NTP sources, or reference ID in hex */ if ((inst->type == SRC_NTP && - snprintf(filename, sizeof (filename), "%s/%s.dat", CNF_GetDumpDir(), + snprintf(filename, sizeof (filename), "%s/%s.dat", dumpdir, source_to_string(inst)) >= sizeof (filename)) || (inst->type != SRC_NTP && snprintf(filename, sizeof (filename), "%s/refid:%08"PRIx32".dat", - CNF_GetDumpDir(), inst->ref_id) >= sizeof (filename))) { + dumpdir, inst->ref_id) >= sizeof (filename))) { LOG(LOGS_WARN, LOGF_Sources, "dumpdir too long"); return NULL; }