From ca2df4878c2539c6a66553df182758a01ebcdcb8 Mon Sep 17 00:00:00 2001 From: q66 Date: Fri, 15 Dec 2023 23:09:31 +0100 Subject: Move wctomb to stdlib.h and disable it for now --- include/stdlib.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'include/stdlib.h') diff --git a/include/stdlib.h b/include/stdlib.h index 6081170..4b47297 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -59,6 +59,24 @@ _FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s, return __orig_wcstombs(__s, __ws, __n); } +#if 0 +/* https://github.com/jvoisin/fortify-headers/issues/24 */ +#ifdef MB_CUR_MAX +#undef wctomb +#if __has_builtin(__builtin_wctomb) +__diagnose_as_builtin(__builtin_wctomb, 1, 2) +#endif +_FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w) +{ + __fh_size_t __b = __bos(__s, 0); + + if (__s && 16 > __b && MB_CUR_MAX > __b) + __builtin_trap(); + return __orig_wctomb(__s, __w); +} +#endif // MB_CUR_MAX +#endif + #undef qsort #if __has_builtin(__builtin_qsort) __diagnose_as_builtin(__builtin_qsort, 1, 2, 3, 4) -- cgit v1.3