OpenSSL: Fix OpenSSL 1.1.0 DH operation

Commit 49fe2ada20 ('OpenSSL: Support
OpenSSL 1.1.0 DH opacity') started using the new accessor functions, but
used incorrect success check for the DH_set0_key() call. This resulted
in dh5_init_fixed() failures and double-free on error path if the build
was linked against OpenSSL 1.1.0. Fix this by checking DH_set0_key()
return value to be 1 for the success case.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2016-07-15 11:36:31 +03:00
parent ec9812e7e7
commit 460e5cdf43

View file

@ -754,7 +754,7 @@ err:
priv_key = BN_bin2bn(wpabuf_head(priv), wpabuf_len(priv), NULL); priv_key = BN_bin2bn(wpabuf_head(priv), wpabuf_len(priv), NULL);
pub_key = BN_bin2bn(wpabuf_head(publ), wpabuf_len(publ), NULL); pub_key = BN_bin2bn(wpabuf_head(publ), wpabuf_len(publ), NULL);
if (!priv_key || !pub_key || DH_set0_key(dh, pub_key, priv_key) != 0) if (!priv_key || !pub_key || DH_set0_key(dh, pub_key, priv_key) != 1)
goto err; goto err;
pub_key = NULL; pub_key = NULL;
priv_key = NULL; priv_key = NULL;