* fhandler_disk_file.cc (__DIR_mounts::eval_ino): Create path_conv

with PC_KEEP_HANDLE flag.
	* path.h (path_conv::operator =): Duplicate UNICODE path as well.
	* security.cc (check_file_access): Use path_conv handle if available.
	* syscalls.cc (access): Create fhandler with PC_KEEP_HANDLE flag set.
	(euidaccess): Ditto.
	(faccessat): Ditto.
This commit is contained in:
Corinna Vinschen
2011-07-26 13:30:41 +00:00
parent f4529884e5
commit 303dc0230d
5 changed files with 24 additions and 5 deletions

View File

@@ -282,7 +282,13 @@ class path_conv
path = cstrdup (pc.path);
conv_handle.dup (pc.conv_handle);
normalized_path = cstrdup(pc.normalized_path);
wide_path = NULL;
if (pc.wide_path)
{
wide_path = cwcsdup (uni_path.Buffer);
if (!wide_path)
api_fatal ("cwcsdup would have returned NULL");
uni_path.Buffer = wide_path;
}
return *this;
}
void free_strings ()