Commit Diff


commit - 1233e6b6715afa716b042fc369d0becc3bb9f58f
commit + 102b254e201b999cdeb0ef340dc6e08e4211376f
blob - e8828ca377630832d832969eb9de9ef7450bd503
blob + aa1380c84c816fb454f2b20ceda2de7cadf2ec33
--- lib/worktree.c
+++ lib/worktree.c
@@ -4866,7 +4866,7 @@ alloc_added_blob_tree_entry(struct got_tree_entry **ne
     struct got_commitable *ct)
 {
 	const struct got_error *err = NULL;
-	char *ct_name;
+	char *ct_name = NULL;
 
 	 *new_te = NULL;
 
@@ -4874,11 +4874,9 @@ alloc_added_blob_tree_entry(struct got_tree_entry **ne
 	if (*new_te == NULL)
 		return got_error_from_errno("calloc");
 
-	ct_name = basename(ct->path);
-	if (ct_name == NULL) {
-		err = got_error_from_errno2("basename", ct->path);
+	err = got_path_basename(&ct_name, ct->path);
+	if (err)
 		goto done;
-	}
 	if (strlcpy((*new_te)->name, ct_name, sizeof((*new_te)->name)) >=
 	    sizeof((*new_te)->name)) {
 		err = got_error(GOT_ERR_NO_SPACE);
@@ -4893,6 +4891,7 @@ alloc_added_blob_tree_entry(struct got_tree_entry **ne
 	else
 		memcpy(&(*new_te)->id, ct->blob_id, sizeof((*new_te)->id));
 done:
+	free(ct_name);
 	if (err && *new_te) {
 		free(*new_te);
 		*new_te = NULL;