* path.cc (chdir): Avoid trailing dot calculation when chdir == '/' or we end

up with an empty string.
This commit is contained in:
Christopher Faylor 2000-07-29 17:35:08 +00:00
parent 0b1e683963
commit 6043a545e3
1 changed files with 2 additions and 3 deletions

View File

@ -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);