* 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