]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10472: [mod_conference] Invalid free in personal canvas mode #resolve
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 5 Jul 2017 23:11:31 +0000 (18:11 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 5 Jul 2017 23:11:39 +0000 (18:11 -0500)
src/mod/applications/mod_conference/conference_video.c

index 70d3cfbe65f4aa64f8e15534b28b9d2df860bc8f..b3a5fb9d5516f230dec7a3f8601e88eb2147db73 100644 (file)
@@ -3466,7 +3466,14 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                }
 
                                if (imember->session && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_INACTIVE) {
-                                       conference_video_pop_next_image(imember, &imember->pcanvas_img);
+                                       switch_image_t *next_img = NULL;
+
+                                       conference_video_pop_next_image(imember, &next_img);
+                                       
+                                       if (next_img) {
+                                               switch_img_free(&imember->pcanvas_img);
+                                               imember->pcanvas_img = next_img;
+                                       }
                                }
 
                                if (imember->session) {