summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Scharfe <l.s.r@web.de>2017-08-30 19:49:38 +0200
committerJunio C Hamano <gitster@pobox.com>2017-09-07 08:49:27 +0900
commite505146dac276cc051eca199f9dc7ca88bef5f18 (patch)
tree817caed255da7c3bc213d2e72bb48843e5e3b3ef
parent9c18b5488eb78d293578a4914fc8646a0e40460a (diff)
downloadgit-e505146dac276cc051eca199f9dc7ca88bef5f18.tar.gz
commit: release strbuf on error return in commit_tree_extended()
Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--commit.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/commit.c b/commit.c
index 8b28415939..51f969fcbc 100644
--- a/commit.c
+++ b/commit.c
@@ -1564,10 +1564,13 @@ int commit_tree_extended(const char *msg, size_t msg_len,
if (encoding_is_utf8 && !verify_utf8(&buffer))
fprintf(stderr, _(commit_utf8_warn));
- if (sign_commit && do_sign_commit(&buffer, sign_commit))
- return -1;
+ if (sign_commit && do_sign_commit(&buffer, sign_commit)) {
+ result = -1;
+ goto out;
+ }
result = write_sha1_file(buffer.buf, buffer.len, commit_type, ret);
+out:
strbuf_release(&buffer);
return result;
}