]> 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:09:01 +0000 (20:09 +0000)
committerMatthew Jordan <mjordan@digium.com>
Fri, 7 Feb 2014 20:09:01 +0000 (20:09 +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

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

main/security_events.c

index 2809dd0ef18536586045f7c7022c274b14965743..9588f78a890210ee3f2ccc77cd9f87b3775cf085 100644 (file)
@@ -390,7 +390,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;