summaryrefslogtreecommitdiff
path: root/src/lib/string.c
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-10-04 17:04:28 +0000
committerpeter <peter@pmikkelsen.com>2026-10-04 17:04:28 +0000
commitc5a489d7f82535a70488dd4f9e40e79f32a7fb2f (patch)
tree3f6e214b395d9655e054508128fcf373a6dfd39b /src/lib/string.c
parentb66229d60635784ed289dd9bf0058f5c165ca8b5 (diff)
Fix the crashes found by the fuzzer so far.
I really need to think of a better way to store those crash inputs. FossilOrigin-Name: a8b84fbc85ec0b472aca930d2d0af27949b39940317114cc37d37044bf1975d5
Diffstat (limited to 'src/lib/string.c')
-rw-r--r--src/lib/string.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/string.c b/src/lib/string.c
index 4101b80..0c01fca 100644
--- a/src/lib/string.c
+++ b/src/lib/string.c
@@ -104,6 +104,10 @@ string_char(struct string *string, size_t offset)
uint32_t c;
size_t len, i;
+ assert(offset <= string->bytes);
+ if(offset == string->bytes)
+ return INVALID_CHAR;
+
c = 0;
len = char_length(string, offset);
switch(char_length(string, offset)){
@@ -134,8 +138,8 @@ char_length(struct string *string, size_t offset)
{
uint8_t b;
- if(offset >= string->bytes)
- return 0;
+ assert(offset < string->bytes);
+
b = string->utf8[offset];
assert(!((b & 0xC0) == 0x80));