Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-10-11 20:36:11 +0300
committerJunio C Hamano <gitster@pobox.com>2022-10-11 20:36:11 +0300
commit644195e02f445bf4fcf79e47c339f593c7646c9e (patch)
treea4b1872150b92d172b1df33c139447d7b8799acf /gpg-interface.c
parent601bb23876bdff60e14b000f1e9f53a5dc4259ff (diff)
parent36fb0d07d83df475bc6b716795b2111f8408cbcf (diff)
Merge branch 'pw/ssh-sign-report-errors'
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
Diffstat (limited to 'gpg-interface.c')
-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);