Merge branch 'rs/ref-update-check-errors-early'

* rs/ref-update-check-errors-early:
  commit.c: check for lock error and return early
  sequencer.c: check for lock failure and bail early in fast_forward_to
This commit is contained in:
Junio C Hamano 2014-06-03 12:06:42 -07:00
commit 2e4b5dee97
2 changed files with 8 additions and 4 deletions

View File

@ -1672,6 +1672,10 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
? NULL ? NULL
: current_head->object.sha1, : current_head->object.sha1,
0, NULL); 0, NULL);
if (!ref_lock) {
rollback_index_files();
die(_("cannot lock HEAD ref"));
}
nl = strchr(sb.buf, '\n'); nl = strchr(sb.buf, '\n');
if (nl) if (nl)
@ -1681,10 +1685,6 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
strbuf_insert(&sb, 0, reflog_msg, strlen(reflog_msg)); strbuf_insert(&sb, 0, reflog_msg, strlen(reflog_msg));
strbuf_insert(&sb, strlen(reflog_msg), ": ", 2); strbuf_insert(&sb, strlen(reflog_msg), ": ", 2);
if (!ref_lock) {
rollback_index_files();
die(_("cannot lock HEAD ref"));
}
if (write_ref_sha1(ref_lock, sha1, sb.buf) < 0) { if (write_ref_sha1(ref_lock, sha1, sb.buf) < 0) {
rollback_index_files(); rollback_index_files();
die(_("cannot update HEAD ref")); die(_("cannot update HEAD ref"));

View File

@ -281,8 +281,12 @@ static int fast_forward_to(const unsigned char *to, const unsigned char *from,
exit(1); /* the callee should have complained already */ exit(1); /* the callee should have complained already */
ref_lock = lock_any_ref_for_update("HEAD", unborn ? null_sha1 : from, ref_lock = lock_any_ref_for_update("HEAD", unborn ? null_sha1 : from,
0, NULL); 0, NULL);
if (!ref_lock)
return error(_("Failed to lock HEAD during fast_forward_to"));
strbuf_addf(&sb, "%s: fast-forward", action_name(opts)); strbuf_addf(&sb, "%s: fast-forward", action_name(opts));
ret = write_ref_sha1(ref_lock, to, sb.buf); ret = write_ref_sha1(ref_lock, to, sb.buf);
strbuf_release(&sb); strbuf_release(&sb);
return ret; return ret;
} }