]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
CHAOS: cleanup possible null vars on msg alloc failure 43/2343/2
authorScott Griepentrog <scott@griepentrog.com>
Wed, 2 Mar 2016 17:17:54 +0000 (11:17 -0600)
committerScott Griepentrog <scott@griepentrog.com>
Wed, 2 Mar 2016 17:56:51 +0000 (11:56 -0600)
In message.c, if msg_alloc fails to init the string field,
vars may be null, so use a null tolerant cleanup.

In res_pjsip_messaging.c, if msg_data_create fails, mdata
will be null, so use a null tolerant cleanup.

ASTERISK-25323

Change-Id: Ic2d55c2c3750d5616e2a05ea92a19c717507ff56

main/message.c
res/res_pjsip_messaging.c

index 7098f698d0e97a6fd7f23f3322a87a3a0833740d..54c604c47d26b8205f96d5b259952d86f230475a 100644 (file)
@@ -398,7 +398,7 @@ static void msg_destructor(void *obj)
        struct ast_msg *msg = obj;
 
        ast_string_field_free_memory(msg);
-       ao2_ref(msg->vars, -1);
+       ao2_cleanup(msg->vars);
 }
 
 struct ast_msg *ast_msg_alloc(void)
index 7532e39be56f67e025f4f609fd9bd171ca3e563b..9a31630e7162697f4cee2631e327b9f084379493 100644 (file)
@@ -597,7 +597,7 @@ static int sip_msg_send(const struct ast_msg *msg, const char *to, const char *f
 
        if (!(mdata = msg_data_create(msg, to, from)) ||
            ast_sip_push_task(message_serializer, msg_send, mdata)) {
-               ao2_ref(mdata, -1);
+               ao2_cleanup(mdata);
                return -1;
        }
        return 0;