Jonas Jensen
7c319efb8b
C++: Data flow through reference parameters
2019-10-01 10:43:49 +02:00
Jonas Jensen
f417640da4
Merge pull request #1938 from dave-bartolomeo/dave/InNOut
...
C++: Rename predicates in `FunctionInputsAndOutputs.qll` and add QLDoc
2019-09-30 13:30:19 +02:00
Dave Bartolomeo
c1e5db0b96
C++ More PR feedback
2019-09-27 17:54:18 -07:00
Matthew Gretton-Dann
cc016d583d
C++: Add further vector_size attribute tests
2019-09-27 11:28:31 +01:00
Matthew Gretton-Dann
c10ed5e114
C++: Update results for vector_size atrr changes
2019-09-27 11:28:31 +01:00
Dave Bartolomeo
28aa7dcae2
C++: Fix PR feedback
2019-09-26 13:56:43 -07:00
Geoffrey White
18b28b1b57
Merge pull request #1959 from jbj/const-pmf
...
C++: Classify more expressions as constant
2019-09-26 17:13:27 +01:00
semmle-qlci
24240177c5
Merge pull request #2023 from ian-semmle/agglit
...
Approved by jbj
2019-09-25 11:35:33 +01:00
Ian Lynagh
142e1cb9fb
C++: Implement AggregateLiteral.mayBeImpure()
2019-09-25 10:34:30 +01:00
Jonas Jensen
0aafa0b0e2
C++: Accept test changes in IR sanity queries
...
These looks harmless.
2019-09-25 08:55:55 +02:00
Ziemowit Laski
a6d619cfe1
[zlaski/what-buffer-function] Rename CustomModels to Models
2019-09-24 18:17:34 -07:00
Ziemowit Laski
7e14e2a950
[zlaski/what-buffer-function] Rename references to BufferFunction to ArrayFunction.
2019-09-24 18:02:14 -07:00
Ian Lynagh
49276e09c5
C++: Add aggregate literals to sideEffects test
2019-09-24 11:28:57 +01:00
Matthew Gretton-Dann
6b28f33713
C++: Update test for fix to namespace members
...
Generation of IDs for namespace members has been fixed to generate
unique IDs for variables of the same name but in different namespaces.
Update the same_name test to validate this.
2019-09-23 16:04:59 +01:00
Jonas Jensen
22e57a6559
Merge pull request #1860 from matt-gretton-dann/add-using-aliases
...
Add support for using aliases
2019-09-23 16:53:51 +02:00
Jonas Jensen
898976121b
Merge pull request #1987 from geoffw0/toomanyformat
...
CPP: WrongNumberOfFormatArguments.ql Fix
2019-09-23 16:05:11 +02:00
Robert Marsh
90c91a78f8
Merge pull request #1976 from pavgust/fix/hashcons-perf
...
C++: HashCons: Further performance improvements
2019-09-23 06:37:03 -07:00
Matthew Gretton-Dann
4606587fe8
C++: Apply style guide to TypedefType.qll
2019-09-23 13:57:50 +01:00
Matthew Gretton-Dann
af3b0d9e73
C++: Update stats.
2019-09-23 13:57:50 +01:00
Matthew Gretton-Dann
fc75a6af5a
C++: Add tests for using aliases
2019-09-23 13:57:50 +01:00
Matthew Gretton-Dann
9ff38ebeee
C++: Update tests for new CTypedefType.
2019-09-23 13:57:50 +01:00
Matthew Gretton-Dann
5468b8def7
C++: Add support for C++ using aliases
...
Previously these were identified as typedefs.
2019-09-23 13:57:50 +01:00
Geoffrey White
b3df289a80
CPP: Fix test.
2019-09-23 13:56:24 +01:00
Geoffrey White
2d8e4b3176
CPP: Additional cases resembling the ticket.
2019-09-23 13:04:14 +01:00
Geoffrey White
040bd89163
CPP: Correct expected results.
2019-09-23 11:02:36 +01:00
Geoffrey White
9100ab9360
CPP: Autoformat.
2019-09-20 15:30:59 +01:00
Geoffrey White
f7607313e7
CPP: Fix FPs.
2019-09-20 15:12:55 +01:00
Geoffrey White
9a407eb43c
CPP: Test format args with mismatching declarations.
2019-09-20 14:54:44 +01:00
Pavel Avgustinov
1c971d3f88
HashCons: Further performance improvements
...
The key insight here is that `HC_FieldCons` and `HC_Array` are
functionally determined by the things that arise in another
recursive call. Lifting them to their own predicate, therefore,
reduces nonlinearity and constrains the join order in a way that
cannot be asymptotically bad -- and, indeed, makes quite a big
difference in practice.
2019-09-20 12:00:33 +01:00
Robert Marsh
d3f2d8169e
Merge pull request #1967 from jbj/tainttracking-ir-2
...
C++: DefaultTaintTracking flow from a to a[i]
2019-09-19 15:00:29 -07:00
Robert Marsh
9c6a0ffc48
Merge pull request #1979 from nickrolfe/wrong_type_uninstantiated
...
C++: ignore uninstantiated templates in WrongTypeFormatArguments.ql
2019-09-19 14:51:45 -07:00
Nick Rolfe
56f4f86921
C++: ignore uninstantiated templates in WrongTypeFormatArguments.ql
2019-09-19 21:18:47 +01:00
Robert Marsh
fd88f7a3ce
Merge pull request #1884 from jbj/dataflow-addressof
...
C++: Data flow through address-of operator (&)
2019-09-19 09:15:43 -07:00
Jonas Jensen
29c93488bc
C++: DefaultTaintTracking flow from a to a[i]
...
Switching `security.TaintTracking` to use `DefaultTaintTracking` causes
us to lose a result from `UnboundedWrite.ql`, while this commit restores
it:
diff --git a/semmlecode-cpp-tests/DO_NOT_DISTRIBUTE/security-tests/CWE-120/CERT/STR35-C/UnboundedWrite.expected b/semmlecode-cpp-tests/DO_NOT_DISTRIBUTE/security-tests/CWE-120/CERT/STR35-C/UnboundedWrite.expected
index 1eba0e52f0e..d947b33b9d9 100644
--- a/semmlecode-cpp-tests/DO_NOT_DISTRIBUTE/security-tests/CWE-120/CERT/STR35-C/UnboundedWrite.expected
+++ b/semmlecode-cpp-tests/DO_NOT_DISTRIBUTE/security-tests/CWE-120/CERT/STR35-C/UnboundedWrite.expected
@@ -1,2 +1,3 @@
+| main.c:54:7:54:12 | call to strcat | This 'call to strcat' with input from $@ may overflow the destination. | main.c:93:15:93:18 | argv | argv |
| main.c:99:9:99:12 | call to gets | This 'call to gets' with input from $@ may overflow the destination. | main.c:99:9:99:12 | call to gets | call to gets |
| main.c:213:17:213:19 | buf | This 'scanf string argument' with input from $@ may overflow the destination. | main.c:213:17:213:19 | buf | buf |
2019-09-19 14:52:40 +02:00
Jonas Jensen
34a5368101
C++: Ignore templates in AmbiguouslySignedBitField
...
If it's possible that the type is not fully resolved, it's better to
avoid giving an alert.
This fixes a FP in https://github.com/heremaps/flatdata .
2019-09-19 14:21:53 +02:00
Jonas Jensen
0ed0951d43
C++: Demonstrate AmbiguouslySignedBitField FP
2019-09-19 14:19:34 +02:00
Jonas Jensen
307b92feed
C++: Unknown template literals are constant
2019-09-19 10:23:26 +02:00
Jonas Jensen
9b805c01cc
Merge pull request #1951 from pavgust/fix/hashcons-perf
...
C++: Fix HashCons library performance
2019-09-19 08:10:34 +02:00
Jonas Jensen
e0d1da3b67
C++: Test for template enum constant CFG
2019-09-18 15:17:24 +02:00
Jonas Jensen
7d8396fa65
C++: Constant template pointer-to-member literals
2019-09-18 14:44:25 +02:00
Jonas Jensen
d644150ead
C++: Test for template pointer-to-member CFG
2019-09-18 14:30:18 +02:00
Jonas Jensen
0f2731064d
C++: Annotate tellDifferent with template status
...
This is helpful for turning real-world cases into test cases.
2019-09-18 14:23:52 +02:00
Jonas Jensen
c90fd32a78
C++: Pointer-to-member-function is constant
2019-09-18 13:55:56 +02:00
Pavel Avgustinov
eca31908ab
HashCons: Make some functionality apparent.
...
The user knows that an expression functionally determines its
hashCons value, and that an expression functionally determines
its number of children, but this is not provable from the
definitions, and so not usable by the optimiser. By storing
the result of those known-functional calls in a variable,
rather than repeating the call, we enable better join orders.
2019-09-18 12:54:48 +01:00
Pavel Avgustinov
03502863cf
Distribute a recursive call into a recursive disjunction.
...
As the linearity of the disjuncts is different, this enables us to
pick better join orders for each disjunct separately.
2019-09-18 12:54:48 +01:00
Jonas Jensen
55edfe4224
C++: Test for pointer-to-member-function CFG
2019-09-18 13:37:52 +02:00
Tom Hvitved
d8074ddfa6
Sync files
2019-09-18 13:36:15 +02:00
Jonas Jensen
571c96bb2f
C++: Autoformat five files
...
These files have come out of autoformat since the big commit that
autoformatted everything.
2019-09-18 11:55:19 +02:00
Jonas Jensen
e7d8fa4251
Merge pull request #1945 from geoffw0/more-tests
...
CPP: Add a test of ConditionalDeclExpr.
2019-09-18 11:11:16 +02:00
Geoffrey White
07e29bb627
CPP: Add a test of ConditionalDeclExpr.
2019-09-17 17:38:54 +01:00