Jeroen Ketema
|
213c4b0818
|
C++: Fix join-order problem in cpp/overrun-write
Before on Wireshark:
```
[2023-03-27 12:59:25] Evaluated non-recursive predicate OverrunWriteProductFlow#fb5ce006::isSinkPairImpl#5#fffff@2ba90584 in 99742ms (size: 52640).
Evaluated relational algebra for predicate OverrunWriteProductFlow#fb5ce006::isSinkPairImpl#5#fffff@2ba90584 with tuple counts:
1047588019 ~1% {3} r1 = JOIN DataFlowUtil#47741e1f::InstructionNode#fff_20#join_rhs WITH OverrunWriteProductFlow#fb5ce006::bounded#3#fff_102#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2
67558965 ~0% {4} r2 = JOIN r1 WITH Instruction#577b6a83::CallInstruction::getArgument#fbf_201#join_rhs ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Lhs.2, Rhs.1
613572640 ~0% {5} r3 = JOIN r2 WITH ArrayFunction#ca0b6b68::ArrayFunction::hasArrayWithVariableSize#2#dispred#fff_201#join_rhs ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2, Rhs.2
52640 ~0% {4} r4 = JOIN r3 WITH Instruction#577b6a83::CallInstruction::getStaticCallTarget#0#dispred#ff ON FIRST 2 OUTPUT Lhs.0, Lhs.4, Lhs.2, Lhs.3
52640 ~0% {4} r5 = JOIN r4 WITH Instruction#577b6a83::CallInstruction::getArgument#fbf ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.3, Lhs.0
52640 ~0% {5} r6 = JOIN r5 WITH DataFlowUtil#47741e1f::InstructionNode#fff_20#join_rhs ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Rhs.1
52640 ~0% {5} r7 = JOIN r6 WITH Instruction#577b6a83::Instruction::getUnconvertedResultExpression#0#dispred#ff ON FIRST 1 OUTPUT Lhs.3, Lhs.4, Lhs.1, Lhs.2, Rhs.1
return r7
```
After:
```
[2023-03-27 13:56:36] Evaluated non-recursive predicate OverrunWriteProductFlow#fb5ce006::isSinkPairImpl#5#fffff@f936aapd in 777ms (size: 52640).
Evaluated relational algebra for predicate OverrunWriteProductFlow#fb5ce006::isSinkPairImpl#5#fffff@f936aapd with tuple counts:
565480 ~5% {2} r1 = SCAN Instruction#577b6a83::CallInstruction::getStaticCallTarget#0#dispred#ff OUTPUT In.1, In.0
4420 ~1% {3} r2 = JOIN r1 WITH ArrayFunction#ca0b6b68::ArrayFunction::hasArrayWithVariableSize#2#dispred#fff ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2
4420 ~0% {3} r3 = JOIN r2 WITH Instruction#577b6a83::CallInstruction::getArgument#fff ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.0
4420 ~0% {4} r4 = JOIN r3 WITH DataFlowUtil#47741e1f::InstructionNode#fff_20#join_rhs ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.1
4420 ~0% {4} r5 = JOIN r4 WITH Instruction#577b6a83::Instruction::getUnconvertedResultExpression#0#dispred#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.3, Rhs.1
4420 ~3% {4} r6 = JOIN r5 WITH Instruction#577b6a83::CallInstruction::getArgument#fff ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.2, Lhs.3
52825 ~0% {5} r7 = JOIN r6 WITH OverrunWriteProductFlow#fb5ce006::bounded#3#fff ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Rhs.2
52640 ~0% {5} r8 = JOIN r7 WITH DataFlowUtil#47741e1f::InstructionNode#fff_20#join_rhs ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1, Lhs.4, Lhs.3
return r8
```
|
2023-03-27 14:28:22 +02:00 |
|
Anders Schack-Mulligen
|
978c5f7bd8
|
Java/C++: Autoformat
|
2023-03-23 13:06:19 +01:00 |
|
Anders Schack-Mulligen
|
72415c7c2c
|
C++: Rename references.
|
2023-03-23 13:06:19 +01:00 |
|
Jeroen Ketema
|
2fdfa0808a
|
C++: Refactor experimental queries to use DataFlow::ConfigSig
|
2023-03-21 09:16:59 +01:00 |
|
Ed Minnix
|
2d5944fb0e
|
Refactor DataFlow configurations to use "Config" naming convention
|
2023-03-19 17:44:07 -04:00 |
|
Jeroen Ketema
|
661160a98e
|
C++: Update PrivateCleartextWrite with DataFlow::ConfigSig
|
2023-03-08 15:04:45 +01:00 |
|
Jeroen Ketema
|
fb57914751
|
C++: Convert a number of data flow based queries to use ConfigSig
|
2023-03-07 18:21:52 +01:00 |
|
Mathias Vorreiter Pedersen
|
63690066c5
|
Merge branch 'main' into mathiasvp/replace-ast-with-ir-use-usedataflow
|
2023-03-07 13:06:43 +00:00 |
|
Jeroen Ketema
|
47930f94e2
|
Merge remote-tracking branch 'upstream/main' into merge-main
|
2023-03-06 15:20:39 +01:00 |
|
Jeroen Ketema
|
aa00424b75
|
C++: Fix experimental query that uses the deprecated freeCall predicate
|
2023-03-03 17:53:49 +01:00 |
|
Geoffrey White
|
7b596f4928
|
Merge pull request #10431 from ihsinme/ihsinme-patch-111
CPP: Add query for CWE-369: Divide By Zero.
|
2023-03-03 10:42:04 +00:00 |
|
ihsinme
|
49af5ec536
|
Update DivideByZeroUsingReturnValue.ql
|
2023-02-19 21:41:28 +03:00 |
|
Jeroen Ketema
|
7bd28183ba
|
Merge pull request #12151 from jketema/remove-experimental-dataflow
C++: Remove experimental copy of the use-use IR dataflow library
|
2023-02-10 18:08:14 +01:00 |
|
Jeroen Ketema
|
b023c6bb23
|
C++: Remove experimental copy of the use-use IR dataflow library
|
2023-02-10 16:20:33 +01:00 |
|
Jeroen Ketema
|
ecdeb9a970
|
C++: Revert semmle.code.cpp.dataflow to its old state
While here make sure all queries and tests use IR dataflow when appropriate.
|
2023-02-10 14:21:44 +01:00 |
|
Jeroen Ketema
|
1c35109675
|
C++: Add experimental tag to experimental query
|
2023-02-06 20:31:26 +01:00 |
|
Jeroen Ketema
|
868f07bc91
|
Merge branch 'main' into ihsinme-patch-102
|
2023-02-06 20:16:53 +01:00 |
|
ihsinme
|
065ca3c227
|
Update DivideByZeroUsingReturnValue.ql
|
2023-02-06 19:42:46 +03:00 |
|
Pierre
|
c3116b3f0f
|
Merge branch 'main' into turbo/experimental/combined
|
2023-01-11 18:02:55 +01:00 |
|
Tony Torralba
|
3fcc99e5cb
|
C++: Remove omittable exists variables
|
2023-01-10 13:36:01 +01:00 |
|
Geoffrey White
|
3b31da8a62
|
C++: Update the experimental query as well.
|
2023-01-05 12:48:17 +00:00 |
|
ihsinme
|
c790b0fed6
|
Update DivideByZeroUsingReturnValue.ql
|
2022-12-18 00:34:14 +03:00 |
|
turbo
|
4ec401a3f6
|
Tag all security queries in supported languages' experimental directories with an experimental tag
|
2022-12-14 17:15:50 +01:00 |
|
ihsinme
|
5ceab40841
|
Update DivideByZeroUsingReturnValue.ql
|
2022-11-22 10:11:18 +03:00 |
|
ihsinme
|
0fb1dedbb2
|
Update DivideByZeroUsingReturnValue.ql
|
2022-11-11 11:38:48 +03:00 |
|
Geoffrey White
|
2b3ab180fa
|
Merge pull request #10077 from intrigus-lgtm/cpp/wexpand-commmand-injection
Add query for tainted `wordexp` calls.
|
2022-10-17 11:18:38 +01:00 |
|
Josh Soref
|
1f8aaf7e07
|
spelling: supplemental
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-14 15:08:44 -04:00 |
|
Josh Soref
|
1e34019bf9
|
spelling: obtain
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-14 15:08:44 -04:00 |
|
Josh Soref
|
0fc69a4d6f
|
spelling: label
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-14 15:08:44 -04:00 |
|
Josh Soref
|
f92d763182
|
spelling: exception
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-14 15:08:43 -04:00 |
|
Josh Soref
|
ff6ce9c5b4
|
spelling: description
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-14 15:08:43 -04:00 |
|
Josh Soref
|
413fa3d566
|
spelling: access
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-13 19:57:32 -04:00 |
|
ihsinme
|
3954da5938
|
Update DivideByZeroUsingReturnValue.ql
|
2022-10-11 13:11:45 +03:00 |
|
Josh Soref
|
86ee8c2d00
|
spelling: first
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
|
2022-10-11 00:23:36 -04:00 |
|
ihsinme
|
01b357e749
|
Update DivideByZeroUsingReturnValue.ql
|
2022-10-10 12:33:11 +03:00 |
|
Mathias Vorreiter Pedersen
|
a856bc8678
|
Merge pull request #10562 from rdmarsh2/rdmarsh2/cpp/field-off-by-one
C++: prototype for off-by-one in array-typed field
|
2022-10-06 11:04:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
32d0b58923
|
C++: Fix qhelp example.
|
2022-10-06 10:19:53 +01:00 |
|
ihsinme
|
392c948487
|
Update DivideByZeroUsingReturnValue.ql
|
2022-10-05 09:27:20 +03:00 |
|
Robert Marsh
|
84f9c9b224
|
C++: query help for ConstantSizeArrayOffByOne.ql
|
2022-09-30 15:15:24 -04:00 |
|
Robert Marsh
|
159f11cd28
|
C++: fill in more query metadata
|
2022-09-30 15:07:08 -04:00 |
|
Robert Marsh
|
8972176242
|
C++: autoformat
|
2022-09-30 14:22:33 -04:00 |
|
Robert Marsh
|
8ac8101a75
|
C++: convert to path-problem
|
2022-09-30 11:35:02 -04:00 |
|
Robert Marsh
|
423e0bf99a
|
C++: respond to style comments on PR
|
2022-09-30 11:27:14 -04:00 |
|
Mathias Vorreiter Pedersen
|
b0af4cba30
|
C++: Fix Code Scanning alert.
|
2022-09-30 10:05:45 +01:00 |
|
Robert Marsh
|
f17b563692
|
C++: handle interprocedural flows
This currently copy-pastes some predicates from InvalidPointerDeref.ql.
Those should be moved to a library file in a followup
|
2022-09-29 16:09:48 -04:00 |
|
Mathias Vorreiter Pedersen
|
2a514d60d4
|
C++: Add 'isBarrierIn' to prevent path duplication.
|
2022-09-29 19:55:58 +01:00 |
|
Mathias Vorreiter Pedersen
|
d12a76559a
|
C++: Use the new class in 'cpp/invalid-pointer-deref'.
|
2022-09-29 19:54:03 +01:00 |
|
Robert Marsh
|
447c11cd07
|
C++: move ConstantSizeArrayOffByOne.ql to CWE-193
|
2022-09-29 10:56:29 -04:00 |
|
Robert Marsh
|
e46b215c9d
|
C++: fix metadata and result format
|
2022-09-29 10:53:29 -04:00 |
|
Mathias Vorreiter Pedersen
|
70837dbd93
|
C++: Use range analysis to properly deduce the initial 'state2' instead of traversing the AST. Also fix state-passing related to negative states.
|
2022-09-29 13:32:39 +01:00 |
|