Handle access denied error when setting owner if already owner #5282
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #5276
Issue
Although I don't understand precisely why, we get access denied when attempting to open a directory with
WRITE_OWNER
even when we are already the owner. It may have to do with permissions to the parent directory, but the root cause isn't actually important here.Our directory management code always attempts to set any directory to a known state, including the owner. It does so without any pre-check to see if the owner is already set to the desired value.
Change
If we get
ERROR_ACCESS_DENIED
when attempting to set the owner, check if the owner is already correct. If it is, attempt to set just the DACL.Validation
Manual repro and validation that the fix works when the issue is exactly as described.
Microsoft Reviewers: Open in CodeFlow