aboutsummaryrefslogtreecommitdiffstats
path: root/src/keylist.c
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2021-06-02 08:20:26 +0000
committerIngo Klöcker <[email protected]>2021-06-02 08:20:26 +0000
commit5512133de4e9bca2defb744e2b42e55b5487d72c (patch)
tree6a987d4c8e7fd411f691e110b5169aa990be9b2e /src/keylist.c
parentqt: Add support for flags in LDAP server options (diff)
downloadgpgme-5512133de4e9bca2defb744e2b42e55b5487d72c.tar.gz
gpgme-5512133de4e9bca2defb744e2b42e55b5487d72c.zip
core: Fix a few checks for number of fields in keylist result parser.
* src/keylist.c (keylist_colon_handler): Check for correct number of fields. -- This prevents NULL pointer dereferencing with older versions of gpg that may output less fields.
Diffstat (limited to 'src/keylist.c')
-rw-r--r--src/keylist.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/keylist.c b/src/keylist.c
index 42743f07..f2c90d20 100644
--- a/src/keylist.c
+++ b/src/keylist.c
@@ -734,7 +734,7 @@ keylist_colon_handler (void *priv, char *line)
}
/* Field 18 has the compliance flags. */
- if (fields >= 17 && *field[17])
+ if (fields >= 18 && *field[17])
PARSE_COMPLIANCE_FLAGS (field[17], subkey);
if (fields >= 20)
@@ -817,7 +817,7 @@ keylist_colon_handler (void *priv, char *line)
}
/* Field 18 has the compliance flags. */
- if (fields >= 17 && *field[17])
+ if (fields >= 18 && *field[17])
PARSE_COMPLIANCE_FLAGS (field[17], subkey);
break;
@@ -1015,7 +1015,7 @@ keylist_colon_handler (void *priv, char *line)
return 0;
assert (opd->tmp_keysig == key->_last_uid->_last_keysig);
- if (fields >= 4)
+ if (fields >= 5)
{
/* Field 2 has the subpacket type. */
int type = atoi (field[1]);