diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/fortify-headers.h | 2 | ||||
| -rw-r--r-- | include/poll.h | 18 | ||||
| -rw-r--r-- | include/stdio.h | 78 | ||||
| -rw-r--r-- | include/stdlib.h | 12 | ||||
| -rw-r--r-- | include/string.h | 122 | ||||
| -rw-r--r-- | include/strings.h | 18 | ||||
| -rw-r--r-- | include/sys/select.h | 16 | ||||
| -rw-r--r-- | include/sys/socket.h | 36 | ||||
| -rw-r--r-- | include/unistd.h | 96 | ||||
| -rw-r--r-- | include/wchar.h | 182 |
10 files changed, 290 insertions, 290 deletions
diff --git a/include/fortify-headers.h b/include/fortify-headers.h index fcb862d..288a973 100644 --- a/include/fortify-headers.h +++ b/include/fortify-headers.h | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | #define _FORTIFY_STR(s) #s | 19 | #define _FORTIFY_STR(s) #s |
| 20 | #define _FORTIFY_ORIG(p,fn) __typeof__(fn) __orig_##fn __asm__(_FORTIFY_STR(p) #fn) | 20 | #define _FORTIFY_ORIG(p,fn) __typeof__(fn) __orig_##fn __asm__(_FORTIFY_STR(p) #fn) |
| 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 | #endif | 24 | #endif |
diff --git a/include/poll.h b/include/poll.h index 6ca08a7..d9b602c 100644 --- a/include/poll.h +++ b/include/poll.h | |||
| @@ -27,25 +27,25 @@ extern "C" { | |||
| 27 | 27 | ||
| 28 | #undef poll | 28 | #undef poll |
| 29 | 29 | ||
| 30 | fortify_fn(poll) int poll(struct pollfd *fds, nfds_t nfds, int timeout) | 30 | _FORTIFY_FN(poll) int poll(struct pollfd *__f, nfds_t __n, int __s) |
| 31 | { | 31 | { |
| 32 | __typeof__(sizeof 0) bos = __builtin_object_size(fds, 0); | 32 | __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0); |
| 33 | 33 | ||
| 34 | if (nfds > bos / sizeof(struct pollfd)) | 34 | if (__n > __b / sizeof(struct pollfd)) |
| 35 | __builtin_trap(); | 35 | __builtin_trap(); |
| 36 | return __orig_poll(fds, nfds, timeout); | 36 | return __orig_poll(__f, __n, __s); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | #ifdef _GNU_SOURCE | 39 | #ifdef _GNU_SOURCE |
| 40 | #undef ppoll | 40 | #undef ppoll |
| 41 | fortify_fn(ppoll) int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, | 41 | _FORTIFY_FN(ppoll) int ppoll(struct pollfd *__f, nfds_t __n, const struct timespec *__s, |
| 42 | const sigset_t *mask) | 42 | const sigset_t *__m) |
| 43 | { | 43 | { |
| 44 | __typeof__(sizeof 0) bos = __builtin_object_size(fds, 0); | 44 | __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0); |
| 45 | 45 | ||
| 46 | if (nfds > bos / sizeof(struct pollfd)) | 46 | if (__n > __b / sizeof(struct pollfd)) |
| 47 | __builtin_trap(); | 47 | __builtin_trap(); |
| 48 | return __orig_ppoll(fds, nfds, timeout, mask); | 48 | return __orig_ppoll(__f, __n, __s, __m); |
| 49 | } | 49 | } |
| 50 | #endif | 50 | #endif |
| 51 | 51 | ||
diff --git a/include/stdio.h b/include/stdio.h index 6689519..996c661 100644 --- a/include/stdio.h +++ b/include/stdio.h | |||
| @@ -33,84 +33,84 @@ extern "C" { | |||
| 33 | #undef snprintf | 33 | #undef snprintf |
| 34 | #undef sprintf | 34 | #undef sprintf |
| 35 | 35 | ||
| 36 | fortify_fn(fgets) char *fgets(char *s, int n, FILE *fp) | 36 | _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) |
| 37 | { | 37 | { |
| 38 | size_t bos = __builtin_object_size(s, 0); | 38 | size_t __b = __builtin_object_size(__s, 0); |
| 39 | 39 | ||
| 40 | if ((size_t)n > bos) | 40 | if ((size_t)__n > __b) |
| 41 | __builtin_trap(); | 41 | __builtin_trap(); |
| 42 | return __orig_fgets(s, n, fp); | 42 | return __orig_fgets(__s, __n, __f); |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | fortify_fn(fread) size_t fread(void *dst, size_t n, size_t nmemb, FILE *fp) | 45 | _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) |
| 46 | { | 46 | { |
| 47 | size_t bos = __builtin_object_size(dst, 0); | 47 | size_t __b = __builtin_object_size(__d, 0); |
| 48 | 48 | ||
| 49 | if (n != 0 && (n * nmemb) / n != nmemb) | 49 | if (__n != 0 && (__n * __m) / __n != __m) |
| 50 | __builtin_trap(); | 50 | __builtin_trap(); |
| 51 | if (n * nmemb > bos) | 51 | if (__n * __m > __b) |
| 52 | __builtin_trap(); | 52 | __builtin_trap(); |
| 53 | return __orig_fread(dst, n, nmemb, fp); | 53 | return __orig_fread(__d, __n, __m, __f); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | fortify_fn(fwrite) size_t fwrite(const void *dst, size_t n, size_t nmemb, FILE *fp) | 56 | _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE *__f) |
| 57 | { | 57 | { |
| 58 | size_t bos = __builtin_object_size(dst, 0); | 58 | size_t __b = __builtin_object_size(__d, 0); |
| 59 | 59 | ||
| 60 | if (n != 0 && (n * nmemb) / n != nmemb) | 60 | if (__n != 0 && (__n * __m) / __n != __m) |
| 61 | __builtin_trap(); | 61 | __builtin_trap(); |
| 62 | if (n * nmemb > bos) | 62 | if (__n * __m > __b) |
| 63 | __builtin_trap(); | 63 | __builtin_trap(); |
| 64 | return __orig_fwrite(dst, n, nmemb, fp); | 64 | return __orig_fwrite(__d, __n, __m, __f); |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | fortify_fn(vsnprintf) int vsnprintf(char *s, size_t n, const char *fmt, | 67 | _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, |
| 68 | __builtin_va_list ap) | 68 | __builtin_va_list __v) |
| 69 | { | 69 | { |
| 70 | size_t bos = __builtin_object_size(s, 0); | 70 | size_t __b = __builtin_object_size(__s, 0); |
| 71 | 71 | ||
| 72 | if (n > bos) | 72 | if (__n > __b) |
| 73 | __builtin_trap(); | 73 | __builtin_trap(); |
| 74 | return __orig_vsnprintf(s, n, fmt, ap); | 74 | return __orig_vsnprintf(__s, __n, __f, __v); |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | fortify_fn(vsprintf) int vsprintf(char *s, const char *fmt, __builtin_va_list ap) | 77 | _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list __v) |
| 78 | { | 78 | { |
| 79 | size_t bos = __builtin_object_size(s, 0); | 79 | size_t __b = __builtin_object_size(__s, 0); |
| 80 | int r; | 80 | int __r; |
| 81 | 81 | ||
| 82 | if (bos != (size_t)-1) { | 82 | if (__b != (size_t)-1) { |
| 83 | r = __orig_vsnprintf(s, bos, fmt, ap); | 83 | __r = __orig_vsnprintf(__s, __b, __f, __v); |
| 84 | if (r != -1 && (size_t)r >= bos) | 84 | if (__r != -1 && (size_t)__r >= __b) |
| 85 | __builtin_trap(); | 85 | __builtin_trap(); |
| 86 | } else { | 86 | } else { |
| 87 | r = __orig_vsprintf(s, fmt, ap); | 87 | __r = __orig_vsprintf(__s, __f, __v); |
| 88 | } | 88 | } |
| 89 | return r; | 89 | return __r; |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | fortify_fn(snprintf) int snprintf(char *s, size_t n, const char *fmt, ...) | 92 | _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) |
| 93 | { | 93 | { |
| 94 | size_t bos = __builtin_object_size(s, 0); | 94 | size_t __b = __builtin_object_size(__s, 0); |
| 95 | 95 | ||
| 96 | if (n > bos) | 96 | if (__n > __b) |
| 97 | __builtin_trap(); | 97 | __builtin_trap(); |
| 98 | return __orig_snprintf(s, n, fmt, __builtin_va_arg_pack()); | 98 | return __orig_snprintf(__s, __n, __f, __builtin_va_arg_pack()); |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | fortify_fn(sprintf) int sprintf(char *s, const char *fmt, ...) | 101 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) |
| 102 | { | 102 | { |
| 103 | size_t bos = __builtin_object_size(s, 0); | 103 | size_t __b = __builtin_object_size(__s, 0); |
| 104 | int r; | 104 | int __r; |
| 105 | 105 | ||
| 106 | if (bos != (size_t)-1) { | 106 | if (__b != (size_t)-1) { |
| 107 | r = __orig_snprintf(s, bos, fmt, __builtin_va_arg_pack()); | 107 | __r = __orig_snprintf(__s, __b, __f, __builtin_va_arg_pack()); |
| 108 | if (r != -1 && (size_t)r >= bos) | 108 | if (__r != -1 && (size_t)__r >= __b) |
| 109 | __builtin_trap(); | 109 | __builtin_trap(); |
| 110 | } else { | 110 | } else { |
| 111 | r = __orig_sprintf(s, fmt, __builtin_va_arg_pack()); | 111 | __r = __orig_sprintf(__s, __f, __builtin_va_arg_pack()); |
| 112 | } | 112 | } |
| 113 | return r; | 113 | return __r; |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | #ifdef __cplusplus | 116 | #ifdef __cplusplus |
diff --git a/include/stdlib.h b/include/stdlib.h index 5566ab4..2b67235 100644 --- a/include/stdlib.h +++ b/include/stdlib.h | |||
| @@ -31,20 +31,20 @@ extern "C" { | |||
| 31 | 31 | ||
| 32 | #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 32 | #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 33 | #undef realpath | 33 | #undef realpath |
| 34 | fortify_fn(realpath) char *realpath(const char *path, char *resolved) | 34 | _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r) |
| 35 | { | 35 | { |
| 36 | size_t bos; | 36 | size_t __b; |
| 37 | 37 | ||
| 38 | if (resolved) { | 38 | if (__r) { |
| 39 | #ifndef PATH_MAX | 39 | #ifndef PATH_MAX |
| 40 | #error PATH_MAX unset. A fortified realpath will not work. | 40 | #error PATH_MAX unset. A fortified realpath will not work. |
| 41 | #else | 41 | #else |
| 42 | bos = __builtin_object_size(resolved, 0); | 42 | __b = __builtin_object_size(__r, 0); |
| 43 | if (PATH_MAX > bos) | 43 | if (PATH_MAX > __b) |
| 44 | __builtin_trap(); | 44 | __builtin_trap(); |
| 45 | #endif | 45 | #endif |
| 46 | } | 46 | } |
| 47 | return __orig_realpath(path, resolved); | 47 | return __orig_realpath(__p, __r); |
| 48 | } | 48 | } |
| 49 | #endif | 49 | #endif |
| 50 | 50 | ||
diff --git a/include/string.h b/include/string.h index 5db7ac9..98bfea1 100644 --- a/include/string.h +++ b/include/string.h | |||
| @@ -33,141 +33,141 @@ extern "C" { | |||
| 33 | #undef strncat | 33 | #undef strncat |
| 34 | #undef strncpy | 34 | #undef strncpy |
| 35 | 35 | ||
| 36 | fortify_fn(memcpy) void *memcpy(void *dst, const void *src, size_t n) | 36 | _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n) |
| 37 | { | 37 | { |
| 38 | size_t bos_dst = __builtin_object_size(dst, 0); | 38 | size_t __bd = __builtin_object_size(__od, 0); |
| 39 | size_t bos_src = __builtin_object_size(src, 0); | 39 | size_t __bs = __builtin_object_size(__os, 0); |
| 40 | char *d = (char *)dst; | 40 | char *__d = (char *)__od; |
| 41 | const char *s = (const char *)src; | 41 | const char *__s = (const char *)__os; |
| 42 | 42 | ||
| 43 | /* trap if pointers are overlapping but not if dst == src. | 43 | /* trap if pointers are overlapping but not if dst == src. |
| 44 | * gcc seems to like to generate code that relies on dst == src */ | 44 | * gcc seems to like to generate code that relies on dst == src */ |
| 45 | if ((d < s && d + n > s) || | 45 | if ((__d < __s && __d + __n > __s) || |
| 46 | (s < d && s + n > d)) | 46 | (__s < __d && __s + __n > __d)) |
| 47 | __builtin_trap(); | 47 | __builtin_trap(); |
| 48 | if (n > bos_dst || n > bos_src) | 48 | if (__n > __bd || __n > __bs) |
| 49 | __builtin_trap(); | 49 | __builtin_trap(); |
| 50 | return __orig_memcpy(dst, src, n); | 50 | return __orig_memcpy(__od, __os, __n); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | fortify_fn(memmove) void *memmove(void *dst, const void *src, size_t n) | 53 | _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n) |
| 54 | { | 54 | { |
| 55 | size_t bos_dst = __builtin_object_size(dst, 0); | 55 | size_t __bd = __builtin_object_size(__d, 0); |
| 56 | size_t bos_src = __builtin_object_size(src, 0); | 56 | size_t __bs = __builtin_object_size(__s, 0); |
| 57 | 57 | ||
| 58 | if (n > bos_dst || n > bos_src) | 58 | if (__n > __bd || __n > __bs) |
| 59 | __builtin_trap(); | 59 | __builtin_trap(); |
| 60 | return __orig_memmove(dst, src, n); | 60 | return __orig_memmove(__d, __s, __n); |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | fortify_fn(memset) void *memset(void *dst, int c, size_t n) | 63 | _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n) |
| 64 | { | 64 | { |
| 65 | size_t bos = __builtin_object_size(dst, 0); | 65 | size_t __b = __builtin_object_size(__d, 0); |
| 66 | 66 | ||
| 67 | if (n > bos) | 67 | if (__n > __b) |
| 68 | __builtin_trap(); | 68 | __builtin_trap(); |
| 69 | return __orig_memset(dst, c, n); | 69 | return __orig_memset(__d, __c, __n); |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ | 72 | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ |
| 73 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ | 73 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ |
| 74 | || defined(_BSD_SOURCE) | 74 | || defined(_BSD_SOURCE) |
| 75 | #undef stpcpy | 75 | #undef stpcpy |
| 76 | fortify_fn(stpcpy) char *stpcpy(char *dst, const char *src) | 76 | _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s) |
| 77 | { | 77 | { |
| 78 | size_t bos = __builtin_object_size(dst, 0); | 78 | size_t __b = __builtin_object_size(__d, 0); |
| 79 | 79 | ||
| 80 | if (strlen(src) + 1 > bos) | 80 | if (strlen(__s) + 1 > __b) |
| 81 | __builtin_trap(); | 81 | __builtin_trap(); |
| 82 | return __orig_stpcpy(dst, src); | 82 | return __orig_stpcpy(__d, __s); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | #undef stpncpy | 85 | #undef stpncpy |
| 86 | fortify_fn(stpncpy) char *stpncpy(char *dst, const char *src, size_t n) | 86 | _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n) |
| 87 | { | 87 | { |
| 88 | size_t bos = __builtin_object_size(dst, 0); | 88 | size_t __b = __builtin_object_size(__d, 0); |
| 89 | 89 | ||
| 90 | if (n > bos) | 90 | if (__n > __b) |
| 91 | __builtin_trap(); | 91 | __builtin_trap(); |
| 92 | return __orig_stpncpy(dst, src, n); | 92 | return __orig_stpncpy(__d, __s, __n); |
| 93 | } | 93 | } |
| 94 | #endif | 94 | #endif |
| 95 | 95 | ||
| 96 | fortify_fn(strcat) char *strcat(char *dst, const char *src) | 96 | _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s) |
| 97 | { | 97 | { |
| 98 | size_t bos = __builtin_object_size(dst, 0); | 98 | size_t __b = __builtin_object_size(__d, 0); |
| 99 | 99 | ||
| 100 | if (strlen(src) + strlen(dst) + 1 > bos) | 100 | if (strlen(__s) + strlen(__d) + 1 > __b) |
| 101 | __builtin_trap(); | 101 | __builtin_trap(); |
| 102 | return __orig_strcat(dst, src); | 102 | return __orig_strcat(__d, __s); |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | fortify_fn(strcpy) char *strcpy(char *dst, const char *src) | 105 | _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s) |
| 106 | { | 106 | { |
| 107 | size_t bos = __builtin_object_size(dst, 0); | 107 | size_t __b = __builtin_object_size(__d, 0); |
| 108 | 108 | ||
| 109 | if (strlen(src) + 1 > bos) | 109 | if (strlen(__s) + 1 > __b) |
| 110 | __builtin_trap(); | 110 | __builtin_trap(); |
| 111 | return __orig_strcpy(dst, src); | 111 | return __orig_strcpy(__d, __s); |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | fortify_fn(strncat) char *strncat(char *dst, const char *src, size_t n) | 114 | _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n) |
| 115 | { | 115 | { |
| 116 | size_t bos = __builtin_object_size(dst, 0); | 116 | size_t __b = __builtin_object_size(__d, 0); |
| 117 | size_t slen, dlen; | 117 | size_t __sl, __dl; |
| 118 | 118 | ||
| 119 | if (n > bos) { | 119 | if (__n > __b) { |
| 120 | slen = strlen(src); | 120 | __sl = strlen(__s); |
| 121 | dlen = strlen(dst); | 121 | __dl = strlen(__d); |
| 122 | if (slen > n) | 122 | if (__sl > __n) |
| 123 | slen = n; | 123 | __sl = __n; |
| 124 | if (slen + dlen + 1 > bos) | 124 | if (__sl + __dl + 1 > __b) |
| 125 | __builtin_trap(); | 125 | __builtin_trap(); |
| 126 | } | 126 | } |
| 127 | return __orig_strncat(dst, src, n); | 127 | return __orig_strncat(__d, __s, __n); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | fortify_fn(strncpy) char *strncpy(char *dst, const char *src, size_t n) | 130 | _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n) |
| 131 | { | 131 | { |
| 132 | size_t bos = __builtin_object_size(dst, 0); | 132 | size_t __b = __builtin_object_size(__d, 0); |
| 133 | 133 | ||
| 134 | if (n > bos) | 134 | if (__n > __b) |
| 135 | __builtin_trap(); | 135 | __builtin_trap(); |
| 136 | return __orig_strncpy(dst, src, n); | 136 | return __orig_strncpy(__d, __s, __n); |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | #ifdef _GNU_SOURCE | 139 | #ifdef _GNU_SOURCE |
| 140 | #undef mempcpy | 140 | #undef mempcpy |
| 141 | fortify_fn(mempcpy) void *mempcpy(void *dst, const void *src, size_t n) | 141 | _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n) |
| 142 | { | 142 | { |
| 143 | size_t bos_dst = __builtin_object_size(dst, 0); | 143 | size_t __bd = __builtin_object_size(__d, 0); |
| 144 | size_t bos_src = __builtin_object_size(src, 0); | 144 | size_t __bs = __builtin_object_size(__s, 0); |
| 145 | 145 | ||
| 146 | if (n > bos_dst || n > bos_src) | 146 | if (__n > __bd || __n > __bs) |
| 147 | __builtin_trap(); | 147 | __builtin_trap(); |
| 148 | return __orig_mempcpy(dst, src, n); | 148 | return __orig_mempcpy(__d, __s, __n); |
| 149 | } | 149 | } |
| 150 | #endif | 150 | #endif |
| 151 | 151 | ||
| 152 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 152 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 153 | #undef strlcat | 153 | #undef strlcat |
| 154 | #undef strlcpy | 154 | #undef strlcpy |
| 155 | fortify_fn(strlcat) size_t strlcat(char *dst, const char *src, size_t n) | 155 | _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n) |
| 156 | { | 156 | { |
| 157 | size_t bos = __builtin_object_size(dst, 0); | 157 | size_t __b = __builtin_object_size(__d, 0); |
| 158 | 158 | ||
| 159 | if (n > bos) | 159 | if (__n > __b) |
| 160 | __builtin_trap(); | 160 | __builtin_trap(); |
| 161 | return __orig_strlcat(dst, src, n); | 161 | return __orig_strlcat(__d, __s, __n); |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | fortify_fn(strlcpy) size_t strlcpy(char *dst, const char *src, size_t n) | 164 | _FORTIFY_FN(strlcpy) size_t strlcpy(char *__d, const char *__s, size_t __n) |
| 165 | { | 165 | { |
| 166 | size_t bos = __builtin_object_size(dst, 0); | 166 | size_t __b = __builtin_object_size(__d, 0); |
| 167 | 167 | ||
| 168 | if (n > bos) | 168 | if (__n > __b) |
| 169 | __builtin_trap(); | 169 | __builtin_trap(); |
| 170 | return __orig_strlcpy(dst, src, n); | 170 | return __orig_strlcpy(__d, __s, __n); |
| 171 | } | 171 | } |
| 172 | #endif | 172 | #endif |
| 173 | 173 | ||
diff --git a/include/strings.h b/include/strings.h index ed8efdb..4eb5486 100644 --- a/include/strings.h +++ b/include/strings.h | |||
| @@ -30,23 +30,23 @@ extern "C" { | |||
| 30 | || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) | 30 | || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) |
| 31 | #undef bcopy | 31 | #undef bcopy |
| 32 | #undef bzero | 32 | #undef bzero |
| 33 | fortify_fn(bcopy) void bcopy(const void *src, void *dst, size_t n) | 33 | _FORTIFY_FN(bcopy) void bcopy(const void *__s, void *__d, size_t __n) |
| 34 | { | 34 | { |
| 35 | size_t bos_dst = __builtin_object_size(dst, 0); | 35 | size_t __bd = __builtin_object_size(__d, 0); |
| 36 | size_t bos_src = __builtin_object_size(src, 0); | 36 | size_t __bs = __builtin_object_size(__s, 0); |
| 37 | 37 | ||
| 38 | if (n > bos_dst || n > bos_src) | 38 | if (__n > __bd || __n > __bs) |
| 39 | __builtin_trap(); | 39 | __builtin_trap(); |
| 40 | return __orig_bcopy(src, dst, n); | 40 | return __orig_bcopy(__s, __d, __n); |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | fortify_fn(bzero) void bzero(void *src, size_t n) | 43 | _FORTIFY_FN(bzero) void bzero(void *__s, size_t __n) |
| 44 | { | 44 | { |
| 45 | size_t bos = __builtin_object_size(src, 0); | 45 | size_t __b = __builtin_object_size(__s, 0); |
| 46 | 46 | ||
| 47 | if (n > bos) | 47 | if (__n > __b) |
| 48 | __builtin_trap(); | 48 | __builtin_trap(); |
| 49 | return __orig_bzero(src, n); | 49 | return __orig_bzero(__s, __n); |
| 50 | } | 50 | } |
| 51 | #endif | 51 | #endif |
| 52 | 52 | ||
diff --git a/include/sys/select.h b/include/sys/select.h index 0f1e1df..4623071 100644 --- a/include/sys/select.h +++ b/include/sys/select.h | |||
| @@ -25,23 +25,23 @@ extern "C" { | |||
| 25 | #endif | 25 | #endif |
| 26 | 26 | ||
| 27 | static __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) | 27 | static __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) |
| 28 | void __fortify_FD_CLR(int fd, fd_set *set) | 28 | void __fortify_FD_CLR(int __f, fd_set *__s) |
| 29 | { | 29 | { |
| 30 | size_t bos = __builtin_object_size(set, 0); | 30 | size_t __b = __builtin_object_size(__s, 0); |
| 31 | 31 | ||
| 32 | if (fd < 0 || fd >= FD_SETSIZE || bos < sizeof(fd_set)) | 32 | if (__f < 0 || __f >= FD_SETSIZE || __b < sizeof(fd_set)) |
| 33 | __builtin_trap(); | 33 | __builtin_trap(); |
| 34 | FD_CLR(fd, set); | 34 | FD_CLR(__f, __s); |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | static __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) | 37 | static __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__)) |
| 38 | void __fortify_FD_SET(int fd, fd_set *set) | 38 | void __fortify_FD_SET(int __f, fd_set *__s) |
| 39 | { | 39 | { |
| 40 | size_t bos = __builtin_object_size(set, 0); | 40 | size_t __b = __builtin_object_size(__s, 0); |
| 41 | 41 | ||
| 42 | if (fd < 0 || fd >= FD_SETSIZE || bos < sizeof(fd_set)) | 42 | if (__f < 0 || __f >= FD_SETSIZE || __b < sizeof(fd_set)) |
| 43 | __builtin_trap(); | 43 | __builtin_trap(); |
| 44 | FD_SET(fd, set); | 44 | FD_SET(__f, __s); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | #undef FD_CLR | 47 | #undef FD_CLR |
diff --git a/include/sys/socket.h b/include/sys/socket.h index c6e4c35..e68e21c 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h | |||
| @@ -30,42 +30,42 @@ extern "C" { | |||
| 30 | #undef send | 30 | #undef send |
| 31 | #undef sendto | 31 | #undef sendto |
| 32 | 32 | ||
| 33 | fortify_fn(recv) ssize_t recv(int sockfd, void *buf, size_t n, int flags) | 33 | _FORTIFY_FN(recv) ssize_t recv(int __f, void *__s, size_t __n, int __fl) |
| 34 | { | 34 | { |
| 35 | size_t bos = __builtin_object_size(buf, 0); | 35 | size_t __b = __builtin_object_size(__s, 0); |
| 36 | 36 | ||
| 37 | if (n > bos) | 37 | if (__n > __b) |
| 38 | __builtin_trap(); | 38 | __builtin_trap(); |
| 39 | return __orig_recv(sockfd, buf, n, flags); | 39 | return __orig_recv(__f, __s, __n, __fl); |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | fortify_fn(recvfrom) ssize_t recvfrom(int sockfd, void *buf, size_t n, int flags, | 42 | _FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void *__s, size_t __n, int __fl, |
| 43 | struct sockaddr *sa, socklen_t *salen) | 43 | struct sockaddr *__a, socklen_t *__l) |
| 44 | { | 44 | { |
| 45 | size_t bos = __builtin_object_size(buf, 0); | 45 | size_t __b = __builtin_object_size(__s, 0); |
| 46 | 46 | ||
| 47 | if (n > bos) | 47 | if (__n > __b) |
| 48 | __builtin_trap(); | 48 | __builtin_trap(); |
| 49 | return __orig_recvfrom(sockfd, buf, n, flags, sa, salen); | 49 | return __orig_recvfrom(__f, __s, __n, __fl, __a, __l); |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | fortify_fn(send) ssize_t send(int sockfd, const void *buf, size_t n, int flags) | 52 | _FORTIFY_FN(send) ssize_t send(int __f, const void *__s, size_t __n, int __fl) |
| 53 | { | 53 | { |
| 54 | size_t bos = __builtin_object_size(buf, 0); | 54 | size_t __b = __builtin_object_size(__s, 0); |
| 55 | 55 | ||
| 56 | if (n > bos) | 56 | if (__n > __b) |
| 57 | __builtin_trap(); | 57 | __builtin_trap(); |
| 58 | return __orig_send(sockfd, buf, n, flags); | 58 | return __orig_send(__f, __s, __n, __fl); |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | fortify_fn(sendto) ssize_t sendto(int sockfd, const void *buf, size_t n, int flags, | 61 | _FORTIFY_FN(sendto) ssize_t sendto(int __f, const void *__s, size_t __n, int __fl, |
| 62 | const struct sockaddr *sa, socklen_t salen) | 62 | const struct sockaddr *__a, socklen_t __l) |
| 63 | { | 63 | { |
| 64 | size_t bos = __builtin_object_size(buf, 0); | 64 | size_t __b = __builtin_object_size(__s, 0); |
| 65 | 65 | ||
| 66 | if (n > bos) | 66 | if (__n > __b) |
| 67 | __builtin_trap(); | 67 | __builtin_trap(); |
| 68 | return __orig_sendto(sockfd, buf, n, flags, sa, salen); | 68 | return __orig_sendto(__f, __s, __n, __fl, __a, __l); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | #ifdef __cplusplus | 71 | #ifdef __cplusplus |
diff --git a/include/unistd.h b/include/unistd.h index 7986e52..45304e1 100644 --- a/include/unistd.h +++ b/include/unistd.h | |||
| @@ -37,115 +37,115 @@ extern "C" { | |||
| 37 | #undef ttyname_r | 37 | #undef ttyname_r |
| 38 | #undef write | 38 | #undef write |
| 39 | 39 | ||
| 40 | fortify_fn(confstr) size_t confstr(int name, char *buf, size_t len) | 40 | _FORTIFY_FN(confstr) size_t confstr(int __n, char *__s, size_t __l) |
| 41 | { | 41 | { |
| 42 | size_t bos = __builtin_object_size(buf, 0); | 42 | size_t __b = __builtin_object_size(__s, 0); |
| 43 | 43 | ||
| 44 | if (len > bos) | 44 | if (__l > __b) |
| 45 | __builtin_trap(); | 45 | __builtin_trap(); |
| 46 | return __orig_confstr(name, buf, len); | 46 | return __orig_confstr(__n, __s, __l); |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | fortify_fn(getcwd) char *getcwd(char *buf, size_t len) | 49 | _FORTIFY_FN(getcwd) char *getcwd(char *__s, size_t __l) |
| 50 | { | 50 | { |
| 51 | size_t bos = __builtin_object_size(buf, 0); | 51 | size_t __b = __builtin_object_size(__s, 0); |
| 52 | 52 | ||
| 53 | if (len > bos) | 53 | if (__l > __b) |
| 54 | __builtin_trap(); | 54 | __builtin_trap(); |
| 55 | return __orig_getcwd(buf, len); | 55 | return __orig_getcwd(__s, __l); |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 58 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 59 | #undef getdomainname | 59 | #undef getdomainname |
| 60 | fortify_fn(getdomainname) int getdomainname(char *name, size_t len) | 60 | _FORTIFY_FN(getdomainname) int getdomainname(char *__s, size_t __l) |
| 61 | { | 61 | { |
| 62 | size_t bos = __builtin_object_size(name, 0); | 62 | size_t __b = __builtin_object_size(__s, 0); |
| 63 | 63 | ||
| 64 | if (len > bos) | 64 | if (__l > __b) |
| 65 | __builtin_trap(); | 65 | __builtin_trap(); |
| 66 | return __orig_getdomainname(name, len); | 66 | return __orig_getdomainname(__s, __l); |
| 67 | } | 67 | } |
| 68 | #endif | 68 | #endif |
| 69 | 69 | ||
| 70 | fortify_fn(getgroups) int getgroups(int len, gid_t *set) | 70 | _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s) |
| 71 | { | 71 | { |
| 72 | size_t bos = __builtin_object_size(set, 0); | 72 | size_t __b = __builtin_object_size(__s, 0); |
| 73 | 73 | ||
| 74 | if (len > bos / sizeof(gid_t)) | 74 | if (__l > __b / sizeof(gid_t)) |
| 75 | __builtin_trap(); | 75 | __builtin_trap(); |
| 76 | return __orig_getgroups(len, set); | 76 | return __orig_getgroups(__l, __s); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| 79 | fortify_fn(gethostname) int gethostname(char *name, size_t len) | 79 | _FORTIFY_FN(gethostname) int gethostname(char *__s, size_t __l) |
| 80 | { | 80 | { |
| 81 | size_t bos = __builtin_object_size(name, 0); | 81 | size_t __b = __builtin_object_size(__s, 0); |
| 82 | 82 | ||
| 83 | if (len > bos) | 83 | if (__l > __b) |
| 84 | __builtin_trap(); | 84 | __builtin_trap(); |
| 85 | return __orig_gethostname(name, len); | 85 | return __orig_gethostname(__s, __l); |
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | fortify_fn(getlogin_r) int getlogin_r(char *name, size_t len) | 88 | _FORTIFY_FN(getlogin_r) int getlogin_r(char *__s, size_t __l) |
| 89 | { | 89 | { |
| 90 | size_t bos = __builtin_object_size(name, 0); | 90 | size_t __b = __builtin_object_size(__s, 0); |
| 91 | 91 | ||
| 92 | if (len > bos) | 92 | if (__l > __b) |
| 93 | __builtin_trap(); | 93 | __builtin_trap(); |
| 94 | return __orig_getlogin_r(name, len); | 94 | return __orig_getlogin_r(__s, __l); |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | fortify_fn(pread) ssize_t pread(int fd, void *buf, size_t n, off_t offset) | 97 | _FORTIFY_FN(pread) ssize_t pread(int __f, void *__s, size_t __n, off_t __o) |
| 98 | { | 98 | { |
| 99 | size_t bos = __builtin_object_size(buf, 0); | 99 | size_t __b = __builtin_object_size(__s, 0); |
| 100 | 100 | ||
| 101 | if (n > bos) | 101 | if (__n > __b) |
| 102 | __builtin_trap(); | 102 | __builtin_trap(); |
| 103 | return __orig_pread(fd, buf, n, offset); | 103 | return __orig_pread(__f, __s, __n, __o); |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | fortify_fn(read) ssize_t read(int fd, void *buf, size_t n) | 106 | _FORTIFY_FN(read) ssize_t read(int __f, void *__s, size_t __n) |
| 107 | { | 107 | { |
| 108 | size_t bos = __builtin_object_size(buf, 0); | 108 | size_t __b = __builtin_object_size(__s, 0); |
| 109 | 109 | ||
| 110 | if (n > bos) | 110 | if (__n > __b) |
| 111 | __builtin_trap(); | 111 | __builtin_trap(); |
| 112 | return __orig_read(fd, buf, n); | 112 | return __orig_read(__f, __s, __n); |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | fortify_fn(readlink) ssize_t readlink(const char *path, char *buf, size_t n) | 115 | _FORTIFY_FN(readlink) ssize_t readlink(const char *__p, char *__s, size_t __n) |
| 116 | { | 116 | { |
| 117 | size_t bos = __builtin_object_size(buf, 0); | 117 | size_t __b = __builtin_object_size(__s, 0); |
| 118 | 118 | ||
| 119 | if (n > bos) | 119 | if (__n > __b) |
| 120 | __builtin_trap(); | 120 | __builtin_trap(); |
| 121 | return __orig_readlink(path, buf, n); | 121 | return __orig_readlink(__p, __s, __n); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | fortify_fn(readlinkat) ssize_t readlinkat(int fd, const char *path, char *buf, size_t n) | 124 | _FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p, char *__s, size_t __n) |
| 125 | { | 125 | { |
| 126 | size_t bos = __builtin_object_size(buf, 0); | 126 | size_t __b = __builtin_object_size(__s, 0); |
| 127 | 127 | ||
| 128 | if (n > bos) | 128 | if (__n > __b) |
| 129 | __builtin_trap(); | 129 | __builtin_trap(); |
| 130 | return __orig_readlinkat(fd, path, buf, n); | 130 | return __orig_readlinkat(__f, __p, __s, __n); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | fortify_fn(ttyname_r) int ttyname_r(int fd, char *name, size_t n) | 133 | _FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char *__s, size_t __n) |
| 134 | { | 134 | { |
| 135 | size_t bos = __builtin_object_size(name, 0); | 135 | size_t __b = __builtin_object_size(__s, 0); |
| 136 | 136 | ||
| 137 | if (n > bos) | 137 | if (__n > __b) |
| 138 | __builtin_trap(); | 138 | __builtin_trap(); |
| 139 | return __orig_ttyname_r(fd, name, n); | 139 | return __orig_ttyname_r(__f, __s, __n); |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | fortify_fn(write) ssize_t write(int fd, const void *buf, size_t n) | 142 | _FORTIFY_FN(write) ssize_t write(int __f, const void *__s, size_t __n) |
| 143 | { | 143 | { |
| 144 | size_t bos = __builtin_object_size(buf, 0); | 144 | size_t __b = __builtin_object_size(__s, 0); |
| 145 | 145 | ||
| 146 | if (n > bos) | 146 | if (__n > __b) |
| 147 | __builtin_trap(); | 147 | __builtin_trap(); |
| 148 | return __orig_write(fd, buf, n); | 148 | return __orig_write(__f, __s, __n); |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | #ifdef __cplusplus | 151 | #ifdef __cplusplus |
diff --git a/include/wchar.h b/include/wchar.h index 64618f1..6fa86f2 100644 --- a/include/wchar.h +++ b/include/wchar.h | |||
| @@ -41,190 +41,190 @@ extern "C" { | |||
| 41 | #undef wmemmove | 41 | #undef wmemmove |
| 42 | #undef wmemset | 42 | #undef wmemset |
| 43 | 43 | ||
| 44 | fortify_fn(fgetws) wchar_t *fgetws(wchar_t *s, int n, FILE *fp) | 44 | _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t *__s, int __n, FILE *__f) |
| 45 | { | 45 | { |
| 46 | size_t bos = __builtin_object_size(s, 0); | 46 | size_t __b = __builtin_object_size(__s, 0); |
| 47 | 47 | ||
| 48 | if ((size_t)n > bos / sizeof(wchar_t)) | 48 | if ((size_t)__n > __b / sizeof(wchar_t)) |
| 49 | __builtin_trap(); | 49 | __builtin_trap(); |
| 50 | return __orig_fgetws(s, n, fp); | 50 | return __orig_fgetws(__s, __n, __f); |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ | 53 | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ |
| 54 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 54 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 55 | #undef mbsnrtowcs | 55 | #undef mbsnrtowcs |
| 56 | fortify_fn(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *d, const char **s, size_t n, | 56 | _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *__d, const char **__s, size_t __n, |
| 57 | size_t wn, mbstate_t *st) | 57 | size_t __wn, mbstate_t *__st) |
| 58 | { | 58 | { |
| 59 | size_t bos = __builtin_object_size(d, 0); | 59 | size_t __b = __builtin_object_size(__d, 0); |
| 60 | size_t r; | 60 | size_t __r; |
| 61 | 61 | ||
| 62 | if (wn > n / sizeof(wchar_t)) { | 62 | if (__wn > __n / sizeof(wchar_t)) { |
| 63 | bos /= sizeof(wchar_t); | 63 | __b /= sizeof(wchar_t); |
| 64 | r = __orig_mbsnrtowcs(d, s, n, wn > bos ? bos : wn, st); | 64 | __r = __orig_mbsnrtowcs(__d, __s, __n, __wn > __b ? __b : __wn, __st); |
| 65 | if (bos < wn && d && *s && r != (size_t)-1) | 65 | if (__b < __wn && __d && *__s && __r != (size_t)-1) |
| 66 | __builtin_trap(); | 66 | __builtin_trap(); |
| 67 | } else { | 67 | } else { |
| 68 | r = __orig_mbsnrtowcs(d, s, n > bos ? bos : n, wn, st); | 68 | __r = __orig_mbsnrtowcs(__d, __s, __n > __b ? __b : __n, __wn, __st); |
| 69 | if (bos < n && d && *s && r != (size_t)-1) | 69 | if (__b < __n && __d && *__s && __r != (size_t)-1) |
| 70 | __builtin_trap(); | 70 | __builtin_trap(); |
| 71 | } | 71 | } |
| 72 | return r; | 72 | return __r; |
| 73 | } | 73 | } |
| 74 | #endif | 74 | #endif |
| 75 | 75 | ||
| 76 | fortify_fn(mbsrtowcs) size_t mbsrtowcs(wchar_t *d, const char **s, size_t wn, | 76 | _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t *__d, const char **__s, size_t __wn, |
| 77 | mbstate_t *st) | 77 | mbstate_t *__st) |
| 78 | { | 78 | { |
| 79 | size_t bos = __builtin_object_size(d, 0); | 79 | size_t __b = __builtin_object_size(__d, 0); |
| 80 | size_t r; | 80 | size_t __r; |
| 81 | 81 | ||
| 82 | bos /= sizeof(wchar_t); | 82 | __b /= sizeof(wchar_t); |
| 83 | r = __orig_mbsrtowcs(d, s, wn > bos ? bos : wn, st); | 83 | __r = __orig_mbsrtowcs(__d, __s, __wn > __b ? __b : __wn, __st); |
| 84 | if (bos < wn && d && *s && r != (size_t)-1) | 84 | if (__b < __wn && __d && *__s && __r != (size_t)-1) |
| 85 | __builtin_trap(); | 85 | __builtin_trap(); |
| 86 | return r; | 86 | return __r; |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | fortify_fn(mbstowcs) size_t mbstowcs(wchar_t *ws, const char *s, size_t wn) | 89 | _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t *__ws, const char *__s, size_t __wn) |
| 90 | { | 90 | { |
| 91 | size_t bos = __builtin_object_size(ws, 0); | 91 | size_t __b = __builtin_object_size(__ws, 0); |
| 92 | 92 | ||
| 93 | if (ws && wn > bos / sizeof(wchar_t)) | 93 | if (__ws && __wn > __b / sizeof(wchar_t)) |
| 94 | __builtin_trap(); | 94 | __builtin_trap(); |
| 95 | return __orig_mbstowcs(ws, s, wn); | 95 | return __orig_mbstowcs(__ws, __s, __wn); |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | fortify_fn(wcrtomb) size_t wcrtomb(char *s, wchar_t wc, mbstate_t *st) | 98 | _FORTIFY_FN(wcrtomb) size_t wcrtomb(char *__s, wchar_t __w, mbstate_t *__st) |
| 99 | { | 99 | { |
| 100 | size_t bos = __builtin_object_size(s, 0); | 100 | size_t __b = __builtin_object_size(__s, 0); |
| 101 | 101 | ||
| 102 | if (s && MB_CUR_MAX > bos) | 102 | if (__s && MB_CUR_MAX > __b) |
| 103 | __builtin_trap(); | 103 | __builtin_trap(); |
| 104 | return __orig_wcrtomb(s, wc, st); | 104 | return __orig_wcrtomb(__s, __w, __st); |
| 105 | } | 105 | } |
| 106 | 106 | ||
| 107 | fortify_fn(wcscat) wchar_t *wcscat(wchar_t *d, const wchar_t *s) | 107 | _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t *__d, const wchar_t *__s) |
| 108 | { | 108 | { |
| 109 | size_t bos = __builtin_object_size(d, 0); | 109 | size_t __b = __builtin_object_size(__d, 0); |
| 110 | 110 | ||
| 111 | if (wcslen(s) + wcslen(d) + 1 > bos / sizeof(wchar_t)) | 111 | if (wcslen(__s) + wcslen(__d) + 1 > __b / sizeof(wchar_t)) |
| 112 | __builtin_trap(); | 112 | __builtin_trap(); |
| 113 | return __orig_wcscat(d, s); | 113 | return __orig_wcscat(__d, __s); |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | fortify_fn(wcscpy) wchar_t *wcscpy(wchar_t *d, const wchar_t *s) | 116 | _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t *__d, const wchar_t *__s) |
| 117 | { | 117 | { |
| 118 | size_t bos = __builtin_object_size(d, 0); | 118 | size_t __b = __builtin_object_size(__d, 0); |
| 119 | 119 | ||
| 120 | if (wcslen(s) + 1 > bos / sizeof(wchar_t)) | 120 | if (wcslen(__s) + 1 > __b / sizeof(wchar_t)) |
| 121 | __builtin_trap(); | 121 | __builtin_trap(); |
| 122 | return __orig_wcscpy(d, s); | 122 | return __orig_wcscpy(__d, __s); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | fortify_fn(wcsncat) wchar_t *wcsncat(wchar_t *d, const wchar_t *s, size_t n) | 125 | _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 126 | { | 126 | { |
| 127 | size_t bos = __builtin_object_size(d, 0); | 127 | size_t __b = __builtin_object_size(__d, 0); |
| 128 | size_t slen, dlen; | 128 | size_t __sl, __dl; |
| 129 | 129 | ||
| 130 | if (n > bos / sizeof(wchar_t)) { | 130 | if (__n > __b / sizeof(wchar_t)) { |
| 131 | slen = wcslen(s); | 131 | __sl = wcslen(__s); |
| 132 | dlen = wcslen(d); | 132 | __dl = wcslen(__d); |
| 133 | if (slen > n) | 133 | if (__sl > __n) |
| 134 | slen = n; | 134 | __sl = __n; |
| 135 | if (slen + dlen + 1 > bos / sizeof(wchar_t)) | 135 | if (__sl + __dl + 1 > __b / sizeof(wchar_t)) |
| 136 | __builtin_trap(); | 136 | __builtin_trap(); |
| 137 | } | 137 | } |
| 138 | return __orig_wcsncat(d, s, n); | 138 | return __orig_wcsncat(__d, __s, __n); |
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | fortify_fn(wcsncpy) wchar_t *wcsncpy(wchar_t *d, const wchar_t *s, size_t n) | 141 | _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 142 | { | 142 | { |
| 143 | size_t bos = __builtin_object_size(d, 0); | 143 | size_t __b = __builtin_object_size(__d, 0); |
| 144 | 144 | ||
| 145 | if (n > bos / sizeof(wchar_t)) | 145 | if (__n > __b / sizeof(wchar_t)) |
| 146 | __builtin_trap(); | 146 | __builtin_trap(); |
| 147 | return __orig_wcsncpy(d, s, n); | 147 | return __orig_wcsncpy(__d, __s, __n); |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ | 150 | #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ |
| 151 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 151 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 152 | #undef wcsnrtombs | 152 | #undef wcsnrtombs |
| 153 | fortify_fn(wcsnrtombs) size_t wcsnrtombs(char *d, const wchar_t **s, size_t wn, | 153 | _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char *__d, const wchar_t **__s, size_t __wn, |
| 154 | size_t n, mbstate_t *st) | 154 | size_t __n, mbstate_t *__st) |
| 155 | { | 155 | { |
| 156 | size_t bos = __builtin_object_size(d, 0); | 156 | size_t __b = __builtin_object_size(__d, 0); |
| 157 | size_t r; | 157 | size_t __r; |
| 158 | 158 | ||
| 159 | if (wn > n / sizeof(wchar_t)) { | 159 | if (__wn > __n / sizeof(wchar_t)) { |
| 160 | bos /= sizeof(wchar_t); | 160 | __b /= sizeof(wchar_t); |
| 161 | r = __orig_wcsnrtombs(d, s, wn > bos ? bos : wn, n, st); | 161 | __r = __orig_wcsnrtombs(__d, __s, __wn > __b ? __b : __wn, __n, __st); |
| 162 | if (bos < wn && d && *s && r != (size_t)-1) | 162 | if (__b < __wn && __d && *__s && __r != (size_t)-1) |
| 163 | __builtin_trap(); | 163 | __builtin_trap(); |
| 164 | } else { | 164 | } else { |
| 165 | r = __orig_wcsnrtombs(d, s, wn, n > bos ? bos : n, st); | 165 | __r = __orig_wcsnrtombs(__d, __s, __wn, __n > __b ? __b : __n, __st); |
| 166 | if (bos < n && d && *s && r != (size_t)-1) | 166 | if (__b < __n && __d && *__s && __r != (size_t)-1) |
| 167 | __builtin_trap(); | 167 | __builtin_trap(); |
| 168 | } | 168 | } |
| 169 | return r; | 169 | return __r; |
| 170 | } | 170 | } |
| 171 | #endif | 171 | #endif |
| 172 | 172 | ||
| 173 | fortify_fn(wcsrtombs) size_t wcsrtombs(char *d, const wchar_t **s, size_t n, | 173 | _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char *__d, const wchar_t **__s, size_t __n, |
| 174 | mbstate_t *st) | 174 | mbstate_t *__st) |
| 175 | { | 175 | { |
| 176 | size_t bos = __builtin_object_size(d, 0); | 176 | size_t __b = __builtin_object_size(__d, 0); |
| 177 | size_t r; | 177 | size_t __r; |
| 178 | 178 | ||
| 179 | r = __orig_wcsrtombs(d, s, n > bos ? bos : n, st); | 179 | __r = __orig_wcsrtombs(__d, __s, __n > __b ? __b : __n, __st); |
| 180 | if (bos < n && d && *s && r != (size_t)-1) | 180 | if (__b < __n && __d && *__s && __r != (size_t)-1) |
| 181 | __builtin_trap(); | 181 | __builtin_trap(); |
| 182 | return r; | 182 | return __r; |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | fortify_fn(wcstombs) size_t wcstombs(char *s, const wchar_t *ws, size_t n) | 185 | _FORTIFY_FN(wcstombs) size_t wcstombs(char *__s, const wchar_t *__ws, size_t __n) |
| 186 | { | 186 | { |
| 187 | size_t bos = __builtin_object_size(s, 0); | 187 | size_t __b = __builtin_object_size(__s, 0); |
| 188 | 188 | ||
| 189 | if (s && n > bos) | 189 | if (__s && __n > __b) |
| 190 | __builtin_trap(); | 190 | __builtin_trap(); |
| 191 | return __orig_wcstombs(s, ws, n); | 191 | return __orig_wcstombs(__s, __ws, __n); |
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | fortify_fn(wctomb) int wctomb(char *s, wchar_t wc) | 194 | _FORTIFY_FN(wctomb) int wctomb(char *__s, wchar_t __w) |
| 195 | { | 195 | { |
| 196 | size_t bos = __builtin_object_size(s, 0); | 196 | size_t __b = __builtin_object_size(__s, 0); |
| 197 | 197 | ||
| 198 | if (s && MB_CUR_MAX > bos) | 198 | if (__s && MB_CUR_MAX > __b) |
| 199 | __builtin_trap(); | 199 | __builtin_trap(); |
| 200 | return __orig_wctomb(s, wc); | 200 | return __orig_wctomb(__s, __w); |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | fortify_fn(wmemcpy) wchar_t *wmemcpy(wchar_t *d, const wchar_t *s, size_t n) | 203 | _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 204 | { | 204 | { |
| 205 | size_t bos = __builtin_object_size(d, 0); | 205 | size_t __b = __builtin_object_size(__d, 0); |
| 206 | 206 | ||
| 207 | if (n > bos / sizeof(wchar_t)) | 207 | if (__n > __b / sizeof(wchar_t)) |
| 208 | __builtin_trap(); | 208 | __builtin_trap(); |
| 209 | return __orig_wmemcpy(d, s, n); | 209 | return __orig_wmemcpy(__d, __s, __n); |
| 210 | } | 210 | } |
| 211 | 211 | ||
| 212 | fortify_fn(wmemmove) wchar_t *wmemmove(wchar_t *d, const wchar_t *s, size_t n) | 212 | _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t *__d, const wchar_t *__s, size_t __n) |
| 213 | { | 213 | { |
| 214 | size_t bos = __builtin_object_size(d, 0); | 214 | size_t __b = __builtin_object_size(__d, 0); |
| 215 | 215 | ||
| 216 | if (n > bos / sizeof(wchar_t)) | 216 | if (__n > __b / sizeof(wchar_t)) |
| 217 | __builtin_trap(); | 217 | __builtin_trap(); |
| 218 | return __orig_wmemmove(d, s, n); | 218 | return __orig_wmemmove(__d, __s, __n); |
| 219 | } | 219 | } |
| 220 | 220 | ||
| 221 | fortify_fn(wmemset) wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n) | 221 | _FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t *__s, wchar_t __c, size_t __n) |
| 222 | { | 222 | { |
| 223 | size_t bos = __builtin_object_size(s, 0); | 223 | size_t __b = __builtin_object_size(__s, 0); |
| 224 | 224 | ||
| 225 | if (n > bos / sizeof(wchar_t)) | 225 | if (__n > __b / sizeof(wchar_t)) |
| 226 | __builtin_trap(); | 226 | __builtin_trap(); |
| 227 | return __orig_wmemset(s, c, n); | 227 | return __orig_wmemset(__s, __c, __n); |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | #ifdef __cplusplus | 230 | #ifdef __cplusplus |
