summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-10-25 17:11:35 -0700
committerJunio C Hamano <gitster@pobox.com>2022-10-25 17:11:35 -0700
commit48b754ddc0b8fad69e032d05bf79cfcab9c28000 (patch)
tree69c7733b44fbe41c4860ade6d38f0b821b53e416
parent3694b3844ee631b983f47e0c06a9384c1997a298 (diff)
parent36fb0d07d83df475bc6b716795b2111f8408cbcf (diff)
downloadgit-48b754ddc0b8fad69e032d05bf79cfcab9c28000.tar.xz
Merge branch 'pw/ssh-sign-report-errors' into maint-2.38
The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * pw/ssh-sign-report-errors: ssh signing: return an error when signature cannot be read
-rw-r--r--gpg-interface.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gpg-interface.c b/gpg-interface.c
index 9aa714bdee..f877a1ea56 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -1059,12 +1059,11 @@ static int sign_buffer_ssh(struct strbuf *buffer, struct strbuf *signature,
strbuf_addbuf(&ssh_signature_filename, &buffer_file->filename);
strbuf_addstr(&ssh_signature_filename, ".sig");
if (strbuf_read_file(signature, ssh_signature_filename.buf, 0) < 0) {
- error_errno(
+ ret = error_errno(
_("failed reading ssh signing data buffer from '%s'"),
ssh_signature_filename.buf);
+ goto out;
}
- unlink_or_warn(ssh_signature_filename.buf);
-
/* Strip CR from the line endings, in case we are on Windows. */
remove_cr_after(signature, bottom);
@@ -1073,6 +1072,8 @@ out:
delete_tempfile(&key_file);
if (buffer_file)
delete_tempfile(&buffer_file);
+ if (ssh_signature_filename.len)
+ unlink_or_warn(ssh_signature_filename.buf);
strbuf_release(&signer_stderr);
strbuf_release(&ssh_signature_filename);
FREE_AND_NULL(ssh_signing_key_file);