diff --git a/gpg-interface.c b/gpg-interface.c index 127aecfc2b..9c49652303 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -445,11 +445,9 @@ int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *sig struct child_process gpg = CHILD_PROCESS_INIT; int ret; size_t i, j, bottom; - struct strbuf gpg_status = STRBUF_INIT; strvec_pushl(&gpg.args, use_format->program, - "--status-fd=2", "-bsau", signing_key, NULL); @@ -461,12 +459,10 @@ int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *sig */ sigchain_push(SIGPIPE, SIG_IGN); ret = pipe_command(&gpg, buffer->buf, buffer->len, - signature, 1024, &gpg_status, 0); + signature, 1024, NULL, 0); sigchain_pop(SIGPIPE); - ret |= !strstr(gpg_status.buf, "\n[GNUPG:] SIG_CREATED "); - strbuf_release(&gpg_status); - if (ret) + if (ret || signature->len == bottom) return error(_("gpg failed to sign the data")); /* Strip CR from the line endings, in case we are on Windows. */ diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh index 2f72c5c688..b7fcd8af50 100755 --- a/t/t7004-tag.sh +++ b/t/t7004-tag.sh @@ -1375,30 +1375,6 @@ test_expect_success GPG \ 'test_config user.signingkey BobTheMouse && test_must_fail git tag -s -m tail tag-gpg-failure' -# try to produce invalid signature -test_expect_success GPG \ - 'git tag -s fails if gpg is misconfigured (bad signature format)' \ - 'test_config gpg.program echo && - test_must_fail git tag -s -m tail tag-gpg-failure' - -# try to produce invalid signature -test_expect_success GPG 'git verifies tag is valid with double signature' ' - git tag -s -m tail tag-gpg-double-sig && - git cat-file tag tag-gpg-double-sig >tag && - othersigheader=$(test_oid othersigheader) && - sed -ne "/^\$/q;p" tag >new-tag && - cat <<-EOM >>new-tag && - $othersigheader -----BEGIN PGP SIGNATURE----- - someinvaliddata - -----END PGP SIGNATURE----- - EOM - sed -e "1,/^tagger/d" tag >>new-tag && - new_tag=$(git hash-object -t tag -w new-tag) && - git update-ref refs/tags/tag-gpg-double-sig $new_tag && - git verify-tag tag-gpg-double-sig && - git fsck -' - # try to sign with bad user.signingkey test_expect_success GPGSM \ 'git tag -s fails if gpgsm is misconfigured (bad key)' \ @@ -1406,13 +1382,6 @@ test_expect_success GPGSM \ test_config gpg.format x509 && test_must_fail git tag -s -m tail tag-gpg-failure' -# try to produce invalid signature -test_expect_success GPGSM \ - 'git tag -s fails if gpgsm is misconfigured (bad signature format)' \ - 'test_config gpg.x509.program echo && - test_config gpg.format x509 && - test_must_fail git tag -s -m tail tag-gpg-failure' - # try to verify without gpg: rm -rf gpghome