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 | |
| 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 '')
| -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]); | 
