From: Sean Bright Date: Tue, 8 Apr 2025 19:54:37 +0000 (-0400) Subject: res_musiconhold.c: Ensure we're always locked around music state access. X-Git-Tag: 23.0.0-pre1~41 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fa50490b13583cd6f32c4b36af35109b12da140c;p=thirdparty%2Fasterisk.git res_musiconhold.c: Ensure we're always locked around music state access. --- diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index 954c25335c..b53c7e29ae 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -1544,8 +1544,10 @@ static int _moh_unregister(struct mohclass *moh, const char *file, int line, con */ static void local_ast_moh_cleanup(struct ast_channel *chan) { - struct moh_files_state *state = ast_channel_music_state(chan); + struct moh_files_state *state; + ast_channel_lock(chan); + state = ast_channel_music_state(chan); if (state) { ast_channel_music_state_set(chan, NULL); if (state->class) { @@ -1560,6 +1562,7 @@ static void local_ast_moh_cleanup(struct ast_channel *chan) /* Only held a module reference if we had a music state */ ast_module_unref(ast_module_info->self); } + ast_channel_unlock(chan); } /*! \brief Support routing for 'moh unregister class' CLI