summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorjvoisin2024-09-06 13:36:15 +0200
committerjvoisin2024-09-06 13:38:22 +0200
commitf2e7f24daaa43c0927130b6ed02c3ed17689b3ca (patch)
tree360f799b6b3fa5a6e5f4837980e5f9831b6c5a64 /include
parent114b563adc2b942bc5abd4c5820507076d453f64 (diff)
Work around a gcc warning
It seems that annotating sprintf with `write` makes gcc unhappy, as its analyser is unable to understand that we're checking if `__b != -1` before calling `__orig_snprintf`, so let's comment this annotation for now.
Diffstat (limited to 'include')
-rw-r--r--include/stdio.h14
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}