Geoffrey White
5d485859af
Merge remote-tracking branch 'upstream/main' into
...
uncontrolled-alloc-size
2020-08-17 20:49:35 +01:00
Geoffrey White
390af0d7d2
C++: Autoformat.
2020-08-17 17:55:52 +01:00
Geoffrey White
0234bca6ca
C++: Fix a hole in StdStringAppend and clarify comments.
2020-08-17 17:55:44 +01:00
Robert Marsh
9decb47bf0
Merge pull request #4076 from jbj/SimpleRangeAnalysis-AssignOperation
...
C++: Fix SimpleRangeAnalysis for AssignOperation
2020-08-17 12:55:26 -04:00
Geoffrey White
a11ca06189
C++: Implement more std::string models.
2020-08-17 17:33:09 +01:00
Geoffrey White
4b4b8a9faa
Merge pull request #4074 from jbj/SimpleRangeAnalysis-extensible
...
C++: extensible range analysis
2020-08-17 14:46:57 +01:00
Tom Hvitved
a2fc92b9db
Data flow: Address review comments
2020-08-17 15:46:43 +02:00
Jonas Jensen
edc5e5fbcf
C++: Simplify defDependsOnDef for AssignOperation
...
These cases were unnecessarily transitive. There is no need for
`defDependsOnDef` to be transitive since that's handled in
`defDependsOnDefTransitively`.
The dependency information from the LHS of an `AssignmentOperation` is
now deduced the say way as the information from the RHS: by calling
`exprDependsOnDef`. This should effectively give us the same information
and recursion structure as if the operation (`x += e`) were desugared
(`x = x + e`).
2020-08-17 11:06:39 +02:00
Jonas Jensen
fe72b559d3
C++: Range analysis for unsigned AssignMulExpr
...
This is essentially a copy-paste job of `AssignAddExpr`, together with
the math from the `UnsignedMulExpr` support.
2020-08-14 14:19:54 +02:00
Jonas Jensen
f90d779122
C++: Fix SimpleRangeAnalysis for AssignOperation
...
The range analysis wasn't producing useful bounds for `AssignOperation`s
(`+=`, `-=`) unless their RHS involved a variable. This is because a
shortcut was made in the `analyzableDef` predicate, which used to
specify that an analyzable definition was one for which we'd specified
the dependencies. But we can't distinguish between having _no
dependencies_ and having _no specification of the dependencies_.
The fix is to be more explicit about which definitions are analyzable.
To avoid too much repetition I'm still calling out to `analyzableExpr`
in the new code.
2020-08-14 14:15:58 +02:00
Jonas Jensen
e01e702f46
Merge pull request #4060 from bgianfo/patch-1
...
C++: Detect GoogleTest tests cases in FNumberOfTests.ql
2020-08-14 12:42:12 +02:00
Jonas Jensen
bf7732ec9d
C++: Silence QL compiler errors
2020-08-14 12:27:30 +02:00
Jonas Jensen
1deb1e6429
C++: Add SimpleRangeAnalysisExpr.dependsOnChild
2020-08-14 12:27:30 +02:00
Jonas Jensen
1b5b374a8e
C++: Move getFullyConverted{Upper,Lower}Bounds
...
Rather than being public, these internal predicates are now exposed
through a `SimpleRangeAnalysisInternal` module so it's clear that they
are not for general use.
2020-08-14 12:27:30 +02:00
Jonas Jensen
18ba562c25
C++: Fix: remember to bind e
2020-08-14 12:27:30 +02:00
Jonas Jensen
1c0e83a374
C++: Autoformat fixup
2020-08-14 12:27:30 +02:00
Jonas Jensen
aa78c6e750
C++: Move to experimental
...
And rename to `SimpleRangeAnalysisExpr` to clarify which of our range
analysis libraries this belongs to.
2020-08-14 12:27:30 +02:00
Jonas Jensen
cdddf5fd40
Merge remote-tracking branch 'upstream/master' into SimpleRangeAnalysis-extensible-base
2020-08-14 12:26:59 +02:00
Tom Hvitved
9ebf8d1d58
Data flow: Sync files
2020-08-14 11:04:45 +02:00
Brian Gianforcaro
a6bcbe7974
C++: Detect GoogleTest tests cases in FNumberOfTests.ql
...
Co-authored-by: Jonas Jensen <jbj@github.com >
2020-08-13 12:06:00 -07:00
Geoffrey White
498b350add
Merge remote-tracking branch 'upstream/master' into plus
2020-08-13 18:21:28 +01:00
Robert Marsh
de87f8fc42
Merge pull request #4057 from geoffw0/sal
...
C++: SAL.qll QLDoc and cleanup
2020-08-13 12:33:52 -04:00
Geoffrey White
93f95b1c22
Merge pull request #4053 from jbj/SimpleRangeAnalysis-mul
...
C++: SimpleRangeAnalysis: unsigned multiplication
2020-08-13 16:59:31 +01:00
Geoffrey White
3d60756d40
C++: Downgrade the query precision.
2020-08-13 15:45:57 +01:00
Geoffrey White
7349333006
C++: Taint through char append.
2020-08-13 15:13:47 +01:00
Geoffrey White
f5abf74e0f
Update cpp/ql/src/Microsoft/SAL.qll
...
Co-authored-by: Robert Marsh <rdmarsh2@gmail.com >
2020-08-13 09:05:22 +01:00
Geoffrey White
2655616a0a
C++: Autoformat.
2020-08-12 16:59:15 +01:00
Geoffrey White
9719da8643
C++: Move a class that looks like it's intended to be public (and is used outside of the library) above the 'Implementation details' threshold.
2020-08-12 16:58:50 +01:00
Geoffrey White
d444778535
C++: Make a few things in SAL.qll private where it looks like that was intended (and they're not used outside the file).
2020-08-12 16:57:43 +01:00
Geoffrey White
aa6cb51bba
C++: QLDoc SAL.qll.
2020-08-12 16:55:26 +01:00
Geoffrey White
b99ca60154
C++: Address review comments.
2020-08-12 12:56:28 +01:00
Jonas Jensen
b4679cb8cf
C++: Autoformat fixup
2020-08-12 13:09:23 +02:00
Jonas Jensen
1ee96a4b4f
C++: SimpleRangeAnalysis: unsigned multiplication
2020-08-12 10:03:04 +02:00
Robert Marsh
e80cc63219
Merge pull request #3861 from dilanbhalla/privatedata
...
C++: Private Data File/Buffer Writes
2020-08-11 15:49:31 -04:00
Geoffrey White
a655124213
C++: I think this is more correct.
2020-08-11 17:28:31 +01:00
Geoffrey White
128b8328b9
C++: Autoformat.
2020-08-11 17:03:03 +01:00
Geoffrey White
f62ad75048
C++: Taint through std::string operator+=.
2020-08-11 17:03:02 +01:00
Geoffrey White
cf6f530823
C++: Taint through std::string operator+.
2020-08-11 16:58:55 +01:00
Geoffrey White
a57dfd6b67
C++: Taint through std::string append.
2020-08-11 16:54:39 +01:00
Jonas Jensen
0476b97f63
Merge pull request #3789 from dilanbhalla/cpp
...
C++ Memory Unsafe Functions
2020-08-11 10:09:37 +02:00
dilanbhalla
7bd5464b01
Update cpp/ql/src/experimental/Security/CWE/CWE-120/MemoryUnsafeFunctionScan.qhelp
...
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com >
2020-08-10 15:43:16 -07:00
dilanbhalla
4dcaa7be57
pr fixes
2020-08-10 15:30:09 -07:00
dilanbhalla
dcfbb86674
pr fixes
2020-08-10 15:14:12 -07:00
Jonas Jensen
1f432dc45f
Merge pull request #4023 from geoffw0/loopdir
...
C++: Exclude decrementing unsigned counters from inconsistentLoopDirection.ql
2020-08-10 12:10:29 +02:00
Geoffrey White
0534c69c76
C++: Autoformat.
2020-08-06 19:11:46 +01:00
Geoffrey White
0b5b7fa095
C++: Fix another edge case.
2020-08-06 19:06:42 +01:00
Geoffrey White
b3f3f6d95a
C++: Fix edge case.
2020-08-06 19:03:43 +01:00
Geoffrey White
cbf30e37ed
C++: Fix the issue.
2020-08-06 18:50:18 +01:00
Jonas Jensen
7cc877cbbb
C++: Taint through RangeBasedForStmt (AST only)
2020-08-06 15:37:41 +02:00
Geoffrey White
9f5c37ccaa
Merge branch 'master' into copymove
2020-08-04 15:41:27 +01:00