diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2019-12-22 19:19:56 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2019-12-22 19:23:25 +1300 |
commit | 5fb185fecc64806a772c2ad3956ecc903c508e0c (patch) | |
tree | 9c045b6974bc318a3f138d83531469e2c7f674d3 | |
parent | Merge branch 'release/v1.2.0' (diff) | |
download | wtf8-5fb185fecc64806a772c2ad3956ecc903c508e0c.tar.gz wtf8-5fb185fecc64806a772c2ad3956ecc903c508e0c.zip |
Bounds checking on character byte walk
-rw-r--r-- | wtf8.c | 4 | ||||
-rw-r--r-- | wtf8.h | 1 |
2 files changed, 3 insertions, 2 deletions
@@ -35,7 +35,7 @@ void print_characters(char *s) { /* * We need a short counter to find how long each character is */ - int c; + unsigned char c; /* * Iterate through the string @@ -46,7 +46,7 @@ void print_characters(char *s) { * Print blanks and increment a counter until we find how long this * character is */ - for (c = 1; is_utf8_cont(s[c]); c++) + for (c = 1; is_utf8_cont(s[c]) && c <= UCHAR_MAX; c++) printf(" "); /* @@ -1,3 +1,4 @@ +#include <limits.h> #include <stdio.h> #include <stdlib.h> |