playlist_song: fix user-after-free bug
This commit is contained in:
parent
9374e0f445
commit
20695ef369
1
NEWS
1
NEWS
|
@ -11,6 +11,7 @@ ver 0.17.2 (2012/??/??)
|
||||||
- httpd: fix throttling bug after resuming playback
|
- httpd: fix throttling bug after resuming playback
|
||||||
* mapper: fix non-UTF8 music directory name
|
* mapper: fix non-UTF8 music directory name
|
||||||
* mapper: fix potential crash in file permission check
|
* mapper: fix potential crash in file permission check
|
||||||
|
* playlist: fix use-after-free bug
|
||||||
|
|
||||||
|
|
||||||
ver 0.17.1 (2012/07/31)
|
ver 0.17.1 (2012/07/31)
|
||||||
|
|
|
@ -69,7 +69,6 @@ apply_song_metadata(struct song *dest, const struct song *src)
|
||||||
} else {
|
} else {
|
||||||
tmp = song_file_new(dest->uri, NULL);
|
tmp = song_file_new(dest->uri, NULL);
|
||||||
merge_song_metadata(tmp, dest, src);
|
merge_song_metadata(tmp, dest, src);
|
||||||
song_free(dest);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dest->tag != NULL && dest->tag->time > 0 &&
|
if (dest->tag != NULL && dest->tag->time > 0 &&
|
||||||
|
@ -80,6 +79,9 @@ apply_song_metadata(struct song *dest, const struct song *src)
|
||||||
(e.g. last track on a CUE file); fix it up here */
|
(e.g. last track on a CUE file); fix it up here */
|
||||||
tmp->tag->time = dest->tag->time - src->start_ms / 1000;
|
tmp->tag->time = dest->tag->time - src->start_ms / 1000;
|
||||||
|
|
||||||
|
if (!song_in_database(dest))
|
||||||
|
song_free(dest);
|
||||||
|
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue