diff options
author | Alexey Yakovenko <wakeroid@gmail.com> | 2009-12-30 20:00:50 +0100 |
---|---|---|
committer | Alexey Yakovenko <wakeroid@gmail.com> | 2009-12-30 20:00:50 +0100 |
commit | d8a53a3b7416022bfbf2309def6c5cf1bbf74f32 (patch) | |
tree | c77f83ddd943b9433902245f9abe334148f60219 /playlist.c | |
parent | 816b2d30ae921bd8348f467c987a45fc3b65f527 (diff) |
fixed loading of playlists with huge matadata blocks
Diffstat (limited to 'playlist.c')
-rw-r--r-- | playlist.c | 25 |
1 files changed, 14 insertions, 11 deletions
@@ -1467,17 +1467,20 @@ pl_load (const char *fname) { goto load_fail; } if (!l || l >= 1024) { - goto load_fail; - } - if (fread (value, 1, l, fp) != l) { - goto load_fail; + // skip + fseek (fp, l, SEEK_CUR); } - value[l] = 0; - //printf ("%s=%s\n", key, value); - for (int n = 0; valid_keys[n]; n++) { - if (!strcmp (valid_keys[n], key)) { - pl_add_meta (it, valid_keys[n], value); - break; + else { + if (fread (value, 1, l, fp) != l) { + goto load_fail; + } + value[l] = 0; + //printf ("%s=%s\n", key, value); + for (int n = 0; valid_keys[n]; n++) { + if (!strcmp (valid_keys[n], key)) { + pl_add_meta (it, valid_keys[n], value); + break; + } } } } @@ -1486,7 +1489,7 @@ pl_load (const char *fname) { fclose (fp); return 0; load_fail: - trace ("playlist load fail!\n"); + fprintf (stderr, "playlist load fail (%s)!\n", fname); fclose (fp); if (it) { pl_item_free (it); |