-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Originally posted by @MikeFultonDev in #25 (review)
Currently, chdir_long calls chdir, but according to glibc's comment it should do the following:
/* This is a function much like chdir, but without the PATH_MAX limitation
94 : on the length of the directory name. A significant difference is that
95 : it must be able to modify (albeit only temporarily) the directory
96 : name. It handles an arbitrarily long directory name by operating
97 : on manageable portions of the name. On systems without the openat
98 : syscall, this means changing the working directory to more and more
99 : `distant' points along the long directory name and then restoring
100 : the working directory. If any of those attempts to save or restore
101 : the working directory fails, this function exits nonzero.
102 :
103 : Note that this function may still fail with errno == ENAMETOOLONG, but
104 : only if the specified directory name contains a component that is long
105 : enough to provoke such a failure all by itself (e.g. if the component
106 : has length PATH_MAX or greater on systems that define PATH_MAX). */