From a0e3c9e2e8ec0147a54cbc2f628c345f9f7ddfb7 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 1 Mar 2005 01:20:39 +0000 Subject: [PATCH] * debug/read_chk.c (__read_chk): Always fail if the buffer is too small. * debug/readlink_chk.c (__readlink_chk): Likewise. * debug/pread64_chk.c (__pread64_chk): Likewise. * debug/pread_chk.c (__pread_chk): Likewise. --- ChangeLog | 5 +++++ debug/read_chk.c | 4 ++-- debug/readlink_chk.c | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 45915dc..ac79e43 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,11 @@ * posix/bits/unistd.h: Avoid calling __*_chk variants if we can determine the call will never trigger a failure. + * debug/read_chk.c (__read_chk): Always fail if the buffer is too + small. + * debug/readlink_chk.c (__readlink_chk): Likewise. + * debug/pread64_chk.c (__pread64_chk): Likewise. + * debug/pread_chk.c (__pread_chk): Likewise. * sysdeps/i386/i686/memset_chk.S: Remove alias and warning. * sysdeps/x86_64/memset_chk.S: Likewise. diff --git a/debug/read_chk.c b/debug/read_chk.c index f738c48..da2bc94 100644 --- a/debug/read_chk.c +++ b/debug/read_chk.c @@ -31,8 +31,8 @@ __read_chk (int fd, void *buf, size_t nbytes, size_t buflen) __chk_fail (); #ifdef HAVE_INLINED_SYSCALLS - return = INLINE_SYSCALL (read, 3, fd, buf, nbytes); + return INLINE_SYSCALL (read, 3, fd, buf, nbytes); #else - return = __read (fd, buf, nbytes); + return __read (fd, buf, nbytes); #endif } diff --git a/debug/readlink_chk.c b/debug/readlink_chk.c index d8d61dc..ac18ee2 100644 --- a/debug/readlink_chk.c +++ b/debug/readlink_chk.c @@ -31,8 +31,8 @@ __readlink_chk (const char *path, void *buf, size_t len, size_t buflen) __chk_fail (); #ifdef HAVE_INLINED_SYSCALLS - return INLINE_SYSCALL (readlink, 3, path, buf, MIN (len, buflen + 1)); + return INLINE_SYSCALL (readlink, 3, path, buf, len); #else - return __readlink (path, buf, MIN (len, buflen + 1)); + return __readlink (path, buf, len); #endif } -- 2.7.4