commit eb4304b986b18116e2fe6b1b45f805ec895d451c from: Stefan Sperling date: Thu May 09 19:36:10 2019 UTC fix problems with "/" in two path helper functions commit - 9b6578d818b4e251ebb1efdeaf441385c713a4f1 commit + eb4304b986b18116e2fe6b1b45f805ec895d451c blob - 917cd5d8b0d2657829ef7fa395ed2320226cffaa blob + d1223209f4d236906d280ad91c80f5e0992e0c72 --- lib/path.c +++ lib/path.c @@ -130,7 +130,7 @@ got_path_skip_common_ancestor(char **child, const char return got_error(GOT_ERR_BAD_PATH); if (strncmp(parent_abspath, abspath, len_parent) != 0) return got_error(GOT_ERR_BAD_PATH); - if (abspath[len_parent] != '/') + if (!got_path_is_root_dir(parent_abspath) && abspath[len_parent] != '/') return got_error(GOT_ERR_BAD_PATH); while (abspath[len_parent] == '/') abspath++; @@ -162,7 +162,7 @@ got_path_is_current_dir(const char *path) int got_path_is_child(const char *child, const char *parent, size_t parent_len) { - if (parent_len == 0) + if (parent_len == 0 || got_path_is_root_dir(parent)) return 1; if (strncmp(parent, child, parent_len) != 0)