detect/address: address format-trunction warnings

This appears to be a FP. Work around it to allow for using this warning
as an error.

detect-engine-address.c: In function ‘DetectAddressParseInternal’:
detect-engine-address.c:851:35: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
  851 |                              "[%s]", rule_var_address);
      |                                   ^
detect-engine-address.c:850:21: note: ‘snprintf’ output 3 or more bytes (assuming 4) into a destination of size 3
  850 |                     snprintf(temp_rule_var_address, str_size,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  851 |                              "[%s]", rule_var_address);
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~
detect-engine-address.c:919:34: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
  919 |                             "[%s]", rule_var_address);
      |                                  ^
detect-engine-address.c:918:21: note: ‘snprintf’ output 3 or more bytes (assuming 4) into a destination of size 3
  918 |                     snprintf(temp_rule_var_address, strlen(rule_var_address) + 3,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  919 |                             "[%s]", rule_var_address);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: #7905.
pull/13926/head
Victor Julien 2 months ago committed by Victor Julien
parent f48099edd3
commit bccbab6e33

@ -843,11 +843,12 @@ static int DetectAddressParseInternal(const DetectEngineCtx *de_ctx, DetectAddre
SCLogDebug("rule_var_address %s", rule_var_address);
if ((negate + n_set) % 2) {
temp_rule_var_address = SCMalloc(strlen(rule_var_address) + 3);
/* add +1 to safisfy gcc 15 + -Wformat-truncation=2 */
const size_t str_size = strlen(rule_var_address) + 3 + 1;
temp_rule_var_address = SCMalloc(str_size);
if (unlikely(temp_rule_var_address == NULL))
goto error;
snprintf(temp_rule_var_address, strlen(rule_var_address) + 3,
"[%s]", rule_var_address);
snprintf(temp_rule_var_address, str_size, "[%s]", rule_var_address);
} else {
temp_rule_var_address = SCStrdup(rule_var_address);
if (unlikely(temp_rule_var_address == NULL))
@ -911,11 +912,12 @@ static int DetectAddressParseInternal(const DetectEngineCtx *de_ctx, DetectAddre
SCLogDebug("rule_var_address %s", rule_var_address);
if ((negate + n_set) % 2) {
temp_rule_var_address = SCMalloc(strlen(rule_var_address) + 3);
/* add +1 to safisfy gcc 15 + -Wformat-truncation=2 */
const size_t str_size = strlen(rule_var_address) + 3 + 1;
temp_rule_var_address = SCMalloc(str_size);
if (unlikely(temp_rule_var_address == NULL))
goto error;
snprintf(temp_rule_var_address, strlen(rule_var_address) + 3,
"[%s]", rule_var_address);
snprintf(temp_rule_var_address, str_size, "[%s]", rule_var_address);
} else {
temp_rule_var_address = SCStrdup(rule_var_address);
if (unlikely(temp_rule_var_address == NULL))

Loading…
Cancel
Save