[Bug 759910] New: GstDiscoverer checking aac http stream called many times eventually results in segmentation fault
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sun Dec 27 12:11:37 PST 2015
https://bugzilla.gnome.org/show_bug.cgi?id=759910
Bug ID: 759910
Summary: GstDiscoverer checking aac http stream called many
times eventually results in segmentation fault
Classification: Platform
Product: GStreamer
Version: 1.6.1
OS: Windows
Status: NEW
Severity: critical
Priority: Normal
Component: gst-plugins-base
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: pro.void at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created attachment 317937
--> https://bugzilla.gnome.org/attachment.cgi?id=317937&action=edit
sample code and screenshots with debug info - stack and locals.
In my app I need to monitor several internet aac audio streams if they are
online. For this task I use GstDiscoverer.
I check audio streams every 1-2 seconds. And every time my app is running,
eventually it will crash with segmentation fault error during GstDiscoverer
check.
I tried both sync and async methods of calling GstDiscoverer (
gst_discoverer_discover_uri(), gst_discoverer_discover_uri_async() ) , both
work the same way.
The crash happens in aac_type_find() function from gsttypefindfunctions.c on
line 1122 (second line of code below).
len = ((c.data[offset + 3] & 0x03) << 11) |
(c.data[offset + 4] << 3) | ((c.data[offset + 5] & 0xe0) >> 5);
As I discovered from debug information about local variables, offset variable
is greater than c.size, so c.data[offset] is out of range, I think that's why
segmentation fault happens. This happens not regularly. The program can work
several hours or ten minutes. So, there is some probability of crash calling
aac_type_find().
I tried GStreamer versions 1.6.1 and latest 1.6.2, the bug exists in both.
I can reproduce the bug only on Windows (tried on XP and 7), on Mac OS X
everything works fine. On Linux I didn't try. May be it is some Windows-related
bug.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list