DH_check_pub_key_ex was accidentally calling DH_check,
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Fri, 6 Sep 2019 22:58:31 +0000 (00:58 +0200)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 9 Sep 2019 12:46:30 +0000 (14:46 +0200)
so results were undefined.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9796)

(cherry picked from commit 2b95e8efcf8b99892106070d9ac745a0a369f503)

crypto/dh/dh_check.c

index 6d81101e9d0c668d319a775429e73aedb6ea44dc..d13d8206ce50930662a08904c1e9b0ea3d1b467b 100644 (file)
@@ -164,7 +164,8 @@ int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
 {
     int errflags = 0;
 
-    (void)DH_check(dh, &errflags);
+    if (!DH_check_pub_key(dh, pub_key, &errflags))
+        return 0;
 
     if ((errflags & DH_CHECK_PUBKEY_TOO_SMALL) != 0)
         DHerr(DH_F_DH_CHECK_PUB_KEY_EX, DH_R_CHECK_PUBKEY_TOO_SMALL);