wolfcrypt/src/dh.c: fix benign uses of uninited var in wc_DhAgree_Sync(), introduced in #5782 -- see oss-fuzz #53177.

This commit is contained in:
Daniel Pouzzner
2022-11-11 08:51:17 -06:00
parent 7887576032
commit 3bfff3bfc5

View File

@ -2038,7 +2038,9 @@ static int wc_DhAgree_Sync(DhKey* key, byte* agree, word32* agreeSz,
RESTORE_VECTOR_REGISTERS();
/* make sure agree is > 1 (SP800-56A, 5.7.1.1) */
if ((*agreeSz == 0) || ((*agreeSz == 1) && (agree[0] == 1))) {
if ((ret == 0) &&
((*agreeSz == 0) || ((*agreeSz == 1) && (agree[0] == 1))))
{
ret = MP_VAL;
}
@ -2070,7 +2072,9 @@ static int wc_DhAgree_Sync(DhKey* key, byte* agree, word32* agreeSz,
RESTORE_VECTOR_REGISTERS();
/* make sure agree is > 1 (SP800-56A, 5.7.1.1) */
if ((*agreeSz == 0) || ((*agreeSz == 1) && (agree[0] == 1))) {
if ((ret == 0) &&
((*agreeSz == 0) || ((*agreeSz == 1) && (agree[0] == 1))))
{
ret = MP_VAL;
}
@ -2102,7 +2106,9 @@ static int wc_DhAgree_Sync(DhKey* key, byte* agree, word32* agreeSz,
RESTORE_VECTOR_REGISTERS();
/* make sure agree is > 1 (SP800-56A, 5.7.1.1) */
if ((*agreeSz == 0) || ((*agreeSz == 1) && (agree[0] == 1))) {
if ((ret == 0) &&
((*agreeSz == 0) || ((*agreeSz == 1) && (agree[0] == 1))))
{
ret = MP_VAL;
}