OSDN Git Service

2004-04-12 Pierre Humblet <pierre.humblet@ieee.org>
authorphumblet <phumblet>
Mon, 12 Apr 2004 23:59:23 +0000 (23:59 +0000)
committerphumblet <phumblet>
Mon, 12 Apr 2004 23:59:23 +0000 (23:59 +0000)
        * path.cc (path_conv::check): Fix "tail filling" logic.

winsup/cygwin/ChangeLog
winsup/cygwin/path.cc

index 00c0e2d..3587b03 100644 (file)
@@ -1,3 +1,7 @@
+2004-04-12  Pierre Humblet <pierre.humblet@ieee.org>
+
+        * path.cc (path_conv::check): Fix "tail filling" logic.
+
 2004-04-11  Christopher Faylor  <cgf@alum.bu.edu>
 
        * cygheap.h: Replace inexplicably removed closing brace.
index 1fc9fc3..77c9087 100644 (file)
@@ -499,7 +499,7 @@ path_conv::check (const char *src, unsigned opt,
   bool need_directory = 0;
   bool saw_symlinks = 0;
   int is_relpath;
-  char *tail;
+  char *tail, *path_end;
 
 #if 0
   static path_conv last_path_conv;
@@ -544,7 +544,7 @@ path_conv::check (const char *src, unsigned opt,
          need_directory = 1;
          *--tail = '\0';
        }
-      char *path_end = tail;
+      path_end = tail;
 
       /* Scan path_copy from right to left looking either for a symlink
         or an actual existing file.  If an existing file is found, just
@@ -872,7 +872,7 @@ out:
     normalized_path_size = 0;
   else
     {
-      if (tail[1] != '\0')
+      if (tail < path_end && tail > path_copy + 1)
        *tail = '/';
       set_normalized_path (path_copy);
     }