commit 2cb4bacb7c1ad57cef8ae02b159583485cec240d from: Stefan Sperling date: Sun Mar 11 00:33:55 2018 UTC assume good path input in got_worktree_init() commit - 09fe317aa5456c8be46403735c10a133dd02c017 commit + 2cb4bacb7c1ad57cef8ae02b159583485cec240d blob - b05a2c27cf5358de8999bc351d603c3251e7aace blob + 26980ac94f87f3f8c0a73840aca3870230a857b4 --- lib/worktree.c +++ lib/worktree.c @@ -133,8 +133,6 @@ got_worktree_init(const char *path, struct got_referen const char *prefix, struct got_repository *repo) { const struct got_error *err = NULL; - char *abspath = NULL; - char *normpath = NULL; char *gotpath = NULL; char *refstr = NULL; char *path_repos = NULL; @@ -143,29 +141,14 @@ got_worktree_init(const char *path, struct got_referen if (!got_path_is_absolute(prefix)) return got_error(GOT_ERR_BAD_PATH); - if (got_path_is_absolute(path)) { - abspath = strdup(path); - if (abspath == NULL) - return got_error(GOT_ERR_NO_MEM); - } else { - abspath = got_path_get_absolute(path); - if (abspath == NULL) - return got_error(GOT_ERR_BAD_PATH); - } - /* Create top-level directory (may already exist). */ - normpath = got_path_normalize(abspath); - if (normpath == NULL) { - err = got_error(GOT_ERR_BAD_PATH); - goto done; - } - if (mkdir(normpath, GOT_DEFAULT_DIR_MODE) == -1 && errno != EEXIST) { + if (mkdir(path, GOT_DEFAULT_DIR_MODE) == -1 && errno != EEXIST) { err = got_error_from_errno(); goto done; } /* Create .got directory (may already exist). */ - if (asprintf(&gotpath, "%s/%s", normpath, GOT_WORKTREE_GOT_DIR) == -1) { + if (asprintf(&gotpath, "%s/%s", path, GOT_WORKTREE_GOT_DIR) == -1) { err = got_error(GOT_ERR_NO_MEM); goto done; } @@ -214,8 +197,6 @@ got_worktree_init(const char *path, struct got_referen goto done; done: - free(abspath); - free(normpath); free(gotpath); free(formatstr); free(refstr);