2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 18:19:42 +00:00

Address GCC 9.1 -O3 compilation warnings

Compiling with -O3 triggers the following warnings with GCC 9.1:

    task.c: In function ‘isc_taskmgr_create’:
    task.c:1384:43: warning: ‘%04u’ directive output may be truncated writing between 4 and 10 bytes into a region of size 6 [-Wformat-truncation=]
     1384 |   snprintf(name, sizeof(name), "isc-worker%04u", i);
          |                                           ^~~~
    task.c:1384:32: note: directive argument in the range [0, 4294967294]
     1384 |   snprintf(name, sizeof(name), "isc-worker%04u", i);
          |                                ^~~~~~~~~~~~~~~~
    task.c:1384:3: note: ‘snprintf’ output between 15 and 21 bytes into a destination of size 16
     1384 |   snprintf(name, sizeof(name), "isc-worker%04u", i);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    private_test.c: In function ‘private_nsec3_totext_test’:
    private_test.c:110:9: warning: array subscript 4 is outside array bounds of ‘uint32_t[1]’ {aka ‘unsigned int[1]’} [-Warray-bounds]
      110 |  while (*sp == '\0' && slen > 0) {
          |         ^~~
    private_test.c:103:11: note: while referencing ‘salt’
      103 |  uint32_t salt;
          |           ^~~~

Prevent these warnings from being triggered by increasing the size of
the relevant array (task.c) and reordering conditions (private_test.c).
This commit is contained in:
Michał Kępień 2019-05-31 14:34:34 +02:00
parent 44e6bb8b93
commit ce796ac1f4
2 changed files with 2 additions and 2 deletions

View File

@ -107,7 +107,7 @@ make_nsec3(nsec3_testcase_t *testcase, dns_rdata_t *private,
/* for simplicity, we're using a maximum salt length of 4 */ /* for simplicity, we're using a maximum salt length of 4 */
salt = htonl(testcase->salt); salt = htonl(testcase->salt);
sp = (unsigned char *) &salt; sp = (unsigned char *) &salt;
while (*sp == '\0' && slen > 0) { while (slen > 0 && *sp == '\0') {
slen--; slen--;
sp++; sp++;
} }

View File

@ -1380,7 +1380,7 @@ isc_taskmgr_create(isc_mem_t *mctx, unsigned int workers,
RUNTIME_CHECK(isc_thread_create(run, &manager->queues[i], RUNTIME_CHECK(isc_thread_create(run, &manager->queues[i],
&manager->queues[i].thread) &manager->queues[i].thread)
== ISC_R_SUCCESS); == ISC_R_SUCCESS);
char name[16]; char name[21];
snprintf(name, sizeof(name), "isc-worker%04u", i); snprintf(name, sizeof(name), "isc-worker%04u", i);
isc_thread_setname(manager->queues[i].thread, name); isc_thread_setname(manager->queues[i].thread, name);
} }