Skip to content

Commit 7793650

Browse files
committed
When unmapping mask check for remaining. Also do write access last as that's something we don't want to get incorrect as it looks confusing.
1 parent 01de453 commit 7793650

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

NtApiDotNet/GenericMapping.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,20 @@ public AccessMask UnmapMask(AccessMask mask)
109109
result |= GenericAccessRights.GenericRead;
110110
remaining &= ~GenericRead;
111111
}
112-
if ((mask & GenericWrite) == GenericWrite)
113-
{
114-
result |= GenericAccessRights.GenericWrite;
115-
remaining &= ~GenericWrite;
116-
}
112+
if (remaining.IsEmpty)
113+
return result;
117114
if ((mask & GenericExecute) == GenericExecute)
118115
{
119116
result |= GenericAccessRights.GenericExecute;
120117
remaining &= ~GenericExecute;
121118
}
119+
if (remaining.IsEmpty)
120+
return result;
121+
if ((mask & GenericWrite) == GenericWrite)
122+
{
123+
result |= GenericAccessRights.GenericWrite;
124+
remaining &= ~GenericWrite;
125+
}
122126

123127
return result | remaining;
124128
}

0 commit comments

Comments
 (0)