diff options
| author | jvoisin | 2023-03-18 14:01:02 +0100 |
|---|---|---|
| committer | jvoisin | 2025-10-31 22:16:21 +0100 |
| commit | 249492e08adbf034976770ab3b021ba093a2ab18 (patch) | |
| tree | cd04ae414fa7ef646a31f767b9295946fd2c9987 /include/stdio.h | |
| parent | e3fee64643279c144efd3d6856ed4e818c0d5ca2 (diff) | |
Make use of __builtin_dynamic_object_size
GCC and Clang provide __builtin_dynamic_object_size
(see documentation: https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html),
so we should make use of it when its available.
Diffstat (limited to 'include/stdio.h')
| -rw-r--r-- | include/stdio.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/include/stdio.h b/include/stdio.h index a965184..1eb20be 100644 --- a/include/stdio.h +++ b/include/stdio.h | |||
| @@ -38,7 +38,7 @@ extern "C" { | |||
| 38 | 38 | ||
| 39 | _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) | 39 | _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) |
| 40 | { | 40 | { |
| 41 | size_t __b = __builtin_object_size(__s, 0); | 41 | size_t __b = __bos(__s, 0); |
| 42 | 42 | ||
| 43 | if ((size_t)__n > __b) | 43 | if ((size_t)__n > __b) |
| 44 | __builtin_trap(); | 44 | __builtin_trap(); |
| @@ -47,7 +47,7 @@ _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f) | |||
| 47 | 47 | ||
| 48 | _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) | 48 | _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) |
| 49 | { | 49 | { |
| 50 | size_t __b = __builtin_object_size(__d, 0); | 50 | size_t __b = __bos(__d, 0); |
| 51 | 51 | ||
| 52 | if (__n != 0 && (__n * __m) / __n != __m) | 52 | if (__n != 0 && (__n * __m) / __n != __m) |
| 53 | __builtin_trap(); | 53 | __builtin_trap(); |
| @@ -58,7 +58,7 @@ _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f) | |||
| 58 | 58 | ||
| 59 | _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE *__f) | 59 | _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE *__f) |
| 60 | { | 60 | { |
| 61 | size_t __b = __builtin_object_size(__d, 0); | 61 | size_t __b = __bos(__d, 0); |
| 62 | 62 | ||
| 63 | if (__n != 0 && (__n * __m) / __n != __m) | 63 | if (__n != 0 && (__n * __m) / __n != __m) |
| 64 | __builtin_trap(); | 64 | __builtin_trap(); |
| @@ -70,7 +70,7 @@ _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE | |||
| 70 | _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, | 70 | _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, |
| 71 | __builtin_va_list __v) | 71 | __builtin_va_list __v) |
| 72 | { | 72 | { |
| 73 | size_t __b = __builtin_object_size(__s, 0); | 73 | size_t __b = __bos(__s, 0); |
| 74 | 74 | ||
| 75 | if (__n > __b) | 75 | if (__n > __b) |
| 76 | __builtin_trap(); | 76 | __builtin_trap(); |
| @@ -79,7 +79,7 @@ _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f, | |||
| 79 | 79 | ||
| 80 | _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list __v) | 80 | _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list __v) |
| 81 | { | 81 | { |
| 82 | size_t __b = __builtin_object_size(__s, 0); | 82 | size_t __b = __bos(__s, 0); |
| 83 | int __r; | 83 | int __r; |
| 84 | 84 | ||
| 85 | if (__b != (size_t)-1) { | 85 | if (__b != (size_t)-1) { |
| @@ -94,7 +94,7 @@ _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list | |||
| 94 | 94 | ||
| 95 | _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) | 95 | _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) |
| 96 | { | 96 | { |
| 97 | size_t __b = __builtin_object_size(__s, 0); | 97 | size_t __b = __bos(__s, 0); |
| 98 | 98 | ||
| 99 | if (__n > __b) | 99 | if (__n > __b) |
| 100 | __builtin_trap(); | 100 | __builtin_trap(); |
| @@ -103,7 +103,7 @@ _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...) | |||
| 103 | 103 | ||
| 104 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) | 104 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) |
| 105 | { | 105 | { |
| 106 | size_t __b = __builtin_object_size(__s, 0); | 106 | size_t __b = __bos(__s, 0); |
| 107 | int __r; | 107 | int __r; |
| 108 | 108 | ||
| 109 | if (__b != (size_t)-1) { | 109 | if (__b != (size_t)-1) { |
