mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-01 19:54:40 +02:00
Merge pull request #4569 from masap/i386-segfault
dsa.c: fix error-path mp_clear()s on uninitialized mp_ints in wc_DsaSign() and wc_DsaVerify().
This commit is contained in:
@@ -664,14 +664,12 @@ int wc_DsaSign(const byte* digest, byte* out, DsaKey* key, WC_RNG* rng)
|
|||||||
int ret = 0, halfSz = 0;
|
int ret = 0, halfSz = 0;
|
||||||
byte* tmp; /* initial output pointer */
|
byte* tmp; /* initial output pointer */
|
||||||
|
|
||||||
|
if (digest == NULL || out == NULL || key == NULL || rng == NULL)
|
||||||
|
return BAD_FUNC_ARG;
|
||||||
|
|
||||||
SAVE_VECTOR_REGISTERS(return _svr_ret;);
|
SAVE_VECTOR_REGISTERS(return _svr_ret;);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (digest == NULL || out == NULL || key == NULL || rng == NULL) {
|
|
||||||
ret = BAD_FUNC_ARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
k = (mp_int *)XMALLOC(sizeof *k, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
k = (mp_int *)XMALLOC(sizeof *k, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
kInv = (mp_int *)XMALLOC(sizeof *kInv, key->heap,
|
kInv = (mp_int *)XMALLOC(sizeof *kInv, key->heap,
|
||||||
@@ -997,12 +995,10 @@ int wc_DsaVerify(const byte* digest, const byte* sig, DsaKey* key, int* answer)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
int qSz;
|
int qSz;
|
||||||
|
|
||||||
do {
|
if (digest == NULL || sig == NULL || key == NULL || answer == NULL)
|
||||||
if (digest == NULL || sig == NULL || key == NULL || answer == NULL) {
|
return BAD_FUNC_ARG;
|
||||||
ret = BAD_FUNC_ARG;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
do {
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
w = (mp_int *)XMALLOC(sizeof *w, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
w = (mp_int *)XMALLOC(sizeof *w, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
u1 = (mp_int *)XMALLOC(sizeof *u1, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
u1 = (mp_int *)XMALLOC(sizeof *u1, key->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
Reference in New Issue
Block a user