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>
Rene Scharfe committed
Aug 30, 2017 at 19:49 UTC
150888e2733fa932949dad88af1b049193ef096f
1 file changed
+6
-2
builtin/merge.c
+6
-2
@@ -253,6 +253,7 @@ static int save_state(struct object_id *stash)
253
struct child_process cp = CHILD_PROCESS_INIT;
254
struct strbuf buffer = STRBUF_INIT;
255
const char *argv[] = {"stash", "create", NULL};
256
+ int rc = -1;
257
258
cp.argv = argv;
259
cp.out = -1;
@@ -266,11 +267,14 @@ static int save_state(struct object_id *stash)
267
if (finish_command(&cp) || len < 0)
268
die(_("stash failed"));
269
else if (!len) /* no changes */
269
- return -1;
270
+ goto out;
271
strbuf_setlen(&buffer, buffer.len-1);
272
if (get_oid(buffer.buf, stash))
273
die(_("not a valid object: %s"), buffer.buf);
273
- return 0;
274
+ rc = 0;
275
+out:
276
+ strbuf_release(&buffer);
277
+ return rc;
278
}
279
280
static void read_empty(unsigned const char *sha1, int verbose)