* path.cc (chdir): Always send unsigned chars to isspace since newlib's isspace
doesn't deal well with "negative" chars. * fhandler.cc (fhandler_disk_file::open): Propagate remote status of file garnered from path_conv. Move #! checking to fstat. (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate duplication. Move check for #! here from fhandler::open. * fhandler.h (fhandler_base::isremote): New method. (fhandler_base::set_isremote): Ditto. (fhandler_base::set_execable_p): Also record "don't care if executable state". (fhandler_base::dont_care_if_execable): New method. * path.cc (path_conv::check): Clear new flags. Appropriately set vol_flags, drive_type, and is_remote_drive. * path.h: Add new flags and methods for manipulating them. * syscalls.cc (_unlink): Use isremote() to determine if a path is remote rather than calling GetDriveType. (stat_worker): Ditto. * security.cc (get_file_attribute): Or attribute with result of NTReadEA to be consistent with get_nt_attribute.
This commit is contained in:
@ -1199,7 +1199,9 @@ get_file_attribute (int use_ntsec, const char *file,
|
||||
if (!attribute)
|
||||
return 0;
|
||||
|
||||
int oatt = *attribute;
|
||||
res = NTReadEA (file, ".UNIXATTR", (char *) attribute, sizeof (*attribute));
|
||||
*attribute |= oatt;
|
||||
|
||||
/* symlinks are everything for everyone!*/
|
||||
if ((*attribute & S_IFLNK) == S_IFLNK)
|
||||
@ -1523,8 +1525,7 @@ set_file_attribute (int use_ntsec, const char *file,
|
||||
|
||||
if (!use_ntsec || !allow_ntsec)
|
||||
{
|
||||
if (!NTWriteEA (file, ".UNIXATTR",
|
||||
(char *) &attribute, sizeof (attribute)))
|
||||
if (!NTWriteEA (file, ".UNIXATTR", (char *) &attribute, sizeof (attribute)))
|
||||
{
|
||||
__seterrno ();
|
||||
return -1;
|
||||
|
Reference in New Issue
Block a user