From: Florian Forster Date: Fri, 22 Dec 2023 14:44:56 +0000 (+0100) Subject: utf8: Handle `NULL` inputs gracefully. X-Git-Tag: 6.0.0-rc0~22^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cff82a1384a7c3837e7fecbf740e0897e53a0894;p=thirdparty%2Fcollectd.git utf8: Handle `NULL` inputs gracefully. --- 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,