]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix crash, no all members has channel
authorSeven Du <dujinfang@gmail.com>
Wed, 28 Aug 2013 12:37:23 +0000 (20:37 +0800)
committerSeven Du <dujinfang@gmail.com>
Wed, 28 Aug 2013 12:37:23 +0000 (20:37 +0800)
src/mod/applications/mod_conference/mod_conference.c

index 398491eb13adedd530a28a129488c87ce8326a8e..0ad4c1bc67b10a9ce3fce32368fe91d691db8121 100644 (file)
@@ -1608,7 +1608,7 @@ static void conference_set_video_floor_holder(conference_obj_t *conference, conf
                conference_member_t *imember;
 
                for (imember = conference->members; imember; imember = imember->next) {
-                       if (imember != conference->video_floor_holder && switch_channel_test_flag(imember->channel, CF_VIDEO)) {
+                       if (imember != conference->video_floor_holder && imember->channel && switch_channel_test_flag(imember->channel, CF_VIDEO)) {
                                member = imember;
                                break;
                        }
@@ -1659,7 +1659,8 @@ static void conference_set_floor_holder(conference_obj_t *conference, conference
        int old_id = 0;
 
        if (!switch_test_flag(conference, CFLAG_VIDEO_BRIDGE) && 
-               ((conference->video_floor_holder && !member) || (member && switch_channel_test_flag(member->channel, CF_VIDEO)))) {
+               ((conference->video_floor_holder && !member) ||
+                       (member && member->channel && switch_channel_test_flag(member->channel, CF_VIDEO)))) {
                conference_set_video_floor_holder(conference, member, SWITCH_FALSE);
        }