diff options
| author | jvoisin | 2023-03-18 14:01:02 +0100 |
|---|---|---|
| committer | jvoisin | 2023-04-13 23:48:57 +0200 |
| commit | 3e6704d0be707487d7a9dccfdc75203c7261e11b (patch) | |
| tree | cd04ae414fa7ef646a31f767b9295946fd2c9987 /include | |
| parent | e3fee64643279c144efd3d6856ed4e818c0d5ca2 (diff) | |
Make use of __builtin_dynamic_object_size
GCC and Clang provide __builtin_dynamic_object_size
(see documentation: https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html),
so we should make use of it when its available.
Diffstat (limited to 'include')
| -rw-r--r-- | include/fortify-headers.h | 8 | ||||
| -rw-r--r-- | include/poll.h | 4 | ||||
| -rw-r--r-- | include/stdio.h | 14 | ||||
| -rw-r--r-- | include/stdlib.h | 4 | ||||
| -rw-r--r-- | include/string.h | 30 | ||||
| -rw-r--r-- | include/strings.h | 6 | ||||
| -rw-r--r-- | include/sys/select.h | 4 | ||||
| -rw-r--r-- | include/sys/socket.h | 8 | ||||
| -rw-r--r-- | include/unistd.h | 24 | ||||
| -rw-r--r-- | include/wchar.h | 34 |
10 files changed, 72 insertions, 64 deletions
diff --git a/include/fortify-headers.h b/include/fortify-headers.h index 4de5bef..a37cd4a 100644 --- a/include/fortify-headers.h +++ b/include/fortify-headers.h | |||
| @@ -21,4 +21,12 @@ | |||
| 21 | #define _FORTIFY_FN(fn) _FORTIFY_ORIG(__USER_LABEL_PREFIX__,fn); \ | 21 | #define _FORTIFY_FN(fn) _FORTIFY_ORIG(__USER_LABEL_PREFIX__,fn); \ |
| 22 | extern __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__)) | 22 | extern __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__)) |
| 23 | 23 | ||
| 24 | |||
| 25 | /* Use __builtin_dynamic_object_size with _FORTIFY_SOURCE>2, if available. */ | ||
| 26 | #if _FORTIFY_SOURCE > 2 && defined __has_builtin && __has_builtin (__builtin_dynamic_object_size) | ||
| 27 | #define __bos(ptr, type) __builtin_dynamic_object_size (ptr, type) | ||
| 28 | #else | ||
| 29 | #define __bos(ptr, type) __builtin_object_size (ptr, type) | ||
| 30 | #endif | ||
| 31 | |||
| 24 | #endif | 32 | #endif |
diff --git a/include/poll.h b/include/poll.h index 24691f1..cf1b9e5 100644 --- a/include/poll.h +++ b/include/poll.h | |||
| @@ -32,7 +32,7 @@ extern "C" { | |||
| 32 | 32 | ||
| 33 | _FORTIFY_FN(poll) int poll(struct pollfd *__f, nfds_t __n, int __s) | 33 | _FORTIFY_FN(poll) int poll(struct pollfd *__f, nfds_t __n, int __s) |
| 34 | { | 34 | { |
| 35 | __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0); | 35 | __typeof__(sizeof 0) __b = __bos(__f, 0); |
| 36 | 36 | ||
| 37 | if (__n > __b / sizeof(struct pollfd)) | 37 | if (__n > __b / sizeof(struct pollfd)) |
| 38 | __builtin_trap(); | 38 | __builtin_trap(); |
| @@ -44,7 +44,7 @@ _FORTIFY_FN(poll) int poll(struct pollfd *__f, nfds_t __n, int __s) | |||
| 44 | _FORTIFY_FN(ppoll) int ppoll(struct pollfd *__f, nfds_t __n, const struct timespec *__s, | 44 | _FORTIFY_FN(ppoll) int ppoll(struct pollfd *__f, nfds_t __n, const struct timespec *__s, |
| 45 | const sigset_t *__m) | 45 | const sigset_t *__m) |
| 46 | { | 46 | { |
| 47 | __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0); | 47 | __typeof__(sizeof 0) __b = __bos(__f, 0); |
| 48 | 48 | ||
| 49 | if (__n > __b / sizeof(struct pollfd)) | 49 | if (__n > __b / sizeof(struct pollfd)) |
| 50 | __builtin_trap(); | 50 | __builtin_trap(); |
diff --git a/include/stdio.h b/include/stdio.h index a965184..1eb20be 100644 --- a/include/stdio.h +++ b/include/stdio.h | |||
| @@ -38,7 +38,7 @@ extern "C" { | |||
| 38 | 38 | ||
| 39 | _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) | 39 | _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) |
| 40 | { | 40 | { |
| 41 | size_t __b = __builtin_object_size(__s, 0); | 41 | size_t __b = __bos(__s, 0); |
| 42 | 42 | ||
| 43 | if ((size_t)__n > __b) | 43 | if ((size_t)__n > __b) |
| 44 | __builtin_trap(); | 44 | __builtin_trap(); |
| @@ -47,7 +47,7 @@ _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) | |||
| 47 | 47 | ||
| 48 | _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) | 48 | _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) |
| 49 | { | 49 | { |
| 50 | size_t __b = __builtin_object_size(__d, 0); | 50 | size_t __b = __bos(__d, 0); |
| 51 | 51 | ||
| 52 | if (__n != 0 && (__n * __m) / __n != __m) | 52 | if (__n != 0 && (__n * __m) / __n != __m) |
| 53 | __builtin_trap(); | 53 | __builtin_trap(); |
| @@ -58,7 +58,7 @@ _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) | |||
| 58 | 58 | ||
| 59 | _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE *__f) | 59 | _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE *__f) |
| 60 | { | 60 | { |
| 61 | size_t __b = __builtin_object_size(__d, 0); | 61 | size_t __b = __bos(__d, 0); |
| 62 | 62 | ||
| 63 | if (__n != 0 && (__n * __m) / __n != __m) | 63 | if (__n != 0 && (__n * __m) / __n != __m) |
| 64 | __builtin_trap(); | 64 | __builtin_trap(); |
| @@ -70,7 +70,7 @@ _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE | |||
| 70 | _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, | 70 | _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, |
| 71 | __builtin_va_list __v) | 71 | __builtin_va_list __v) |
| 72 | { | 72 | { |
| 73 | size_t __b = __builtin_object_size(__s, 0); | 73 | size_t __b = __bos(__s, 0); |
| 74 | 74 | ||
| 75 | if (__n > __b) | 75 | if (__n > __b) |
| 76 | __builtin_trap(); | 76 | __builtin_trap(); |
| @@ -79,7 +79,7 @@ _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, | |||
| 79 | 79 | ||
| 80 | _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list __v) | 80 | _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list __v) |
| 81 | { | 81 | { |
| 82 | size_t __b = __builtin_object_size(__s, 0); | 82 | size_t __b = __bos(__s, 0); |
| 83 | int __r; | 83 | int __r; |
| 84 | 84 | ||
| 85 | if (__b != (size_t)-1) { | 85 | if (__b != (size_t)-1) { |
| @@ -94,7 +94,7 @@ _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list | |||
| 94 | 94 | ||
| 95 | _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) | 95 | _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) |
| 96 | { | 96 | { |
| 97 | size_t __b = __builtin_object_size(__s, 0); | 97 | size_t __b = __bos(__s, 0); |
| 98 | 98 | ||
| 99 | if (__n > __b) | 99 | if (__n > __b) |
| 100 | __builtin_trap(); | 100 | __builtin_trap(); |
| @@ -103,7 +103,7 @@ _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) | |||
| 103 | 103 | ||
| 104 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) | 104 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) |
| 105 | { | 105 | { |
| 106 | size_t __b = __builtin_object_size(__s, 0); | 106 | size_t __b = __bos(__s, 0); |
| 107 | int __r; | 107 | int __r; |
| 108 | 108 | ||
| 109 | if (__b != (size_t)-1) { | 109 | if (__b != (size_t)-1) { |
diff --git a/include/stdlib.h b/include/stdlib.h index 11155cf..8642e83 100644 --- a/include/stdlib.h +++ b/include/stdlib.h | |||
| @@ -42,7 +42,7 @@ _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r) | |||
| 42 | #ifndef PATH_MAX | 42 | #ifndef PATH_MAX |
| 43 | #error PATH_MAX unset. A fortified realpath will not work. | 43 | #error PATH_MAX unset. A fortified realpath will not work. |
| 44 | #else | 44 | #else |
| 45 | if (__r && PATH_MAX > __builtin_object_size(__r, 2)) { | 45 | if (__r && PATH_MAX > __bos(__r, 2)) { |
| 46 | char __buf[PATH_MAX], *__ret; | 46 | char __buf[PATH_MAX], *__ret; |
| 47 | size_t __l; | 47 | size_t __l; |
| 48 | 48 | ||
| @@ -50,7 +50,7 @@ _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r) | |||
| 50 | if (!__ret) | 50 | if (!__ret) |
| 51 | return NULL; | 51 | return NULL; |
| 52 | __l = __builtin_strlen(__ret) + 1; | 52 | __l = __builtin_strlen(__ret) + 1; |
| 53 | if (__l > __builtin_object_size(__r, 0)) | 53 | if (__l > __bos(__r, 0)) |
| 54 | __builtin_trap(); | 54 | __builtin_trap(); |
| 55 | __builtin_memcpy(__r, __ret, __l); | 55 | __builtin_memcpy(__r, __ret, __l); |
| 56 | return __r; | 56 | return __r; |
diff --git a/include/string.h b/include/string.h index 66c23e1..f08eb4c 100644 --- a/include/string.h +++ b/include/string.h | |||
| @@ -38,8 +38,8 @@ extern "C" { | |||
| 38 | 38 | ||
| 39 | _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n) | 39 | _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n) |
| 40 | { | 40 | { |
| 41 | size_t __bd = __builtin_object_size(__od, 0); | 41 | size_t __bd = __bos(__od, 0); |
| 42 | size_t __bs = __builtin_object_size(__os, 0); | 42 | size_t __bs = __bos(__os, 0); |
| 43 | char *__d = (char *)__od; | 43 | char *__d = (char *)__od; |
| 44 | const char *__s = (const char *)__os; | 44 | const char *__s = (const char *)__os; |
| 45 | 45 | ||
| @@ -55,8 +55,8 @@ _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n) | |||
| 55 | 55 | ||
| 56 | _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n) | 56 | _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n) |
| 57 | { | 57 | { |
| 58 | size_t __bd = __builtin_object_size(__d, 0); | 58 | size_t __bd = __bos(__d, 0); |
| 59 | size_t __bs = __builtin_object_size(__s, 0); | 59 | size_t __bs = __bos(__s, 0); |
| 60 | 60 | ||
| 61 | if (__n > __bd || __n > __bs) | 61 | if (__n > __bd || __n > __bs) |
| 62 | __builtin_trap(); | 62 | __builtin_trap(); |
| @@ -65,7 +65,7 @@ _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n) | |||
| 65 | 65 | ||
| 66 | _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n) | 66 | _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n) |
| 67 | { | 67 | { |
| 68 | size_t __b = __builtin_object_size(__d, 0); | 68 | size_t __b = __bos(__d, 0); |
| 69 | 69 | ||
| 70 | if (__n > __b) | 70 | if (__n > __b) |
| 71 | __builtin_trap(); | 71 | __builtin_trap(); |
| @@ -78,7 +78,7 @@ _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n) | |||
| 78 | #undef stpcpy | 78 | #undef stpcpy |
| 79 | _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s) | 79 | _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s) |
| 80 | { | 80 | { |
| 81 | size_t __b = __builtin_object_size(__d, 0); | 81 | size_t __b = __bos(__d, 0); |
| 82 | 82 | ||
| 83 | if (strlen(__s) + 1 > __b) | 83 | if (strlen(__s) + 1 > __b) |
| 84 | __builtin_trap(); | 84 | __builtin_trap(); |
| @@ -88,7 +88,7 @@ _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s) | |||
| 88 | #undef stpncpy | 88 | #undef stpncpy |
| 89 | _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n) | 89 | _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n) |
| 90 | { | 90 | { |
| 91 | size_t __b = __builtin_object_size(__d, 0); | 91 | size_t __b = __bos(__d, 0); |
| 92 | 92 | ||
| 93 | if (__n > __b && strlen(__s) + 1 > __b) | 93 | if (__n > __b && strlen(__s) + 1 > __b) |
| 94 | __builtin_trap(); | 94 | __builtin_trap(); |
| @@ -98,7 +98,7 @@ _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n) | |||
| 98 | 98 | ||
| 99 | _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s) | 99 | _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s) |
| 100 | { | 100 | { |
| 101 | size_t __b = __builtin_object_size(__d, 0); | 101 | size_t __b = __bos(__d, 0); |
| 102 | 102 | ||
| 103 | if (strlen(__s) + strlen(__d) + 1 > __b) | 103 | if (strlen(__s) + strlen(__d) + 1 > __b) |
| 104 | __builtin_trap(); | 104 | __builtin_trap(); |
| @@ -107,7 +107,7 @@ _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s) | |||
| 107 | 107 | ||
| 108 | _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s) | 108 | _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s) |
| 109 | { | 109 | { |
| 110 | size_t __b = __builtin_object_size(__d, 0); | 110 | size_t __b = __bos(__d, 0); |
| 111 | 111 | ||
| 112 | if (strlen(__s) + 1 > __b) | 112 | if (strlen(__s) + 1 > __b) |
| 113 | __builtin_trap(); | 113 | __builtin_trap(); |
| @@ -116,7 +116,7 @@ _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s) | |||
| 116 | 116 | ||
| 117 | _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n) | 117 | _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n) |
| 118 | { | 118 | { |
| 119 | size_t __b = __builtin_object_size(__d, 0); | 119 | size_t __b = __bos(__d, 0); |
| 120 | size_t __sl, __dl; | 120 | size_t __sl, __dl; |
| 121 | 121 | ||
| 122 | if (__n > __b) { | 122 | if (__n > __b) { |
| @@ -132,7 +132,7 @@ _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n) | |||
| 132 | 132 | ||
| 133 | _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n) | 133 | _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n) |
| 134 | { | 134 | { |
| 135 | size_t __b = __builtin_object_size(__d, 0); | 135 | size_t __b = __bos(__d, 0); |
| 136 | 136 | ||
| 137 | if (__n > __b) | 137 | if (__n > __b) |
| 138 | __builtin_trap(); | 138 | __builtin_trap(); |
| @@ -143,8 +143,8 @@ _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n) | |||
| 143 | #undef mempcpy | 143 | #undef mempcpy |
| 144 | _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n) | 144 | _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n) |
| 145 | { | 145 | { |
| 146 | size_t __bd = __builtin_object_size(__d, 0); | 146 | size_t __bd = __bos(__d, 0); |
| 147 | size_t __bs = __builtin_object_size(__s, 0); | 147 | size_t __bs = __bos(__s, 0); |
| 148 | 148 | ||
| 149 | if (__n > __bd || __n > __bs) | 149 | if (__n > __bd || __n > __bs) |
| 150 | __builtin_trap(); | 150 | __builtin_trap(); |
| @@ -157,7 +157,7 @@ _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n) | |||
| 157 | #undef strlcpy | 157 | #undef strlcpy |
| 158 | _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n) | 158 | _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n) |
| 159 | { | 159 | { |
| 160 | size_t __b = __builtin_object_size(__d, 0); | 160 | size_t __b = __bos(__d, 0); |
| 161 | 161 | ||
| 162 | if (__n > __b) | 162 | if (__n > __b) |
| 163 | __builtin_trap(); | 163 | __builtin_trap(); |
| @@ -166,7 +166,7 @@ _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n) | |||
| 166 | 166 | ||
| 167 | _FORTIFY_FN(strlcpy) size_t strlcpy(char *__d, const char *__s, size_t __n) | 167 | _FORTIFY_FN(strlcpy) size_t strlcpy(char *__d, const char *__s, size_t __n) |
| 168 | { | 168 | { |
| 169 | size_t __b = __builtin_object_size(__d, 0); | 169 | size_t __b = __bos(__d, 0); |
| 170 | 170 | ||
| 171 | if (__n > __b) | 171 | if (__n > __b) |
| 172 | __builtin_trap(); | 172 | __builtin_trap(); |
diff --git a/include/strings.h b/include/strings.h index a16e1ad..7645848 100644 --- a/include/strings.h +++ b/include/strings.h | |||
| @@ -32,8 +32,8 @@ extern "C" { | |||
| 32 | #undef bzero | 32 | #undef bzero |
| 33 | _FORTIFY_FN(bcopy) void bcopy(const void *__s, void *__d, size_t __n) | 33 | _FORTIFY_FN(bcopy) void bcopy(const void *__s, void *__d, size_t __n) |
| 34 | { | 34 | { |
| 35 | size_t __bd = __builtin_object_size(__d, 0); | 35 | size_t __bd = __bos(__d, 0); |
| 36 | size_t __bs = __builtin_object_size(__s, 0); | 36 | size_t __bs = __bos(__s, 0); |
| 37 | 37 | ||
| 38 | if (__n > __bd || __n > __bs) | 38 | if (__n > __bd || __n > __bs) |
| 39 | __builtin_trap(); | 39 | __builtin_trap(); |
| @@ -42,7 +42,7 @@ _FORTIFY_FN(bcopy) void bcopy(const void *__s, void *__d, size_t __n) | |||
| 42 | 42 | ||
| 43 | _FORTIFY_FN(bzero) void bzero(void *__s, size_t __n) | 43 | _FORTIFY_FN(bzero) void bzero(void *__s, size_t __n) |
| 44 | { | 44 | { |
| 45 | size_t __b = __builtin_object_size(__s, 0); | 45 | size_t __b = __bos(__s, 0); |
| 46 | 46 | ||
| 47 | if (__n > __b) | 47 | if (__n > __b) |
| 48 | __builtin_trap(); | 48 | __builtin_trap(); |
diff --git a/include/sys/select.h b/include/sys/select.h index bcee8be..1f19672 100644 --- a/include/sys/select.h +++ b/include/sys/select.h | |||
| @@ -30,7 +30,7 @@ extern "C" { | |||
| 30 | static __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__)) | 30 | static __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__)) |
| 31 | void __fortify_FD_CLR(int __f, fd_set *__s) | 31 | void __fortify_FD_CLR(int __f, fd_set *__s) |
| 32 | { | 32 | { |
| 33 | size_t __b = __builtin_object_size(__s, 0); | 33 | size_t __b = __bos(__s, 0); |
| 34 | 34 | ||
| 35 | if (__f < 0 || __f >= FD_SETSIZE || __b < sizeof(fd_set)) | 35 | if (__f < 0 || __f >= FD_SETSIZE || __b < sizeof(fd_set)) |
| 36 | __builtin_trap(); | 36 | __builtin_trap(); |
| @@ -40,7 +40,7 @@ void __fortify_FD_CLR(int __f, fd_set *__s) | |||
| 40 | static __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__)) | 40 | static __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__)) |
| 41 | void __fortify_FD_SET(int __f, fd_set *__s) | 41 | void __fortify_FD_SET(int __f, fd_set *__s) |
| 42 | { | 42 | { |
| 43 | size_t __b = __builtin_object_size(__s, 0); | 43 | size_t __b = __bos(__s, 0); |
| 44 | 44 | ||
| 45 | if (__f < 0 || __f >= FD_SETSIZE || __b < sizeof(fd_set)) | 45 | if (__f < 0 || __f >= FD_SETSIZE || __b < sizeof(fd_set)) |
| 46 | __builtin_trap(); | 46 | __builtin_trap(); |
diff --git a/include/sys/socket.h b/include/sys/socket.h index ad6ab2d..21a3cf1 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h | |||
| @@ -35,7 +35,7 @@ extern "C" { | |||
| 35 | 35 | ||
| 36 | _FORTIFY_FN(recv) ssize_t recv(int __f, void *__s, size_t __n, int __fl) | 36 | _FORTIFY_FN(recv) ssize_t recv(int __f, void *__s, size_t __n, int __fl) |
| 37 | { | 37 | { |
| 38 | size_t __b = __builtin_object_size(__s, 0); | 38 | size_t __b = __bos(__s, 0); |
| 39 | 39 | ||
| 40 | if (__n > __b) | 40 | if (__n > __b) |
| 41 | __builtin_trap(); | 41 | __builtin_trap(); |
| @@ -45,7 +45,7 @@ _FORTIFY_FN(recv) ssize_t recv(int __f, void *__s, size_t __n, int __fl) | |||
| 45 | _FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void *__s, size_t __n, int __fl, | 45 | _FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void *__s, size_t __n, int __fl, |
| 46 | struct sockaddr *__a, socklen_t *__l) | 46 | struct sockaddr *__a, socklen_t *__l) |
| 47 | { | 47 | { |
| 48 | size_t __b = __builtin_object_size(__s, 0); | 48 | size_t __b = __bos(__s, 0); |
| 49 | 49 | ||
| 50 | if (__n > __b) | 50 | if (__n > __b) |
| 51 | __builtin_trap(); | 51 | __builtin_trap(); |
| @@ -54,7 +54,7 @@ _FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void *__s, size_t __n, int __fl, | |||
| 54 | 54 | ||
| 55 | _FORTIFY_FN(send) ssize_t send(int __f, const void *__s, size_t __n, int __fl) | 55 | _FORTIFY_FN(send) ssize_t send(int __f, const void *__s, size_t __n, int __fl) |
| 56 | { | 56 | { |
| 57 | size_t __b = __builtin_object_size(__s, 0); | 57 | size_t __b = __bos(__s, 0); |
| 58 | 58 | ||
| 59 | if (__n > __b) | 59 | if (__n > __b) |
| 60 | __builtin_trap(); | 60 | __builtin_trap(); |
| @@ -64,7 +64,7 @@ _FORTIFY_FN(send) ssize_t send(int __f, const void *__s, size_t __n, int __fl) | |||
| 64 | _FORTIFY_FN(sendto) ssize_t sendto(int __f, const void *__s, size_t __n, int __fl, | 64 | _FORTIFY_FN(sendto) ssize_t sendto(int __f, const void *__s, size_t __n, int __fl, |
| 65 | const struct sockaddr *__a, socklen_t __l) | 65 | const struct sockaddr *__a, socklen_t __l) |
| 66 | { | 66 | { |
| 67 | size_t __b = __builtin_object_size(__s, 0); | 67 | size_t __b = __bos(__s, 0); |
| 68 | 68 | ||
| 69 | if (__n > __b) | 69 | if (__n > __b) |
| 70 | __builtin_trap(); | 70 | __builtin_trap(); |
diff --git a/include/unistd.h b/include/unistd.h index 09980ba..1b89251 100644 --- a/include/unistd.h +++ b/include/unistd.h | |||
| @@ -42,7 +42,7 @@ extern "C" { | |||
| 42 | 42 | ||
| 43 | _FORTIFY_FN(confstr) size_t confstr(int __n, char *__s, size_t __l) | 43 | _FORTIFY_FN(confstr) size_t confstr(int __n, char *__s, size_t __l) |
| 44 | { | 44 | { |
| 45 | size_t __b = __builtin_object_size(__s, 0); | 45 | size_t __b = __bos(__s, 0); |
| 46 | size_t __r = __orig_confstr(__n, __s, __b > __l ? __l : __b); | 46 | size_t __r = __orig_confstr(__n, __s, __b > __l ? __l : __b); |
| 47 | 47 | ||
| 48 | if (__l > __b && __r > __b) | 48 | if (__l > __b && __r > __b) |
| @@ -52,7 +52,7 @@ _FORTIFY_FN(confstr) size_t confstr(int __n, char *__s, size_t __l) | |||
| 52 | 52 | ||
| 53 | _FORTIFY_FN(getcwd) char *getcwd(char *__s, size_t __l) | 53 | _FORTIFY_FN(getcwd) char *getcwd(char *__s, size_t __l) |
| 54 | { | 54 | { |
| 55 | size_t __b = __builtin_object_size(__s, 0); | 55 | size_t __b = __bos(__s, 0); |
| 56 | 56 | ||
| 57 | if (__l > __b) | 57 | if (__l > __b) |
| 58 | __builtin_trap(); | 58 | __builtin_trap(); |
| @@ -63,7 +63,7 @@ _FORTIFY_FN(getcwd) char *getcwd(char *__s, size_t __l) | |||
| 63 | #undef getdomainname | 63 | #undef getdomainname |
| 64 | _FORTIFY_FN(getdomainname) int getdomainname(char *__s, size_t __l) | 64 | _FORTIFY_FN(getdomainname) int getdomainname(char *__s, size_t __l) |
| 65 | { | 65 | { |
| 66 | size_t __b = __builtin_object_size(__s, 0); | 66 | size_t __b = __bos(__s, 0); |
| 67 | 67 | ||
| 68 | if (__l > __b) | 68 | if (__l > __b) |
| 69 | __builtin_trap(); | 69 | __builtin_trap(); |
| @@ -73,7 +73,7 @@ _FORTIFY_FN(getdomainname) int getdomainname(char *__s, size_t __l) | |||
| 73 | 73 | ||
| 74 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s) | 74 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s) |
| 75 | { | 75 | { |
| 76 | size_t __b = __builtin_object_size(__s, 0); | 76 | size_t __b = __bos(__s, 0); |
| 77 | 77 | ||
| 78 | if (__l > 0 && (unsigned)__l > __b / sizeof(gid_t)) | 78 | if (__l > 0 && (unsigned)__l > __b / sizeof(gid_t)) |
| 79 | __builtin_trap(); | 79 | __builtin_trap(); |
| @@ -82,7 +82,7 @@ _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s) | |||
| 82 | 82 | ||
| 83 | _FORTIFY_FN(gethostname) int gethostname(char *__s, size_t __l) | 83 | _FORTIFY_FN(gethostname) int gethostname(char *__s, size_t __l) |
| 84 | { | 84 | { |
| 85 | size_t __b = __builtin_object_size(__s, 0); | 85 | size_t __b = __bos(__s, 0); |
| 86 | 86 | ||
| 87 | if (__l > __b) | 87 | if (__l > __b) |
| 88 | __builtin_trap(); | 88 | __builtin_trap(); |
| @@ -91,7 +91,7 @@ _FORTIFY_FN(gethostname) int gethostname(char *__s, size_t __l) | |||
| 91 | 91 | ||
| 92 | _FORTIFY_FN(getlogin_r) int getlogin_r(char *__s, size_t __l) | 92 | _FORTIFY_FN(getlogin_r) int getlogin_r(char *__s, size_t __l) |
| 93 | { | 93 | { |
| 94 | size_t __b = __builtin_object_size(__s, 0); | 94 | size_t __b = __bos(__s, 0); |
| 95 | 95 | ||
| 96 | if (__l > __b) | 96 | if (__l > __b) |
| 97 | __builtin_trap(); | 97 | __builtin_trap(); |
| @@ -100,7 +100,7 @@ _FORTIFY_FN(getlogin_r) int getlogin_r(char *__s, size_t __l) | |||
| 100 | 100 | ||
| 101 | _FORTIFY_FN(pread) ssize_t pread(int __f, void *__s, size_t __n, off_t __o) | 101 | _FORTIFY_FN(pread) ssize_t pread(int __f, void *__s, size_t __n, off_t __o) |
| 102 | { | 102 | { |
| 103 | size_t __b = __builtin_object_size(__s, 0); | 103 | size_t __b = __bos(__s, 0); |
| 104 | 104 | ||
| 105 | if (__n > __b) | 105 | if (__n > __b) |
| 106 | __builtin_trap(); | 106 | __builtin_trap(); |
| @@ -109,7 +109,7 @@ _FORTIFY_FN(pread) ssize_t pread(int __f, void *__s, size_t __n, off_t __o) | |||
| 109 | 109 | ||
| 110 | _FORTIFY_FN(read) ssize_t read(int __f, void *__s, size_t __n) | 110 | _FORTIFY_FN(read) ssize_t read(int __f, void *__s, size_t __n) |
| 111 | { | 111 | { |
| 112 | size_t __b = __builtin_object_size(__s, 0); | 112 | size_t __b = __bos(__s, 0); |
| 113 | 113 | ||
| 114 | if (__n > __b) | 114 | if (__n > __b) |
| 115 | __builtin_trap(); | 115 | __builtin_trap(); |
| @@ -118,7 +118,7 @@ _FORTIFY_FN(read) ssize_t read(int __f, void *__s, size_t __n) | |||
| 118 | 118 | ||
| 119 | _FORTIFY_FN(readlink) ssize_t readlink(const char *__p, char *__s, size_t __n) | 119 | _FORTIFY_FN(readlink) ssize_t readlink(const char *__p, char *__s, size_t __n) |
| 120 | { | 120 | { |
| 121 | size_t __b = __builtin_object_size(__s, 0); | 121 | size_t __b = __bos(__s, 0); |
| 122 | 122 | ||
| 123 | if (__n > __b) | 123 | if (__n > __b) |
| 124 | __builtin_trap(); | 124 | __builtin_trap(); |
| @@ -127,7 +127,7 @@ _FORTIFY_FN(readlink) ssize_t readlink(const char *__p, char *__s, size_t __n) | |||
| 127 | 127 | ||
| 128 | _FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p, char *__s, size_t __n) | 128 | _FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p, char *__s, size_t __n) |
| 129 | { | 129 | { |
| 130 | size_t __b = __builtin_object_size(__s, 0); | 130 | size_t __b = __bos(__s, 0); |
| 131 | 131 | ||
| 132 | if (__n > __b) | 132 | if (__n > __b) |
| 133 | __builtin_trap(); | 133 | __builtin_trap(); |
| @@ -136,7 +136,7 @@ _FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p, char *__s, | |||
| 136 | 136 | ||
| 137 | _FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char *__s, size_t __n) | 137 | _FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char *__s, size_t __n) |
| 138 | { | 138 | { |
| 139 | size_t __b = __builtin_object_size(__s, 0); | 139 | size_t __b = __bos(__s, 0); |
| 140 | 140 | ||
| 141 | if (__n > __b) | 141 | if (__n > __b) |
| 142 | __builtin_trap(); | 142 | __builtin_trap(); |
| @@ -145,7 +145,7 @@ _FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char *__s, size_t __n) | |||
| 145 | 145 | ||
| 146 | _FORTIFY_FN(write) ssize_t write(int __f, const void *__s, size_t __n) | 146 | _FORTIFY_FN(write) ssize_t write(int __f, const void *__s, size_t __n) |
| 147 | { | 147 | { |
| 148 | size_t __b = __builtin_object_size(__s, 0); | 148 | size_t __b = __bos(__s, 0); |
| 149 | 149 | ||
| 150 | if (__n > __b) | 150 | if (__n > __b) |
| 151 | __builtin_trap(); | 151 | __builtin_trap(); |
diff --git a/include/wchar.h b/include/wchar.h index c5d0e5d..0fba370 100644 --- a/include/wchar.h +++ b/include/wchar.h | |||
| @@ -57,7 +57,7 @@ extern "C" { | |||
| 57 | 57 | ||
| 58 | _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t *__s, int __n, FILE *__f) | 58 | _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t *__s, int __n, FILE *__f) |
| 59 | { | 59 | { |
| 60 | size_t __b = __builtin_object_size(__s, 0); | 60 | size_t __b = __bos(__s, 0); |
| 61 | 61 | ||
| 62 | if ((size_t)__n > __b / sizeof(wchar_t)) | 62 | if ((size_t)__n > __b / sizeof(wchar_t)) |
| 63 | __builtin_trap(); | 63 | __builtin_trap(); |
| @@ -70,7 +70,7 @@ _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t *__s, int __n, FILE *__f) | |||
| 70 | _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *__d, const char **__s, size_t __n, | 70 | _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *__d, const char **__s, size_t __n, |
| 71 | size_t __wn, mbstate_t *__st) | 71 | size_t __wn, mbstate_t *__st) |
| 72 | { | 72 | { |
| 73 | size_t __b = __builtin_object_size(__d, 0); | 73 | size_t __b = __bos(__d, 0); |
| 74 | size_t __r; | 74 | size_t __r; |
| 75 | 75 | ||
| 76 | if (__wn > __n / sizeof(wchar_t)) { | 76 | if (__wn > __n / sizeof(wchar_t)) { |
| @@ -90,7 +90,7 @@ _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *__d, const char **__s, size_t | |||
| 90 | _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t *__d, const char **__s, size_t __wn, | 90 | _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t *__d, const char **__s, size_t __wn, |
| 91 | mbstate_t *__st) | 91 | mbstate_t *__st) |
| 92 | { | 92 | { |
| 93 | size_t __b = __builtin_object_size(__d, 0); | 93 | size_t __b = __bos(__d, 0); |
| 94 | size_t __r; | 94 | size_t __r; |
| 95 | 95 | ||
| 96 | __b /= sizeof(wchar_t); | 96 | __b /= sizeof(wchar_t); |
| @@ -102,7 +102,7 @@ _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t *__d, const char **__s, size_t _ | |||
| 102 | 102 | ||
| 103 | _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t *__ws, const char *__s, size_t __wn) | 103 | _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t *__ws, const char *__s, size_t __wn) |
| 104 | { | 104 | { |
| 105 | size_t __b = __builtin_object_size(__ws, 0); | 105 | size_t __b = __bos(__ws, 0); |
| 106 | 106 | ||
| 107 | if (__ws && __wn > __b / sizeof(wchar_t)) | 107 | if (__ws && __wn > __b / sizeof(wchar_t)) |
| 108 | __builtin_trap(); | 108 | __builtin_trap(); |
| @@ -111,14 +111,14 @@ _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t *__ws, const char *__s, size_t __w | |||
| 111 | 111 | ||
| 112 | _FORTIFY_FN(wcrtomb) size_t wcrtomb(char *__s, wchar_t __w, mbstate_t *__st) | 112 | _FORTIFY_FN(wcrtomb) size_t wcrtomb(char *__s, wchar_t __w, mbstate_t *__st) |
| 113 | { | 113 | { |
| 114 | if (__s && MB_LEN_MAX > __builtin_object_size(__s, 2)) { | 114 | if (__s && MB_LEN_MAX > __bos(__s, 2)) { |
| 115 | char __buf[MB_LEN_MAX]; | 115 | char __buf[MB_LEN_MAX]; |
| 116 | size_t __r; | 116 | size_t __r; |
| 117 | 117 | ||
| 118 | __r = __orig_wcrtomb(__buf, __w, __st); | 118 | __r = __orig_wcrtomb(__buf, __w, __st); |
| 119 | if (__r == (size_t)-1) | 119 | if (__r == (size_t)-1) |
| 120 | return __r; | 120 | return __r; |
| 121 | if (__r > __builtin_object_size(__s, 0)) | 121 | if (__r > __bos(__s, 0)) |
| 122 | __builtin_trap(); | 122 | __builtin_trap(); |
| 123 | __builtin_memcpy(__s, __buf, __r); | 123 | __builtin_memcpy(__s, __buf, __r); |
| 124 | return __r; | 124 | return __r; |
| @@ -128,7 +128,7 @@ _FORTIFY_FN(wcrtomb) size_t wcrtomb(char *__s, wchar_t __w, mbstate_t *__st) | |||
| 128 | 128 | ||
| 129 | _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t *__d, const wchar_t *__s) | 129 | _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t *__d, const wchar_t *__s) |
| 130 | { | 130 | { |
| 131 | size_t __b = __builtin_object_size(__d, 0); | 131 | size_t __b = __bos(__d, 0); |
| 132 | 132 | ||
| 133 | if (wcslen(__s) + wcslen(__d) + 1 > __b / sizeof(wchar_t)) | 133 | if (wcslen(__s) + wcslen(__d) + 1 > __b / sizeof(wchar_t)) |
| 134 | __builtin_trap(); | 134 | __builtin_trap(); |
| @@ -137,7 +137,7 @@ _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t *__d, const wchar_t *__s) | |||
| 137 | 137 | ||
| 138 | _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t *__d, const wchar_t *__s) | 138 | _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t *__d, const wchar_t *__s) |
| 139 | { | 139 | { |
| 140 | size_t __b = __builtin_object_size(__d, 0); | 140 | size_t __b = __bos(__d, 0); |
| 141 | 141 | ||
| 142 | if (wcslen(__s) + 1 > __b / sizeof(wchar_t)) | 142 | if (wcslen(__s) + 1 > __b / sizeof(wchar_t)) |
| 143 | __builtin_trap(); | 143 | __builtin_trap(); |
| @@ -146,7 +146,7 @@ _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t *__d, const wchar_t *__s) | |||
| 146 | 146 | ||
| 147 | _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t *__d, const wchar_t *__s, size_t __n) | 147 | _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 148 | { | 148 | { |
| 149 | size_t __b = __builtin_object_size(__d, 0); | 149 | size_t __b = __bos(__d, 0); |
| 150 | size_t __sl, __dl; | 150 | size_t __sl, __dl; |
| 151 | 151 | ||
| 152 | if (__n > __b / sizeof(wchar_t)) { | 152 | if (__n > __b / sizeof(wchar_t)) { |
| @@ -162,7 +162,7 @@ _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t *__d, const wchar_t *__s, size_t _ | |||
| 162 | 162 | ||
| 163 | _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t *__d, const wchar_t *__s, size_t __n) | 163 | _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 164 | { | 164 | { |
| 165 | size_t __b = __builtin_object_size(__d, 0); | 165 | size_t __b = __bos(__d, 0); |
| 166 | 166 | ||
| 167 | if (__n > __b / sizeof(wchar_t)) | 167 | if (__n > __b / sizeof(wchar_t)) |
| 168 | __builtin_trap(); | 168 | __builtin_trap(); |
| @@ -175,7 +175,7 @@ _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t *__d, const wchar_t *__s, size_t _ | |||
| 175 | _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char *__d, const wchar_t **__s, size_t __wn, | 175 | _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char *__d, const wchar_t **__s, size_t __wn, |
| 176 | size_t __n, mbstate_t *__st) | 176 | size_t __n, mbstate_t *__st) |
| 177 | { | 177 | { |
| 178 | size_t __b = __builtin_object_size(__d, 0); | 178 | size_t __b = __bos(__d, 0); |
| 179 | size_t __r; | 179 | size_t __r; |
| 180 | 180 | ||
| 181 | if (__wn > __n / sizeof(wchar_t)) { | 181 | if (__wn > __n / sizeof(wchar_t)) { |
| @@ -195,7 +195,7 @@ _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char *__d, const wchar_t **__s, size_t | |||
| 195 | _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char *__d, const wchar_t **__s, size_t __n, | 195 | _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char *__d, const wchar_t **__s, size_t __n, |
| 196 | mbstate_t *__st) | 196 | mbstate_t *__st) |
| 197 | { | 197 | { |
| 198 | size_t __b = __builtin_object_size(__d, 0); | 198 | size_t __b = __bos(__d, 0); |
| 199 | size_t __r; | 199 | size_t __r; |
| 200 | 200 | ||
| 201 | __r = __orig_wcsrtombs(__d, __s, __n > __b ? __b : __n, __st); | 201 | __r = __orig_wcsrtombs(__d, __s, __n > __b ? __b : __n, __st); |
| @@ -206,7 +206,7 @@ _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char *__d, const wchar_t **__s, size_t _ | |||
| 206 | 206 | ||
| 207 | _FORTIFY_FN(wcstombs) size_t wcstombs(char *__s, const wchar_t *__ws, size_t __n) | 207 | _FORTIFY_FN(wcstombs) size_t wcstombs(char *__s, const wchar_t *__ws, size_t __n) |
| 208 | { | 208 | { |
| 209 | size_t __b = __builtin_object_size(__s, 0); | 209 | size_t __b = __bos(__s, 0); |
| 210 | 210 | ||
| 211 | if (__s && __n > __b) | 211 | if (__s && __n > __b) |
| 212 | __builtin_trap(); | 212 | __builtin_trap(); |
| @@ -215,7 +215,7 @@ _FORTIFY_FN(wcstombs) size_t wcstombs(char *__s, const wchar_t *__ws, size_t __n | |||
| 215 | 215 | ||
| 216 | _FORTIFY_FN(wctomb) int wctomb(char *__s, wchar_t __w) | 216 | _FORTIFY_FN(wctomb) int wctomb(char *__s, wchar_t __w) |
| 217 | { | 217 | { |
| 218 | size_t __b = __builtin_object_size(__s, 0); | 218 | size_t __b = __bos(__s, 0); |
| 219 | 219 | ||
| 220 | if (__s && MB_LEN_MAX > __b && MB_CUR_MAX > __b) | 220 | if (__s && MB_LEN_MAX > __b && MB_CUR_MAX > __b) |
| 221 | __builtin_trap(); | 221 | __builtin_trap(); |
| @@ -224,7 +224,7 @@ _FORTIFY_FN(wctomb) int wctomb(char *__s, wchar_t __w) | |||
| 224 | 224 | ||
| 225 | _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t *__d, const wchar_t *__s, size_t __n) | 225 | _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 226 | { | 226 | { |
| 227 | size_t __b = __builtin_object_size(__d, 0); | 227 | size_t __b = __bos(__d, 0); |
| 228 | 228 | ||
| 229 | if (__n > __b / sizeof(wchar_t)) | 229 | if (__n > __b / sizeof(wchar_t)) |
| 230 | __builtin_trap(); | 230 | __builtin_trap(); |
| @@ -233,7 +233,7 @@ _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t *__d, const wchar_t *__s, size_t _ | |||
| 233 | 233 | ||
| 234 | _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t *__d, const wchar_t *__s, size_t __n) | 234 | _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 235 | { | 235 | { |
| 236 | size_t __b = __builtin_object_size(__d, 0); | 236 | size_t __b = __bos(__d, 0); |
| 237 | 237 | ||
| 238 | if (__n > __b / sizeof(wchar_t)) | 238 | if (__n > __b / sizeof(wchar_t)) |
| 239 | __builtin_trap(); | 239 | __builtin_trap(); |
| @@ -242,7 +242,7 @@ _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t *__d, const wchar_t *__s, size_t | |||
| 242 | 242 | ||
| 243 | _FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t *__s, wchar_t __c, size_t __n) | 243 | _FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t *__s, wchar_t __c, size_t __n) |
| 244 | { | 244 | { |
| 245 | size_t __b = __builtin_object_size(__s, 0); | 245 | size_t __b = __bos(__s, 0); |
| 246 | 246 | ||
| 247 | if (__n > __b / sizeof(wchar_t)) | 247 | if (__n > __b / sizeof(wchar_t)) |
| 248 | __builtin_trap(); | 248 | __builtin_trap(); |
