From e4d1558aa2c1c04a05066ee8600f37603890ba8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20R=C3=BChsen?= Date: Wed, 9 Jan 2019 14:36:16 +0100 Subject: [PATCH] idn2_to_ascii_4i(): Restrict output length to 63 --- lib/lookup.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/lookup.c b/lib/lookup.c index 7c5b52bb..cc918d95 100644 --- a/lib/lookup.c +++ b/lib/lookup.c @@ -617,10 +617,18 @@ idn2_to_ascii_4i (const uint32_t * input, size_t inlen, char * output, int flags * char * out output zero terminated string that must have room for at * least 63 characters plus the terminating zero. */ + size_t len = strlen ((char *) output_u8); + + if (len > 63) + { + free (output_u8); + return IDN2_TOO_BIG_DOMAIN; + } + if (output) - strcpy (output, (const char *) output_u8); + strcpy (output, (char *) output_u8); - free(output_u8); + free (output_u8); } return rc; -- 2.22.0