diff options
-rw-r--r-- | lib/openpgp/extras.c | 6 | ||||
-rw-r--r-- | lib/openpgp/pgp.c | 8 | ||||
-rw-r--r-- | lib/openpgp/privkey.c | 6 |
3 files changed, 19 insertions, 1 deletions
diff --git a/lib/openpgp/extras.c b/lib/openpgp/extras.c index 54b3c9ab12..56ff449c19 100644 --- a/lib/openpgp/extras.c +++ b/lib/openpgp/extras.c @@ -133,6 +133,12 @@ gnutls_openpgp_keyring_import (gnutls_openpgp_keyring_t keyring, size_t raw_len = 0; opaque *raw_data = NULL; + if (data->data == NULL || data->size == 0) + { + gnutls_assert(); + return GNUTLS_E_OPENPGP_GETKEY_FAILED; + } + _gnutls_debug_log ("PGP: keyring import format '%s'\n", format == GNUTLS_OPENPGP_FMT_RAW ? "raw" : "base64"); diff --git a/lib/openpgp/pgp.c b/lib/openpgp/pgp.c index 2c085b1bfa..09402ebd59 100644 --- a/lib/openpgp/pgp.c +++ b/lib/openpgp/pgp.c @@ -92,7 +92,13 @@ gnutls_openpgp_crt_import (gnutls_openpgp_crt_t key, cdk_stream_t inp; cdk_packet_t pkt; int rc; - + + if (data->data == NULL || data->size == 0) + { + gnutls_assert(); + return GNUTLS_E_OPENPGP_GETKEY_FAILED; + } + if (format == GNUTLS_OPENPGP_FMT_RAW) rc = cdk_kbnode_read_from_mem (&key->knode, data->data, data->size); else diff --git a/lib/openpgp/privkey.c b/lib/openpgp/privkey.c index 57d034223e..695346b25e 100644 --- a/lib/openpgp/privkey.c +++ b/lib/openpgp/privkey.c @@ -96,6 +96,12 @@ gnutls_openpgp_privkey_import (gnutls_openpgp_privkey_t key, cdk_stream_t inp; cdk_packet_t pkt; int rc; + + if (data->data == NULL || data->size == 0) + { + gnutls_assert(); + return GNUTLS_E_OPENPGP_GETKEY_FAILED; + } if (format == GNUTLS_OPENPGP_FMT_RAW) rc = cdk_kbnode_read_from_mem (&key->knode, data->data, data->size); |