aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2024-03-19 10:49:34 -0500
committerDenis Kenzior <denkenz@gmail.com>2024-03-19 10:55:07 -0500
commit57fcbf80bff6fdbf10b21bd4d3f3e282f14599b9 (patch)
treeac63090796f10c8b2cf972fd7f78cbfc075834cb
parentf50fb9d1c21c6598497b7fe197f62e32a3314255 (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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ell/utf8.c b/ell/utf8.c
index 5bf6b070..f230176a 100644
--- a/ell/utf8.c
+++ b/ell/utf8.c
@@ -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';