From afc70c120e6b08ac550b107d3bc588262551dae5 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 29 Dec 2013 17:30:24 +0100 Subject: util/UriUtil: uri_get_suffix() fails if name begins with dot A file called ".jpg" is not a JPEG file with an empty name; it is merely a hidden file. --- src/util/UriUtil.cxx | 3 ++- test/test_util.cxx | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util/UriUtil.cxx b/src/util/UriUtil.cxx index 7997bd5c9..2609db2cf 100644 --- a/src/util/UriUtil.cxx +++ b/src/util/UriUtil.cxx @@ -32,7 +32,8 @@ const char * uri_get_suffix(const char *uri) { const char *suffix = strrchr(uri, '.'); - if (suffix == nullptr) + if (suffix == nullptr || suffix == uri || + suffix[-1] == '/' || suffix[-1] == '\\') return nullptr; ++suffix; diff --git a/test/test_util.cxx b/test/test_util.cxx index 2ff303540..a472391a3 100644 --- a/test/test_util.cxx +++ b/test/test_util.cxx @@ -29,6 +29,10 @@ public: "jpg")); CPPUNIT_ASSERT_EQUAL(0, strcmp(uri_get_suffix("/foo.png/bar.jpg"), "jpg")); + CPPUNIT_ASSERT_EQUAL((const char *)nullptr, + uri_get_suffix(".jpg")); + CPPUNIT_ASSERT_EQUAL((const char *)nullptr, + uri_get_suffix("/foo/.jpg")); } void TestRemoveAuth() { -- cgit v1.2.3 From 3a05c421e0c7f8662d16c6fa5449840bf0390ebe Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 7 Jan 2014 18:06:58 +0100 Subject: doc/user: fix typo --- doc/user.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/user.xml b/doc/user.xml index 99278a69b..ccc9e7119 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -829,7 +829,7 @@ systemctl start mpd.socket - default_bute_order + default_byte_order little_endian|big_endian -- cgit v1.2.3 From e490e5d0ab6f7ab2204329c0280310b33f3a49f4 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 8 Jan 2014 19:50:44 +0100 Subject: playlist/pls: don't free stack buffer --- NEWS | 1 + src/playlist/PlsPlaylistPlugin.cxx | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 41a44e05e..e222e0965 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,6 @@ ver 0.18.7 (not yet released) * playlist + - pls: fix crash after parser error - soundcloud: fix build failure with libyajl 2.0.1 * daemon: don't initialize supplementary groups when already running as the configured user diff --git a/src/playlist/PlsPlaylistPlugin.cxx b/src/playlist/PlsPlaylistPlugin.cxx index d44a34cdf..99be3ad35 100644 --- a/src/playlist/PlsPlaylistPlugin.cxx +++ b/src/playlist/PlsPlaylistPlugin.cxx @@ -68,7 +68,6 @@ pls_parser(GKeyFile *keyfile, std::forward_list &songs) FormatError(pls_domain, "Invalid PLS entry %s: '%s'", key, error->message); g_error_free(error); - g_free(key); return; } -- cgit v1.2.3 From fdd76b346171126e143835429a26044a1cbbfb8f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 8 Jan 2014 22:11:00 +0100 Subject: decoder/faad: fix memory leak --- NEWS | 2 ++ src/decoder/FaadDecoderPlugin.cxx | 2 ++ 2 files changed, 4 insertions(+) diff --git a/NEWS b/NEWS index e222e0965..1a6f00f9c 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,8 @@ ver 0.18.7 (not yet released) * playlist - pls: fix crash after parser error - soundcloud: fix build failure with libyajl 2.0.1 +* decoder + - faad: fix memory leak * daemon: don't initialize supplementary groups when already running as the configured user diff --git a/src/decoder/FaadDecoderPlugin.cxx b/src/decoder/FaadDecoderPlugin.cxx index f1dd5a343..9fd20167d 100644 --- a/src/decoder/FaadDecoderPlugin.cxx +++ b/src/decoder/FaadDecoderPlugin.cxx @@ -393,6 +393,7 @@ faad_stream_decode(Decoder &mpd_decoder, InputStream &is) if (!ret) { LogError(error); NeAACDecClose(decoder); + decoder_buffer_free(buffer); return; } @@ -461,6 +462,7 @@ faad_stream_decode(Decoder &mpd_decoder, InputStream &is) /* cleanup */ NeAACDecClose(decoder); + decoder_buffer_free(buffer); } static bool -- cgit v1.2.3