From: <bug...@bu...> - 2004-06-30 19:15:29
|
http://bugzilla.gnome.org/show_bug.cgi?id=145215 GStreamer | gstreamer (core) | Ver: HEAD CVS Summary: [PATCH] Fix double-free bug in gst-inspect Product: GStreamer Version: HEAD CVS Platform: Other OS/Version: FreeBSD Status: UNCONFIRMED Severity: major Priority: Normal Component: gstreamer (core) AssignedTo: gst...@bu... ReportedBy: ma...@fr... QAContact: gst...@bu... Running gst-inspect on certain plug-ins (e.g. cdparanoia) produces a double-free abort() on FreeBSD. The problem is the g_slist_foreach() call to g_free() on each node in the found_signals GSList. A call to g_slist_free() should be sufficient to free all the memory in the GSList according to the API and various other examples. Attached is a patch that corrects the problem. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the QA contact for the bug, or are watching the QA contact. |
From: <bug...@bu...> - 2004-06-30 19:16:08
|
http://bugzilla.gnome.org/show_bug.cgi?id=145215 GStreamer | gstreamer (core) | Ver: HEAD CVS ------- Additional Comments From ma...@fr... 2004-06-30 15:16 ------- Created an attachment (id=29124) --> (http://bugzilla.gnome.org/attachment.cgi?id=29124&action=view) Fix double-free in gst-inspect ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the QA contact for the bug, or are watching the QA contact. |
From: <bug...@bu...> - 2004-06-30 19:37:23
|
http://bugzilla.gnome.org/show_bug.cgi?id=145215 GStreamer | gstreamer (core) | Ver: HEAD CVS ------- Additional Comments From ds...@sc... 2004-06-30 15:37 ------- This patch is wrong. g_slist_free() does not do anything with the ->data pointer, thus it needs to be freed separately. I can't reproduce a double free with 'gst-inspect cdparanoia'. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the QA contact for the bug, or are watching the QA contact. |
From: <bug...@bu...> - 2004-06-30 19:44:15
|
http://bugzilla.gnome.org/show_bug.cgi?id=145215 GStreamer | gstreamer (core) | Ver: HEAD CVS ------- Additional Comments From ma...@fr... 2004-06-30 15:44 ------- Then there needs to be a separate function to check to see if a node has already been freed. This is reliably reproduceable on FreeBSD with gstreamer-0.8.3, gst-plugins-0.8.2, and cdparanoia-3.9.8. Here is the full backtrace: GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd"... Core was generated by `gst-inspect-0.8'. Program terminated with signal 6, Aborted. (gdb) bt full #0 0x284aab7b in kill () from /lib/libc.so.5 No symbol table info available. #1 0x282c276b in raise () from /usr/lib/libpthread.so.1 No symbol table info available. #2 0x2850c6cf in abort () from /lib/libc.so.5 No symbol table info available. #3 0x284b4b19 in ldexp () from /lib/libc.so.5 No symbol table info available. #4 0x284b4b5d in ldexp () from /lib/libc.so.5 No symbol table info available. #5 0x284b5ca8 in realloc () from /lib/libc.so.5 No symbol table info available. #6 0x284b54fa in ldexp () from /lib/libc.so.5 No symbol table info available. #7 0x284b563b in ldexp () from /lib/libc.so.5 No symbol table info available. #8 0x284b575c in free () from /lib/libc.so.5 No symbol table info available. #9 0x28308c90 in g_free () from /usr/local/lib/libglib-2.0.so.400 No symbol table info available. #10 0x28315224 in g_slist_foreach () from /usr/local/lib/libglib-2.0.so.400 No symbol table info available. #11 0x0804b845 in print_signal_info (element=0x80bc800) at gst-inspect.c:802 signals = (guint *) 0x807b600 nsignals = 3 i = 1 j = 1 k = 0 query = (GSignalQuery *) 0x807a800 type = 134644160 found_signals = (GSList *) 0x805f588 l = (GSList *) 0x0 #12 0x0804c1ad in main (argc=2, argv=0xbfbfe8ec) at gst-inspect.c:1072 element = (GstElement *) 0x80bc800 maxlevel = 4 factory = (GstElementFactory *) 0x8086e80 plugin = (GstPlugin *) 0x0 options = {{longName = 0x0, shortName = 0 '\0', argInfo = 0, arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0}} ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the QA contact for the bug, or are watching the QA contact. |
From: <bug...@bu...> - 2004-06-30 20:10:07
|
http://bugzilla.gnome.org/show_bug.cgi?id=145215 GStreamer | gstreamer (core) | Ver: HEAD CVS ds...@sc... changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |DUPLICATE ------- Additional Comments From ds...@sc... 2004-06-30 16:10 ------- *** This bug has been marked as a duplicate of 144185 *** ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the QA contact for the bug, or are watching the QA contact. |
From: <bug...@bu...> - 2004-07-16 10:44:07
|
http://bugzilla.gnome.org/show_bug.cgi?id=145215 GStreamer | gstreamer (core) | Ver: HEAD CVS th...@ap... changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|HEAD |NONE ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the QA contact for the bug, or are watching the QA contact. |