diff options
author | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2021-06-08 14:16:02 -0400 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2021-06-08 14:16:02 -0400 |
commit | fe7709834ccda006b5b3ea3d129727d49dd80ae5 (patch) | |
tree | 1689946189e52951f23db262a27fc812e41001b7 | |
parent | 1ac98d05d1a665f4376e3652163b9f3c17b6f808 (diff) | |
download | b4-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.py | 25 |
1 files changed, 13 insertions, 12 deletions
@@ -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 |