diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index fdc363d9c..4ab62a189 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -10696,13 +10696,13 @@ int GetSerialNumber(const byte* input, word32* inOutIdx, if (ret != 0) return ret; - if (*serialSz > EXTERNAL_SERIAL_SIZE) { + if (*serialSz > EXTERNAL_SERIAL_SIZE || *serialSz <= 0) { WOLFSSL_MSG("Serial size bad"); return ASN_PARSE_E; } /* return serial */ - XMEMCPY(serial, &input[*inOutIdx], *serialSz); + XMEMCPY(serial, &input[*inOutIdx], (size_t)*serialSz); *inOutIdx += *serialSz; return result;