diff options
Diffstat (limited to 'include/string.h')
| -rw-r--r-- | include/string.h | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/include/string.h b/include/string.h index f9f6701..9fc1cd4 100644 --- a/include/string.h +++ b/include/string.h | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org> | 2 | * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org> |
| 3 | * Copyright (C) 2022 q66 <q66@chimera-linux.org> | ||
| 3 | * | 4 | * |
| 4 | * Permission to use, copy, modify, and/or distribute this software for any | 5 | * Permission to use, copy, modify, and/or distribute this software for any |
| 5 | * purpose with or without fee is hereby granted. | 6 | * purpose with or without fee is hereby granted. |
| @@ -36,7 +37,8 @@ extern "C" { | |||
| 36 | #undef strncat | 37 | #undef strncat |
| 37 | #undef strncpy | 38 | #undef strncpy |
| 38 | 39 | ||
| 39 | _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n) | 40 | _FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od, |
| 41 | const void * _FORTIFY_POS0 __os, size_t __n) | ||
| 40 | { | 42 | { |
| 41 | size_t __bd = __bos(__od, 0); | 43 | size_t __bd = __bos(__od, 0); |
| 42 | size_t __bs = __bos(__os, 0); | 44 | size_t __bs = __bos(__os, 0); |
| @@ -53,7 +55,8 @@ _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n) | |||
| 53 | return __builtin_memcpy(__od, __os, __n); | 55 | return __builtin_memcpy(__od, __os, __n); |
| 54 | } | 56 | } |
| 55 | 57 | ||
| 56 | _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n) | 58 | _FORTIFY_FN(memmove) void *memmove(void * _FORTIFY_POS0 __d, |
| 59 | const void * _FORTIFY_POS0 __s, size_t __n) | ||
| 57 | { | 60 | { |
| 58 | size_t __bd = __bos(__d, 0); | 61 | size_t __bd = __bos(__d, 0); |
| 59 | size_t __bs = __bos(__s, 0); | 62 | size_t __bs = __bos(__s, 0); |
| @@ -63,7 +66,7 @@ _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n) | |||
| 63 | return __orig_memmove(__d, __s, __n); | 66 | return __orig_memmove(__d, __s, __n); |
| 64 | } | 67 | } |
| 65 | 68 | ||
| 66 | _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n) | 69 | _FORTIFY_FN(memset) void *memset(void * _FORTIFY_POS0 __d, int __c, size_t __n) |
| 67 | { | 70 | { |
| 68 | size_t __b = __bos(__d, 0); | 71 | size_t __b = __bos(__d, 0); |
| 69 | 72 | ||
| @@ -76,7 +79,7 @@ _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n) | |||
| 76 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ | 79 | || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ |
| 77 | || defined(_BSD_SOURCE) | 80 | || defined(_BSD_SOURCE) |
| 78 | #undef stpcpy | 81 | #undef stpcpy |
| 79 | _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s) | 82 | _FORTIFY_FN(stpcpy) char *stpcpy(char * _FORTIFY_POS0 __d, const char *__s) |
| 80 | { | 83 | { |
| 81 | size_t __b = __bos(__d, 0); | 84 | size_t __b = __bos(__d, 0); |
| 82 | 85 | ||
| @@ -86,7 +89,8 @@ _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s) | |||
| 86 | } | 89 | } |
| 87 | 90 | ||
| 88 | #undef stpncpy | 91 | #undef stpncpy |
| 89 | _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n) | 92 | _FORTIFY_FN(stpncpy) char *stpncpy(char * _FORTIFY_POS0 __d, const char *__s, |
| 93 | size_t __n) | ||
| 90 | { | 94 | { |
| 91 | size_t __b = __bos(__d, 0); | 95 | size_t __b = __bos(__d, 0); |
| 92 | 96 | ||
| @@ -96,7 +100,7 @@ _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n) | |||
| 96 | } | 100 | } |
| 97 | #endif | 101 | #endif |
| 98 | 102 | ||
| 99 | _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s) | 103 | _FORTIFY_FN(strcat) char *strcat(char * _FORTIFY_POS0 __d, const char *__s) |
| 100 | { | 104 | { |
| 101 | size_t __b = __bos(__d, 0); | 105 | size_t __b = __bos(__d, 0); |
| 102 | 106 | ||
| @@ -105,7 +109,7 @@ _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s) | |||
| 105 | return __orig_strcat(__d, __s); | 109 | return __orig_strcat(__d, __s); |
| 106 | } | 110 | } |
| 107 | 111 | ||
| 108 | _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s) | 112 | _FORTIFY_FN(strcpy) char *strcpy(char * _FORTIFY_POS0 __d, const char *__s) |
| 109 | { | 113 | { |
| 110 | size_t __b = __bos(__d, 0); | 114 | size_t __b = __bos(__d, 0); |
| 111 | 115 | ||
| @@ -114,7 +118,8 @@ _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s) | |||
| 114 | return __orig_strcpy(__d, __s); | 118 | return __orig_strcpy(__d, __s); |
| 115 | } | 119 | } |
| 116 | 120 | ||
| 117 | _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n) | 121 | _FORTIFY_FN(strncat) char *strncat(char * _FORTIFY_POS0 __d, const char *__s, |
| 122 | size_t __n) | ||
| 118 | { | 123 | { |
| 119 | size_t __b = __bos(__d, 0); | 124 | size_t __b = __bos(__d, 0); |
| 120 | size_t __sl, __dl; | 125 | size_t __sl, __dl; |
| @@ -130,7 +135,8 @@ _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n) | |||
| 130 | return __orig_strncat(__d, __s, __n); | 135 | return __orig_strncat(__d, __s, __n); |
| 131 | } | 136 | } |
| 132 | 137 | ||
| 133 | _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n) | 138 | _FORTIFY_FN(strncpy) char *strncpy(char * _FORTIFY_POS0 __d, |
| 139 | const char *__s, size_t __n) | ||
| 134 | { | 140 | { |
| 135 | size_t __b = __bos(__d, 0); | 141 | size_t __b = __bos(__d, 0); |
| 136 | 142 | ||
| @@ -141,7 +147,8 @@ _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n) | |||
| 141 | 147 | ||
| 142 | #ifdef _GNU_SOURCE | 148 | #ifdef _GNU_SOURCE |
| 143 | #undef mempcpy | 149 | #undef mempcpy |
| 144 | _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n) | 150 | _FORTIFY_FN(mempcpy) void *mempcpy(void * _FORTIFY_POS0 __d, |
| 151 | const void * _FORTIFY_POS0 __s, size_t __n) | ||
| 145 | { | 152 | { |
| 146 | size_t __bd = __bos(__d, 0); | 153 | size_t __bd = __bos(__d, 0); |
| 147 | size_t __bs = __bos(__s, 0); | 154 | size_t __bs = __bos(__s, 0); |
| @@ -155,7 +162,8 @@ _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n) | |||
| 155 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) | 162 | #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| 156 | #undef strlcat | 163 | #undef strlcat |
| 157 | #undef strlcpy | 164 | #undef strlcpy |
| 158 | _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n) | 165 | _FORTIFY_FN(strlcat) size_t strlcat(char * _FORTIFY_POS0 __d, |
| 166 | const char *__s, size_t __n) | ||
| 159 | { | 167 | { |
| 160 | size_t __b = __bos(__d, 0); | 168 | size_t __b = __bos(__d, 0); |
| 161 | 169 | ||
| @@ -164,7 +172,8 @@ _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n) | |||
| 164 | return __orig_strlcat(__d, __s, __n); | 172 | return __orig_strlcat(__d, __s, __n); |
| 165 | } | 173 | } |
| 166 | 174 | ||
| 167 | _FORTIFY_FN(strlcpy) size_t strlcpy(char *__d, const char *__s, size_t __n) | 175 | _FORTIFY_FN(strlcpy) size_t strlcpy(char * _FORTIFY_POS0 __d, |
| 176 | const char *__s, size_t __n) | ||
| 168 | { | 177 | { |
| 169 | size_t __b = __bos(__d, 0); | 178 | size_t __b = __bos(__d, 0); |
| 170 | 179 | ||
