]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_mixmonitor.c: Fix crash in mixmonitor_ds_remove_and_free when datastore is NULL
authorTinet-mucw <mucw@ti-net.com.cn>
Fri, 26 Dec 2025 05:18:03 +0000 (21:18 -0800)
committerTinet-mucw <mucw@ti-net.com.cn>
Tue, 30 Dec 2025 15:08:52 +0000 (15:08 +0000)
The datastore may be NULL, so a null pointer check needs to be added.

Resolves: #1673

apps/app_mixmonitor.c

index 50de99d6036cada7b282b3fe58b657d30bd42cc1..20b5f2c8db5c924720d00f83f8083bdf33635bbb 100644 (file)
@@ -1069,12 +1069,10 @@ static void mixmonitor_ds_remove_and_free(struct ast_channel *chan, const char *
 
        datastore = ast_channel_datastore_find(chan, &mixmonitor_ds_info, datastore_id);
 
-       /*
-        * Currently the one place this function is called from guarantees a
-        * datastore is present, thus return checks can be avoided here.
-        */
-       ast_channel_datastore_remove(chan, datastore);
-       ast_datastore_free(datastore);
+       if (datastore) {
+               ast_channel_datastore_remove(chan, datastore);
+               ast_datastore_free(datastore);
+       }
 
        ast_channel_unlock(chan);
 }