]> 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:12:30 +0000 (18:12 -0500)
src/mod/applications/mod_conference/conference_video.c

index 9b1a6d76c13f8e8a67b309cf298190eb36a4ee5c..548a60b94adac39e0cd3a8c8d5468936266b56f4 100644 (file)
@@ -2849,7 +2849,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) {