summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Ryabitsev <konstantin@linuxfoundation.org>2021-06-08 14:16:02 -0400
committerKonstantin Ryabitsev <konstantin@linuxfoundation.org>2021-06-08 14:16:02 -0400
commitfe7709834ccda006b5b3ea3d129727d49dd80ae5 (patch)
tree1689946189e52951f23db262a27fc812e41001b7
parent1ac98d05d1a665f4376e3652163b9f3c17b6f808 (diff)
downloadb4-fe7709834ccda006b5b3ea3d129727d49dd80ae5.tar.gz
Fix crasher on unsigned FETCH_HEAD
If the FETCH_HEAD is not signed, then keyid is going to be None. Don't attempt to look up UIDs in such situations. Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
-rw-r--r--b4/pr.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/b4/pr.py b/b4/pr.py
index 1e308d8..4782a8c 100644
--- a/b4/pr.py
+++ b/b4/pr.py
@@ -141,18 +141,19 @@ def attest_fetch_head(gitdir, lmsg):
ecode, out = b4.git_run_command(gitdir, ['verify-commit', '--raw', 'FETCH_HEAD'], logstderr=True)
good, valid, trusted, keyid, sigtime = b4.check_gpg_status(out)
- try:
- uids = b4.get_gpg_uids(keyid)
- signer = None
- for uid in uids:
- if uid.find(f'<{lmsg.fromemail}') >= 0:
- signer = uid
- break
- if not signer:
- signer = uids[0]
-
- except KeyError:
- signer = f'{lmsg.fromname} <{lmsg.fromemail}'
+ signer = None
+ if keyid:
+ try:
+ uids = b4.get_gpg_uids(keyid)
+ for uid in uids:
+ if uid.find(f'<{lmsg.fromemail}') >= 0:
+ signer = uid
+ break
+ if not signer:
+ signer = uids[0]
+
+ except KeyError:
+ signer = f'{lmsg.fromname} <{lmsg.fromemail}>'
if good and valid:
passing = True