summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Sobolev <konstantin.sobolev@gmail.com>2008-11-20 18:22:07 +0100
committerMax Kellermann <mk@cm4all.com>2008-11-20 18:22:07 +0100
commit7ac3abf49958613504166efbd5fed93a40c176f9 (patch)
tree83bfb31637e2b1fb398eec3975f00bc1a36b203a
parent23b097593ee7b9ec30c15fd6f6c750850a7b5b5a (diff)
update: pass UTF-8 path to skip_symlink()
skip_symlinks() expects an UTF-8 encoded file name, but updateDirectory() passed ent->d_name (in file system encoding) to it. Convert it to UTF-8 first.
-rw-r--r--src/update.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/update.c b/src/update.c
index 38bc22a28..dac4f08f4 100644
--- a/src/update.c
+++ b/src/update.c
@@ -389,12 +389,11 @@ updateDirectory(struct directory *directory, const struct stat *st)
char *utf8;
struct stat st2;
- if (skip_path(ent->d_name) ||
- skip_symlink(directory, ent->d_name))
+ if (skip_path(ent->d_name))
continue;
utf8 = fs_charset_to_utf8(path_max_tmp, ent->d_name);
- if (!utf8)
+ if (utf8 == NULL || skip_symlink(directory, utf8))
continue;
if (stat_directory_child(directory, utf8, &st2) == 0)