]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
security_events: Fix assertion failure in dev-mode on optional IE parsing
authorMatthew Jordan <mjordan@digium.com>
Fri, 7 Feb 2014 20:17:50 +0000 (20:17 +0000)
committerMatthew Jordan <mjordan@digium.com>
Fri, 7 Feb 2014 20:17:50 +0000 (20:17 +0000)
When formatting an optional IE, the value is, of course, optional. As such, it
is entirely appropriate for ast_json_object_get to return NULL. If that occurs,
we now simply skip the IE that was requested, as it was not provided by the
entity that raised the event.

Thanks to George Joseph (gtjoseph) for catching this and reporting it in
#asterisk-dev
........

Merged revisions 407750 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@407752 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/security_events.c

index bf35b1c7cfdf11c3ea92764f3767914621580cdf..bd8ed5dbad695524ab09924447d0f0fbf1db434d 100644 (file)
@@ -391,7 +391,9 @@ static int append_event_str_single(struct ast_str **str, struct ast_json *json,
        const char *ie_type_key = ast_event_get_ie_type_name(ie_type);
        struct ast_json *json_string = ast_json_object_get(json, ie_type_key);
 
-       ast_assert(json_string != NULL);
+       if (!json_string) {
+               return 0;
+       }
 
        if (ast_str_append(str, 0, "%s: %s\r\n", ie_type_key, S_OR(ast_json_string_get(json_string), "")) == -1) {
                return -1;