rpms/sound-juicer/F-11 sj-gvfs-crash-fix.patch, NONE, 1.1 sound-juicer.spec, 1.113, 1.114
Bastien Nocera
hadess at fedoraproject.org
Thu May 7 17:54:26 UTC 2009
Author: hadess
Update of /cvs/pkgs/rpms/sound-juicer/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3983
Modified Files:
sound-juicer.spec
Added Files:
sj-gvfs-crash-fix.patch
Log Message:
* Thu May 07 2009 Bastien Nocera <bnocera at redhat.com> 2.26.1-2
- Fix gvfs metadata getter crasher (#498764)
sj-gvfs-crash-fix.patch:
--- NEW FILE sj-gvfs-crash-fix.patch ---
diff --git a/libjuicer/sj-metadata-getter.c b/libjuicer/sj-metadata-getter.c
index 4a55ecd..5e83b9f 100644
--- a/libjuicer/sj-metadata-getter.c
+++ b/libjuicer/sj-metadata-getter.c
@@ -22,6 +22,7 @@
#include <glib-object.h>
#include <glib/gi18n.h>
+#include "sj-structures.h"
#include "sj-metadata-getter.h"
#include "sj-metadata-marshal.h"
#include "sj-metadata.h"
@@ -158,8 +159,10 @@ fire_signal_idle (SjMetadataGetterSignal *signal)
g_signal_emit_by_name (G_OBJECT (signal->mdg), "metadata",
signal->albums, signal->error);
- /* This will kill the albums, as
- * those belong to the metadata backend */
+ /* Kill the albums */
+ g_list_foreach (signal->albums, (GFunc)album_details_free, NULL);
+ g_list_free (signal->albums);
+
if (signal->metadata)
g_object_unref (signal->metadata);
if (signal->error != NULL)
diff --git a/libjuicer/sj-metadata-gvfs.c b/libjuicer/sj-metadata-gvfs.c
index 4e34470..27382d0 100644
--- a/libjuicer/sj-metadata-gvfs.c
+++ b/libjuicer/sj-metadata-gvfs.c
@@ -35,7 +35,6 @@
struct SjMetadataGvfsPrivate {
char *cdrom;
char *uri;
- GList *albums;
};
#define GET_PRIVATE(o) \
@@ -71,9 +70,10 @@ static GList *
gvfs_list_albums (SjMetadata *metadata, char **url, GError **error)
{
SjMetadataGvfsPrivate *priv;
+ GList *albums = NULL;
AlbumDetails *album;
GError *my_error = NULL;
- GFile *file;
+ GFile *file = NULL;
GFileInfo *info;
GFileEnumerator *e;
guint i = 0;
@@ -84,8 +84,7 @@ gvfs_list_albums (SjMetadata *metadata, char **url, GError **error)
if (priv->uri == NULL) {
g_set_error (error, SJ_ERROR, SJ_ERROR_INTERNAL_ERROR, _("Cannot access CD"));
- priv->albums = NULL;
- return NULL;
+ goto bail;
}
file = g_file_new_for_uri (priv->uri);
@@ -139,18 +138,18 @@ gvfs_list_albums (SjMetadata *metadata, char **url, GError **error)
}
g_object_unref (e);
- priv->albums = g_list_append (NULL, album);
+ albums = g_list_append (albums, album);
- return priv->albums;
+ return albums;
bail:
- g_object_unref (file);
- g_set_error (error, SJ_ERROR, SJ_ERROR_INTERNAL_ERROR, _("Cannot access CD: %s"), my_error->message);
- g_error_free (my_error);
- g_list_foreach (priv->albums, (GFunc)album_details_free, NULL);
- g_list_free (priv->albums);
- priv->albums = NULL;
+ if (file)
+ g_object_unref (file);
+ if (my_error) {
+ g_set_error (error, SJ_ERROR, SJ_ERROR_INTERNAL_ERROR, _("Cannot access CD: %s"), my_error->message);
+ g_error_free (my_error);
+ }
return NULL;
}
@@ -192,8 +191,7 @@ sj_metadata_gvfs_set_property (GObject *object, guint property_id,
switch (property_id) {
case PROP_DEVICE:
- if (priv->cdrom)
- g_free (priv->cdrom);
+ g_free (priv->cdrom);
priv->cdrom = g_value_dup_string (value);
priv->uri = device_to_cdda_uri (priv->cdrom);
break;
@@ -212,8 +210,6 @@ sj_metadata_gvfs_finalize (GObject *object)
SjMetadataGvfsPrivate *priv = SJ_METADATA_GVFS (object)->priv;
g_free (priv->cdrom);
g_free (priv->uri);
- g_list_foreach (priv->albums, (GFunc)album_details_free, NULL);
- g_list_free (priv->albums);
}
static void
diff --git a/src/sj-main.c b/src/sj-main.c
index e7a44ee..ac4fa12 100644
--- a/src/sj-main.c
+++ b/src/sj-main.c
@@ -1070,7 +1070,8 @@ gboolean cd_drive_exists (const char *device)
monitor = brasero_medium_monitor_get_default ();
drive = brasero_medium_monitor_get_drive (monitor, device);
exists = (drive != NULL);
- g_object_unref (drive);
+ if (exists)
+ g_object_unref (drive);
return exists;
}
Index: sound-juicer.spec
===================================================================
RCS file: /cvs/pkgs/rpms/sound-juicer/F-11/sound-juicer.spec,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -p -r1.113 -r1.114
--- sound-juicer.spec 13 Apr 2009 03:07:42 -0000 1.113
+++ sound-juicer.spec 7 May 2009 17:53:55 -0000 1.114
@@ -8,7 +8,7 @@
Name: sound-juicer
Summary: Clean and lean CD ripper
Version: 2.26.1
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2+
Group: Applications/Multimedia
Source: http://download.gnome.org/sources/sound-juicer/2.26/%{name}-%{version}.tar.bz2
@@ -16,6 +16,8 @@ URL: http://www.burtonini.com/blog/comp
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires: cdparanoia
+Patch0: sj-gvfs-crash-fix.patch
+
Requires(pre): GConf2 >= %{gconf_version}
Requires(post): GConf2 >= %{gconf_version}
Requires(preun): GConf2 >= %{gconf_version}
@@ -44,6 +46,7 @@ GStreamer-based CD ripping tool. Saves a
%prep
%setup -q
+%patch0 -p1 -b .gvfs-crasher
%build
# work around a gstreamer problem where it
@@ -112,6 +115,9 @@ fi
%{_mandir}/man1/*
%changelog
+* Thu May 07 2009 Bastien Nocera <bnocera at redhat.com> 2.26.1-2
+- Fix gvfs metadata getter crasher (#498764)
+
* Sun Apr 12 2009 Matthias Clasen <mclasen at redhat.com> - 2.26.1-1
- Update to 2.26.1
- See http://download.gnome.org/sources/sound-juicer/2.26/sound-juicer-2.26.1.news
More information about the scm-commits
mailing list