Skip to content

Conversation

victorjulien
Copy link
Member

catenacyber and others added 26 commits September 29, 2025 19:08
Otherwise rustfmt complains that parser.rs does not exist yet
util-pidfile.c: In function ‘SCPidfileCreate’:
util-pidfile.c:49:18: error: ‘%lu’ directive output may be truncated writing between 1 and 20 bytes into a region of size 16 [-Werror=format-truncation=]
   49 |     size_t len = snprintf(val, sizeof(val), "%"PRIuMAX"\n", (uintmax_t)getpid());
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
util-pidfile.c:49:18: note: using the range [0, 18446744073709551615] for directive argument
util-pidfile.c:49:18: note: ‘snprintf’ output between 3 and 22 bytes into a destination of size 16
   49 |     size_t len = snprintf(val, sizeof(val), "%"PRIuMAX"\n", (uintmax_t)getpid());
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Ticket: OISF#7905.
detect-datarep.c: In function ‘SetupLoadPath’:
detect-datarep.c:262:9: error: ‘%s’ directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  262 |     if (snprintf(path, sizeof(path), "%s/%s", dir, load) >= (int)sizeof(path)) // TODO windows path
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
detect-datarep.c:262:9: note: assuming directive output of 1 byte
detect-datarep.c:262:9: note: ‘snprintf’ output 2 or more bytes (assuming 4098) into a destination of size 4096
cc1: all warnings being treated as errors

Ticket: OISF#7905.
detect-dataset.c: In function ‘SetupLoadPath’:
detect-dataset.c:391:9: error: ‘%s’ directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Werror=format-truncation=]
  391 |     if (snprintf(path, sizeof(path), "%s/%s", dir, load) >= (int)sizeof(path)) // TODO windows path
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
detect-dataset.c:391:9: note: assuming directive output of 1 byte
detect-dataset.c:391:9: note: ‘snprintf’ output 2 or more bytes (assuming 4098) into a destination of size 4096

Ticket: OISF#7905.
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: OISF#7905.
detect-engine-analyzer.c: In function ‘SetupEngineAnalysis’:
detect-engine-analyzer.c:493:60: error: ‘%s’ directive output may be truncated writing up to 63 bytes into a region of size 3 [-Werror=format-truncation=]
  493 |         snprintf(ea->file_prefix, cfg_prefix_len + 1 + 1, "%s.", de_ctx->config_prefix);
      |                                                            ^~
detect-engine-analyzer.c:493:9: note: ‘snprintf’ output between 2 and 65 bytes into a destination of size 3
  493 |         snprintf(ea->file_prefix, cfg_prefix_len + 1 + 1, "%s.", de_ctx->config_prefix);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
This appears to be a FP. Work around it to allow for using this warning
as an error.

Limit scheme lenght to < 256 as well.

app-layer-smtp.c: In function 'SMTPConfigure':
app-layer-smtp.c:371:69: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  371 |                     int r = snprintf(new_val, scheme_len + 1, "%s://", scheme->val);
      |                                                                     ^
app-layer-smtp.c:371:29: note: 'snprintf' output 4 or more bytes (assuming 5) into a destination of size 4
  371 |                     int r = snprintf(new_val, scheme_len + 1, "%s://", scheme->val);
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
This appears to be a FP. Work around it to allow for using this warning
as an error.

detect-engine-iponly.c: In function 'IPOnlyCIDRListParse2':
detect-engine-iponly.c:721:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  721 |                              "[%s]", rule_var_address);
      |                                   ^
detect-engine-iponly.c:720:21: note: 'snprintf' output 3 or more bytes (assuming 4) into a destination of size 3
  720 |                     snprintf(temp_rule_var_address, strlen(rule_var_address) + 3,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  721 |                              "[%s]", rule_var_address);
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~
detect-engine-iponly.c:782:34: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  782 |                             "[%s]", rule_var_address);
      |                                  ^
detect-engine-iponly.c:781:21: note: 'snprintf' output 3 or more bytes (assuming 4) into a destination of size 3
  781 |                     snprintf(temp_rule_var_address, strlen(rule_var_address) + 3,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  782 |                             "[%s]", rule_var_address);
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
detect-engine-mpm.c: In function ‘BuildBasicPname’:
detect-engine-mpm.c:197:43: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
  197 |         snprintf(pname, sizeof(pname), "%s", name);
      |                                           ^
detect-engine-mpm.c:197:9: note: ‘snprintf’ output 1 or more bytes (assuming 2) into a destination of size 1
  197 |         snprintf(pname, sizeof(pname), "%s", name);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
detect-engine-mpm.c: In function ‘AppendTransformsToPname’:
detect-engine-mpm.c:231:61: error: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 7 [-Werror=format-truncation=]
  231 |             snprintf(xforms_print, sizeof(xforms_print), " (%s)", xforms);
      |                                                             ^~    ~~~~~~
detect-engine-mpm.c:231:13: note: ‘snprintf’ output between 4 and 1027 bytes into a destination of size 9
  231 |             snprintf(xforms_print, sizeof(xforms_print), " (%s)", xforms);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
This appears to be a FP. Work around it to allow for using this warning
as an error.

detect-engine-port.c: In function 'DetectPortParseDo':
detect-engine-port.c:858:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  858 |                              "[%s]", rule_var_port);
      |                                   ^
detect-engine-port.c:857:21: note: 'snprintf' output 3 or more bytes (assuming 4) into a destination of size 3
  857 |                     snprintf(alloc_rule_var_port, strlen(rule_var_port) + 3,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  858 |                              "[%s]", rule_var_port);
      |                              ~~~~~~~~~~~~~~~~~~~~~~
detect-engine-port.c:928:34: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  928 |                             "[%s]", rule_var_port);
      |                                  ^
detect-engine-port.c:927:21: note: 'snprintf' output 3 or more bytes (assuming 4) into a destination of size 3
  927 |                     snprintf(alloc_rule_var_port, strlen(rule_var_port) + 3,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  928 |                             "[%s]", rule_var_port);
      |                             ~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
Use proper path merging.

Address format truncation warnings.

log-pcap.c: In function 'PcapLogInitRingBuffer':
log-pcap.c:970:13: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
  970 |         if (snprintf(path, PATH_MAX, "%s/%s", pattern, entry->d_name) == PATH_MAX)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
log-pcap.c:970:13: note: 'snprintf' output between 2 and 4352 bytes into a destination of size 4096
log-pcap.c: In function 'PcapLogOpenFileCtx':
log-pcap.c:1796:56: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
 1796 |                 ret = snprintf(filename, PATH_MAX, "%s/%s.%u.%" PRIu32 ".%" PRIu32 "%s", pl->dir,
      |                                                        ^~
log-pcap.c:1796:52: note: assuming directive output of 1 byte
 1796 |                 ret = snprintf(filename, PATH_MAX, "%s/%s.%u.%" PRIu32 ".%" PRIu32 "%s", pl->dir,
      |                                                    ^~~~~~~~~~~~
log-pcap.c:1796:52: note: using the range [0, 4294967295] for directive argument
log-pcap.c:1796:52: note: directive argument in the range [0, 1048575]
log-pcap.c:1796:52: note: assuming directive output of 1 byte
log-pcap.c:1796:23: note: 'snprintf' output 8 or more bytes (assuming 4111) into a destination of size 4096
 1796 |                 ret = snprintf(filename, PATH_MAX, "%s/%s.%u.%" PRIu32 ".%" PRIu32 "%s", pl->dir,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1797 |                         pl->prefix, pl->thread_number, (uint32_t)SCTIME_SECS(ts),
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1798 |                         (uint32_t)SCTIME_USECS(ts), pl->suffix);
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
log-pcap.c:1793:56: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
 1793 |                 ret = snprintf(filename, PATH_MAX, "%s/%s.%u.%" PRIu32 "%s", pl->dir, pl->prefix,
      |                                                        ^~
log-pcap.c:1793:52: note: assuming directive output of 1 byte
 1793 |                 ret = snprintf(filename, PATH_MAX, "%s/%s.%u.%" PRIu32 "%s", pl->dir, pl->prefix,
      |                                                    ^~~~~~~~~~~~
log-pcap.c:1793:52: note: using the range [0, 4294967295] for directive argument
log-pcap.c:1793:52: note: assuming directive output of 1 byte
log-pcap.c:1793:23: note: 'snprintf' output 6 or more bytes (assuming 4103) into a destination of size 4096
 1793 |                 ret = snprintf(filename, PATH_MAX, "%s/%s.%u.%" PRIu32 "%s", pl->dir, pl->prefix,
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1794 |                         pl->thread_number, (uint32_t)SCTIME_SECS(ts), pl->suffix);
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
log-pcap.c:1738:52: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
 1738 |             ret = snprintf(filename, PATH_MAX, "%s/%s.%" PRIu32 ".%" PRIu32 "%s", pl->dir,
      |                                                    ^~
log-pcap.c:1738:48: note: assuming directive output of 1 byte
 1738 |             ret = snprintf(filename, PATH_MAX, "%s/%s.%" PRIu32 ".%" PRIu32 "%s", pl->dir,
      |                                                ^~~~~~~~~
log-pcap.c:1738:48: note: using the range [0, 4294967295] for directive argument
log-pcap.c:1738:48: note: directive argument in the range [0, 1048575]
log-pcap.c:1738:48: note: assuming directive output of 1 byte
log-pcap.c:1738:19: note: 'snprintf' output 6 or more bytes (assuming 4109) into a destination of size 4096
 1738 |             ret = snprintf(filename, PATH_MAX, "%s/%s.%" PRIu32 ".%" PRIu32 "%s", pl->dir,
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1739 |                     pl->prefix, (uint32_t)SCTIME_SECS(ts), (uint32_t)SCTIME_USECS(ts), pl->suffix);
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
log-pcap.c:1735:52: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
 1735 |             ret = snprintf(filename, PATH_MAX, "%s/%s.%" PRIu32 "%s", pl->dir, pl->prefix,
      |                                                    ^~
log-pcap.c:1735:48: note: assuming directive output of 1 byte
 1735 |             ret = snprintf(filename, PATH_MAX, "%s/%s.%" PRIu32 "%s", pl->dir, pl->prefix,
      |                                                ^~~~~~~~~
log-pcap.c:1735:48: note: using the range [0, 4294967295] for directive argument
log-pcap.c:1735:48: note: assuming directive output of 1 byte
log-pcap.c:1735:19: note: 'snprintf' output 4 or more bytes (assuming 4101) into a destination of size 4096
 1735 |             ret = snprintf(filename, PATH_MAX, "%s/%s.%" PRIu32 "%s", pl->dir, pl->prefix,
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1736 |                     (uint32_t)SCTIME_SECS(ts), pl->suffix);
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
Use PathMerge.

Address format truncation warnings.

log-tlsstore.c: In function 'CreateFileName':
log-tlsstore.c:68:9: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
   68 |     if (snprintf(path, sizeof(path), "%s/%s%ld.%ld-%d.pem", tls_logfile_base_dir, dir,
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   69 |                 (long int)SCTIME_SECS(p->ts), (long int)SCTIME_USECS(p->ts),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   70 |                 file_id) == sizeof(path))
      |                 ~~~~~~~~
log-tlsstore.c:68:9: note: assuming directive output of 1 byte
log-tlsstore.c:68:9: note: directive argument in the range [0, 17592186044415]
log-tlsstore.c:68:9: note: directive argument in the range [0, 1048575]
log-tlsstore.c:68:9: note: using the range [-2147483648, 2147483647] for directive argument
log-tlsstore.c:68:9: note: 'snprintf' output 11 or more bytes (assuming 4126) into a destination of size 4096

Ticket: OISF#7905.
Use PathMerge where appropriate. Addresses format truncation warnings.

output-filestore.c: In function 'OutputFilestoreFinalizeFiles':
output-filestore.c:164:13: warning: '%lu' directive output may be truncated writing between 1 and 14 bytes into a region of size between 0 and 4095 [-Wformat-truncation=]
  164 |         if (snprintf(js_metadata_filename, sizeof(js_metadata_filename), "%s.%" PRIuMAX ".%u.json",
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  165 |                     final_filename, (uintmax_t)SCTIME_SECS(p->ts),
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  166 |                     ff->file_store_id) == (int)sizeof(js_metadata_filename)) {
      |                     ~~~~~~~~~~~~~~~~~~
output-filestore.c:164:13: note: directive argument in the range [0, 17592186044415]
output-filestore.c:164:13: note: 'snprintf' output between 10 and 4127 bytes into a destination of size 4096
output-filestore.c: In function 'OutputFilestoreLogInitCtx':
output-filestore.c:408:67: warning: '%s' directive output may be truncated writing up to 4095 bytes into a region of size 4027 [-Wformat-truncation=]
  408 |     int written = snprintf(ctx->tmpdir, sizeof(ctx->tmpdir) - 1, "%s/tmp",
      |                                                                   ^~
  409 |             log_directory);
      |             ~~~~~~~~~~~~~
output-filestore.c:408:19: note: 'snprintf' output between 5 and 4100 bytes into a destination of size 4027
  408 |     int written = snprintf(ctx->tmpdir, sizeof(ctx->tmpdir) - 1, "%s/tmp",
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  409 |             log_directory);
      |             ~~~~~~~~~~~~~~

Ticket: OISF#7905.
This appears to be a FP. Work around it to allow for using this warning
as an error.

output-json-alert.c: In function 'AlertJsonReference':
output-json-alert.c:188:44: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 1 [-Wformat-truncation=]
  188 |         snprintf(kv_store, size_needed, "%s%s", kv->key, kv->reference);
      |                                            ^~
output-json-alert.c:188:41: note: assuming directive output of 1 byte
  188 |         snprintf(kv_store, size_needed, "%s%s", kv->key, kv->reference);
      |                                         ^~~~~~
output-json-alert.c:188:9: note: 'snprintf' output 1 or more bytes (assuming 3) into a destination of size 1
  188 |         snprintf(kv_store, size_needed, "%s%s", kv->key, kv->reference);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
This appears to be a FP. Work around it to allow for using this warning
as an error.

output-json-stats.c: In function 'StatsToJSON':
output-json-stats.c:253:65: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  253 |                     snprintf(deltaname, sizeof(deltaname), "%s%s", stat_name, delta_suffix);
      |                                                                 ^
output-json-stats.c:253:21: note: 'snprintf' output 1 or more bytes (assuming 8) into a destination of size 7
  253 |                     snprintf(deltaname, sizeof(deltaname), "%s%s", stat_name, delta_suffix);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
output-json-stats.c:314:69: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
  314 |                         snprintf(deltaname, sizeof(deltaname), "%s%s", stat_name, delta_suffix);
      |                                                                     ^
output-json-stats.c:314:25: note: 'snprintf' output 1 or more bytes (assuming 8) into a destination of size 7
  314 |                         snprintf(deltaname, sizeof(deltaname), "%s%s", stat_name, delta_suffix);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
Use PathMerge to improve path handling and address these warnings:

output-lua.c: In function 'OutputLuaLogInitSub':
output-lua.c:657:48: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 4096 [-Wformat-truncation=]
  657 |     int ret = snprintf(path, sizeof(path),"%s%s%s", dir, strlen(dir) ? "/" : "", conf->val);
      |                                                ^~
output-lua.c:657:43: note: assuming directive output of 1 byte
  657 |     int ret = snprintf(path, sizeof(path),"%s%s%s", dir, strlen(dir) ? "/" : "", conf->val);
      |                                           ^~~~~~~~
output-lua.c:657:15: note: 'snprintf' output 1 or more bytes (assuming 4098) into a destination of size 4096
  657 |     int ret = snprintf(path, sizeof(path),"%s%s%s", dir, strlen(dir) ? "/" : "", conf->val);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
util-runmodes.c: In function 'RunModeSetLiveCaptureAutoFp':
util-runmodes.c:167:30: warning: '%02d' directive output may be truncated writing between 2 and 11 bytes into a region of size between 3 and 4 [-Wformat-truncation=]
  167 |                          "%s#%02d-%s", thread_name, thread+1,
      |                              ^~~~
util-runmodes.c:167:26: note: directive argument in the range [-2147483647, 2147483647]
  167 |                          "%s#%02d-%s", thread_name, thread+1,
      |                          ^~~~~~~~~~~~
util-runmodes.c:167:26: note: assuming directive output of 1 byte
util-runmodes.c:166:17: note: 'snprintf' output 5 or more bytes (assuming 16) into a destination of size 5
  166 |                 snprintf(printable_threadname, strlen(thread_name)+5+strlen(dev),
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  167 |                          "%s#%02d-%s", thread_name, thread+1,
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  168 |                          dev);
      |                          ~~~~
util-runmodes.c: In function 'RunModeSetLiveCaptureWorkersForDevice':
util-runmodes.c:280:88: warning: '%02d' directive output may be truncated writing between 2 and 10 bytes into a region of size between 3 and 4 [-Wformat-truncation=]
  280 |             snprintf(printable_threadname, strlen(thread_name)+5+strlen(live_dev), "%s#%02d-%s",
      |                                                                                        ^~~~
util-runmodes.c:280:84: note: directive argument in the range [1, 2147483647]
  280 |             snprintf(printable_threadname, strlen(thread_name)+5+strlen(live_dev), "%s#%02d-%s",
      |                                                                                    ^~~~~~~~~~~~
util-runmodes.c:280:84: note: assuming directive output of 1 byte
util-runmodes.c:280:13: note: 'snprintf' output 5 or more bytes (assuming 15) into a destination of size 5
  280 |             snprintf(printable_threadname, strlen(thread_name)+5+strlen(live_dev), "%s#%02d-%s",
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  281 |                      thread_name, thread+1, live_dev);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
util-runmodes.c:275:91: warning: '%s' directive output may be truncated writing likely 1 or more bytes into a region of size between 0 and 1 [-Wformat-truncation=]
  275 |             snprintf(printable_threadname, strlen(thread_name)+5+strlen(live_dev), "%s#01-%s",
      |                                                                                           ^~
util-runmodes.c:275:84: note: assuming directive output of 1 byte
  275 |             snprintf(printable_threadname, strlen(thread_name)+5+strlen(live_dev), "%s#01-%s",
      |                                                                                    ^~~~~~~~~~
util-runmodes.c:275:13: note: 'snprintf' output 5 or more bytes (assuming 7) into a destination of size 5
  275 |             snprintf(printable_threadname, strlen(thread_name)+5+strlen(live_dev), "%s#01-%s",
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  276 |                      thread_name, live_dev);
      |                      ~~~~~~~~~~~~~~~~~~~~~~

Ticket: OISF#7905.
It will be a long time before we need more than 64k threads.

Update capture methods.
Use uint16_t internally and in parsing as well.
Limit to 1024 like with worker threads.

General minor cleanups.
@victorjulien victorjulien requested review from jasonish and a team as code owners September 29, 2025 19:26
JsonBuildFileInfoRecord(p, ff, tx, tx_id, true, dir, ctx->xff_cfg, NULL);
if (likely(js_fileinfo != NULL)) {
SCJbClose(js_fileinfo);
FILE *out = fopen(js_metadata_filename, "w");

Check failure

Code scanning / CodeQL

File created without restricting permissions High

A file may be created here with mode 0666, which would make it world-writable.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

codecov bot commented Sep 29, 2025

Codecov Report

❌ Patch coverage is 72.19251% with 52 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.81%. Comparing base (096ba42) to head (0948a32).
⚠️ Report is 26 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #13926      +/-   ##
==========================================
- Coverage   83.81%   83.81%   -0.01%     
==========================================
  Files        1011     1011              
  Lines      275479   275493      +14     
==========================================
- Hits       230905   230895      -10     
- Misses      44574    44598      +24     
Flag Coverage Δ
fuzzcorpus 63.48% <19.89%> (+<0.01%) ⬆️
livemode 19.01% <22.58%> (-0.01%) ⬇️
pcap 44.75% <10.75%> (-0.06%) ⬇️
suricata-verify 65.16% <51.61%> (-0.02%) ⬇️
unittests 59.16% <10.69%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@suricata-qa
Copy link

Information: QA ran without warnings.

Pipeline = 27752

@victorjulien victorjulien merged commit 0948a32 into OISF:main Sep 30, 2025
60 of 61 checks passed
@victorjulien victorjulien deleted the next/1018/20250929/v1 branch September 30, 2025 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants