summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/stdio.h4
-rw-r--r--include/string.h6
-rw-r--r--include/strings.h3
3 files changed, 10 insertions, 3 deletions
diff --git a/include/stdio.h b/include/stdio.h
index 372fd3e..cc16e46 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -47,6 +47,7 @@ _FORTIFY_FN(fgets) char *fgets(char * _FORTIFY_POS0 __s, int __n, FILE *__f)
47 return __orig_fgets(__s, __n, __f); 47 return __orig_fgets(__s, __n, __f);
48} 48}
49 49
50__access(write_only, 1)
50_FORTIFY_FN(fread) size_t fread(void * _FORTIFY_POS0 __d, size_t __n, 51_FORTIFY_FN(fread) size_t fread(void * _FORTIFY_POS0 __d, size_t __n,
51 size_t __m, FILE *__f) 52 size_t __m, FILE *__f)
52{ 53{
@@ -59,6 +60,7 @@ _FORTIFY_FN(fread) size_t fread(void * _FORTIFY_POS0 __d, size_t __n,
59 return __orig_fread(__d, __n, __m, __f); 60 return __orig_fread(__d, __n, __m, __f);
60} 61}
61 62
63__access(read_only, 1)
62_FORTIFY_FN(fwrite) size_t fwrite(const void * _FORTIFY_POS0 __d, size_t __n, 64_FORTIFY_FN(fwrite) size_t fwrite(const void * _FORTIFY_POS0 __d, size_t __n,
63 size_t __m, FILE *__f) 65 size_t __m, FILE *__f)
64{ 66{
@@ -71,6 +73,7 @@ _FORTIFY_FN(fwrite) size_t fwrite(const void * _FORTIFY_POS0 __d, size_t __n,
71 return __orig_fwrite(__d, __n, __m, __f); 73 return __orig_fwrite(__d, __n, __m, __f);
72} 74}
73 75
76__access(read_write, 1, 2)
74_FORTIFY_FN(vsnprintf) int vsnprintf(char * _FORTIFY_POS0 __s, size_t __n, 77_FORTIFY_FN(vsnprintf) int vsnprintf(char * _FORTIFY_POS0 __s, size_t __n,
75 const char *__f, __builtin_va_list __v) 78 const char *__f, __builtin_va_list __v)
76{ 79{
@@ -112,6 +115,7 @@ _FORTIFY_FN(vsprintf) int vsprintf(char * _FORTIFY_POS0 __s, const char *__f,
112 * 3) not implementing these under clang, which is what we do for now 115 * 3) not implementing these under clang, which is what we do for now
113 */ 116 */
114 117
118__access(read_write, 1, 2)
115_FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, 119_FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n,
116 const char *__f, ...) 120 const char *__f, ...)
117{ 121{
diff --git a/include/string.h b/include/string.h
index bbf24fe..36f1df2 100644
--- a/include/string.h
+++ b/include/string.h
@@ -37,7 +37,7 @@ extern "C" {
37#undef strncat 37#undef strncat
38#undef strncpy 38#undef strncpy
39 39
40__access(write_only, 1) 40__access(write_only, 1, 3)
41__access(read_only, 2, 3) 41__access(read_only, 2, 3)
42_FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od, 42_FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od,
43 const void * _FORTIFY_POS0 __os, size_t __n) 43 const void * _FORTIFY_POS0 __os, size_t __n)
@@ -57,7 +57,7 @@ _FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od,
57 return __builtin_memcpy(__od, __os, __n); 57 return __builtin_memcpy(__od, __os, __n);
58} 58}
59 59
60__access(write_only, 1) 60__access(write_only, 1, 3)
61__access(read_only, 2, 3) 61__access(read_only, 2, 3)
62_FORTIFY_FN(memmove) void *memmove(void * _FORTIFY_POS0 __d, 62_FORTIFY_FN(memmove) void *memmove(void * _FORTIFY_POS0 __d,
63 const void * _FORTIFY_POS0 __s, size_t __n) 63 const void * _FORTIFY_POS0 __s, size_t __n)
@@ -70,7 +70,7 @@ _FORTIFY_FN(memmove) void *memmove(void * _FORTIFY_POS0 __d,
70 return __orig_memmove(__d, __s, __n); 70 return __orig_memmove(__d, __s, __n);
71} 71}
72 72
73__access(write_only, 1) 73__access(write_only, 1, 3)
74_FORTIFY_FN(memset) void *memset(void * _FORTIFY_POS0 __d, int __c, size_t __n) 74_FORTIFY_FN(memset) void *memset(void * _FORTIFY_POS0 __d, int __c, size_t __n)
75{ 75{
76 size_t __b = __bos(__d, 0); 76 size_t __b = __bos(__d, 0);
diff --git a/include/strings.h b/include/strings.h
index 862b7be..3b6b765 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -31,6 +31,8 @@ extern "C" {
31 || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700) 31 || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
32#undef bcopy 32#undef bcopy
33#undef bzero 33#undef bzero
34__access(write_only, 2, 3)
35__access(read_only, 1, 3)
34_FORTIFY_FN(bcopy) void bcopy(const void * _FORTIFY_POS0 __s, 36_FORTIFY_FN(bcopy) void bcopy(const void * _FORTIFY_POS0 __s,
35 void * _FORTIFY_POS0 __d, size_t __n) 37 void * _FORTIFY_POS0 __d, size_t __n)
36{ 38{
@@ -42,6 +44,7 @@ _FORTIFY_FN(bcopy) void bcopy(const void * _FORTIFY_POS0 __s,
42 return __orig_bcopy(__s, __d, __n); 44 return __orig_bcopy(__s, __d, __n);
43} 45}
44 46
47__access(write_only, 1, 2)
45_FORTIFY_FN(bzero) void bzero(void * _FORTIFY_POS0 __s, size_t __n) 48_FORTIFY_FN(bzero) void bzero(void * _FORTIFY_POS0 __s, size_t __n)
46{ 49{
47 size_t __b = __bos(__s, 0); 50 size_t __b = __bos(__s, 0);