davehorton / sofia-sip

Sofia sip stack (forked from gitorious 1/1/2014)
GNU Lesser General Public License v2.1
18 stars 13 forks source link

overflow in conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘int’ changes value from ‘18446744073709551608’ to ‘-8’ [-Woverflow] #9

Open asarubbo opened 1 year ago

asarubbo commented 1 year ago

Hello Dave,

during the compilation of drachtio-server I noticed:

In file included from ../deps/sofia-sip/libsofia-sip-ua/sip/sofia-sip/sip_parser.h:52,
                 from ../src/test_parser.cpp:11:
../deps/sofia-sip/libsofia-sip-ua/msg/sofia-sip/msg_parser.h: In function ‘isize_t msg_params_dup_xtra(const char* const*, isize_t)’:
../deps/sofia-sip/libsofia-sip-ua/msg/sofia-sip/msg_parser.h:272:55: warning: overflow in conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘int’ changes value from ‘18446744073709551608’ to ‘-8’ [-Woverflow]
 #define MSG_PARAMS_NUM(n) (((n) + MSG_N_PARAMS - 1) & (size_t)(0 - MSG_N_PARAMS))
                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
../deps/sofia-sip/libsofia-sip-ua/msg/sofia-sip/msg_parser.h:323:15: note: in expansion of macro ‘MSG_PARAMS_NUM’
     offset += MSG_PARAMS_NUM(n + 1) * sizeof(msg_param_t);
               ^~~~~~~~~~~~~~