ENGINE_pkey_asn1_find_str(): don't assume an engine implements ASN1 method
[openssl.git] / crypto / engine / tb_asnmth.c
index bc6e91ccabbbffe8712705a339205d3617f59fd6..ae99a37c3abede5e26d0acb0c9ffae3957f53bf8 100644 (file)
@@ -171,7 +171,8 @@ static void look_str_cb(int nid, STACK_OF(ENGINE) *sk, ENGINE *def, void *arg)
         ENGINE *e = sk_ENGINE_value(sk, i);
         EVP_PKEY_ASN1_METHOD *ameth;
         e->pkey_asn1_meths(e, &ameth, NULL, nid);
-        if (((int)strlen(ameth->pem_str) == lk->len)
+        if (ameth != NULL
+                && ((int)strlen(ameth->pem_str) == lk->len)
                 && strncasecmp(ameth->pem_str, lk->str, lk->len) == 0) {
             lk->e = e;
             lk->ameth = ameth;