From 8a4750f4fed8f26ff703bbca7fff9c99e738c813 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 31 May 2025 22:52:13 -0700 Subject: [PATCH] Util: Make the length parameter for utf8Char nullable --- src/util/string.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/util/string.c b/src/util/string.c index 4a9e35de5..7d1b92c59 100644 --- a/src/util/string.c +++ b/src/util/string.c @@ -124,11 +124,13 @@ static const uint8_t _utf8len[0x40] = { }; uint32_t utf8Char(const char** unicode, size_t* length) { - if (*length == 0) { + if (length && *length == 0) { return 0; } unsigned char byte = **unicode; - --*length; + if (length) { + --*length; + } ++*unicode; if (!(byte & 0x80)) { return byte; @@ -140,7 +142,7 @@ uint32_t utf8Char(const char** unicode, size_t* length) { if (numBytes == 0) { return 0xFFFD; } - if (*length + 1 < numBytes) { + if (length && *length + 1 < numBytes) { *length = 0; return 0xFFFD; } @@ -148,7 +150,9 @@ uint32_t utf8Char(const char** unicode, size_t* length) { for (i = 1; i < numBytes; ++i) { unichar <<= 6; byte = **unicode; - --*length; + if (length) { + --*length; + } ++*unicode; if ((byte & 0xC0) != 0x80) { return 0;