commit e642f803bde24b919bd4fe2ba66956b4b8173c32 from: Stefan Sperling date: Fri Jul 12 11:01:51 2019 UTC don't leak redundantly allocated relpath in got_worktree_checkout_files() commit - fb399478ba035edc9852bd7340a9f4ffee06e79a commit + e642f803bde24b919bd4fe2ba66956b4b8173c32 blob - 21986f39664d20f4d0da79e18aaaee215efae8d0 blob + 323bf4a0ab4e5880df4f20a77702593068ee18d3 --- lib/worktree.c +++ lib/worktree.c @@ -1572,11 +1572,6 @@ got_worktree_checkout_files(struct got_worktree *workt if (path[0]) { char *tree_path; int obj_type; - relpath = strdup(path); - if (relpath == NULL) { - err = got_error_from_errno("strdup"); - goto done; - } if (asprintf(&tree_path, "%s%s%s", worktree->path_prefix, got_path_is_root_dir(worktree->path_prefix) ? "" : "/", path) == -1) { @@ -1627,6 +1622,12 @@ got_worktree_checkout_files(struct got_worktree *workt err = got_error_from_errno2("basename", path); goto done; } + } else { + relpath = strdup(path); + if (relpath == NULL) { + err = got_error_from_errno("strdup"); + goto done; + } } } else { relpath = strdup("");