Fix an assertion (and a comment) of evp_method_id()
authorDr. Matthias St. Pierre <matthias.st.pierre@ncp-e.com>
Mon, 13 Apr 2020 22:12:48 +0000 (00:12 +0200)
committerDr. Matthias St. Pierre <matthias.st.pierre@ncp-e.com>
Mon, 20 Apr 2020 05:30:25 +0000 (07:30 +0200)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11542)

crypto/evp/evp_fetch.c

index e808bf818fa3dd60510b1b46411a1492afdd3d69..954ddb685c85ffc710512dcbba558972b424eaab 100644 (file)
@@ -73,8 +73,8 @@ static OSSL_METHOD_STORE *get_evp_method_store(OPENSSL_CTX *libctx)
 }
 
 /*
- * To identity the method in the EVP method store, we mix the name identity
- * with the operation identity, with the assumption that we don't have more
+ * To identify the method in the EVP method store, we mix the name identity
+ * with the operation identity, under the assumption that we don't have more
  * than 2^24 names or more than 2^8 operation types.
  *
  * The resulting identity is a 32-bit integer, composed like this:
@@ -85,8 +85,8 @@ static OSSL_METHOD_STORE *get_evp_method_store(OPENSSL_CTX *libctx)
  */
 static uint32_t evp_method_id(unsigned int operation_id, int name_id)
 {
-    if (!ossl_assert(name_id < (1 << 24) || operation_id < (1 << 8))
-        || !ossl_assert(name_id > 0 && operation_id > 0))
+    if (!ossl_assert(name_id > 0 && name_id < (1 << 24))
+        || !ossl_assert(operation_id > 0 && operation_id < (1 << 8)))
         return 0;
     return ((name_id << 8) & 0xFFFFFF00) | (operation_id & 0x000000FF);
 }