* path.cc (chdir): Avoid trailing dot calculation when chdir == '/' or we end
up with an empty string.
This commit is contained in:
parent
0b1e683963
commit
6043a545e3
|
@ -2601,8 +2601,7 @@ getwd (char *buf)
|
|||
}
|
||||
|
||||
/* chdir: POSIX 5.2.1.1 */
|
||||
extern "C"
|
||||
int
|
||||
extern "C" int
|
||||
chdir (const char *dir)
|
||||
{
|
||||
syscall_printf ("dir %s", dir);
|
||||
|
@ -2642,7 +2641,7 @@ chdir (const char *dir)
|
|||
of dots > 2 here instead of returning an error code. Counts of dots
|
||||
<= 2 are already eliminated by normalize_posix_path. */
|
||||
char *last_slash = strrchr (pathbuf, '/');
|
||||
if (last_slash && strspn (last_slash + 1, ".") == strlen (last_slash + 1))
|
||||
if (last_slash > pathbuf && strspn (last_slash + 1, ".") == strlen (last_slash + 1))
|
||||
*last_slash = '\0';
|
||||
free (cwd_posix);
|
||||
cwd_posix = strdup (pathbuf);
|
||||
|
|
Loading…
Reference in New Issue