]> sourceware.org Git - newlib-cygwin.git/commitdiff
* path.cc (symlink_info::check): Set h to NULL after closing handle
authorCorinna Vinschen <corinna@vinschen.de>
Tue, 8 Jun 2010 15:25:09 +0000 (15:25 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Tue, 8 Jun 2010 15:25:09 +0000 (15:25 +0000)
in udf check.  Remove overagressive bracketing.  Don't set h to NULL
without closing the handle.  Fix using wrong handle in checking
file system when using parent directory handle.

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

index 01770a7dd7ba290ae2971a18f0b269e2ae931a79..9e71ea4f8c3c35ff6d229596c7fed31a64821af8 100644 (file)
@@ -1,3 +1,10 @@
+2010-06-08  Corinna Vinschen  <corinna@vinschen.de>
+
+       * path.cc (symlink_info::check): Set h to NULL after closing handle
+       in udf check.  Remove overagressive bracketing.  Don't set h to NULL
+       without closing the handle.  Fix using wrong handle in checking
+       file system when using parent directory handle.
+
 2010-06-07  Corinna Vinschen  <corinna@vinschen.de>
 
        * include/sys/stdio.h: Remove _GNU_SOURCE guard around getline
index 8ebd7cce950d7b285649ddcb4b0ae652f47d8e1a..4173401e3e7366726d3d04cea5eee1ecbbc8d70d 100644 (file)
@@ -2308,6 +2308,7 @@ restart:
                  if (!fs.is_udf ())
                    {
                      NtClose (h);
+                     h = NULL;
                      status = STATUS_OBJECT_NAME_NOT_FOUND;
                    }
                }
@@ -2355,7 +2356,7 @@ restart:
       if (NT_SUCCESS (status)
          /* Check file system while we're having the file open anyway.
             This speeds up path_conv noticably (~10%). */
-         && (fs.inited () || (fs.update (&upath, h)))
+         && (fs.inited () || fs.update (&upath, h))
          && NT_SUCCESS (status = fs.has_buggy_basic_info ()
                         ? NtQueryAttributesFile (&attr, &fbi)
                         : NtQueryInformationFile (h, &io, &fbi, sizeof fbi,
@@ -2364,7 +2365,6 @@ restart:
       else
        {
          debug_printf ("%p = NtQueryInformationFile (%S)", status, &upath);
-         h = NULL;
          fileattr = INVALID_FILE_ATTRIBUTES;
 
          /* One of the inner path components is invalid, or the path contains
@@ -2427,7 +2427,7 @@ restart:
                                                 TRUE, &basename, TRUE);
                  /* Take the opportunity to check file system while we're
                     having the handle to the parent dir. */
-                 fs.update (&upath, h);
+                 fs.update (&upath, dir);
                  NtClose (dir);
                  if (!NT_SUCCESS (status))
                    {
This page took 0.035605 seconds and 5 git commands to generate.