tree: break out on write error If write_tree() returs an error, we used to set the error message and continued looping. Exit the loop so we return the error.
diff --git a/src/tree.c b/src/tree.c
index aeef677..19681e3 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -363,6 +363,7 @@ static int write_tree(
written = write_tree(&sub_oid, repo, index, subdir, i);
if (written < 0) {
error = git__rethrow(written, "Failed to write subtree %s", subdir);
+ goto cleanup;
} else {
i = written - 1; /* -1 because of the loop increment */
}