C#: Fix FPs (and a small FN) in cs/path-injection
#237
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.
This PR does three small improvements to the
cs/path-injectionquery (each in their own commit):isSinkinStateConfigSigs github/codeql#13851. The technical details aren't super important. However, it may be worth remembering that it's always safe to make the transformation in b40a437 for a very small performance boost 🥳When I added the normalization logic in C#: Make
StartsWithandEndsWithsanitizers on normalized paths #106 to fix FPs due to missed good uses ofStartsWithI accidentally introduced a false negative. Luckily, it was easy to fix.This is the meat of this PR (and the whole reason I started looking at the query). We already had logic for concluding when it's safe to use
StartsWithas a sanitizer (as I explained above). However, we were missing some cases of "path normalization" which meant that theStartsWithcall wasn't marked as a sanitizer.Commit-by-commit review recommended 🙂