diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-05-08 08:37:19 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-05-08 08:37:19 -0400 |
commit | 7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1 (patch) | |
tree | c9fb5b27f0c75b57cd3090e2f3c857feba542f41 /sysdeps/unix/sysv/linux/dl-getcwd.c | |
parent | 28377d1bf58625172a1734b92e835591d4d23a18 (diff) | |
download | glibc-7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1.tar.gz glibc-7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1.tar.xz glibc-7fb90fb89bbdf273ab7ab96517fe1b156cd7aee1.zip |
Fix Linux getcwd for long paths
The getcwd syscall (so far?) can only handle path up to one page in size. There is no limit about directory hierarchy depth, though, and the POSIX getcwd is supposed to handle this. In that case fall back to the generic getcwd. Additionally, optimize the generic getcwd to use openat when possible to change the asymptotic performance from O(N^2) to O(n).
Diffstat (limited to 'sysdeps/unix/sysv/linux/dl-getcwd.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/dl-getcwd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/dl-getcwd.c b/sysdeps/unix/sysv/linux/dl-getcwd.c new file mode 100644 index 0000000000..4bd5657f1e --- /dev/null +++ b/sysdeps/unix/sysv/linux/dl-getcwd.c @@ -0,0 +1 @@ +#include "getcwd.c" |