commit 65aa7d1c9275be69e0e931210e7e09b8bcb5c143 from: Stefan Sperling date: Tue Jan 28 20:07:15 2020 UTC simplify repository child path check in got_repo_map_path() commit - 4d8f0a30e6d88e2585349d482dbc3e4a03c5e599 commit + 65aa7d1c9275be69e0e931210e7e09b8bcb5c143 blob - 158483e7592b870d9c2e3ac5e44abea57616549f blob + 1f4bef491b17397337b2521fb72f2a60b7bb777a --- lib/repository.c +++ lib/repository.c @@ -680,8 +680,6 @@ got_repo_map_path(char **in_repo_path, struct got_repo goto done; } } else { - int is_repo_child = 0; - path = realpath(canonpath, NULL); if (path == NULL) { if (errno != ENOENT) { @@ -703,8 +701,6 @@ got_repo_map_path(char **in_repo_path, struct got_repo repolen = strlen(repo_abspath); len = strlen(path); - if (len > repolen && strncmp(path, repo_abspath, repolen) == 0) - is_repo_child = 1; if (strcmp(path, repo_abspath) == 0) { free(path); @@ -713,7 +709,8 @@ got_repo_map_path(char **in_repo_path, struct got_repo err = got_error_from_errno("strdup"); goto done; } - } else if (is_repo_child) { + } else if (len > repolen && + got_path_is_child(path, repo_abspath, repolen)) { /* Matched an on-disk path inside repository. */ if (got_repo_is_bare(repo)) { /*