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 635231 - baseaudiosink: protect against ringbuffer disappearing while in a query
baseaudiosink: protect against ringbuffer disappearing while in a query
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
unspecified
Other All
: Normal blocker
: 0.10.32
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-11-19 00:48 UTC by Håvard Graff (hgr)
Modified: 2010-12-29 11:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (2.51 KB, patch)
2010-11-25 16:11 UTC, Håvard Graff (hgr)
needs-work Details | Review

Description Håvard Graff (hgr) 2010-11-19 00:48:25 UTC
Observed a case where the sink went to null-state during the query,
hence the ringbuffer-pointer was NULL, causing a crash.

Moving the ringbuffer-check code until after the query, and hold the
lock during the check and while using the spec-values. It should not matter
to the query wether the ringbuffer is present or not, and it actually
gets a time bit more time to get the ringbuffer set up in this case!
Comment 1 Håvard Graff (hgr) 2010-11-25 16:11:33 UTC
Created attachment 175243 [details] [review]
patch
Comment 2 Tim-Philipp Müller 2010-11-25 23:32:20 UTC
Comment on attachment 175243 [details] [review]
patch

>From: unknown <havard.graff@.eu.tandberg.int>

Something you might want to fix ;-)
Comment 3 Sebastian Dröge (slomo) 2010-12-12 15:41:14 UTC
Patch looks good to me but you should really fix your mail address and name ;)
Comment 4 Wim Taymans 2010-12-29 11:30:14 UTC
commit 60ff7c0eb475f80e8a0e767f432a55485aba0d75
Author: Havard Graff <havard.graff@tandberg.com>
Date:   Thu Nov 25 17:01:04 2010 +0100

    baseaudiosink: protect against ringbuffer disappearing while in a query
    
    Observed a case where the sink went to null-state during the query,
    hence the ringbuffer-pointer was NULL, causing a crash.
    
    Moving the ringbuffer-check code until after the query, and hold the
    lock during the check and while using the spec-values. It should not matter
    to the query wether the ringbuffer is present or not, and it actually
    gets a time bit more time to get the ringbuffer set up in this case!
    
    Fixes #635231