[pgpool-hackers: 3989] gcc warnings
Tatsuo Ishii
ishii at sraoss.co.jp
Wed Aug 4 18:10:16 JST 2021
After upgrading to Ubuntu 20 (from 18), I noticed I get tons of
compiler warnings something like this:
gcc -DHAVE_CONFIG_H -DDEFAULT_CONFIGDIR=\"/usr/local/etc\" -DPOOL_TOOLS -I. -I../../../src/include -D_GNU_SOURCE -DPOOL_PRIVATE -I /usr/local/pgsql/include -g -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -Wno-format-truncation -Wno-stringop-truncation -fno-strict-aliasing -c -o pg_md5.o pg_md5.c
In file included from /usr/include/string.h:495,
from pg_md5.c:31:
In function ‘strncpy’,
inlined from ‘update_pool_passwd_from_file’ at pg_md5.c:283:3,
inlined from ‘main’ at pg_md5.c:136:3:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: warning: ‘__builtin___strncpy_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_md5.c: In function ‘main’:
pg_md5.c:278:7: note: length computed here
278 | if (strlen(pch) >= sizeof(password))
| ^~~~~~~~~~~
Basically this comlains that for this:
strncpy(password, pch, strlen(pch));
the third parameter should be the size of the destination (password),
not the source (pch). Ok, so I fixed this to:
strncpy(password, pch, sizeof(password));
But then I get:
In file included from /usr/include/string.h:495,
from pg_md5.c:31:
In function ‘strncpy’,
inlined from ‘update_pool_passwd_from_file’ at pg_md5.c:276:3,
inlined from ‘main’ at pg_md5.c:136:3:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: warning: ‘__builtin___strncpy_chk’ output may be truncated copying between 0 and 128 bytes from a string of length 257 [-Wstringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I have found a message in PostgreSQL hackers mailing list regarding similar issue:
https://www.postgresql.org/message-id/flat/21789.1529170195%40sss.pgh.pa.us#525c384d13505fa6f1f25c50b00d7a08
It seems the solution for this is, add -Wno-stringop-truncation to
CFLAG. After adding the parameter to the CLFAG, the annoying warning
disappeared.
So I am looking forward to change configure in this
direction. Comments?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
More information about the pgpool-hackers
mailing list