From 3ba5240756df606bceab61f863da5287f89ce695 Mon Sep 17 00:00:00 2001 From: random human Date: Wed, 05 Sep 2018 17:15:20 +0530 Subject: [PATCH] Handle size 5 or 6 resulting in stack smashing --- src/utf8_fgetch.c | 6 ++++++ diff --git a/src/utf8_fgetch.c b/src/utf8_fgetch.c index 8fafa55b318ec7f2870d176bc0b9aa26bac32165..d00a79224e1cfaa23bbd02bb40f925229935006e 100644 --- a/src/utf8_fgetch.c +++ b/src/utf8_fgetch.c @@ -10,6 +10,12 @@ return UTF8_INVALID; } buffer[0] = (char)c; int size = utf8_size(buffer); + + if (size > UTF8_MAX_SIZE) { + fseek(f, size - 1, SEEK_CUR); + return UTF8_INVALID; + } + if (size > 1) { int amt = fread(&buffer[1], 1, size - 1, f); if (amt != size - 1) { -- 2.48.1