summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2016-04-20 07:54:19 +0200
committerLubomir Rintel <lkundrak@v3.sk>2016-04-20 10:48:59 +0200
commit1d66d415b8d8bc031f68bf4fc04c131cef3a5d30 (patch)
treec9174718459d07c030afbefbd61ce19b30801dbf
parent76348adb8ea4f97497442d13c86f838332f035f0 (diff)
downloadNetworkManager-1d66d415b8d8bc031f68bf4fc04c131cef3a5d30.tar.gz
libnm-core: empty key is not a pkcs12 file
nmcli> set 802-1x.ca-cert file:///tmp/certs/eaptest_ca_cert.pem (process:31015): libnm-CRITICAL **: crypto_is_pkcs12_data: assertion 'data != NULL' failed Error: failed to set 'ca-cert' property: PEM certificate had no start tag '-----BEGIN CERTIFICATE-----'.
-rw-r--r--libnm-core/crypto.c3
-rw-r--r--libnm-util/crypto.c3
2 files changed, 6 insertions, 0 deletions
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 */