diff options
| author | jvoisin | 2023-06-27 17:33:06 +0200 |
|---|---|---|
| committer | jvoisin | 2023-06-27 17:33:06 +0200 |
| commit | 22bb8f49d713bd8ff464abcd731d7326030859fe (patch) | |
| tree | 3cb3c9a080612b63cb0bbd75b02fc866cff29ad2 /include | |
| parent | 3ff7b4dd70ef34fe8ccd64ebfee5d340445ac323 (diff) | |
Add more access-annotations
Diffstat (limited to 'include')
| -rw-r--r-- | include/stdio.h | 4 | ||||
| -rw-r--r-- | include/string.h | 6 | ||||
| -rw-r--r-- | include/strings.h | 3 |
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); |
