diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c index 5f1b3b6..bebaf55 100644 --- a/src/itdb_itunesdb.c +++ b/src/itdb_itunesdb.c @@ -1435,7 +1435,8 @@ static MHODData get_mhod (FImport *fimp, glong mhod_seek, guint32 *ml) result.data.string = g_new0 (gchar, xl+1); if (!seek_get_n_bytes (cts, result.data.string, seek+16, xl)) { /* error */ - g_free (entry_utf16); + g_free (result.data.string); + result.data.string = NULL; return result; /* *ml==-1, result.valid==FALSE */ } } @@ -1691,10 +1692,12 @@ static gchar *get_mhod_string (FImport *fimp, glong seek, guint32 *ml, gint32 *m case MHOD_ID_ALBUM_SORT_ARTIST: case MHOD_ID_ALBUM_ARTIST_MHII: mhoddata = get_mhod (fimp, seek, ml); - if ((*ml != -1) && mhoddata.valid) + if ((*ml != -1) && mhoddata.valid) { + g_assert (g_utf8_validate (mhoddata.data.string, -1, NULL)); return mhoddata.data.string; - else + } else { return NULL; + } case MHOD_ID_SPLPREF: case MHOD_ID_SPLRULES: case MHOD_ID_LIBPLAYLISTINDEX: