codeghar / Seagull

Seagull is a free, Open Source (GPL) multi-protocol traffic generator test tool. Forked from upstream on Sourceforge. Patched to build on recent versions of Ubuntu, CentOS, and openSUSE.
GNU General Public License v2.0
50 stars 48 forks source link

Work around -Werror=format-truncation compilation errors. #27

Open hlein opened 4 years ago

hlein commented 4 years ago

When -Werror=format-truncation is enabled, various warnings break the build like:

[Compiling library-trans-ip/C_TransIP.cpp] library-trans-ip/C_TransIP.cpp: In member function 'void C_TransIP::analyze_optional_init_string(char)': library-trans-ip/C_TransIP.cpp:676:6: error: '%s' directive output may be truncated writing up to 254 bytes into a region of size 56 [-Werror=format-truncation=] void C_TransIP::analyze_optional_init_string(char P_buf) { ^~~~~ library-trans-ip/C_TransIP.cpp:66:10: note: 'snprintf' output between 46 and 300 bytes into a destination of size 100 snprintf(L_msg, 100, (char*)(m), (P1)) ; \


library-trans-ip/C_TransIP.cpp:710:9: note: in expansion of macro 'LOG_ALL_P1'
         LOG_ALL_P1("Unknown parameter value for close-wait-ms: [%s]", L_tmp);
         ^~~~~~~~~~
library-trans-ip/C_TransIP.cpp: In member function 'int C_TransIP::extract_ip_addr(T_pIpAddr)':
library-trans-ip/C_TransIP.cpp:846:5: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 84 [-Werror=format-truncation=]
 int C_TransIP::extract_ip_addr(T_pIpAddr P_pIpAddr) {
     ^~~~~~~~~
library-trans-ip/C_TransIP.cpp:66:10: note: 'snprintf' output between 18 and 1041 bytes into a destination of size 100
...
cc1plus: all warnings being treated as errors
make[1]: *** [.../seagull/trunk/src/work-1.8.3/dep-libtrans_ip.so.mk:55: .../seagull/trunk/src/work-1.8.3/C_TransIP.o] Error 1

The longest string being snprintf'ed is up to just over 1000 bytes,
so this simply defines the error/log message size to 1200 bytes.