From af5153a036ede09a399ecd1a241bbba02b83d3e8 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 29 Jul 2000 17:36:05 +0000 Subject: [PATCH] * path.cc (chdir): Avoid trailing dot calculation when chdir == '/' or we end up with an empty string. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/path.cc | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e1e7020c9..3aaeece54 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +Sat Jul 29 13:33:49 2000 Christopher Faylor + + * path.cc (chdir): Avoid trailing dot calculation when chdir == '/' + or we end up with an empty string. + Sat Jul 29 12:11:33 2000 Christopher Faylor * include/cygwin/version.h: Bump DLL minor version number to 5 due diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index a46ac4f41..469de5e94 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2642,7 +2642,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);