diff options
author | Ingo Klöcker <[email protected]> | 2021-06-02 08:20:26 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2021-06-02 08:20:26 +0000 |
commit | 5512133de4e9bca2defb744e2b42e55b5487d72c (patch) | |
tree | 6a987d4c8e7fd411f691e110b5169aa990be9b2e /src/keylist.c | |
parent | qt: Add support for flags in LDAP server options (diff) | |
download | gpgme-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.c | 6 |
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]); |