diff --git a/patches/ntdll-DOS_Attributes/0007-ntdll-Perform-the-Unix-style-hidden-file-check-withi.patch b/patches/ntdll-DOS_Attributes/0007-ntdll-Perform-the-Unix-style-hidden-file-check-withi.patch index b908a191..1a185f47 100644 --- a/patches/ntdll-DOS_Attributes/0007-ntdll-Perform-the-Unix-style-hidden-file-check-withi.patch +++ b/patches/ntdll-DOS_Attributes/0007-ntdll-Perform-the-Unix-style-hidden-file-check-withi.patch @@ -1,18 +1,18 @@ -From a2e3bc27382f9c0c4894c6e0ab121f075e82db3e Mon Sep 17 00:00:00 2001 +From 95b71a04c7d437e25aac1a1d327beba6ebfaf608 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Wed, 20 Aug 2014 11:26:48 -0600 Subject: [PATCH] ntdll: Perform the Unix-style hidden file check within the unified file info grabbing routine. --- - dlls/ntdll/unix/file.c | 23 +++++++++-------------- - 1 file changed, 9 insertions(+), 14 deletions(-) + dlls/ntdll/unix/file.c | 25 ++++++++++--------------- + 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c -index 73d4cce90ae..b790cde3f90 100644 +index 9594c70c016..31579caf03b 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c -@@ -1328,15 +1328,15 @@ static BOOLEAN get_dir_case_sensitivity( const char *dir ) +@@ -1311,16 +1311,16 @@ static BOOLEAN get_dir_case_sensitivity( const char *dir ) * * Check if the specified file should be hidden based on its name and the show dot files option. */ @@ -27,13 +27,15 @@ index 73d4cce90ae..b790cde3f90 100644 - end = p = name->Buffer + name->Length/sizeof(WCHAR); - while (p > name->Buffer && p[-1] == '\\') p--; - while (p > name->Buffer && p[-1] != '\\') p--; +- return (p < end && *p == '.'); + end = p = name + strlen( name ); -+ while (p > name && p[-1] == '\\') p--; -+ while (p > name && p[-1] != '\\') p--; - return (p < end && *p == '.'); ++ while (p > name && p[-1] == '/') p--; ++ while (p > name && p[-1] != '/') p--; ++ return (p < end && p[0] == '.' && p[1] && (p[1] != '.' || p[2])); } -@@ -1679,6 +1679,10 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr ) + +@@ -1662,6 +1662,10 @@ static int get_file_info( const char *path, struct stat *st, ULONG *attr ) free( parent_path ); } *attr |= get_file_attributes( st ); @@ -44,7 +46,7 @@ index 73d4cce90ae..b790cde3f90 100644 len = xattr_get( path, SAMBA_XATTR_DOS_ATTRIB, hexattr, sizeof(hexattr)-1 ); if (len == -1) return ret; *attr |= get_file_xattr( hexattr, len ); -@@ -2186,11 +2190,6 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I +@@ -2228,11 +2232,6 @@ static NTSTATUS get_dir_data_entry( struct dir_data *dir_data, void *info_ptr, I if (class != FileNamesInformation) { if (st.st_dev != dir_data->id.dev) st.st_ino = 0; /* ignore inode if on a different device */ @@ -56,7 +58,7 @@ index 73d4cce90ae..b790cde3f90 100644 fill_file_info( &st, attributes, info, class ); } -@@ -4106,7 +4105,6 @@ NTSTATUS WINAPI NtQueryFullAttributesFile( const OBJECT_ATTRIBUTES *attr, +@@ -4196,7 +4195,6 @@ NTSTATUS WINAPI NtQueryFullAttributesFile( const OBJECT_ATTRIBUTES *attr, info->AllocationSize = std.AllocationSize; info->EndOfFile = std.EndOfFile; info->FileAttributes = basic.FileAttributes; @@ -64,7 +66,7 @@ index 73d4cce90ae..b790cde3f90 100644 } free( unix_name ); } -@@ -4133,10 +4131,7 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC +@@ -4227,10 +4225,7 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC else if (!S_ISREG(st.st_mode) && !S_ISDIR(st.st_mode)) status = STATUS_INVALID_INFO_CLASS; else @@ -76,5 +78,5 @@ index 73d4cce90ae..b790cde3f90 100644 } else WARN( "%s not found (%x)\n", debugstr_us(attr->ObjectName), status ); -- -2.30.2 +2.37.2