You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-libs/libgpod/files/libgpod-0.8.3-segfault.patch

29 lines
1.1 KiB

# Patch from James Burton - https://github.com/jburton/libgpod/commit/342d49c5577682dd4fba35bfd5fb15f7287c7d5a
--- a/src/itdb_itunesdb.c
+++ b/src/itdb_itunesdb.c
@@ -1156,6 +1156,7 @@ static gboolean playcounts_plist_read (FImport *fimp, GValue *plist_data)
GHashTable *pc_dict, *track_dict;
GValue *to_parse;
GArray *array;
+ GValue value;
gint i;
guint32 mac_time;
guint64 *dbid;
@@ -1174,13 +1175,14 @@ static gboolean playcounts_plist_read (FImport *fimp, GValue *plist_data)
playcounts = g_hash_table_new_full (g_int64_hash, g_int64_equal, g_free, g_free);
array = (GArray*)g_value_get_boxed (to_parse);
for (i = 0; i < array->len; i++) {
- if (!G_VALUE_HOLDS (g_array_index (array, GValue *, i), G_TYPE_HASH_TABLE)) {
+ value = g_array_index (array, GValue, i);
+ if (!G_VALUE_HOLDS (&value, G_TYPE_HASH_TABLE)) {
continue;
}
- track_dict = g_value_get_boxed (g_array_index (array, GValue *, i));
+ track_dict = g_value_get_boxed (&value);
if (track_dict == NULL)
continue;
to_parse = g_hash_table_lookup (track_dict, "persistentID");