* 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.
This commit is contained in:
Corinna Vinschen 2010-06-08 15:25:09 +00:00
parent 68ff495c60
commit b7d3e6d7d2
2 changed files with 10 additions and 3 deletions

View 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

View 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))
{