cppcheck: work around snprintf warning

Cppcheck 1.72 gives a warning on the following code pattern:

    char blah[32] = "";
    snprintf(blah, sizeof(blah), "something");

The warning is:

    (error) Buffer is accessed out of bounds.

While this appears to be a FP, in most cases the initialization to ""
was unnecessary as the snprintf statement immediately follows the
variable declaration.
pull/1937/head
Victor Julien 10 years ago
parent 33fd710367
commit 8394b38941

@ -267,7 +267,7 @@ void DetectLoaderThreadSpawn()
for (i = 0; i < num_loaders; i++) {
ThreadVars *tv_loader = NULL;
char name[32] = "";
char name[32];
snprintf(name, sizeof(name), "DetectLoader%02d", i+1);
tv_loader = TmThreadCreateCmdThreadByName("DetectLoader",

@ -2524,7 +2524,9 @@ int DetectEngineReload(const char *filename, SCInstance *suri)
DetectEngineCtx *new_de_ctx = NULL;
DetectEngineCtx *old_de_ctx = NULL;
char prefix[128] = "";
char prefix[128];
memset(prefix, 0, sizeof(prefix));
if (filename != NULL) {
snprintf(prefix, sizeof(prefix), "detect-engine-reloads.%d", reloads++);
if (ConfYamlLoadFileWithPrefix(filename, prefix) != 0) {

@ -254,11 +254,13 @@ char *DetectLoadCompleteSigPath(const DetectEngineCtx *de_ctx, char *sig_file)
{
char *defaultpath = NULL;
char *path = NULL;
char varname[128] = "default-rule-path";
char varname[128];
if (strlen(de_ctx->config_prefix) > 0) {
snprintf(varname, sizeof(varname), "%s.default-rule-path",
de_ctx->config_prefix);
} else {
snprintf(varname, sizeof(varname), "default-rule-path");
}
/* Path not specified */

@ -728,7 +728,7 @@ void FlowManagerThreadSpawn()
for (u = 0; u < flowmgr_number; u++) {
ThreadVars *tv_flowmgr = NULL;
char name[32] = "";
char name[32];
snprintf(name, sizeof(name), "FlowManagerThread%02u", u+1);
tv_flowmgr = TmThreadCreateMgmtThreadByName("FlowManagerThread",
@ -888,7 +888,7 @@ void FlowRecyclerThreadSpawn()
for (u = 0; u < flowrec_number; u++) {
ThreadVars *tv_flowmgr = NULL;
char name[32] = "";
char name[32];
snprintf(name, sizeof(name), "FlowRecyclerThread%02u", u+1);
tv_flowmgr = TmThreadCreateMgmtThreadByName("FlowRecyclerThread",

@ -112,9 +112,10 @@ static int LogTcpDataLoggerDir(ThreadVars *tv, void *thread_data, const Flow *f,
char name[PATH_MAX];
char tx[64] = "";
if (flags & OUTPUT_STREAMING_FLAG_TRANSACTION)
char tx[64] = { 0 };
if (flags & OUTPUT_STREAMING_FLAG_TRANSACTION) {
snprintf(tx, sizeof(tx), "%"PRIu64, tx_id);
}
snprintf(name, sizeof(name), "%s/%s/%s_%u-%s_%u-%s-%s.data",
td->log_dir,

@ -246,7 +246,7 @@ static void JsonFlowLogJSON(JsonFlowLogThread *aft, json_t *js, Flow *f)
TcpSession *ssn = f->protoctx;
char hexflags[3] = "";
char hexflags[3];
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->tcp_packet_flags : 0);
json_object_set_new(tjs, "tcp_flags", json_string(hexflags));

@ -224,7 +224,7 @@ static void JsonNetFlowLogJSONToServer(JsonNetFlowLogThread *aft, json_t *js, Fl
TcpSession *ssn = f->protoctx;
char hexflags[3] = "";
char hexflags[3];
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->client.tcp_flags : 0);
json_object_set_new(tjs, "tcp_flags", json_string(hexflags));
@ -273,7 +273,7 @@ static void JsonNetFlowLogJSONToClient(JsonNetFlowLogThread *aft, json_t *js, Fl
TcpSession *ssn = f->protoctx;
char hexflags[3] = "";
char hexflags[3];
snprintf(hexflags, sizeof(hexflags), "%02x",
ssn ? ssn->server.tcp_flags : 0);
json_object_set_new(tjs, "tcp_flags", json_string(hexflags));

@ -360,7 +360,7 @@ TmEcode UnixSocketPcapFilesCheck(void *data)
}
}
if (cfile->tenant_id > 0) {
char tstr[16] = "";
char tstr[16];
snprintf(tstr, sizeof(tstr), "%d", cfile->tenant_id);
if (ConfSet("pcap-file.tenant-id", tstr) != 1) {
SCLogError(SC_ERR_INVALID_ARGUMENTS,

@ -163,9 +163,9 @@ FILE *SCClassConfInitContextAndLocalResources(DetectEngineCtx *de_ctx, FILE *fd)
static char *SCClassConfGetConfFilename(const DetectEngineCtx *de_ctx)
{
char *log_filename = NULL;
char config_value[256] = "";
if (de_ctx != NULL && strlen(de_ctx->config_prefix) > 0) {
char config_value[256];
snprintf(config_value, sizeof(config_value),
"%s.classification-file", de_ctx->config_prefix);

@ -198,7 +198,6 @@ extern int sc_log_module_initialized;
extern int sc_log_module_cleaned;
#define SCLog(x, ...) \
do { \
if (sc_log_global_log_level >= x && \
@ -208,7 +207,7 @@ extern int sc_log_module_cleaned;
(sc_log_fd_filters_present == 0 || \
SCLogMatchFDFilter(__FUNCTION__) == 1)) \
{ \
char _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN] = ""; \
char _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN]; \
\
snprintf(_sc_log_msg, SC_LOG_MAX_LOG_MSG_LEN, __VA_ARGS__); \
\
@ -228,7 +227,7 @@ extern int sc_log_module_cleaned;
(sc_log_fd_filters_present == 0 || \
SCLogMatchFDFilter(__FUNCTION__) == 1)) \
{ \
char _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN] = ""; \
char _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN]; \
\
snprintf(_sc_log_msg, SC_LOG_MAX_LOG_MSG_LEN, __VA_ARGS__); \
\

@ -162,9 +162,9 @@ static FILE *SCRConfInitContextAndLocalResources(DetectEngineCtx *de_ctx, FILE *
static char *SCRConfGetConfFilename(const DetectEngineCtx *de_ctx)
{
char *path = NULL;
char config_value[256] = "";
if (de_ctx != NULL && strlen(de_ctx->config_prefix) > 0) {
char config_value[256];
snprintf(config_value, sizeof(config_value),
"%s.reference-config-file", de_ctx->config_prefix);

@ -69,7 +69,7 @@ char *SCRuleVarsGetConfVar(const DetectEngineCtx *de_ctx,
SCEnter();
const char *conf_var_type_name = NULL;
char conf_var_full_name[2048] = "";
char conf_var_full_name[2048];
char *conf_var_full_name_value = NULL;
if (conf_var_name == NULL)

@ -106,9 +106,9 @@ static pcre_extra *regex_suppress_study = NULL;
static char *SCThresholdConfGetConfFilename(const DetectEngineCtx *de_ctx)
{
char *log_filename = NULL;
char config_value[256] = "";
if (de_ctx != NULL && strlen(de_ctx->config_prefix) > 0) {
char config_value[256];
snprintf(config_value, sizeof(config_value),
"%s.threshold-file", de_ctx->config_prefix);

Loading…
Cancel
Save