Tom Hvitved
e5abaa79ae
Merge pull request #2585 from calumgrant/cs/serialization-check-bypass
...
C#: Improvements to cs/serialization-check-bypass
2020-01-15 20:40:51 +01:00
Robert Marsh
a91f10fe40
Merge pull request #2629 from dbartol/dbartol/missing-vvars
...
C++/C#: Fix missing virtual variables
2020-01-15 08:32:43 -08:00
Tom Hvitved
f7278d36e1
Merge pull request #2498 from aschackmull/java/taint-getter
...
Java/C++/C#: Add support for taint-getter/setter summaries in data flow.
2020-01-15 09:55:19 +01:00
Dave Bartolomeo
e60f902c36
C++/C#: Fix missing virtual variables
...
The aliased SSA code was assuming that, for every automatic variable, there would be at least one memory access that reads or writes the entire variable. We've encountered a couple cases where that isn't true due to extractor issues. As a workaround, we now always create the `VariableMemoryLocation` for every local variable.
I've also added a sanity test to detect this condition in the future.
Along the way, I had to fix a perf issue in the PrintIR code. When determining the ID of a result based on line number, we were considering all `Instruction`s generated for a particular line, regardless of whether they were all in the same `IRFunction`. In addition, the predicate had what appeared to be a bad join order that made it take forever on large snapshots. I've scoped it down to just consider `Instruction`s in the same function, and outlined that predicate to fix the join order issue. This causes some numbering changes, but they're for the better. I don't think there was actually any nondeterminism there before, but now the numbering won't depend on the number of instantiations of a template, either.
2020-01-14 17:57:15 -07:00
Tom Hvitved
5a4be67d81
Merge pull request #2597 from calumgrant/cs/multiline-alert-suppression
...
C#: Alert suppression through single-line /* */ style comments
2020-01-14 10:35:11 +01:00
Calum Grant
bc1b2c3ead
C#: Address review comment
2020-01-07 18:39:52 +00:00
Calum Grant
d0d7ed620c
C#: Update comments in test file to reflect fixed test output.
2020-01-07 18:39:52 +00:00
Calum Grant
359dea2c2b
C#: Fixed test output.
2020-01-07 18:39:52 +00:00
Calum Grant
85c9459b35
C#: Add more tests showing incorrect extraction.
2020-01-07 18:39:51 +00:00
Calum Grant
10181e93e2
C#: Update QLtest output
2020-01-07 18:39:51 +00:00
Calum Grant
a1bedf2e06
C#: Use expression flow state to determine non-null guards
2020-01-07 18:39:51 +00:00
Calum Grant
2eb29224e8
C#: Update guards tests.
2020-01-07 18:39:51 +00:00
Calum Grant
8db46bc8ec
C#: More tests for nullable flow state.
2020-01-07 18:38:58 +00:00
Calum Grant
6c9ebaba0b
C#: Populate expression type nullability and nullable flow state.
2020-01-07 18:38:58 +00:00
Calum Grant
0327b83958
C#: Update nullability tests.
2020-01-07 18:38:58 +00:00
Calum Grant
d8f5450b67
C#: Alert suppression comments can be in C89-style comments
2020-01-07 11:52:52 +00:00
Tom Hvitved
5552c2e912
Merge pull request #2563 from calumgrant/cs/tuple-expr
...
C#: Handle tuple expressions
2020-01-07 09:31:17 +01:00
Calum Grant
c145e32625
C#: Tests for multiline alert suppression comments
2020-01-06 15:45:00 +00:00
Calum Grant
41b4d70504
C#: Refactor, improve documentation and add tests for cs/serialization-check-bypass
2020-01-03 18:46:39 +00:00
Calum Grant
3db900b183
C#: Remove false positive and update test output
...
C#: Mark results as GOOD
2019-12-27 12:07:19 +00:00
Calum Grant
fd0225ca59
C#: Add test
2019-12-27 11:44:39 +00:00
Calum Grant
a059c13f6c
C#: Add test for tuple expressions.
2019-12-23 15:18:28 +00:00
Calum Grant
63afb30797
C#: Tests for tuple expressions.
2019-12-23 15:18:21 +00:00
Anders Schack-Mulligen
2443f10823
C#: Update .expected file.
2019-12-18 10:40:18 +01:00
semmle-qlci
8ad11b98d0
Merge pull request #2538 from hvitved/csharp/missing-to-string
...
Approved by calumgrant
2019-12-17 19:23:47 +00:00
Tom Hvitved
9dde1ce76a
C#: No taint-tracking steps for ternary conditionals
...
Ternary conditionals `b ? x : y` mistakenly had taint-tracking steps from both
`b`, `x`, and `y` to the conditional expression itself. Flow from `b` was not
intented, and flow from `x` and `y` is already part of ordinary data flow.
2019-12-17 13:53:39 +01:00
Anders Schack-Mulligen
ca08097b56
Java/C++/C#: Fix Java Content.getType and getContainerType to match C# and fix C# tests.
2019-12-17 11:51:58 +01:00
Tom Hvitved
f1193d084b
C#: Add missing toString() relations
2019-12-16 19:38:46 +01:00
Anders Schack-Mulligen
0eacadb309
C#: Fix unit test.
2019-12-16 16:17:19 +01:00
Tom Hvitved
b7484e63ee
C#: Recognize Code Contract assertions
2019-12-11 16:54:42 +01:00
Tom Hvitved
5429448eeb
C#: Add tests for Code Contracts
2019-12-11 16:51:42 +01:00
Tom Hvitved
abcb6b8aab
C#: Type-based pruning for data flow
2019-12-10 15:48:48 +01:00
Tom Hvitved
54088248a1
C#: Use source declarations in field flow
2019-12-10 15:46:31 +01:00
Tom Hvitved
a344707baa
C#: Add more data flow tests
...
Add tests that exhibit missing type pruning.
2019-12-10 15:46:31 +01:00
Tom Hvitved
78ddb37a8c
C#: Track type information in data flow
...
This commit adds type information to data flow paths, by mapping node types onto
the smaller set of GVN types, and implementing `ppReprType()`.
The effect is a mere change in `DataFlow::PathNode::toString()`; no type-based
pruning is done yet.
2019-12-10 15:46:28 +01:00
Calum Grant
3049bf2c85
Merge pull request #2358 from cldrn/ASPNetPagesValidateRequest
...
Adds CodeQL query to check for Pages with disabled built-in validation
2019-12-09 13:05:03 +00:00
Tom Hvitved
25265bddc7
Merge pull request #2494 from calumgrant/cs/roslyn-3.4
...
C#: Upgrade Roslyn to 3.4
2019-12-09 12:21:30 +01:00
Calum Grant
964f2f25dc
Merge pull request #2462 from hvitved/csharp/localvars-refactor
...
C#: Handle tuple patterns in `is` expressions
2019-12-06 12:59:14 +00:00
Calum Grant
4b0a149704
C#: Update qltest output.
2019-12-06 12:41:20 +00:00
Calum Grant
5e6b7be5b8
C#: Update nullability tests.
2019-12-06 12:41:20 +00:00
Calum Grant
59ce8842bb
Merge branch 'master' of git.semmle.com:Semmle/ql into ASPNetPagesValidateRequest
...
# Conflicts:
# change-notes/1.24/analysis-csharp.md
2019-12-05 15:58:47 +00:00
Calum Grant
73c8888361
Merge pull request #2356 from cldrn/ASPNetRequestValidationMode
...
Adds CodeQL query to check for insecure RequestValidationMode in ASP.NET
2019-12-04 17:02:08 +00:00
Dave Bartolomeo
50dc5e2ba3
Merge pull request #2438 from rdmarsh2/rdmarsh/ir-line-number-ids
...
C++/C#: use line numbers for instruction IDs
2019-12-03 18:48:28 -08:00
Robert Marsh
1b802c7e18
C#: accept test change
2019-12-02 13:59:19 -08:00
Calum Grant
fcd13dc595
Merge remote-tracking branch 'upstream/master' into ASPNetRequestValidationMode
...
# Conflicts:
# change-notes/1.24/analysis-csharp.md
2019-12-02 12:03:11 +00:00
semmle-qlci
dc7a0c1b91
Merge pull request #2442 from hvitved/csharp/dataflow/conversion-operator
...
Approved by calumgrant
2019-12-02 11:01:35 +00:00
Calum Grant
30a2620a8c
C#: Tidy up docs, query metadata and add tests.
2019-11-29 10:31:58 +00:00
Tom Hvitved
a062d7d41c
C#: Add regression test
2019-11-29 10:10:24 +01:00
Tom Hvitved
04cecc04dd
C#: Update EntityFrameworkCore test
2019-11-28 15:28:50 +01:00
Tom Hvitved
af453d081e
C#: Only track taint through conversion operators defined in libraries
2019-11-28 15:21:04 +01:00