Commit f5a9f0a2587f4fa2d02ee74b0522a0fd99fabe98

Edward Thomson 2021-09-25T15:19:22

attr_file: don't validate workdir paths in attr lookups When looking up attributes for a file, we construct an absolute path to the queried file within the working directory so that we can accept both absolute paths and working directory relative paths. We then trim the leading working directory path to give us an in-repo path. Since we only want the in-repo path to look up attributes - and not to read it from disk - we don't need to validate its length.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/attr_file.c b/src/attr_file.c
index 694967a..4a0d66e 100644
--- a/src/attr_file.c
+++ b/src/attr_file.c
@@ -561,8 +561,7 @@ int git_attr_path__init(
 	/* build full path as best we can */
 	git_buf_init(&info->full, 0);
 
-	if (git_path_join_unrooted(&info->full, path, base, &root) < 0 ||
-	    git_path_validate_workdir_buf(repo, &info->full) < 0)
+	if (git_path_join_unrooted(&info->full, path, base, &root) < 0)
 		return -1;
 
 	info->path = info->full.ptr + root;