[asterisk-bugs] [JIRA] (ASTERISK-29306) strings: Incorrect use of __attribute__((pure)) in ast_str_to_lower definition
Joshua C. Colp (JIRA)
noreply at issues.asterisk.org
Mon Feb 22 03:41:15 CST 2021
[ https://issues.asterisk.org/jira/browse/ASTERISK-29306?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joshua C. Colp updated ASTERISK-29306:
--------------------------------------
Summary: strings: Incorrect use of __attribute__((pure)) in ast_str_to_lower definition (was: Incorrect use of __attribute__((pure)) in ast_str_to_lower definition)
> strings: Incorrect use of __attribute__((pure)) in ast_str_to_lower definition
> ------------------------------------------------------------------------------
>
> Key: ASTERISK-29306
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-29306
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Core/General
> Affects Versions: 16.16.1, 18.2.0
> Environment: debian 10,
> Reporter: Vitezslav Novy
>
> I am analysing problem with case-insensivity of application names in cel.conf declared here
> https://github.com/asterisk/asterisk/blob/18/main/cel.c#L75
> In our configuration application CEL events are recorded only when applications are listed in cel.conf with uppercase first letter.
> Looking to code in cel.c application names read from configuration shoud be converted to lowercase in function apps_handler and in function cel_track_app app name is also converted to lowercase before it is searched in app list
> But it does not happen. Using few extra logging lines I can see app name before and after calling ast_str_to_lower has first letter uppercase and ast_str_to_lower just does not work.
> Looking to dissasembled binary I can see the function was completely optimized out. I believe it is because of it is declared with attrribute_pure
> which declares no side effects. But it is not true for the function ast_str_to_lower, there are side effects.
> In combination with fact that function always returns value its parameter
> compiler is right if skips it completely and only uses the parameter of the function as its result.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list