diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 332ba7023..44d56fe4b 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -4156,8 +4156,10 @@ int wc_DsaKeyToDer(DsaKey* key, byte* output, word32 inLen) seqSz = SetSequence(verSz + intTotalLen, seq); outLen = seqSz + verSz + intTotalLen; - if (outLen > (int)inLen) + if (outLen > (int)inLen) { + FreeTmpDsas(tmps, key->heap); return BAD_FUNC_ARG; + } /* write to output */ XMEMCPY(output, seq, seqSz);