]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8713 avoid write exceeding buffer
authorSeven Du <dujinfang@gmail.com>
Thu, 7 Jan 2016 09:11:52 +0000 (17:11 +0800)
committerSeven Du <dujinfang@gmail.com>
Thu, 7 Jan 2016 09:11:52 +0000 (17:11 +0800)
src/switch_jitterbuffer.c

index 3d096c764d5603e15607e3802474d79252ea5d9c..649af68b91c6d23b8928b59bd08315cc5c0f368c 100644 (file)
@@ -1088,6 +1088,11 @@ SWITCH_DECLARE(switch_status_t) switch_jb_put_packet(switch_jb_t *jb, switch_rtp
        uint32_t i;
        uint16_t want = ntohs(jb->next_seq), got = ntohs(packet->header.seq);
 
+       if (len >= sizeof(switch_rtp_packet_t)) {
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "trying to put %" SWITCH_SIZE_T_FMT " bytes exceeding buffer, truncate to %" SWITCH_SIZE_T_FMT "\n", len, sizeof(switch_rtp_packet_t));
+               len = sizeof(switch_rtp_packet_t);
+       }
+
        switch_mutex_lock(jb->mutex);
 
        if (!want) want = got;