diff options
Diffstat (limited to 'include')
| -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 c1070a8..3e31f29 100644 --- a/include/stdio.h +++ b/include/stdio.h | |||
| @@ -286,7 +286,7 @@ _FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, | |||
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | __fh_format(printf, 2, 3) | 288 | __fh_format(printf, 2, 3) |
| 289 | __fh_access(write_only, 1) | 289 | //__fh_access(write_only, 1) |
| 290 | __fh_access(read_only, 2) | 290 | __fh_access(read_only, 2) |
| 291 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) | 291 | _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) |
| 292 | { | 292 | { |
| @@ -296,13 +296,13 @@ _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...) | |||
| 296 | __fh_size_t __b = __fh_bos(__s, 0); | 296 | __fh_size_t __b = __fh_bos(__s, 0); |
| 297 | int __r; | 297 | int __r; |
| 298 | 298 | ||
| 299 | if (__b != (__fh_size_t)-1) { | 299 | if (__b == (__fh_size_t)-1) { |
| 300 | __r = __orig_snprintf(__s, __b, __f, __builtin_va_arg_pack()); | 300 | return __orig_sprintf(__s, __f, __builtin_va_arg_pack()); |
| 301 | if (__r != -1 && (__fh_size_t)__r >= __b) | ||
| 302 | __builtin_trap(); | ||
| 303 | } else { | ||
| 304 | __r = __orig_sprintf(__s, __f, __builtin_va_arg_pack()); | ||
| 305 | } | 301 | } |
| 302 | |||
| 303 | __r = __orig_snprintf(__s, __b, __f, __builtin_va_arg_pack()); | ||
| 304 | if (__r != -1 && (__fh_size_t)__r >= __b) | ||
| 305 | __builtin_trap(); | ||
| 306 | return __r; | 306 | return __r; |
| 307 | #endif | 307 | #endif |
| 308 | } | 308 | } |
