From b810320b1bf76209dc1087cb91ca34232d9268c3 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 22 Sep 2020 16:15:47 +0200 Subject: [PATCH] sm: Fix returning of the ephemeral flag in keyboxd mode. * sm/keydb.c (search_status_cb): Skip over the ubid. --- sm/keydb.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sm/keydb.c b/sm/keydb.c index f7d815e65..13eb1a407 100644 --- a/sm/keydb.c +++ b/sm/keydb.c @@ -1512,6 +1512,7 @@ search_status_cb (void *opaque, const char *line) KEYDB_HANDLE hd = opaque; gpg_error_t err = 0; const char *s; + unsigned int n; if ((s = has_leading_keyword (line, "PUBKEY_INFO"))) { @@ -1522,13 +1523,14 @@ search_status_cb (void *opaque, const char *line) hd->last_ubid_valid = 0; while (*s && !spacep (s)) s++; - if (hex2fixedbuf (s, hd->last_ubid, sizeof hd->last_ubid)) - hd->last_ubid_valid = 1; - else + if (!(n=hex2fixedbuf (s, hd->last_ubid, sizeof hd->last_ubid))) err = gpg_error (GPG_ERR_INV_VALUE); - while (spacep (s)) - s++; - hd->last_is_ephemeral = (*s == 'e'); + else + { + hd->last_ubid_valid = 1; + s += n; + hd->last_is_ephemeral = (*s == 'e'); + } } }