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/posix/rewinddir.c | |
parent | ca0a6bc4c5c53aa6c4a735c36336408a06b8cd89 (diff) | |
download | glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.zip glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.tar.gz glibc-91ce40854d0b7f865cf5024ef95a8026b76096f3.tar.bz2 |
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/posix/rewinddir.c')
-rw-r--r-- | sysdeps/posix/rewinddir.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sysdeps/posix/rewinddir.c b/sysdeps/posix/rewinddir.c index 2935a8e..d4991ad 100644 --- a/sysdeps/posix/rewinddir.c +++ b/sysdeps/posix/rewinddir.c @@ -33,6 +33,7 @@ rewinddir (dirp) dirp->filepos = 0; dirp->offset = 0; dirp->size = 0; + dirp->errcode = 0; #ifndef NOT_IN_libc __libc_lock_unlock (dirp->lock); #endif |