summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2020-11-06 15:33:46 +0100
committerMax Kellermann <max@musicpd.org>2020-11-06 15:35:47 +0100
commitf849b07766e090baaf3a28701c5470b14f7e26fd (patch)
treef75980913fea181774e890370a0dfbcf4542dd30
parent2da3cff1e8a5e1558d47a8493eaa9503b2d56b9e (diff)
storage/curl: fix nullptr dereference
Pass a std::string to PathTraitsUTF8::Relative(), implicitly casting it to std::string_view. This selects the right overload which returns std::string_view instead of `const char *`; the latter could return `nullptr` which would cause the implicit conversion of the return value to std::string_view to crash. Regression caused by commits ead208987dd and a98d627c0bd. Closes https://github.com/MusicPlayerDaemon/MPD/issues/995
-rw-r--r--NEWS2
-rw-r--r--src/storage/plugins/CurlStorage.cxx2
2 files changed, 3 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index e0e7d2a83..f445b6c3e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
ver 0.22.3 (not yet released)
* playlist
- add option "as_directory", making CUE file expansion optional
+* storage
+ - curl: fix crash bug
* filter
- fix garbage after "Audio format not supported by filter" message
- ffmpeg: support planar output
diff --git a/src/storage/plugins/CurlStorage.cxx b/src/storage/plugins/CurlStorage.cxx
index e6de47f11..5d7292085 100644
--- a/src/storage/plugins/CurlStorage.cxx
+++ b/src/storage/plugins/CurlStorage.cxx
@@ -80,7 +80,7 @@ std::string_view
CurlStorage::MapToRelativeUTF8(std::string_view uri_utf8) const noexcept
{
return PathTraitsUTF8::Relative(base,
- CurlUnescape(uri_utf8).c_str());
+ CurlUnescape(uri_utf8));
}
class BlockingHttpRequest : protected CurlResponseHandler {