From cff82a1384a7c3837e7fecbf740e0897e53a0894 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Fri, 22 Dec 2023 15:44:56 +0100 Subject: [PATCH] utf8: Handle `NULL` inputs gracefully. --- src/utils/utf8/utf8.c | 4 ++++ src/utils/utf8/utf8_test.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/utils/utf8/utf8.c b/src/utils/utf8/utf8.c index e00770cc0..9530ad5b9 100644 --- a/src/utils/utf8/utf8.c +++ b/src/utils/utf8/utf8.c @@ -52,6 +52,10 @@ static uint32_t decode(uint32_t state, uint32_t byte) { } bool utf8_valid(char const *s) { + if (s == NULL) { + return false; + } + uint32_t state = 0; for (size_t i = 0; s[i] != 0; i++) { state = decode(state, (uint8_t)s[i]); diff --git a/src/utils/utf8/utf8_test.c b/src/utils/utf8/utf8_test.c index dc9197ddd..c90705c0f 100644 --- a/src/utils/utf8/utf8_test.c +++ b/src/utils/utf8/utf8_test.c @@ -41,6 +41,11 @@ DEF_TEST(utf8_valid) { .input = "", .want = true, }, + { + .name = "null string", + .input = NULL, + .want = false, + }, { .name = "The greek work \"kosme\"", .input = (char[]){0xce, 0xba, 0xe1, 0xbd, 0xb9, 0xcf, 0x83, 0xce, -- 2.47.3