From dd284d763651378656c408ec7bc589e8270166a3 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sat, 26 Oct 2019 15:38:25 +0100 Subject: [PATCH] key/key-misc.c (key_bytag): Don't give up because a by-id search fails. Organization: Straylight/Edgeware From: Mark Wooding This came to my attention when searching for a key of type `ec' didn't work because it looks like a hex number. This obviously sucks. --- key/key-misc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/key/key-misc.c b/key/key-misc.c index c3442f28..0d969a87 100644 --- a/key/key-misc.c +++ b/key/key-misc.c @@ -160,12 +160,12 @@ key *key_bytag(key_file *f, const char *tag) char *p; uint32 id; key_ref *kr = sym_find(&f->bytag, tag, -1, 0, 0); + key *k; if (kr && !(KEY_EXPIRED(t, kr->k->exp) && KEY_EXPIRED(t, kr->k->del))) return (kr->k); id = strtoul(tag, &p, 16); - if (!*p) - return (key_byid(f, id)); + if (!*p && (k = key_byid(f, id)) != 0) return (k); return (key_bytype(f, tag)); } -- [mdw]