sequencer: release strbuf after use in save_head()

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Rene Scharfe 2017-08-30 20:20:14 +02:00 committed by Junio C Hamano
parent 557d3185ee
commit ed3f9a12d1

View File

@ -1565,6 +1565,7 @@ static int save_head(const char *head)
static struct lock_file head_lock; static struct lock_file head_lock;
struct strbuf buf = STRBUF_INIT; struct strbuf buf = STRBUF_INIT;
int fd; int fd;
ssize_t written;
fd = hold_lock_file_for_update(&head_lock, git_path_head_file(), 0); fd = hold_lock_file_for_update(&head_lock, git_path_head_file(), 0);
if (fd < 0) { if (fd < 0) {
@ -1572,7 +1573,9 @@ static int save_head(const char *head)
return error_errno(_("could not lock HEAD")); return error_errno(_("could not lock HEAD"));
} }
strbuf_addf(&buf, "%s\n", head); strbuf_addf(&buf, "%s\n", head);
if (write_in_full(fd, buf.buf, buf.len) < 0) { written = write_in_full(fd, buf.buf, buf.len);
strbuf_release(&buf);
if (written < 0) {
rollback_lock_file(&head_lock); rollback_lock_file(&head_lock);
return error_errno(_("could not write to '%s'"), return error_errno(_("could not write to '%s'"),
git_path_head_file()); git_path_head_file());