|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4 |
|
| #
94b0851a |
| 28-Aug-2023 |
Enna1 <xumingjie.enna1@bytedance.com> |
[sanitizer] use uptr to store the result of internal_strlen/internal_strnlen in printf_common
The return type of `internal_strlen()` is 'uptr', but in `printf_common()` we store the result of `inter
[sanitizer] use uptr to store the result of internal_strlen/internal_strnlen in printf_common
The return type of `internal_strlen()` is 'uptr', but in `printf_common()` we store the result of `internal_strlen()` into an 'int' type variable. When the result value of `internal_strlen()` is larger than the largest possible value of 'int' type, the implicit conversion from 'uptr' to 'int' will change the result value to a negative value.
Without this change, asan reports a false positive negative-size-param in the added testcase.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D157266
show more ...
|