Skip to content

Keep case-variant evidence files when the report volume folds case - #140

Open
forest-savage1234 wants to merge 1 commit into
abrignoni:mainfrom
forest-savage1234:forest/seeker-131-dest-guard
Open

Keep case-variant evidence files when the report volume folds case#140
forest-savage1234 wants to merge 1 commit into
abrignoni:mainfrom
forest-savage1234:forest/seeker-131-dest-guard

Conversation

@forest-savage1234

@forest-savage1234 forest-savage1234 commented Aug 23, 2026

Copy link
Copy Markdown

Keep case-variant evidence files when the report volume folds case

Same dest-guard as the sibling LEAPP seekers. Seeker only. Not an artifact. Please land this with the other three so the seekers stay level.

Closes #131.

Summary

self.copied is keyed by the source path. The report destination is built from that path. On a case-insensitive report volume, com.apple.MobileSMS.plist and com.apple.mobileSMS.plist are two sources and one destination. The second write silently destroys the first.

This PR does only the seeker dest-guard named on the issue:

  1. Probe the data folder's real case behaviour once per seeker (create Aa / aA; do not trust os.path.normcase).
  2. When a destination is already claimed by a different source, write to name~caseN.ext instead of overwriting.
  3. Return and record that path so file_infos and the artifact's source path stay truthful.

Validation

Earlier local check on a case-sensitive ext4 volume (dest names folded to stand in for Windows / stock macOS): two sources plus one folded dest left one file. The dest-guard kept both; the second dest is *~case2.plist. The volume probe left no leftover probe names. This is not an artifact change, so the artifact report checkers were not run.

Files

  1. scripts/search_files.py (seeker dest-guard only)

Touched write sites: FileSeekerDir, FileSeekerTar, FileSeekerZip, FileSeekerFile.

Out of scope

How to review

On a case-insensitive report volume, search a zip that holds both com.apple.MobileSMS.plist and com.apple.mobileSMS.plist. data/ should keep two files (the second named *~case2.plist). Case-sensitive volumes should be unchanged: the probe sees two files and never mints ~caseN.

I am a volunteer. Thank you for the time. I am trying to become more useful on this work, so I welcome a critical look. If this is the wrong cut, or you want me to stand down, say so and I will recut from notes.

Seeker dest-guard only (volume probe + ~caseN). Not an artifact.
Closes abrignoni#131.

Signed-off-by: Forest Savage <forestsavage03@gmail.com>
@forest-savage1234

Copy link
Copy Markdown
Author

Thank you for the time on this review. This only keeps case-variant evidence files when the report volume folds case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Seeker overwrites evidence files whose paths differ only in case, so one file is silently lost from the report

1 participant