diff --git a/libnm-core/crypto.c b/libnm-core/crypto.c index ecbe6c6e15..c27f5c0dc9 100644 --- a/libnm-core/crypto.c +++ b/libnm-core/crypto.c @@ -641,6 +641,9 @@ crypto_is_pkcs12_data (const guint8 *data, GError *local = NULL; gboolean success; + if (!data_len) + return FALSE; + g_return_val_if_fail (data != NULL, FALSE); if (!crypto_init (error)) diff --git a/libnm-util/crypto.c b/libnm-util/crypto.c index 7fdf0f7215..3dd89f951a 100644 --- a/libnm-util/crypto.c +++ b/libnm-util/crypto.c @@ -654,6 +654,9 @@ crypto_is_pkcs12_data (const GByteArray *data) g_return_val_if_fail (data != NULL, FALSE); + if (!data->len) + return FALSE; + success = crypto_verify_pkcs12 (data, NULL, &error); if (success == FALSE) { /* If the error was just a decryption error, then it's pkcs#12 */