[asterisk-bugs] [JIRA] (ASTERISK-29146) GCC Warnings: ‘%s’ directive argument is null.

Benjamin Keith Ford (JIRA) noreply at issues.asterisk.org
Fri Oct 30 10:36:17 CDT 2020


     [ https://issues.asterisk.org/jira/browse/ASTERISK-29146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Keith Ford updated ASTERISK-29146:
-------------------------------------------

    Status: Open  (was: Triage)

> GCC Warnings: ‘%s’ directive argument is null.
> ----------------------------------------------
>
>                 Key: ASTERISK-29146
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29146
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: . I did not set the category correctly.
>    Affects Versions: 16.14.0, 18.0.0
>            Reporter: Alexander Traud
>            Assignee: Alexander Traud
>            Severity: Trivial
>
> In Ubuntu 20.10 with GCC 10.2, a simple
> {code}./configure
> make{code}gives{code}In function ‘handle_cli_indication_add’,
>     inlined from ‘handle_cli_indication_add’ at indications.c:658:14:
> indications.c:705:3: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
>   705 |   ast_log(LOG_WARNING, "Unable to register indication %s/%s\n", a->argv[2], a->argv[3]);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{code}On default, Asterisk compiles with [optimization level|http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html] 3. This warning does not happen with DONT_OPTIMIZE, which is level 0, which we developers use normally. Actually, GCC sees that argv\[3\] might be NULL when logging this warning. And NULL is not a good value for built-in functions, [see…|http://stackoverflow.com/q/11589342]
> While debugging this GCC warning, I changed {{ast_strlen_zero()}} in the file {{include/strings.h}} to return just {{return (!s);}}. That revealed another four places in code which are called with a NULL value always:{code}In function ‘add_calltoken_ignore’,
>     inlined from ‘set_config’ at chan_iax2.c:13817:8:
> chan_iax2.c:2803:3: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
>  2803 |   ast_log(LOG_WARNING, "invalid calltokenoptional %s\n", addr);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In function ‘proc_422_rsp’,
>     inlined from ‘handle_response_invite’ at chan_sip.c:24453:3:
> chan_sip.c:30384:3: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
> 30384 |   ast_log(LOG_WARNING, "422 response without a Min-SE header %s\n", p_hdrval);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from .../include/asterisk/lock.h:63,
>                  from chan_sip.c:236:
> chan_sip.c: In function ‘handle_request_subscribe’:
> .../include/asterisk/logger.h:447:4: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
>   447 |    ast_log(AST_LOG_DEBUG, __VA_ARGS__); \
>       |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> chan_sip.c:28804:4: note: in expansion of macro ‘ast_debug’
> 28804 |    ast_debug(2, "Received SIP mailbox subscription for unknown format: %s\n", accept);
>       |    ^~~~~~~~~
> chan_sip.c:28804:72: note: format string is defined here
> 28804 |    ast_debug(2, "Received SIP mailbox subscription for unknown format: %s\n", accept);
>       |                                                                        ^~
> res_stir_shaken.c: In function ‘stir_shaken_read’:
> res_stir_shaken.c:1202:3: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
>  1202 |   ast_log(LOG_ERROR, "Retrieving a value using %s requires two paramaters (index, value) "
>       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  1203 |    "- only index was given (%s)\n", function, second);
>       |    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> res_stir_shaken.c:1203:29: note: format string is defined here
>  1203 |    "- only index was given (%s)\n", function, second);
>       |                             ^~{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list