]> Pileus Git - ~andy/git/blobdiff - commit.c
Update draft release notes to 1.8.3
[~andy/git] / commit.c
index 94029c949653693a78fd2ecfb15d98cbebd517c9..516a4ff7d21d5ebcfabda7b1b886eb10b05cebfc 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -1047,6 +1047,8 @@ static struct {
 } sigcheck_gpg_status[] = {
        { 'G', "\n[GNUPG:] GOODSIG " },
        { 'B', "\n[GNUPG:] BADSIG " },
+       { 'U', "\n[GNUPG:] TRUST_NEVER" },
+       { 'U', "\n[GNUPG:] TRUST_UNDEFINED" },
 };
 
 static void parse_gpg_output(struct signature_check *sigc)
@@ -1068,11 +1070,13 @@ static void parse_gpg_output(struct signature_check *sigc)
                        found += strlen(sigcheck_gpg_status[i].check);
                }
                sigc->result = sigcheck_gpg_status[i].result;
-               sigc->key = xmemdupz(found, 16);
-               found += 17;
-               next = strchrnul(found, '\n');
-               sigc->signer = xmemdupz(found, next - found);
-               break;
+               /* The trust messages are not followed by key/signer information */
+               if (sigc->result != 'U') {
+                       sigc->key = xmemdupz(found, 16);
+                       found += 17;
+                       next = strchrnul(found, '\n');
+                       sigc->signer = xmemdupz(found, next - found);
+               }
        }
 }