x509write_crt: reject serial longer than X509_RFC5280_MAX_SERIAL_LEN
Signed-off-by: Valerio Setti <vsetti@baylibre.com>
diff --git a/library/x509write_crt.c b/library/x509write_crt.c
index 4a65939..a8f4c28 100644
--- a/library/x509write_crt.c
+++ b/library/x509write_crt.c
@@ -100,6 +100,10 @@
{
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+ if (mbedtls_mpi_size(serial) > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) {
+ return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
+ }
+
if ((ret = mbedtls_mpi_copy(&ctx->serial, serial)) != 0) {
return ret;
}