aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-11-22 00:02:17 +0100
committerMax Kellermann <max@duempel.org>2013-11-22 00:02:17 +0100
commit67b8124a1d34c2fa850005317503663407b9648e (patch)
tree5d8233b2e2aad2b80a3b28d3d0345e38f5bdea06
parent51ec499c89ae62f366fbdfe08c87a05384905e2e (diff)
downloadmpd-67b8124a1d34c2fa850005317503663407b9648e.tar.gz
mpd-67b8124a1d34c2fa850005317503663407b9648e.tar.xz
mpd-67b8124a1d34c2fa850005317503663407b9648e.zip
Mapper: _get_music_directory_utf8() may return nullptr
If no music_directory is configured, return nullptr instead of an empty string. This fixes a crash when db_file is configured without music_directory.
-rw-r--r--NEWS2
-rw-r--r--src/Mapper.cxx4
-rw-r--r--src/Mapper.hxx3
3 files changed, 7 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 8fc7435ae..8a433e202 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
ver 0.18.5 (20??/??/??)
+* configuration
+ - fix crash when db_file is configured without music_directory
* decoder
- fluidsynth: auto-detect by default
* fix ia64, mipsel and other little-endian architectures
diff --git a/src/Mapper.cxx b/src/Mapper.cxx
index 08597732a..cbe45daa0 100644
--- a/src/Mapper.cxx
+++ b/src/Mapper.cxx
@@ -133,7 +133,9 @@ void mapper_finish(void)
const char *
mapper_get_music_directory_utf8(void)
{
- return music_dir_utf8.c_str();
+ return music_dir_utf8.empty()
+ ? nullptr
+ : music_dir_utf8.c_str();
}
const AllocatedPath &
diff --git a/src/Mapper.hxx b/src/Mapper.hxx
index be69a7110..947fd2822 100644
--- a/src/Mapper.hxx
+++ b/src/Mapper.hxx
@@ -41,7 +41,8 @@ mapper_init(AllocatedPath &&music_dir, AllocatedPath &&playlist_dir);
void mapper_finish(void);
/**
- * Return the absolute path of the music directory encoded in UTF-8.
+ * Return the absolute path of the music directory encoded in UTF-8 or
+ * nullptr if no music directory was configured.
*/
gcc_const
const char *