log: correctly identify mergetag signature verification status
A wrong '}' made our code record the results of mergetag signature verification incorrectly. Fix it. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber committed
Jun 27, 2014 at 15:18 UTC
42c55ce49eb3c8741f62a0abdfb38182d461126c
1 file changed
+11
-10
log-tree.c
+11
-10
@@ -446,16 +446,17 @@ static void show_one_mergetag(struct rev_info *opt,
446
447
payload_size = parse_signature(extra->value, extra->len);
448
status = -1;
449
- if (extra->len > payload_size)
450
- if (verify_signed_buffer(extra->value, payload_size,
451
- extra->value + payload_size,
452
- extra->len - payload_size,
453
- &verify_message, NULL)) {
454
- if (verify_message.len <= gpg_message_offset)
455
- strbuf_addstr(&verify_message, "No signature\n");
456
- else
457
- status = 0;
458
- }
449
+ if (extra->len > payload_size) {
450
+ /* could have a good signature */
451
+ if (!verify_signed_buffer(extra->value, payload_size,
452
+ extra->value + payload_size,
453
+ extra->len - payload_size,
454
+ &verify_message, NULL))
455
+ status = 0; /* good */
456
+ else if (verify_message.len <= gpg_message_offset)
457
+ strbuf_addstr(&verify_message, "No signature\n");
458
+ /* otherwise we couldn't verify, which is shown as bad */
459
+ }
460
461
show_sig_lines(opt, status, verify_message.buf);
462
strbuf_release(&verify_message);