[PATCH] libsanitizer: Fix setbuffer() interceptor (accept size not mode)
Azat Khuzhin
a3at.mail@gmail.com
Wed Dec 22 20:45:07 GMT 2021
On Wed, Dec 22, 2021 at 09:41:06PM +0100, Bernhard Reutner-Fischer wrote:
> On 22 December 2021 19:19:12 CET, Azat Khuzhin via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
> >Fixes: b667dd7017a ("Libsanitizer merge from trunk r368656.")
> >Refs: https://reviews.llvm.org/D116176
> >---
> > .../sanitizer_common/sanitizer_common_interceptors.inc | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> >
> >diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
> >index abb38ccfa15..60b0545a943 100644
> >--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
> >+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
> >@@ -7858,12 +7858,13 @@ 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);
> >+ COMMON_INTERCEPTOR_ENTER(ctx, setbuffer, stream, buf, size);
> > REAL(setbuffer)(stream, buf, mode);
>
> Where does mode come from after this patch?
setbuffer() does not accept mode, it simply do not change it.
Only setvbuf() can change the mode.
> thanks,
>
> > if (buf) {
> >- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, __sanitizer_bufsiz);
> >+ COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, size);
> > }
> > if (stream)
> > unpoison_file(stream);
>
More information about the Gcc-patches
mailing list