diff --git a/src/util-rule-vars.c b/src/util-rule-vars.c index efed9e8e82..283d838092 100644 --- a/src/util-rule-vars.c +++ b/src/util-rule-vars.c @@ -68,7 +68,7 @@ char *SCRuleVarsGetConfVar(const char *conf_var_name, SCEnter(); const char *conf_var_type_name = NULL; - char *conf_var_full_name = NULL; + char conf_var_full_name[1024] = ""; char *conf_var_full_name_value = NULL; if (conf_var_name == NULL) @@ -79,14 +79,7 @@ char *SCRuleVarsGetConfVar(const char *conf_var_name, if (conf_var_type_name == NULL) goto end; - /* the + 2 is for the '.' and the string termination character '\0' */ - conf_var_full_name = (char *)SCMalloc(strlen(conf_var_type_name) + - strlen(conf_var_name) + 2); - if (conf_var_full_name == NULL) - goto end; - - if (snprintf(conf_var_full_name, - strlen(conf_var_type_name) + strlen(conf_var_name) + 2, "%s.%s", + if (snprintf(conf_var_full_name, sizeof(conf_var_full_name), "%s.%s", conf_var_type_name, conf_var_name) < 0) { goto end; } @@ -101,8 +94,6 @@ char *SCRuleVarsGetConfVar(const char *conf_var_name, "\"%s\" is \"%s\"", conf_var_name, conf_var_full_name_value); end: - if (conf_var_full_name != NULL) - SCFree(conf_var_full_name); SCReturnCharPtr(conf_var_full_name_value); }