* 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.
This commit is contained in:
Ulrich Drepper 2005-03-01 01:20:39 +00:00
parent 87816274f4
commit a0e3c9e2e8
3 changed files with 9 additions and 4 deletions

View File

@ -8,6 +8,11 @@
* posix/bits/unistd.h: Avoid calling __*_chk variants if we can * posix/bits/unistd.h: Avoid calling __*_chk variants if we can
determine the call will never trigger a failure. 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/i386/i686/memset_chk.S: Remove alias and warning.
* sysdeps/x86_64/memset_chk.S: Likewise. * sysdeps/x86_64/memset_chk.S: Likewise.

View File

@ -31,8 +31,8 @@ __read_chk (int fd, void *buf, size_t nbytes, size_t buflen)
__chk_fail (); __chk_fail ();
#ifdef HAVE_INLINED_SYSCALLS #ifdef HAVE_INLINED_SYSCALLS
return = INLINE_SYSCALL (read, 3, fd, buf, nbytes); return INLINE_SYSCALL (read, 3, fd, buf, nbytes);
#else #else
return = __read (fd, buf, nbytes); return __read (fd, buf, nbytes);
#endif #endif
} }

View File

@ -31,8 +31,8 @@ __readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
__chk_fail (); __chk_fail ();
#ifdef HAVE_INLINED_SYSCALLS #ifdef HAVE_INLINED_SYSCALLS
return INLINE_SYSCALL (readlink, 3, path, buf, MIN (len, buflen + 1)); return INLINE_SYSCALL (readlink, 3, path, buf, len);
#else #else
return __readlink (path, buf, MIN (len, buflen + 1)); return __readlink (path, buf, len);
#endif #endif
} }