After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 727512 - srtpdec: assertion when checking rtcp ssrc
srtpdec: assertion when checking rtcp ssrc
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.3.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-04-02 19:58 UTC by Aleix Conchillo Flaqué
Modified: 2014-04-12 03:15 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
check for GST_RTCP_TYPE_INVALID (1.49 KB, patch)
2014-04-02 20:04 UTC, Aleix Conchillo Flaqué
committed Details | Review

Description Aleix Conchillo Flaqué 2014-04-02 19:58:44 UTC
Assertion when checking RTCP package ssrc.

** (xxxxxxx:14838): CRITICAL **: gst_rtcp_packet_move_to_next: assertion 'packet->type != GST_RTCP_TYPE_INVALID' failed

Here's the backtrace. rtcp_buffer_get_ssrc is also called with RTP packets (which I still don't understand), so I guess it's easy to end up with an exception.

(gdb) bt
  • #0 g_logv
    at gmessages.c line 1026
  • #1 g_log
    at gmessages.c line 1059
  • #2 gst_rtcp_packet_move_to_next
    at gstrtcpbuffer.c line 404
  • #3 rtcp_buffer_get_ssrc
    at gstsrtp.c line 167
  • #4 validate_buffer
    at gstsrtpdec.c line 665
  • #5 gst_srtp_dec_chain
    at gstsrtpdec.c line 1079
  • #6 gst_pad_chain_data_unchecked
    at gstpad.c line 3774
  • #7 gst_pad_push_data
    at gstpad.c line 4007
  • #8 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #9 gst_pad_chain_data_unchecked
    at gstpad.c line 3774
  • #10 gst_pad_push_data
    at gstpad.c line 4007
  • #11 gst_funnel_sink_chain
    at gstfunnel.c line 233
  • #12 gst_pad_chain_data_unchecked
    at gstpad.c line 3774
  • #13 gst_pad_push_data
    at gstpad.c line 4007
  • #14 gst_base_src_loop
    at gstbasesrc.c line 2835
  • #15 gst_task_func
    at gsttask.c line 319
  • #16 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #17 g_thread_proxy
    at gthread.c line 798
  • #18 start_thread
    at pthread_create.c line 308
  • #19 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #20 ??

Comment 1 Aleix Conchillo Flaqué 2014-04-02 20:04:29 UTC
Created attachment 273492 [details] [review]
check for GST_RTCP_TYPE_INVALID

from the commit log:

    rtcp_buffer_get_ssrc is called even with RTP buffers. this means we
    might end up with an exception and not find any valid RTCP packet type
    and thus hit GST_RTCP_TYPE_INVALID. we now take care of this.
Comment 2 Wim Taymans 2014-04-12 03:15:22 UTC
commit 01c15547d4aa632eb86873527343be0b5a349900
Author: Aleix Conchillo Flaqué <aleix@oblong.com>
Date:   Wed Apr 2 12:59:58 2014 -0700

    srtpdec: fix assertion checking ssrc from rtcp packets
    
    rtcp_buffer_get_ssrc is called even with RTP buffers. this means we
    might end up with an exception and not find any valid RTCP packet type
    and thus hit GST_RTCP_TYPE_INVALID. we now take care of this.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=727512