diff options
author | Max Kellermann <max@duempel.org> | 2009-02-20 12:31:00 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-02-20 12:31:00 +0100 |
commit | 09ecfb6567f3f4ea2e70e3e9d7f54c8f909271c0 (patch) | |
tree | 32247c639c9d72c97913f6672acf877392fdf899 | |
parent | adea76a6edc54c9f3b957d47a54b74c322d54fc8 (diff) | |
download | mpd-09ecfb6567f3f4ea2e70e3e9d7f54c8f909271c0.tar.gz mpd-09ecfb6567f3f4ea2e70e3e9d7f54c8f909271c0.tar.xz mpd-09ecfb6567f3f4ea2e70e3e9d7f54c8f909271c0.zip |
path: validate configured character set
-rw-r--r-- | src/path.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/path.c b/src/path.c index 01480bee4..1b6405cb0 100644 --- a/src/path.c +++ b/src/path.c @@ -21,6 +21,7 @@ #include <glib.h> +#include <assert.h> #include <string.h> #undef G_LOG_DOMAIN @@ -53,6 +54,16 @@ utf8_to_fs_charset(const char *path_utf8) void path_set_fs_charset(const char *charset) { + char *test; + + assert(charset != NULL); + + /* convert a space to ensure that the charset is valid */ + test = g_convert(" ", 1, charset, "UTF-8", NULL, NULL, NULL); + if (test == NULL) + g_error("invalid filesystem charset: %s", charset); + g_free(test); + g_free(fs_charset); fs_charset = g_strdup(charset); |