diff options
author | Denis Kenzior <denkenz@gmail.com> | 2024-03-19 10:49:34 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2024-03-19 10:55:07 -0500 |
commit | 57fcbf80bff6fdbf10b21bd4d3f3e282f14599b9 (patch) | |
tree | ac63090796f10c8b2cf972fd7f78cbfc075834cb | |
parent | f50fb9d1c21c6598497b7fe197f62e32a3314255 (diff) |
utf8: Do not use strlen when size is provided
The intent of passing a positive len was to limit the number of bytes
accessed in cases where input is not NULL terminated.
Fixes: d8a703340f1e ("utf8: Add l_ascii_strdown")
Fixes: 86c28534cd47 ("utf8: Add l_ascii_strup")
-rw-r--r-- | ell/utf8.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -63,11 +63,11 @@ LIB_EXPORT char *l_ascii_strdown(const char *str, ssize_t len) if (len < 0) slen = strlen(str); else - slen = minsize(strlen(str), (size_t) len); + slen = len; ret = l_malloc(slen + 1); - for (i = 0; i < slen; i++) + for (i = 0; i < slen && str[i]; i++) ret[i] = l_ascii_tolower(str[i]); ret[i] = '\0'; @@ -95,11 +95,11 @@ LIB_EXPORT char *l_ascii_strup(const char *str, ssize_t len) if (len < 0) slen = strlen(str); else - slen = minsize(strlen(str), (size_t) len); + slen = len; ret = l_malloc(slen + 1); - for (i = 0; i < slen; i++) + for (i = 0; i < slen && str[i]; i++) ret[i] = l_ascii_toupper(str[i]); ret[i] = '\0'; |