filestore: fix truncation warnings

pull/3399/head
Jason Ish 7 years ago committed by Victor Julien
parent f67aa5deaa
commit cf33c9975a

@ -161,9 +161,13 @@ static void OutputFilestoreFinalizeFiles(ThreadVars *tv,
#ifdef HAVE_LIBJANSSON #ifdef HAVE_LIBJANSSON
if (ctx->fileinfo) { if (ctx->fileinfo) {
char js_metadata_filename[PATH_MAX]; char js_metadata_filename[PATH_MAX];
snprintf(js_metadata_filename, sizeof(js_metadata_filename), if (snprintf(js_metadata_filename, sizeof(js_metadata_filename),
"%s.%"PRIuMAX".%u.json", final_filename, "%s.%"PRIuMAX".%u.json", final_filename,
(uintmax_t)p->ts.tv_sec, ff->file_store_id); (uintmax_t)p->ts.tv_sec, ff->file_store_id)
== (int)sizeof(js_metadata_filename)) {
WARN_ONCE(SC_ERR_SPRINTF,
"Failed to write file info record. Output filename truncated.");
} else {
json_t *js_fileinfo = JsonBuildFileInfoRecord(p, ff, true, dir, json_t *js_fileinfo = JsonBuildFileInfoRecord(p, ff, true, dir,
ctx->xff_cfg); ctx->xff_cfg);
if (likely(js_fileinfo != NULL)) { if (likely(js_fileinfo != NULL)) {
@ -171,6 +175,7 @@ static void OutputFilestoreFinalizeFiles(ThreadVars *tv,
json_decref(js_fileinfo); json_decref(js_fileinfo);
} }
} }
}
#endif #endif
} }
@ -407,8 +412,15 @@ static OutputInitResult OutputFilestoreLogInitCtx(ConfNode *conf)
if (unlikely(ctx == NULL)) { if (unlikely(ctx == NULL)) {
return result; return result;
} }
strlcpy(ctx->prefix, log_directory, sizeof(ctx->prefix)); strlcpy(ctx->prefix, log_directory, sizeof(ctx->prefix));
snprintf(ctx->tmpdir, sizeof(ctx->tmpdir) - 1, "%s/tmp", log_directory); int written = snprintf(ctx->tmpdir, sizeof(ctx->tmpdir) - 1, "%s/tmp",
log_directory);
if (written == sizeof(ctx->tmpdir)) {
SCLogError(SC_ERR_SPRINTF, "File-store output directory overflow.");
SCFree(ctx);
return result;
}
ctx->xff_cfg = SCCalloc(1, sizeof(HttpXFFCfg)); ctx->xff_cfg = SCCalloc(1, sizeof(HttpXFFCfg));
if (ctx->xff_cfg != NULL) { if (ctx->xff_cfg != NULL) {

Loading…
Cancel
Save