ENGINE_pkey_asn1_find_str(): don't assume an engine implements ASN1 method
[openssl.git] / crypto / engine / tb_asnmth.c
index a1a9b88c43c8375dd147a17c4ed587502315ec32..59e4ebf762c8c31762acb9d9fc80ddac682255a7 100644 (file)
@@ -215,7 +215,7 @@ 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)) {
             lk->e = e;
             lk->ameth = ameth;