diff options
author | Max Kellermann <max@duempel.org> | 2010-06-01 09:10:58 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-06-01 09:59:54 +0200 |
commit | caf93d9a2c2360a5b4a1d841fb83394d6bf4fc09 (patch) | |
tree | 0bc9ab2cd488cb508e183d05cffeff54fb3995ad /src/playlist_print.c | |
parent | 747e945d29e847403cec928ca4a3df7f27864cfc (diff) | |
download | mpd-caf93d9a2c2360a5b4a1d841fb83394d6bf4fc09.tar.gz mpd-caf93d9a2c2360a5b4a1d841fb83394d6bf4fc09.tar.xz mpd-caf93d9a2c2360a5b4a1d841fb83394d6bf4fc09.zip |
playlist_list: playlist_list_open_path() returns input_stream
Memory leak fix. The input_stream object passed to
playlist_list_open_stream_suffix() must be closed by the caller - this
however never happens in playlist_list_open_path(), because it does
not return it to the caller.
Diffstat (limited to 'src/playlist_print.c')
-rw-r--r-- | src/playlist_print.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/playlist_print.c b/src/playlist_print.c index 020b0fa87..1ef3ff849 100644 --- a/src/playlist_print.c +++ b/src/playlist_print.c @@ -29,6 +29,7 @@ #include "song.h" #include "database.h" #include "client.h" +#include "input_stream.h" void playlist_print_uris(struct client *client, const struct playlist *playlist) @@ -168,11 +169,16 @@ playlist_provider_print(struct client *client, const char *uri, bool playlist_file_print(struct client *client, const char *uri, bool detail) { - struct playlist_provider *playlist = playlist_mapper_open(uri); + struct input_stream *is; + struct playlist_provider *playlist = playlist_mapper_open(uri, &is); if (playlist == NULL) return false; playlist_provider_print(client, uri, playlist, detail); playlist_plugin_close(playlist); + + if (is != NULL) + input_stream_close(is); + return true; } |