summaryrefslogtreecommitdiff
path: root/include/string.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/string.h')
-rw-r--r--include/string.h33
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