From b2175629fde13ce58ccb7cd1c4c39b9707225b84 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 20 Jul 2011 07:05:10 +0200 Subject: update_walk: apply follow_inside_symlinks to absolute symlinks --- src/update_walk.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/update_walk.c') diff --git a/src/update_walk.c b/src/update_walk.c index 845f152eb..bf3c8f54b 100644 --- a/src/update_walk.c +++ b/src/update_walk.c @@ -714,8 +714,14 @@ skip_symlink(const struct directory *directory, const char *utf8_name) return false; } - if (buffer[0] == '/') - return !follow_outside_symlinks; + if (g_path_is_absolute(buffer)) { + /* if the symlink points to an absolute path, see if + that path is inside the music directory */ + const char *relative = map_to_relative_path(buffer); + return relative > buffer + ? !follow_inside_symlinks + : !follow_outside_symlinks; + } p = buffer; while (*p == '.') { -- cgit v1.2.3