diff options
author | Florian Weimer <fweimer@redhat.com> | 2013-08-16 09:38:52 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2013-08-16 09:40:34 +0200 |
commit | 91ce40854d0b7f865cf5024ef95a8026b76096f3 (patch) | |
tree | 268277f390b889cc857152d268242bd603036b9e /sysdeps/unix | |
parent | ca0a6bc4c5c53aa6c4a735c36336408a06b8cd89 (diff) | |
download | glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.tar glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.tar.gz glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.tar.bz2 glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.zip |
CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r
* sysdeps/posix/dirstream.h (struct __dirstream): Add errcode
member.
* sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode
member.
* sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member.
* sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit.
Return delayed error code. Remove GETDENTS_64BIT_ALIGNED
conditional.
* sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define
GETDENTS_64BIT_ALIGNED.
* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
* manual/filesys.texi (Reading/Closing Directory): Document
ENAMETOOLONG return value of readdir_r. Recommend readdir more
strongly.
* manual/conf.texi (Limits for Files): Add portability note to
NAME_MAX, PATH_MAX.
(Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/readdir64_r.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c | 1 |
2 files changed, 0 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/readdir64_r.c b/sysdeps/unix/sysv/linux/i386/readdir64_r.c index 8ebbcfda14..a7d114ee90 100644 --- a/sysdeps/unix/sysv/linux/i386/readdir64_r.c +++ b/sysdeps/unix/sysv/linux/i386/readdir64_r.c @@ -18,7 +18,6 @@ #define __READDIR_R __readdir64_r #define __GETDENTS __getdents64 #define DIRENT_TYPE struct dirent64 -#define GETDENTS_64BIT_ALIGNED 1 #include <sysdeps/posix/readdir_r.c> diff --git a/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c index 5ed8e955e2..290f2c8f6c 100644 --- a/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c +++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c @@ -1,5 +1,4 @@ #define readdir64_r __no_readdir64_r_decl -#define GETDENTS_64BIT_ALIGNED 1 #include <sysdeps/posix/readdir_r.c> #undef readdir64_r weak_alias (__readdir_r, readdir64_r) |