Stop raising ERR_R_MALLOC_FAILURE in most places
[openssl.git] / crypto / ec / ecx_key.c
index 8cf7f1708cc954d9af2063bd9156da1fb025f582..548e49091d9281dc6cb437d8d1c8019fd97fb39d 100644 (file)
@@ -51,11 +51,16 @@ ECX_KEY *ossl_ecx_key_new(OSSL_LIB_CTX *libctx, ECX_KEY_TYPE type, int haspubkey
     }
 
     ret->lock = CRYPTO_THREAD_lock_new();
-    if (ret->lock == NULL)
+    if (ret->lock == NULL) {
+        ERR_raise(ERR_LIB_EC, ERR_R_CRYPTO_LIB);
         goto err;
+    }
     return ret;
 err:
-    ERR_raise(ERR_LIB_EC, ERR_R_MALLOC_FAILURE);
+    if (ret != NULL) {
+        OPENSSL_free(ret->propq);
+        CRYPTO_THREAD_lock_free(ret->lock);
+    }
     OPENSSL_free(ret);
     return NULL;
 }