In a patch of mine (DANE for Asterisk 13/chan_sip; available on request), a
char* was added in the struct ast_sockaddr to store the DNSSEC failure
reason (why_bogus). Not to create any memory leaks, this pointer has to be
freed. For this, the pointer must be initialized to NULL, for example via
struct ast_sockaddr variable_name = { 0 }. Otherwise, I create a
segmentation fault because I free a non-valid address. Long story short:Neither GCC nor Clang are able to find uninitialized structs in Asterisk, although the warning flag -Wall includes -Wuninitialized. And I played around with the optimization in CFLAG. Mhm. What shall I do? A) Init all ast_sockaddr (and all structures containing ast_sockaddr). With the default sample configuration, just 5 files must be changed. However, I searched with the regular expression "struct [^ ]+ [^*=)]+;" and found 2408 lines of code in 418 files which may be uninitialized. As an external project member, I cannot change/commit all of them. For a start, shall I create issue report just about these 5 files? B) Change my patch not to use a char* but char[128]. C) ... is there an alternative C? -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev
