commit - ed6b5030fc87f1d187b18f724e18beb2212f6104
commit + ce031e9edbda06714eec1e83db6d05ea9230c1d2
blob - 6a24cf54d2c45cf985a0dd535b1ffcc55d464de5
blob + cd71af884a039a30fc8dc6aa6f915db2fe7a1069
--- lib/worktree.c
+++ lib/worktree.c
* in which the blob object is being installed.
*/
if (!got_path_is_absolute(target_path)) {
- char *abspath;
- char *parent = dirname(ondisk_path);
- if (parent == NULL)
- return got_error_from_errno2("dirname", ondisk_path);
- if (asprintf(&abspath, "%s/%s", parent, target_path) == -1)
+ char *abspath, *parent;
+ err = got_path_dirname(&parent, ondisk_path);
+ if (err)
+ return err;
+ if (asprintf(&abspath, "%s/%s", parent, target_path) == -1) {
+ free(parent);
return got_error_from_errno("asprintf");
+ }
+ free(parent);
if (strlen(abspath) >= sizeof(canonpath)) {
err = got_error_path(abspath, GOT_ERR_BAD_PATH);
free(abspath);