[Toybox] [PATCH] nuke wcrtomb()
Jarno Mäkipää
jmakip87 at gmail.com
Thu Apr 11 01:37:16 PDT 2024
there is slight difference between wctoutf8 and wcrtomb, wcrtomb
returns -1 if its presented with non valid char, of its char is not
presentable on current locale. I think wctoutf8 only returns positive
integers.
so your patch to strlower for example might introduce unreachable code path.
diff --git a/lib/lib.c b/lib/lib.c
index 6a4a77dd..79ae2a1d 100644
--- a/lib/lib.c
+++ b/lib/lib.c
@@ -426,7 +426,7 @@ char *strlower(char *s)
// if we had a valid utf8 sequence, convert it to lower case, and can't
// encode back to utf8, something is wrong with your libc. But just
// in case somebody finds an exploit...
- len = wcrtomb(new, c, 0);
+ len = wctoutf8(new, c);
if (len < 1) error_exit("bad utf8 %x", (int)c);
new += len;
On Wed, Apr 10, 2024 at 12:54 AM Oliver Webb via Toybox
<toybox at lists.landley.net> wrote:
>
> Not pulling in 2 localization functions (One from libc, one from lib.c) reduces executable
> size, also more portable on glibc systems because locale installation nonsense. No
> typecasting to int's either.
>
> 15 bytes saved in bloatcheck. tests pass for everything with changes applied (Except the shell).
>
> - Oliver Webb <aquahobbyist at proton.me>
> _______________________________________________
> Toybox mailing list
> Toybox at lists.landley.net
> http://lists.landley.net/listinfo.cgi/toybox-landley.net
-Jarno
More information about the Toybox
mailing list