aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-11-28 09:56:03 +0100
committerMax Kellermann <max@duempel.org>2011-11-28 09:57:21 +0100
commit6f365c30eb33c40193defb827b03a8fd293bfc23 (patch)
tree0f4850e9ab18004b07224d106b9b148439a6f218
parent718e180423aeb84fc513858415a201905630580c (diff)
downloadmpd-6f365c30eb33c40193defb827b03a8fd293bfc23.tar.gz
mpd-6f365c30eb33c40193defb827b03a8fd293bfc23.tar.xz
mpd-6f365c30eb33c40193defb827b03a8fd293bfc23.zip
mapper: check "r" permission on music directory
Yet another common support case.
-rw-r--r--NEWS2
-rw-r--r--src/mapper.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 223c39321..166541c44 100644
--- a/NEWS
+++ b/NEWS
@@ -5,7 +5,7 @@ ver 0.16.6 (2010/??/??)
- flac, null, wave: fix buffer corruption bug
- wave: support packed 24 bit samples
* mapper: fix the bogus "not a directory" error message
-* mapper: check "x" permission on music directory
+* mapper: check "x" and "r" permissions on music directory
* log: print reason for failure
* event_pipe: fix WIN32 regression
* define WINVER in ./configure
diff --git a/src/mapper.c b/src/mapper.c
index 41ed6550b..3cee41eb3 100644
--- a/src/mapper.c
+++ b/src/mapper.c
@@ -34,6 +34,7 @@
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>
+#include <dirent.h>
static char *music_dir;
static size_t music_dir_length;
@@ -76,6 +77,12 @@ check_directory(const char *path)
path);
g_free(x);
#endif
+
+ DIR *dir = opendir(path);
+ if (dir == NULL && errno == EACCES)
+ g_warning("No permission to read directory: %s", path);
+ else
+ closedir(dir);
}
static void