From 725b06050a083474e240a2436121e0a80bb9f175 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 4 Aug 2008 00:52:37 -0700 Subject: add: refuse to add working tree items beyond symlinks This is the same fix for the issue of adding "sym/path" when "sym" is a symblic link that points at a directory "dir" with "path" in it. Signed-off-by: Junio C Hamano --- dir.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'dir.c') diff --git a/dir.c b/dir.c index 29d1d5ba31..ae7046fd03 100644 --- a/dir.c +++ b/dir.c @@ -727,8 +727,12 @@ static void free_simplify(struct path_simplify *simplify) int read_directory(struct dir_struct *dir, const char *path, const char *base, int baselen, const char **pathspec) { - struct path_simplify *simplify = create_simplify(pathspec); + struct path_simplify *simplify; + if (has_symlink_leading_path(strlen(path), path)) + return dir->nr; + + simplify = create_simplify(pathspec); read_directory_recursive(dir, path, base, baselen, 0, simplify); free_simplify(simplify); qsort(dir->entries, dir->nr, sizeof(struct dir_entry *), cmp_name); -- cgit v1.2.3