[compiler-rt] 856550c - [Sanitizer] Fix setbuffer() interceptor (it accept size, not mode)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 22 22:13:49 PST 2021
Author: Azat Khuzhin
Date: 2021-12-22T22:13:36-08:00
New Revision: 856550ca79ba558fe776adc8777a4b7264b66dc8
URL: https://github.com/llvm/llvm-project/commit/856550ca79ba558fe776adc8777a4b7264b66dc8
DIFF: https://github.com/llvm/llvm-project/commit/856550ca79ba558fe776adc8777a4b7264b66dc8.diff
LOG: [Sanitizer] Fix setbuffer() interceptor (it accept size, not mode)
Fixes: 0c81a62d9d76 ("[Sanitizer] Adding setvbuf in supported platforms and other stream buffer functions")
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D116176
Added:
Modified:
compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
compiler-rt/test/sanitizer_common/TestCases/Posix/setvbuf.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
index d219734fa0a3..b0ab08dff1db 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
@@ -7857,12 +7857,12 @@ INTERCEPTOR(void, setbuf, __sanitizer_FILE *stream, char *buf) {
unpoison_file(stream);
}
-INTERCEPTOR(void, setbuffer, __sanitizer_FILE *stream, char *buf, int mode) {
+INTERCEPTOR(void, setbuffer, __sanitizer_FILE *stream, char *buf, SIZE_T size) {
void *ctx;
- COMMON_INTERCEPTOR_ENTER(ctx, setbuffer, stream, buf, mode);
- REAL(setbuffer)(stream, buf, mode);
+ COMMON_INTERCEPTOR_ENTER(ctx, setbuffer, stream, buf, size);
+ REAL(setbuffer)(stream, buf, size);
if (buf) {
- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, __sanitizer_bufsiz);
+ COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, size);
}
if (stream)
unpoison_file(stream);
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/setvbuf.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/setvbuf.cpp
index bc29ba45d89a..f789bfd727d5 100644
--- a/compiler-rt/test/sanitizer_common/TestCases/Posix/setvbuf.cpp
+++ b/compiler-rt/test/sanitizer_common/TestCases/Posix/setvbuf.cpp
@@ -34,7 +34,9 @@ void test_setbuffer() {
print_something();
- setbuffer(stdout, buf, BUFSIZ);
+ // Ensure that interceptor reads correct size
+ // (not BUFSIZ as by default, hence BUFSIZ/2).
+ setbuffer(stdout, buf, BUFSIZ / 2);
print_something();
More information about the llvm-commits
mailing list