You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

8.5 KiB

1GroupIdMutationFileLineTestsThatFailedConfigurationsDetectedNote
2accessM1Drop the WriteError for AddAceError in the retry-failed catch (swallows the error of the item)AddAccess.cs149Add-NTFSAccess PathComplex: one AddAceError for the blocked path, unchanged, -PassThru only for the changed pathElevatedDesktop, ElevatedCoreTrue
3accessM2Remove the continue after RemoveAceError in the retry-failed catch (-PassThru writes for the failed item too)RemoveAccess.cs166Remove-NTFSAccess PathComplex: one RemoveAceError for the blocked path, unchanged, -PassThru only for the changed pathElevatedDesktop, ElevatedCoreTrue
4accessM3Change the category of ClearAclError from WriteError to InvalidOperation in the retry-failed catchClearAccess.cs89Clear-NTFSAccess: ReadFileError and ClearAclError, each by category and targetElevatedDesktop, ElevatedCoreTrue
5accessM4Change the category of ReadFileError from OpenError to ReadErrorGetAccess.cs96Get-NTFSAccess Path: the error of a missing path by category and targetElevatedDesktop, ElevatedCoreTrue
6accessM5Invert the orphan predicate (IsNullOrEmpty to not IsNullOrEmpty), so that it keeps resolvable accountsGetOrphanedAccess.cs75All three Get-NTFSOrphanedAccess tests (Path state, Path error and pipeline, SD)ElevatedDesktop, ElevatedCoreTrue
7accessM6Invert the -Account filter (== to !=)SimpleAccessCmdlets.cs126Get-NTFSSimpleAccess SD: filter and partition a descriptor like -PathElevatedDesktop, ElevatedCoreTrue
8accessM7Default -Account changed from the current user to S-1-1-0 (Everyone)GetEffectiveAccess.cs15Get-NTFSEffectiveAccess Path (allowed right present) and SecurityDescriptor (follows an in-memory change)ElevatedDesktop, ElevatedCoreTrue
9accessM8Gate the -AppliesTo scope conversion on a condition that is never true (EndsWith("Simple") to EndsWith("NeverSimple")), so that the Simple sets keep default flagsAddAccess.cs113Add-NTFSAccess PathSimple: scope the entry of the next pathElevatedDesktop, ElevatedCoreTrue
10auditM1Delete the WriteError(ReadFileError) call, keep the continueAddAudit.cs129Add-NTFSAudit pipeline by Path (both rows)ElevatedDesktop, ElevatedCoreTrue
11auditM2Invert removeSpecific in the primary Remove callRemoveAudit.cs151Remove-NTFSAudit pipeline by Path (PathSimple row), narrow-rights testElevatedDesktop, ElevatedCoreTrue
12auditM3DisableAuditInheritance(item, true) to (item, false)ClearAudit.cs74Clear-NTFSAudit -DisableInheritance state testElevatedDesktop, ElevatedCoreTrue
13auditM4ErrorCategory OpenError to NotSpecified in the generic catch of the SACL readGetAudit.cs112Get-NTFSAudit without the Security privilege: category testBasicDesktop, BasicCoreTrueInvisible in the elevated configurations: the mutated line is reached only without the Security privilege
14auditM5ErrorId ReadError to ReadFileError for a missing pathGet-OrphanedAudit.cs43Get-NTFSOrphanedAudit pipeline by PathElevatedDesktop, ElevatedCoreTrue
15auditM6ErrorCategory InvalidData to InvalidOperation in TestAuditSectionBaseCmdlets.cs159All 7 cross-cutting rows and the Get-NTFSAudit SD pipeline test (8 failures)ElevatedDesktop, ElevatedCoreTrue
16auditM7Delete the continue after the ReadFileError WriteErrorRemoveAudit.cs141Remove-NTFSAudit pipeline by Path (both rows; cascades to a RemoveAceError NullReferenceException)ElevatedDesktop, ElevatedCoreTrue
17auditM8Invert IsNullOrEmpty in the orphaned-entry filterGet-OrphanedAudit.cs74Get-NTFSOrphanedAudit pipeline by Path, pipeline SD, direct SD (3 failures)ElevatedDesktop, ElevatedCoreTrue
18auditM9Disable the -AppliesTo to flags conversion for the Simple sets (if (false && ...))AddAudit.cs114None of the new testsElevatedDesktop, ElevatedCoreFalseMasked on a file target: AddFileSystemAuditRule forces InheritanceFlags None and PropagationFlags None for a file. PermissionScopes.Tests.ps1 (folder targets) catches the same mutation with 24 failures
19inheritance1Disable-NTFSAccessInheritance ignores -RemoveInheritedAccessRulesDisableAccessInheritance.cs804 of 8 rows of the DACL protected-flag testElevatedDesktop, ElevatedCoreTrue
20inheritance2Enable-NTFSAccessInheritance ignores -RemoveExplicitAccessRulesEnableAccessInheritance.cs802 of 8 rows of the DACL protected-flag testElevatedDesktop, ElevatedCoreTrue
21inheritance3GetFileSystemInheritanceInfo(item) inverts the reported access flagFileSystemInheritanceInfo.cs718 tests: ModifySdError rows, the RestoreOwnerError of Set-NTFSInheritance, two piped rows, Get-NTFSInheritance pipe, the Set-NTFSInheritance round tripElevatedDesktop, ElevatedCoreTrue
22inheritance4Get-NTFSOwner -SecurityDescriptor always returns the owner of the first descriptorGetOwner.cs86Get-NTFSOwner -SecurityDescriptor, piped and passed directlyElevatedDesktop, ElevatedCoreTrue
23inheritance5Set-NTFSOwner -SecurityDescriptor always sets the owner of the first descriptorSetOwner.cs104Set-NTFSOwner -SecurityDescriptor, after the test got a direct multi-element array callElevatedDesktop, ElevatedCoreTrueNot detected by the pipeline-only test: the pipeline rebinds the list to one element per item, which hides an index bug. The test was strengthened with a direct call with an array and the mutation was detected
24inheritance6InvokeAsOwner swallows the error of the restore of the ownerBaseCmdlets.cs344The 3 RestoreOwnerError rowsElevatedDesktop, ElevatedCoreTrue
25inheritance7Disable-NTFSAuditInheritance -Path loses ValueFromPipeline (keeps ValueFromPipelineByPropertyName)DisableAuditInheritance.cs16None of the new testsElevatedDesktop, ElevatedCoreFalseGet-ChildItem2 objects have a FullName property, so the binding by property name alone still binds them; only a bare string piped by value would show it
26inheritance8Get-NTFSSecurityDescriptor reports NotSpecified instead of OpenError for a missing pathGetSecurityDescriptor.cs48OpenError for a path that does not existElevatedDesktop, ElevatedCoreTrue
27inheritance9GetFileSystemInheritanceInfo(sd) inverts the reported audit flagFileSystemInheritanceInfo.cs80Set-NTFSInheritance -SecurityDescriptor: both flags in one callElevatedDesktop, ElevatedCoreTrue
28inheritance10Set-NTFSInheritance -AccessInheritanceEnabled loses ValueFromPipelineByPropertyNameSetInheritance.cs42Restore a saved inheritance state through the pipelineElevatedDesktop, ElevatedCoreTrue
29itemsM1RemoveItem2 catch no longer writes DeleteError for an IOExceptionRemoveItem2.cs101Remove-Item2 pipeline test (expected 1 error, got 0)ElevatedDesktop, ElevatedCoreTrue
30itemsM2GetFileHash2 generic catch no longer continues, so a null hash is written after the errorGetFileHash2.cs113Get-FileHash2 locked file first (expected 1 result, got 2)ElevatedDesktop, ElevatedCoreTrue
31itemsM3GetItem2.Path loses ValueFromPipelineGetItem2.cs13Get-Item2 pipeline testElevatedDesktop, ElevatedCoreTrue
32itemsM4RemoveItem2.Path loses ValidateNotNullOrEmptyRemoveItem2.cs16All 4 rows of the Remove-Item2 empty-path testElevatedDesktop, ElevatedCoreTrueA recursive-delete guard; the test acts only inside its own disposable sandbox folder
33itemsM5GetDiskSpace.DriveLetter loses Position = 1GetDiskSpace.cs14Get-DiskSpace positional testElevatedDesktop, ElevatedCoreTrue
34itemsM6GetFileHash2.Algorithm setter ignores the value and forces SHA256GetFileHash2.cs34Get-FileHash2 pipeline and Algorithm test (MD5 assertion)ElevatedDesktop, ElevatedCoreTrue
35itemsM7NewSymbolicLink no longer returns after the ResourceExists error and falls through to the create attemptNewSymbolicLink.cs80New-NTFSSymbolicLink success after a failure (expected 1 error, got 2)ElevatedDesktop, ElevatedCoreTrue
36itemsM8DisablePrivileges off by one: Count() == 0 to Count() == 1, which suppresses the error when nothing is enabledOtherCmdlets.cs100Disable-Privileges error-path testElevatedDesktop, ElevatedCoreTrue