Dave Bartolomeo
697b2dcde8
C++: Add missing store step for single-field struct use
...
We have special code to handle field flow for single-field structs, but that special case was too specific. Some `Store`s to single-field structs have no `Chi` instruction, which is the case that we handled already. However, it is possible for the `Store` to have a `Chi` instruction (e.g. for `{AllAliased}`), but still have a use of the result of the `Store` directly. We now add a `PostUpdateNode` for the result of the `Store` itself in those cases, just like we already did if the `Store` had no `Chi`.
2021-04-12 18:11:41 -04:00
Dave Bartolomeo
0a86642056
C++: Refactor some side effect generation code
...
This change was necessary for my upcoming changes to introduce side effect instructions for indirections of smart pointers. The code to decide which parameters have which side effects appeared in both the IPA constructor for `TTranslatedSideEffect` and in `TranslatedCall`. These two versions didn't quite agree, especially once the `SideEffectFunction` model provides its own side effects instead of the defaults.
The relevant code has now been factored out into `SideEffects.qll`. This queries the model if one exists, and provides default side effects if no model exists. This fixes at least one existing issue, where we were emitting a buffer read side effect for `*this` instead of an indirect read side effect. This accounts for all of the IR diffs in the tests.
2021-04-09 16:14:03 -04:00
Mathias Vorreiter Pedersen
e9e93c0eea
Merge pull request #5558 from geoffw0/replace-tostring
...
Replace toString use
2021-03-31 13:50:41 +02:00
Geoffrey White
85ecfe2723
Update cpp/ql/src/experimental/Security/CWE/CWE-570/WrongInDetectingAndHandlingMemoryAllocationErrors.ql
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2021-03-31 11:34:56 +01:00
Dave Bartolomeo
0cc8eaf3b4
Merge pull request #5543 from MathiasVP/smart-ptr-like-class
...
C++: Add a class that models wrapped pointer types
2021-03-30 16:00:13 -04:00
Mathias Vorreiter Pedersen
fe76b0849b
Merge pull request #5569 from geoffw0/memoryfree
...
C++: Add a test of memory freed queries with strdup.
2021-03-30 17:22:18 +02:00
Mathias Vorreiter Pedersen
92839123ae
Merge pull request #5570 from geoffw0/mutextest
...
C++: Add mutex test cases.
2021-03-30 17:16:19 +02:00
Geoffrey White
a8284d5b97
C++: Add mutex test case.
2021-03-30 15:39:21 +01:00
Geoffrey White
244966e216
C++: Add a test with strdup.
2021-03-30 14:49:05 +01:00
Geoffrey White
ec952248a9
C++: Test strdup with AV Rule 79.
2021-03-30 12:58:04 +01:00
Geoffrey White
f27203cc43
C++: Test spacing.
2021-03-30 12:57:43 +01:00
Mathias Vorreiter Pedersen
09ba25fe9b
C++: Accept test changes. I'm actually not sure why we lose these results (and lose the field conflation, yay) It might be due to #3364 .
2021-03-30 10:24:01 +02:00
Mathias Vorreiter Pedersen
8c95a9ae39
Merge branch 'main' into definitions-for-unique_ptr
2021-03-30 10:20:36 +02:00
Mathias Vorreiter Pedersen
5a4efab742
C++: Add tests for shared_ptr.
2021-03-29 18:04:20 +02:00
Geoffrey White
c6e7b8d4fd
C++: Repair test.
2021-03-26 19:12:09 +00:00
Geoffrey White
4100d68a71
C++: Test failures.
2021-03-26 18:21:05 +00:00
Geoffrey White
725122decc
C++: Replace toString logic.
2021-03-26 17:29:05 +00:00
Mathias Vorreiter Pedersen
b466f0515d
C++: Respond to more review comments. (1) Use getClassAndName to ensure a good join order, and (2) unify the two abstract predicates on PointerWrapper.
2021-03-26 16:16:23 +01:00
Mathias Vorreiter Pedersen
0ce08617ba
C++: Respond to review comments.
2021-03-26 13:42:18 +01:00
Jonas Jensen
7f16c52217
Merge pull request #3364 from github/rdmarsh/cpp/use-taint-configuration-dtt
...
C++: use TaintTracking::Configuration in DefaultTaintTracking
2021-03-26 12:39:25 +01:00
Mathias Vorreiter Pedersen
8dc7b6403a
C++: Add shared_ptr and unique_ptr implementations. Also add some very basic tests.
2021-03-26 12:03:59 +01:00
Mathias Vorreiter Pedersen
d20a0c9e82
C++: Add a class that models wrapped pointer types.
2021-03-26 11:50:06 +01:00
Mathias Vorreiter Pedersen
c7c65736a9
C++: Accept test changes. These happened because of the incorrect usage of multiple configurations in 6c1ec6d96b.
2021-03-26 10:57:58 +01:00
Jonas Jensen
86755c6a98
Merge pull request #5515 from criemen/fix-query-metadata
...
C++: Fix query metadata warnings.
2021-03-26 10:19:46 +01:00
Mathias Vorreiter Pedersen
983b64a05f
Merge branch 'main' into rdmarsh/cpp/use-taint-configuration-dtt
2021-03-26 09:11:12 +01:00
Tom Hvitved
f100c8a9c0
C++: Make Windows autobuilder tests pass again
2021-03-25 17:43:48 +01:00
Mathias Vorreiter Pedersen
24360d3a4c
C++: Fix join order in AV rule 79 by joining with GVN after the recursive call.
2021-03-25 12:00:49 +01:00
Cornelius Riemenschneider
867471b122
C++: Delete old queries.
2021-03-25 10:23:17 +01:00
Cornelius Riemenschneider
47530d7526
C++: Fix query metadata warnings.
2021-03-24 18:01:21 +01:00
Geoffrey White
b38a9d51e6
C++: Effect of 'Don't override getParameterSizeIndex in the model for Accept'...
2021-03-23 12:26:59 +00:00
Geoffrey White
13eb9e0833
C++: Fix the test.
2021-03-23 12:26:58 +00:00
Geoffrey White
30e1b88b7f
C++: Extend test.
2021-03-23 12:26:58 +00:00
Mathias Vorreiter Pedersen
585606a933
C++: Respond to review comments.
2021-03-23 11:14:29 +01:00
Mathias Vorreiter Pedersen
0b4650a4c9
C++: Accept test changes.
2021-03-23 10:27:19 +01:00
Mathias Vorreiter Pedersen
7d0cfc69f1
C++: Don't override getParameterSizeIndex in the model for Accept. This fixes IR construction of calls to accept.
2021-03-23 09:53:09 +01:00
Mathias Vorreiter Pedersen
0ff7cc845c
C++: Add reduced testcase that broke IR construction in #5492 .
2021-03-23 09:53:04 +01:00
Jonas Jensen
0bfeba5251
Merge pull request #5414 from criemen/diagnostic-queries
...
C++: Extractor/database diagnostic errors
2021-03-22 13:23:24 +01:00
Mathias Vorreiter Pedersen
7ec86b5e7f
C++: AdjustedConfiguration should not extend the same dataflow configuration as FromGlobalVarTaintTrackingCfg as this causes multiple configurations to be in scope for dataflow.
2021-03-22 11:35:29 +01:00
Cornelius Riemenschneider
668841cefa
C++: Rename diagnostic queries.
2021-03-22 11:13:49 +01:00
Mathias Vorreiter Pedersen
6c1ec6d96b
C++: Accept test changes.
2021-03-19 16:09:05 +01:00
Jonas Jensen
98c1aa5298
Merge pull request #5271 from github/files-query
...
C++: Summary metrics queries
2021-03-19 12:56:19 +01:00
Tamás Vajk
752c911a22
Merge pull request #5394 from tamasvajk/feature/upgrade-nuget-packages
...
C#: Upgrade nuget packages
2021-03-19 12:09:00 +01:00
Tom Hvitved
09a49e4580
Merge pull request #5311 from hvitved/dataflow/lambda
...
Data flow: Move C# lambda flow logic into shared library
2021-03-19 11:44:15 +01:00
Cornelius Riemenschneider
e482d21949
C++: Make QLdoc check happy.
2021-03-19 11:40:20 +01:00
Cornelius Riemenschneider
63e560e3b4
Fix QL doc.
2021-03-19 11:27:51 +01:00
Cornelius Riemenschneider
39a7d3decc
C++: Address review comments.
2021-03-19 11:23:47 +01:00
Cornelius Riemenschneider
783a63a8a8
Update cpp/ql/src/Summary/LinesOfCode.ql
...
Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com >
2021-03-19 10:54:41 +01:00
Mathias Vorreiter Pedersen
2abf4c068f
C++: Use getAnExpr. Also extend the other recursive case similarly.
2021-03-18 08:42:10 +01:00
Mathias Vorreiter Pedersen
834e35f192
C++: Add change-note.
2021-03-17 16:26:15 +01:00
Mathias Vorreiter Pedersen
a3f806bb1d
Use GVN in AV rule 79.
2021-03-17 16:01:49 +01:00