summaryrefslogtreecommitdiff
path: root/builtin/merge.c
diff options
context:
space:
mode:
authorRene Scharfe <l.s.r@web.de>2017-08-30 17:49:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-09-06 23:49:28 (GMT)
commit150888e2733fa932949dad88af1b049193ef096f (patch)
treeb2c75f568a4b4b319e24fb017dccdf65c34ac394 /builtin/merge.c
parent400cd6bf22cbd3f0d8e555aa2f1e4751869960bf (diff)
downloadgit-150888e2733fa932949dad88af1b049193ef096f.zip
git-150888e2733fa932949dad88af1b049193ef096f.tar.gz
git-150888e2733fa932949dad88af1b049193ef096f.tar.bz2
merge: release strbuf after use in save_state()
Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/merge.c')
-rw-r--r--builtin/merge.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/builtin/merge.c b/builtin/merge.c
index 7df3fe3..4f84182 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -253,6 +253,7 @@ static int save_state(struct object_id *stash)
struct child_process cp = CHILD_PROCESS_INIT;
struct strbuf buffer = STRBUF_INIT;
const char *argv[] = {"stash", "create", NULL};
+ int rc = -1;
cp.argv = argv;
cp.out = -1;
@@ -266,11 +267,14 @@ static int save_state(struct object_id *stash)
if (finish_command(&cp) || len < 0)
die(_("stash failed"));
else if (!len) /* no changes */
- return -1;
+ goto out;
strbuf_setlen(&buffer, buffer.len-1);
if (get_oid(buffer.buf, stash))
die(_("not a valid object: %s"), buffer.buf);
- return 0;
+ rc = 0;
+out:
+ strbuf_release(&buffer);
+ return rc;
}
static void read_empty(unsigned const char *sha1, int verbose)