Commit f91f7d580d for asterisk.org
commit f91f7d580dc742e1df0bba1df3ee21a2db81412c
Author: Tinet-mucw <mucw@ti-net.com.cn>
Date: Thu Dec 25 21:18:03 2025 -0800
app_mixmonitor.c: Fix crash in mixmonitor_ds_remove_and_free when datastore is NULL
The datastore may be NULL, so a null pointer check needs to be added.
Resolves: #1673
diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c
index 1788fe061f..3ca978dfdd 100644
--- a/apps/app_mixmonitor.c
+++ b/apps/app_mixmonitor.c
@@ -1064,12 +1064,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);
}