forked from github/codeql
-
Notifications
You must be signed in to change notification settings - Fork 20
Jb1/ap1 maturity #315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
bdrodes
wants to merge
53
commits into
main
Choose a base branch
from
jb1/ap1-maturity
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Jb1/ap1 maturity #315
Changes from all commits
Commits
Show all changes
53 commits
Select commit
Hold shift + click to select a range
aba87c5
Massaging cpp leap year AP1
ropwareJB e63e19b
Break out query into subcomponents, comments
ropwareJB 7b5163c
init precise version
ropwareJB 7649370
Test case qlref
ropwareJB c7a6543
Use Bens version + Autoformat
ropwareJB f6f63cb
Refactoring common class between dataflow
ropwareJB 50e182e
Hashcons definition of exprEq_propertyPermissive
ropwareJB ca9f66c
Misc. updates. Removed the ignorable function mechanic, and switched …
bdrodes ec2e5f7
Code Commenting
ropwareJB fb72602
Autoformat
ropwareJB c94edcf
Add failing test case
ropwareJB 6d7bd97
Check for leap day
ropwareJB 662119a
Adding a test for setting a year field through a return arg. Misc. tw…
bdrodes 1169f9e
Assignment through out arg is causing too many FPs.
bdrodes 800abae
Fix mislabeled test case
ropwareJB ec3b350
Misc. tweaks addressing FPs and cases observed during auditing.
bdrodes 9b7f986
Fixed FP issue with ignorable constants, now no longer relying on the…
bdrodes 9b04b42
A leap year check sink can be a ExprCheckLeapYear component.
bdrodes 2f1a850
Check if there is a guard checking for a month that isnt a february v…
ropwareJB b013012
Misc. updates. Specifically including how constant values are used to…
bdrodes ce802bd
More ignorable functions, and adding 0 as an ignorable constant.
bdrodes 3282718
Add TIME_FIELDS struct and test case
ropwareJB 938b42a
Removed unused predicates
ropwareJB 4aaad23
"Precise" query overwrites previous version
ropwareJB 8756089
Removing hashcons usages from LeapYear.qll, inefficient and I'm not s…
bdrodes 2e7dba2
Comment cleanup
bdrodes 9446a6b
Updating query alert message.
bdrodes bc76018
Misc. false positive and false negative updates. as a response to rev…
bdrodes 63639ea
More FP tweaks.
bdrodes e55ee18
Updating test for UncheckedReturnValueForTImeFunctions. That query ne…
bdrodes f507239
New additions to the set of TimeConversionFunctions.
bdrodes e485d98
Created a new leap year check guard condition. Found that the prior d…
bdrodes 8e7ff2d
Removing most dependencies from UncheckedLeapYearAfterYearMOdificatio…
bdrodes 6c103a9
Time conversion results that are checked in a ternary operator condit…
bdrodes d36a4df
Misc. FP fixes.
bdrodes f8a2f5c
More FP tweaks.
bdrodes acdbb8d
Adding FP checks for assignment of a constant safe date regardless of…
bdrodes 4dcb6f1
Additional test cases and comments
bdrodes 8f1d8d4
Merge branch 'main' into jb1/ap1-maturity
bdrodes 65d9a9d
Now using asDefinition to detect assignment to a year field. Misc cle…
bdrodes 2e613ac
Fixed expected results due to a line shift.
bdrodes a8d5357
Added an additional test case and fixed a false positive. Also noted …
bdrodes 7604938
Added more heuristic ignorable functions.
bdrodes 27edb07
Adding new div 4 check and false positive test cases
bdrodes 93c7e5d
Comment fix.
bdrodes 86dfe52
Adding a fix and test case for a new false positive, also added a fal…
bdrodes 7ff7006
Adding more false positive cases, and fixing prior test cases to be m…
bdrodes 3ba543e
More heuristics for culling non-gregorian year calculations.
bdrodes e2d3d15
Minor comment/description clean up, and added a test case and support…
bdrodes df3fcfc
Changing the name of a predicate to be more precise.
bdrodes 2924f2b
Update cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearMod…
bdrodes afb058c
Update cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearMod…
bdrodes 56e9c1f
Update cpp/ql/src/Likely Bugs/Leap Year/UncheckedLeapYearAfterYearMod…
bdrodes File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to check if the expression referenced is the same in each term?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do that. There is a predicate in this class that is used to get the matching term.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just note that the constructor doesn't care if the terms are the same, it is just looking for any check. The user of this then needs to determine if it is correctly used. At least that's the way I had intended, so you look for a check and see if there is a term that is held by all components, if so and it is the one you traced from, then it is likely a valid check.