summaryrefslogtreecommitdiff
path: root/libc/misc/dirent/opendir.c
AgeCommit message (Collapse)Author
2019-06-21fix opendir, fpathconf and ttyname_r to use fstat64(), not fstat()Denys Vlasenko
There is no opendir64(), thus even programs built for 64-bit off_t use opendir(). Before this change, internally opendir() uses fstat(), with the following breakage if some of struct stat fields are too narrow: $ strace ls -l execve("/busybox/ls", ["ls", "-l"], 0x7ffcdc43ede8 /* 16 vars */) = 0 ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 getuid32() = 0 time([1551486393 /* 2019-03-02T00:26:33+0000 */]) = 1551486393 (2019-03-02T00:26:33+0000) ioctl(0, TIOCGWINSZ, {ws_row=38, ws_col=120, ws_xpixel=0, ws_ypixel=0}) = 0 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 brk(NULL) = 0x9768000 brk(0x9769000) = 0x9769000 lstat64(".", 0xffa6e374) = 0 open(".", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 fstat(3, 0xffa6e378) = -1 EOVERFLOW (Value too large for defined data type) See https://bugs.busybox.net/show_bug.cgi?id=11651 Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2015-01-22libc: Avoid redundant setting of ENOMEMBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-04-16libc: remove libc weak __pthreads_* wrappersTimo Teras
It is not possible to override for libpthread to override the weak libc definitions. This has never worked in uclibc, and does no longer work in glibc either (unless you use LD_DYNAMIC_WEAK). The proper thing to do is have weak prototypes in libc, and definitions in libpthread only. This way libc runs even if those functions are not defined, but just needs to protect against the NULL values (done by implementing __uclibc_maybe_call). This fix the problems if libc is linked before libpthread or if libpthread is pulled by a dependency library. Signed-off-by: Timo Teras <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-17use *_not_cancel variants to avoid accidental cancellations with nptlAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-07clean up O_CLOEXEC handlingMike Frysinger
Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h headers, and import __ASSUME_O_CLOEXEC from glibc. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-18convert // comments to /**/; remove empty #if/#endif pairs. no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-05do not save/restore errno around free() callsDenys Vlasenko
In any non-buggy program free() does not fail. And when it fails in a buggy program, the failure is usually fatal (heap corruption and segfault). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-05CLOEXEC: use open(CLOEXEC) if exist; do not check fcntl(FD_CLOEXEC) failureDenys Vlasenko
text data bss dec hex filename - 370 0 0 370 172 libc/misc/dirent/opendir.o + 366 0 0 366 16e libc/misc/dirent/opendir.o - 375 4 0 379 17b libc/pwd_grp/lckpwdf.o + 356 4 0 360 168 libc/pwd_grp/lckpwdf.o - 248 0 0 248 f8 librt/shm.o + 209 0 0 209 d1 librt/shm.o Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-07-20first pass at implementing *at funcsMike Frysinger
Tested basic functionality with coreutils and things seem to work. At least gives us a basis to jump from. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-11-20Last portion of libc_hidden_proto removal.Denis Vlasenko
Appears to build fine (several .configs tried)
2008-11-20next portion of libc_hidden_proto removalDenis Vlasenko
2008-11-18libc_hidden_proto removal, just a few functionsDenis Vlasenko
2008-09-09Revert latest changes. Instead of applying this work-aroundCarmelo Amoroso
a proper fix should ensure that statically linked mutli-threaded binaries take always the proper locking implementation. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2007-12-07Removed pointless initialization to 0 of DIR fieldsCarmelo Amoroso
after having added memset. Thanks to Peter Mazinger for pointing this out. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2007-12-05Fix opendir problem when statically linked due to a missingCarmelo Amoroso
initialization of the mutex field within DIR struct. When linked dynamically instead, __pthread_mutex_init will initialize the mutex itself. Without this fix, any call to readdir will stuck forever trying to acquire the mutex. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2006-02-14remove fstat jump relocPeter S. Mazinger
2006-02-04rfelker reports in Bug 683 that we leak file descriptors if the fcntl() ↵Mike Frysinger
fails ... so fix that. add back in fstat() ofter we open() the directory as we need the blocksize further down in the code. unify the memory error handling to shrink the code there a little.
2006-02-04add note about raceconditionMike Frysinger
2006-02-04use O_DIRECTORY when possible, saves us from having to use stat() thus ↵Mike Frysinger
cutting codesize/race condition
2006-02-04add some copyright/license infoMike Frysinger
2006-01-14hidden_def/hidden_proto: convert all users (I hope) termios split, add some ↵Peter S. Mazinger
missing headers, other jump relocs removed
2005-12-13Convert all users of earlier hiddensPeter S. Mazinger
2005-12-13Convert internal users of chmod/*stat*, minimize change for __strsepPeter S. Mazinger
2005-12-08Implement __x versionsPeter S. Mazinger
2005-12-06macro out the thread funcs in libc if threading is disabledMike Frysinger
2005-12-01Hide mostly used functionsPeter S. Mazinger
2003-12-27Fix a long-standing bug with pthreads. A couple of linuxthreads filesManuel Novoa III
were including libc-lock.h which had a bunch of weak pragmas. Also, uClibc supplied a number of no-op weak thread functions even though many weren't needed. This combined result was that sometimes the functional versions of thread functions in pthread would not override the weaks in libc. While fixing this, I also prepended double-underscore to all necessary weak thread funcs in uClibc, and removed all unused weaks. I did a test build, but haven't tested this since these changes are a backport from my working tree. I did test the changes there and no longer need to explicitly add -lpthread in the perl build for perl to pass its thread self tests.
2002-05-30Fixup totally broken locking code... No storage for the mutex,Eric Andersen
wrong ifdef macro.. -Erik
2002-05-11Implement readdir_r. Audit for proper thread safety and locking.Eric Andersen
-Erik
2001-11-14Scrub up some lingering problems preventing readdir64 from workingEric Andersen
and creating several *64 problems, particualrly when client apps used -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64. All better now. -Erik
2001-10-17In theory, this adds readdir64 and friends. Dunno if theyEric Andersen
work yet or not.... -Erik
2001-04-06Fix include/errno.h to not use kernel header, and instead use bits/errno.h.Eric Andersen
This required we use _LIBC instead of __LIBC__ to be consistent with glibc. This had some sideffects in sys/syscalls.h. While fixing things, I made everything use __set_errno() for (eventual) thread support. -Erik
2001-03-19Move the dirent stuff. I suppose it is system dependant, but thenEric Andersen
it really should be grouped together too. And it needed to be grouped more then it needed to be in sysdeps/linux/common