Commit Diff


commit - ce031e9edbda06714eec1e83db6d05ea9230c1d2
commit + f4994adcb43b7e46b012a47d9a749f7c2625796e
blob - cd71af884a039a30fc8dc6aa6f915db2fe7a1069
blob + 397a788b56d9098df2a529350832c7b3269e725f
--- lib/worktree.c
+++ lib/worktree.c
@@ -1414,13 +1414,12 @@ install_symlink(int *is_bad_symlink, struct got_worktr
 		}
 
 		if (errno == ENOENT) {
-			char *parent = dirname(ondisk_path);
-			if (parent == NULL) {
-				err = got_error_from_errno2("dirname",
-				    ondisk_path);
-				goto done;
-			}
+			char *parent;
+			err = got_path_dirname(&parent, ondisk_path);
+			if (err)
+				goto done;
 			err = add_dir_on_disk(worktree, parent);
+			free(parent);
 			if (err)
 				goto done;
 			/*