summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2006-01-22 04:19:51 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2006-01-22 04:19:51 +0800
commit3dafef5b0f849ce561f0d775d6e1246d813e6660 (patch)
tree86b81f975dc22188866e051cfdeb101ced0652ed
parent44c17eb452c19b9ae00be528f8d877e7c6af3628 (diff)
downloadmarcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.tar
marcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.tar.gz
marcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.tar.bz2
marcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.tar.lz
marcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.tar.xz
marcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.tar.zst
marcuscom-ports-3dafef5b0f849ce561f0d775d6e1246d813e6660.zip
Fix a crash that can occur because of a double-free when running
gst-inspect -a. Obtained from: GStreamer CVS git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@5495 df743ca5-7f9a-e211-a948-0013205c9059
-rw-r--r--multimedia/gstreamer/Makefile2
-rw-r--r--multimedia/gstreamer/files/patch-fix-gst-inspect-crash39
2 files changed, 40 insertions, 1 deletions
diff --git a/multimedia/gstreamer/Makefile b/multimedia/gstreamer/Makefile
index 12acaf9e7..1984344ac 100644
--- a/multimedia/gstreamer/Makefile
+++ b/multimedia/gstreamer/Makefile
@@ -7,7 +7,7 @@
PORTNAME= gstreamer
PORTVERSION= 0.10.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= multimedia
MASTER_SITES= ${MASTER_SITE_GNOME} \
http://gstreamer.freedesktop.org/src/gstreamer/
diff --git a/multimedia/gstreamer/files/patch-fix-gst-inspect-crash b/multimedia/gstreamer/files/patch-fix-gst-inspect-crash
new file mode 100644
index 000000000..fd2676145
--- /dev/null
+++ b/multimedia/gstreamer/files/patch-fix-gst-inspect-crash
@@ -0,0 +1,39 @@
+--- gst/gstregistry.c.orig Sat Jan 21 15:10:24 2006
++++ gst/gstregistry.c Sat Jan 21 15:13:07 2006
+@@ -838,6 +838,8 @@ _gst_registry_remove_cache_plugins (GstR
+ GList *g_next;
+ GstPlugin *plugin;
+
++ GST_OBJECT_LOCK (registry);
++
+ GST_DEBUG_OBJECT (registry, "removing cached plugins");
+ g = registry->plugins;
+ while (g) {
+@@ -851,6 +853,8 @@ _gst_registry_remove_cache_plugins (GstR
+ }
+ g = g_next;
+ }
++
++ GST_OBJECT_UNLOCK (registry);
+ }
+
+
+--- tools/gst-inspect.c.orig Sat Jan 21 15:14:01 2006
++++ tools/gst-inspect.c Sat Jan 21 15:14:19 2006
+@@ -1093,8 +1093,6 @@ print_element_info (GstElementFactory *
+ print_signal_info (element);
+ print_children_info (element);
+
+- gst_object_unref (factory);
+-
+ if (_name[0] != '\0')
+ g_free (_name);
+
+@@ -1147,6 +1145,7 @@ main (int argc, char *argv[])
+ /* if there's a factory, print out the info */
+ if (factory) {
+ retval = print_element_info (factory, print_all);
++ gst_object_unref (factory);
+ } else {
+ retval = print_element_features (arg);
+ }