summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/wchar.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/wchar.h b/include/wchar.h
index 07ab119..4d329a8 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -150,6 +150,17 @@ __fortify_wcstombs(char *s, const wchar_t *ws, size_t n)
150} 150}
151 151
152static inline __attribute__ ((always_inline)) 152static inline __attribute__ ((always_inline))
153int
154__fortify_wctomb(char *s, wchar_t wc)
155{
156 size_t bos = __builtin_object_size(s, 0);
157
158 if (MB_CUR_MAX > bos)
159 __builtin_trap();
160 return wctomb(s, wc);
161}
162
163static inline __attribute__ ((always_inline))
153wchar_t * 164wchar_t *
154__fortify_wmemcpy(wchar_t *d, const wchar_t *s, size_t n) 165__fortify_wmemcpy(wchar_t *d, const wchar_t *s, size_t n)
155{ 166{
@@ -206,6 +217,8 @@ __fortify_wmemset(wchar_t *s, wchar_t c, size_t n)
206#define wcsrtombs(d, s, n, st) __fortify_wcsrtombs(d, s, n, st) 217#define wcsrtombs(d, s, n, st) __fortify_wcsrtombs(d, s, n, st)
207#undef wcstombs 218#undef wcstombs
208#define wcstombs(s, ws, n) __fortify_wcstombs(s, ws, n) 219#define wcstombs(s, ws, n) __fortify_wcstombs(s, ws, n)
220#undef wctomb
221#define wctomb(s, wc) __fortify_wctomb(s, wc)
209#undef wmemcpy 222#undef wmemcpy
210#define wmemcpy(d, s, n) __fortify_wmemcpy(d, s, n) 223#define wmemcpy(d, s, n) __fortify_wmemcpy(d, s, n)
211#undef wmemmove 224#undef wmemmove