r8746: replace opendir/readdir/telldir/seekdir/closedir on systems where they
authorAndrew Tridgell <tridge@samba.org>
Mon, 25 Jul 2005 04:03:01 +0000 (04:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:30:01 +0000 (13:30 -0500)
commitf92c000fc903803e1c2817dd407974ec44390593
treed807a16484c93d45f463e5c23d1750a1c1ac5a08
parentfc9ffba41332b5755ede3683208ec989d30fdcd0
r8746: replace opendir/readdir/telldir/seekdir/closedir on systems where they
are broken (apparently all BSD systems). This breakage leads to unlink
on files in an open directory causing a later seekdir to miss
files. The bug happens due to a block boundary bug in the BSD libc
implementation of these calls.

This replacement code also fixes a severe memory usage problem with
telldir that can cause closedir() to take an arbitrary amount of time.

I have reported the bug in readdir to Greg Lehey (a FreeBSD maintainer)
(This used to be commit e1bf7c4279fbc03a52497d24cea375e75059cba1)
source4/build/tests/os2_delete.c [new file with mode: 0644]
source4/configure.in
source4/lib/replace/config.mk
source4/lib/replace/repdir/config.m4 [new file with mode: 0644]
source4/lib/replace/repdir/repdir.c [new file with mode: 0644]