Handle size 5 or 6 resulting in stack smashing

master
random human 7 years ago committed by Drew DeVault
parent f131a31f64
commit 3ba5240756
  1. 6
      src/utf8_fgetch.c

@ -10,6 +10,12 @@ uint32_t utf8_fgetch(FILE *f) {
} }
buffer[0] = (char)c; buffer[0] = (char)c;
int size = utf8_size(buffer); int size = utf8_size(buffer);
if (size > UTF8_MAX_SIZE) {
fseek(f, size - 1, SEEK_CUR);
return UTF8_INVALID;
}
if (size > 1) { if (size > 1) {
int amt = fread(&buffer[1], 1, size - 1, f); int amt = fread(&buffer[1], 1, size - 1, f);
if (amt != size - 1) { if (amt != size - 1) {

Loading…
Cancel
Save