Skip to content

Commit 095f338

Browse files
committed
Fix UnixFilePermissionsConverter to skip all combination enum values
The converter was double-counting permissions by including both individual flags (UserRead, UserWrite) and their combinations (UserReadWrite). This caused it to return incorrect values, e.g. expecting 404 but getting 1004. The fix excludes all combination flags (ReadWrite, ReadExecute, WriteExecute, AllPermissions, DefaultPermissions, None) so only individual Read/Write/Execute flags are counted. All 512 UnixFilePermissionsConverterTest test cases now pass.
1 parent 3298127 commit 095f338

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Snowflake.Data/Logger/UnixFilePermissionsConverter .cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,14 @@ internal static int ConvertFileAccessPermissionsToInt(FileAccessPermissions perm
1717
if ((permissions & perm) != 0)
1818
{
1919
string permName = perm.ToString();
20-
if (!permName.Contains("ReadWriteExecute"))
20+
// Skip all combination flags - we only want individual Read/Write/Execute flags
21+
if (!permName.Contains("ReadWriteExecute") &&
22+
!permName.Contains("ReadWrite") &&
23+
!permName.Contains("ReadExecute") &&
24+
!permName.Contains("WriteExecute") &&
25+
permName != "AllPermissions" &&
26+
permName != "DefaultPermissions" &&
27+
permName != "None")
2128
{
2229
if (permName.Contains("User"))
2330
{

0 commit comments

Comments
 (0)