params_dup: fix off by one error that allows array overreach.

The end of loop test allows the index to go one step too far to be able to
terminate the param array but the end of list record is still added.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14922)
This commit is contained in:
Pauli 2021-04-19 09:50:52 +10:00
parent 1c0eede982
commit 4ecb19d109

View File

@ -147,8 +147,8 @@ static int compare_params(const void *left, const void *right)
OSSL_PARAM *OSSL_PARAM_merge(const OSSL_PARAM *p1, const OSSL_PARAM *p2)
{
const OSSL_PARAM *list1[OSSL_PARAM_MERGE_LIST_MAX];
const OSSL_PARAM *list2[OSSL_PARAM_MERGE_LIST_MAX];
const OSSL_PARAM *list1[OSSL_PARAM_MERGE_LIST_MAX + 1];
const OSSL_PARAM *list2[OSSL_PARAM_MERGE_LIST_MAX + 1];
const OSSL_PARAM *p = NULL;
const OSSL_PARAM **p1cur, **p2cur;
OSSL_PARAM *params, *dst;