From 50190efe1c9db281ee738cdbe9396e11b0de6874 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 21 Aug 2023 12:51:00 +0100 Subject: [PATCH] C++: Don't limit instruction and operand reuse to those cases where we have a result for 'isUseImpl'. --- .../ir/dataflow/internal/DataFlowPrivate.qll | 14 +- .../cpp/ir/dataflow/internal/SsaInternals.qll | 4 +- .../dataflow/internal/SsaInternalsCommon.qll | 18 +- .../dataflow/fields/ir-path-flow.expected | 401 ++---------------- .../dataflow/taint-tests/taint.expected | 3 +- .../SAMATE/ExecTainted/ExecTainted.expected | 1 + .../semmle/ExecTainted/ExecTainted.expected | 2 + .../SAMATE/OverrunWriteProductFlow.expected | 51 +-- .../semmle/tests/OverflowDestination.expected | 12 +- .../tests/CleartextBufferWrite.expected | 5 - .../CWE/CWE-319/UseOfHttp/UseOfHttp.expected | 15 - .../semmle/tests/ExposedSystemData.expected | 26 +- .../PotentiallyExposedSystemData.expected | 21 - .../Security/CWE/CWE-611/XXE.expected | 39 -- 14 files changed, 79 insertions(+), 533 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 329164e0fd0..4b2885fb08c 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -220,9 +220,10 @@ private module IndirectOperands { int indirectionIndex; IndirectOperandFromIRRepr() { - exists(Operand repr | - repr = Ssa::getIRRepresentationOfIndirectOperand(operand, indirectionIndex) and - nodeHasOperand(this, repr, indirectionIndex - 1) + exists(Operand repr, int indirectionIndexRepr | + Ssa::hasIRRepresentationOfIndirectOperand(operand, indirectionIndex, repr, + indirectionIndexRepr) and + nodeHasOperand(this, repr, indirectionIndexRepr) ) } @@ -262,9 +263,10 @@ private module IndirectInstructions { int indirectionIndex; IndirectInstructionFromIRRepr() { - exists(Instruction repr | - repr = Ssa::getIRRepresentationOfIndirectInstruction(instr, indirectionIndex) and - nodeHasInstruction(this, repr, indirectionIndex - 1) + exists(Instruction repr, int indirectionIndexRepr | + Ssa::hasIRRepresentationOfIndirectInstruction(instr, indirectionIndex, repr, + indirectionIndexRepr) and + nodeHasInstruction(this, repr, indirectionIndexRepr) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll index 4e9a90dc0a1..41870e01b5e 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll @@ -74,7 +74,7 @@ predicate hasRawIndirectOperand(Operand op, int indirectionIndex) { type = getLanguageType(op) and m = countIndirectionsForCppType(type) and indirectionIndex = [1 .. m] and - not exists(getIRRepresentationOfIndirectOperand(op, indirectionIndex)) + not hasIRRepresentationOfIndirectOperand(op, indirectionIndex, _, _) ) } @@ -88,7 +88,7 @@ predicate hasRawIndirectInstruction(Instruction instr, int indirectionIndex) { type = getResultLanguageType(instr) and m = countIndirectionsForCppType(type) and indirectionIndex = [1 .. m] and - not exists(getIRRepresentationOfIndirectInstruction(instr, indirectionIndex)) + not hasIRRepresentationOfIndirectInstruction(instr, indirectionIndex, _, _) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternalsCommon.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternalsCommon.qll index 4410e2e9e69..977803477b6 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternalsCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternalsCommon.qll @@ -781,11 +781,14 @@ private module Cached { * instead associated with the operand returned by this predicate. */ cached - Operand getIRRepresentationOfIndirectOperand(Operand operand, int indirectionIndex) { + predicate hasIRRepresentationOfIndirectOperand( + Operand operand, int indirectionIndex, Operand operandRepr, int indirectionIndexRepr + ) { + indirectionIndex = [1 .. countIndirectionsForCppType(getLanguageType(operand))] and exists(Instruction load | isDereference(load, operand) and - result = unique( | | getAUse(load)) and - isUseImpl(operand, _, indirectionIndex - 1) + operandRepr = unique( | | getAUse(load)) and + indirectionIndexRepr = indirectionIndex - 1 ) } @@ -797,12 +800,15 @@ private module Cached { * instead associated with the instruction returned by this predicate. */ cached - Instruction getIRRepresentationOfIndirectInstruction(Instruction instr, int indirectionIndex) { + predicate hasIRRepresentationOfIndirectInstruction( + Instruction instr, int indirectionIndex, Instruction instrRepr, int indirectionIndexRepr + ) { + indirectionIndex = [1 .. countIndirectionsForCppType(getResultLanguageType(instr))] and exists(Instruction load, Operand address | address.getDef() = instr and isDereference(load, address) and - isUseImpl(address, _, indirectionIndex - 1) and - result = load + instrRepr = load and + indirectionIndexRepr = indirectionIndex - 1 ) } diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index 6dce17b97bf..7c4aef1dccd 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -5,9 +5,7 @@ edges | A.cpp:27:22:27:32 | ... = ... | A.cpp:27:28:27:28 | this indirection [post update] [c] | | A.cpp:28:8:28:10 | this indirection [c] | A.cpp:28:23:28:26 | this indirection [c] | | A.cpp:28:23:28:26 | this indirection [c] | A.cpp:28:29:28:29 | c | -| A.cpp:28:23:28:26 | this indirection [c] | A.cpp:28:29:28:29 | c indirection | | A.cpp:28:29:28:29 | c | A.cpp:28:8:28:10 | get indirection | -| A.cpp:28:29:28:29 | c indirection | A.cpp:28:8:28:10 | get indirection | | A.cpp:29:23:29:23 | c | A.cpp:31:20:31:20 | c | | A.cpp:31:14:31:21 | call to B [c] | A.cpp:29:15:29:18 | make indirection [c] | | A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | @@ -21,9 +19,7 @@ edges | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | | A.cpp:48:20:48:20 | c | A.cpp:48:12:48:18 | call to make indirection [c] | | A.cpp:49:10:49:10 | b indirection [c] | A.cpp:49:10:49:13 | c | -| A.cpp:49:10:49:10 | b indirection [c] | A.cpp:49:13:49:13 | c indirection | -| A.cpp:49:13:49:13 | c indirection | A.cpp:49:10:49:13 | c | -| A.cpp:49:13:49:13 | c indirection | A.cpp:49:13:49:13 | c | +| A.cpp:49:10:49:10 | b indirection [c] | A.cpp:49:13:49:13 | c | | A.cpp:55:5:55:5 | set output argument [c] | A.cpp:56:10:56:10 | b indirection [c] | | A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | | A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | set output argument [c] | @@ -41,17 +37,13 @@ edges | A.cpp:64:21:64:28 | new | A.cpp:64:21:64:28 | new | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | | A.cpp:66:10:66:11 | b2 indirection [c] | A.cpp:66:10:66:14 | c | -| A.cpp:66:10:66:11 | b2 indirection [c] | A.cpp:66:14:66:14 | c indirection | -| A.cpp:66:14:66:14 | c indirection | A.cpp:66:10:66:14 | c | -| A.cpp:66:14:66:14 | c indirection | A.cpp:66:14:66:14 | c | +| A.cpp:66:10:66:11 | b2 indirection [c] | A.cpp:66:14:66:14 | c | | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | A.cpp:75:10:75:11 | b2 indirection [c] | | A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | | A.cpp:73:25:73:32 | new | A.cpp:73:25:73:32 | new | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | | A.cpp:75:10:75:11 | b2 indirection [c] | A.cpp:75:10:75:14 | c | -| A.cpp:75:10:75:11 | b2 indirection [c] | A.cpp:75:14:75:14 | c indirection | -| A.cpp:75:14:75:14 | c indirection | A.cpp:75:10:75:14 | c | -| A.cpp:75:14:75:14 | c indirection | A.cpp:75:14:75:14 | c | +| A.cpp:75:10:75:11 | b2 indirection [c] | A.cpp:75:14:75:14 | c | | A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | | A.cpp:81:10:81:15 | call to setOnB indirection [c] | A.cpp:78:6:78:15 | setOnBWrap indirection [c] | | A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | call to setOnB indirection [c] | @@ -67,22 +59,16 @@ edges | A.cpp:103:14:103:14 | c indirection [a] | A.cpp:107:12:107:13 | c1 indirection [a] | | A.cpp:103:14:103:14 | c indirection [a] | A.cpp:120:12:120:13 | c1 indirection [a] | | A.cpp:107:12:107:13 | c1 indirection [a] | A.cpp:107:12:107:16 | a | -| A.cpp:107:12:107:13 | c1 indirection [a] | A.cpp:107:16:107:16 | a indirection | -| A.cpp:107:16:107:16 | a indirection | A.cpp:107:12:107:16 | a | -| A.cpp:107:16:107:16 | a indirection | A.cpp:107:16:107:16 | a | +| A.cpp:107:12:107:13 | c1 indirection [a] | A.cpp:107:16:107:16 | a | | A.cpp:120:12:120:13 | c1 indirection [a] | A.cpp:120:12:120:16 | a | -| A.cpp:120:12:120:13 | c1 indirection [a] | A.cpp:120:16:120:16 | a indirection | -| A.cpp:120:16:120:16 | a indirection | A.cpp:120:12:120:16 | a | -| A.cpp:120:16:120:16 | a indirection | A.cpp:120:16:120:16 | a | +| A.cpp:120:12:120:13 | c1 indirection [a] | A.cpp:120:16:120:16 | a | | A.cpp:126:5:126:5 | set output argument [c] | A.cpp:131:8:131:8 | f7 output argument [c] | | A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | | A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | set output argument [c] | | A.cpp:126:12:126:18 | new | A.cpp:126:12:126:18 | new | | A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | b indirection [c] | | A.cpp:132:10:132:10 | b indirection [c] | A.cpp:132:10:132:13 | c | -| A.cpp:132:10:132:10 | b indirection [c] | A.cpp:132:13:132:13 | c indirection | -| A.cpp:132:13:132:13 | c indirection | A.cpp:132:10:132:13 | c | -| A.cpp:132:13:132:13 | c indirection | A.cpp:132:13:132:13 | c | +| A.cpp:132:10:132:10 | b indirection [c] | A.cpp:132:13:132:13 | c | | A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | | A.cpp:142:7:142:20 | ... = ... | A.cpp:142:10:142:10 | b indirection [post update] [c] | | A.cpp:142:10:142:10 | b indirection [post update] [c] | A.cpp:143:7:143:31 | ... = ... indirection [c] | @@ -101,20 +87,13 @@ edges | A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | | A.cpp:151:18:151:18 | b | A.cpp:151:12:151:24 | call to D [b] | | A.cpp:152:10:152:10 | d indirection [b] | A.cpp:152:10:152:13 | b | -| A.cpp:152:10:152:10 | d indirection [b] | A.cpp:152:13:152:13 | b indirection | -| A.cpp:152:13:152:13 | b indirection | A.cpp:152:10:152:13 | b | -| A.cpp:152:13:152:13 | b indirection | A.cpp:152:13:152:13 | b | -| A.cpp:153:10:153:10 | d indirection [b indirection, c] | A.cpp:153:13:153:13 | b indirection [c] | +| A.cpp:152:10:152:10 | d indirection [b] | A.cpp:152:13:152:13 | b | | A.cpp:153:10:153:10 | d indirection [b indirection, c] | A.cpp:153:13:153:13 | b indirection [c] | | A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:10:153:16 | c | | A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:13:153:13 | b indirection [c] | -| A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:16:153:16 | c indirection | -| A.cpp:153:16:153:16 | c indirection | A.cpp:153:10:153:16 | c | -| A.cpp:153:16:153:16 | c indirection | A.cpp:153:16:153:16 | c | +| A.cpp:153:13:153:13 | b indirection [c] | A.cpp:153:16:153:16 | c | | A.cpp:154:10:154:10 | b indirection [c] | A.cpp:154:10:154:13 | c | -| A.cpp:154:10:154:10 | b indirection [c] | A.cpp:154:13:154:13 | c indirection | -| A.cpp:154:13:154:13 | c indirection | A.cpp:154:10:154:13 | c | -| A.cpp:154:13:154:13 | c indirection | A.cpp:154:13:154:13 | c | +| A.cpp:154:10:154:10 | b indirection [c] | A.cpp:154:13:154:13 | c | | A.cpp:159:12:159:18 | new | A.cpp:160:29:160:29 | b | | A.cpp:160:18:160:60 | call to MyList [head] | A.cpp:161:38:161:39 | l1 indirection [head] | | A.cpp:160:29:160:29 | b | A.cpp:160:18:160:60 | call to MyList [head] | @@ -127,27 +106,17 @@ edges | A.cpp:162:38:162:39 | l2 indirection [next indirection, head] | A.cpp:162:18:162:40 | call to MyList [next indirection, next indirection, head] | | A.cpp:162:38:162:39 | l2 indirection [next indirection, head] | A.cpp:181:32:181:35 | next indirection [next indirection, head] | | A.cpp:165:10:165:11 | l3 indirection [next indirection, next indirection, head] | A.cpp:165:14:165:17 | next indirection [next indirection, head] | -| A.cpp:165:10:165:11 | l3 indirection [next indirection, next indirection, head] | A.cpp:165:14:165:17 | next indirection [next indirection, head] | | A.cpp:165:14:165:17 | next indirection [next indirection, head] | A.cpp:165:14:165:17 | next indirection [next indirection, head] | | A.cpp:165:14:165:17 | next indirection [next indirection, head] | A.cpp:165:20:165:23 | next indirection [head] | -| A.cpp:165:14:165:17 | next indirection [next indirection, head] | A.cpp:165:20:165:23 | next indirection [head] | | A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:10:165:29 | head | | A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:20:165:23 | next indirection [head] | -| A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:26:165:29 | head indirection | -| A.cpp:165:26:165:29 | head indirection | A.cpp:165:10:165:29 | head | -| A.cpp:165:26:165:29 | head indirection | A.cpp:165:26:165:29 | head | -| A.cpp:167:44:167:44 | l indirection [next indirection, head] | A.cpp:167:47:167:50 | next indirection [head] | +| A.cpp:165:20:165:23 | next indirection [head] | A.cpp:165:26:165:29 | head | | A.cpp:167:44:167:44 | l indirection [next indirection, head] | A.cpp:167:47:167:50 | next indirection [head] | | A.cpp:167:44:167:44 | l indirection [next indirection, next indirection, head] | A.cpp:167:47:167:50 | next indirection [next indirection, head] | -| A.cpp:167:44:167:44 | l indirection [next indirection, next indirection, head] | A.cpp:167:47:167:50 | next indirection [next indirection, head] | | A.cpp:167:47:167:50 | next indirection [head] | A.cpp:169:12:169:12 | l indirection [head] | -| A.cpp:167:47:167:50 | next indirection [head] | A.cpp:169:12:169:12 | l indirection [head] | -| A.cpp:167:47:167:50 | next indirection [next indirection, head] | A.cpp:167:44:167:44 | l indirection [next indirection, head] | | A.cpp:167:47:167:50 | next indirection [next indirection, head] | A.cpp:167:44:167:44 | l indirection [next indirection, head] | | A.cpp:169:12:169:12 | l indirection [head] | A.cpp:169:12:169:18 | head | -| A.cpp:169:12:169:12 | l indirection [head] | A.cpp:169:15:169:18 | head indirection | -| A.cpp:169:15:169:18 | head indirection | A.cpp:169:12:169:18 | head | -| A.cpp:169:15:169:18 | head indirection | A.cpp:169:15:169:18 | head | +| A.cpp:169:12:169:12 | l indirection [head] | A.cpp:169:15:169:18 | head | | A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | | A.cpp:181:32:181:35 | next indirection [head] | A.cpp:184:7:184:23 | ... = ... indirection [head] | | A.cpp:181:32:181:35 | next indirection [next indirection, head] | A.cpp:184:7:184:23 | ... = ... indirection [next indirection, head] | @@ -162,12 +131,9 @@ edges | B.cpp:8:25:8:26 | b1 indirection [elem1] | B.cpp:8:16:8:27 | call to Box2 [box1 indirection, elem1] | | B.cpp:8:25:8:26 | b1 indirection [elem1] | B.cpp:44:16:44:17 | b1 indirection [elem1] | | B.cpp:9:10:9:11 | b2 indirection [box1 indirection, elem1] | B.cpp:9:14:9:17 | box1 indirection [elem1] | -| B.cpp:9:10:9:11 | b2 indirection [box1 indirection, elem1] | B.cpp:9:14:9:17 | box1 indirection [elem1] | | B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:10:9:24 | elem1 | | B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:14:9:17 | box1 indirection [elem1] | -| B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:20:9:24 | elem1 indirection | -| B.cpp:9:20:9:24 | elem1 indirection | B.cpp:9:10:9:24 | elem1 | -| B.cpp:9:20:9:24 | elem1 indirection | B.cpp:9:20:9:24 | elem1 | +| B.cpp:9:14:9:17 | box1 indirection [elem1] | B.cpp:9:20:9:24 | elem1 | | B.cpp:15:15:15:27 | new | B.cpp:16:37:16:37 | e | | B.cpp:16:16:16:38 | call to Box1 [elem2] | B.cpp:17:25:17:26 | b1 indirection [elem2] | | B.cpp:16:37:16:37 | e | B.cpp:16:16:16:38 | call to Box1 [elem2] | @@ -176,12 +142,9 @@ edges | B.cpp:17:25:17:26 | b1 indirection [elem2] | B.cpp:17:16:17:27 | call to Box2 [box1 indirection, elem2] | | B.cpp:17:25:17:26 | b1 indirection [elem2] | B.cpp:44:16:44:17 | b1 indirection [elem2] | | B.cpp:19:10:19:11 | b2 indirection [box1 indirection, elem2] | B.cpp:19:14:19:17 | box1 indirection [elem2] | -| B.cpp:19:10:19:11 | b2 indirection [box1 indirection, elem2] | B.cpp:19:14:19:17 | box1 indirection [elem2] | | B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:10:19:24 | elem2 | | B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:14:19:17 | box1 indirection [elem2] | -| B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:20:19:24 | elem2 indirection | -| B.cpp:19:20:19:24 | elem2 indirection | B.cpp:19:10:19:24 | elem2 | -| B.cpp:19:20:19:24 | elem2 indirection | B.cpp:19:20:19:24 | elem2 | +| B.cpp:19:14:19:17 | box1 indirection [elem2] | B.cpp:19:20:19:24 | elem2 | | B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | | B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | | B.cpp:35:7:35:22 | ... = ... | B.cpp:35:13:35:17 | this indirection [post update] [elem1] | @@ -202,23 +165,15 @@ edges | C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | | C.cpp:27:8:27:11 | this indirection [s1] | C.cpp:29:10:29:11 | this indirection [s1] | | C.cpp:27:8:27:11 | this indirection [s3] | C.cpp:31:10:31:11 | this indirection [s3] | -| C.cpp:29:10:29:11 | s1 indirection | C.cpp:29:10:29:11 | s1 | | C.cpp:29:10:29:11 | this indirection [s1] | C.cpp:29:10:29:11 | s1 | -| C.cpp:29:10:29:11 | this indirection [s1] | C.cpp:29:10:29:11 | s1 indirection | -| C.cpp:31:10:31:11 | s3 indirection | C.cpp:31:10:31:11 | s3 | | C.cpp:31:10:31:11 | this indirection [s3] | C.cpp:31:10:31:11 | s3 | -| C.cpp:31:10:31:11 | this indirection [s3] | C.cpp:31:10:31:11 | s3 indirection | | D.cpp:10:11:10:17 | this indirection [elem] | D.cpp:10:30:10:33 | this indirection [elem] | | D.cpp:10:30:10:33 | elem | D.cpp:10:11:10:17 | getElem indirection | -| D.cpp:10:30:10:33 | elem indirection | D.cpp:10:11:10:17 | getElem indirection | | D.cpp:10:30:10:33 | this indirection [elem] | D.cpp:10:30:10:33 | elem | -| D.cpp:10:30:10:33 | this indirection [elem] | D.cpp:10:30:10:33 | elem indirection | | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | | D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | this indirection [post update] [elem] | | D.cpp:17:11:17:17 | this indirection [box indirection, elem] | D.cpp:17:30:17:32 | this indirection [box indirection, elem] | | D.cpp:17:30:17:32 | box indirection [elem] | D.cpp:17:11:17:17 | getBox1 indirection [elem] | -| D.cpp:17:30:17:32 | box indirection [elem] | D.cpp:17:11:17:17 | getBox1 indirection [elem] | -| D.cpp:17:30:17:32 | this indirection [box indirection, elem] | D.cpp:17:30:17:32 | box indirection [elem] | | D.cpp:17:30:17:32 | this indirection [box indirection, elem] | D.cpp:17:30:17:32 | box indirection [elem] | | D.cpp:21:30:21:31 | b2 indirection [box indirection, elem] | D.cpp:22:10:22:11 | b2 indirection [box indirection, elem] | | D.cpp:22:10:22:11 | b2 indirection [box indirection, elem] | D.cpp:17:11:17:17 | this indirection [box indirection, elem] | @@ -256,20 +211,16 @@ edges | D.cpp:63:8:63:10 | this indirection [boxfield indirection, box indirection, elem] | D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | D.cpp:64:20:64:22 | box indirection [elem] | -| D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | D.cpp:64:20:64:22 | box indirection [elem] | -| D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | | D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | | D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:10:64:28 | elem | | D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:20:64:22 | box indirection [elem] | -| D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:25:64:28 | elem indirection | -| D.cpp:64:25:64:28 | elem indirection | D.cpp:64:10:64:28 | elem | -| D.cpp:64:25:64:28 | elem indirection | D.cpp:64:25:64:28 | elem | +| D.cpp:64:20:64:22 | box indirection [elem] | D.cpp:64:25:64:28 | elem | | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | E.cpp:21:13:21:16 | data indirection [buffer indirection] | | E.cpp:21:13:21:16 | data indirection [buffer indirection] | E.cpp:21:18:21:23 | buffer indirection | | E.cpp:21:13:21:16 | data indirection [buffer indirection] | E.cpp:21:18:21:23 | buffer indirection | | E.cpp:21:18:21:23 | buffer indirection | E.cpp:21:18:21:23 | buffer indirection | -| E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | +| E.cpp:21:18:21:23 | buffer indirection | E.cpp:21:18:21:23 | buffer indirection | | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | | E.cpp:29:21:29:29 | argument_source output argument | E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | | E.cpp:29:24:29:29 | b indirection [post update] [buffer indirection] | E.cpp:32:10:32:10 | b indirection [buffer indirection] | @@ -279,6 +230,7 @@ edges | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:32:13:32:18 | buffer indirection | +| E.cpp:32:13:32:18 | buffer indirection | E.cpp:32:13:32:18 | buffer indirection | | E.cpp:33:18:33:19 | & ... indirection [data, buffer indirection] | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | | aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | | aliasing.cpp:9:6:9:7 | s indirection [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | @@ -289,25 +241,17 @@ edges | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | aliasing.cpp:29:8:29:9 | s1 indirection [m1] | | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | aliasing.cpp:30:8:30:9 | s2 indirection [m1] | | aliasing.cpp:29:8:29:9 | s1 indirection [m1] | aliasing.cpp:29:11:29:12 | m1 | -| aliasing.cpp:29:8:29:9 | s1 indirection [m1] | aliasing.cpp:29:11:29:12 | m1 indirection | -| aliasing.cpp:29:11:29:12 | m1 indirection | aliasing.cpp:29:11:29:12 | m1 | | aliasing.cpp:30:8:30:9 | s2 indirection [m1] | aliasing.cpp:30:11:30:12 | m1 | -| aliasing.cpp:30:8:30:9 | s2 indirection [m1] | aliasing.cpp:30:11:30:12 | m1 indirection | -| aliasing.cpp:30:11:30:12 | m1 indirection | aliasing.cpp:30:11:30:12 | m1 | | aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:6:60:7 | s2 indirection [post update] [m1] | | aliasing.cpp:60:6:60:7 | s2 indirection [post update] [m1] | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | | aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:60:3:60:22 | ... = ... | | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | aliasing.cpp:62:14:62:15 | m1 | -| aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | aliasing.cpp:62:14:62:15 | m1 indirection | -| aliasing.cpp:62:14:62:15 | m1 indirection | aliasing.cpp:62:14:62:15 | m1 | | aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:7:92:8 | s indirection [post update] [m1] | | aliasing.cpp:92:5:92:5 | w indirection [post update] [s, m1] | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | | aliasing.cpp:92:7:92:8 | s indirection [post update] [m1] | aliasing.cpp:92:5:92:5 | w indirection [post update] [s, m1] | | aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:92:3:92:23 | ... = ... | | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | aliasing.cpp:93:10:93:10 | s indirection [m1] | | aliasing.cpp:93:10:93:10 | s indirection [m1] | aliasing.cpp:93:12:93:13 | m1 | -| aliasing.cpp:93:10:93:10 | s indirection [m1] | aliasing.cpp:93:12:93:13 | m1 indirection | -| aliasing.cpp:93:12:93:13 | m1 indirection | aliasing.cpp:93:12:93:13 | m1 | | aliasing.cpp:98:3:98:21 | ... = ... | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:98:3:98:21 | ... = ... | @@ -323,49 +267,46 @@ edges | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | +| aliasing.cpp:105:23:105:24 | pa indirection | aliasing.cpp:105:23:105:24 | pa | | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa | | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | aliasing.cpp:122:8:122:12 | access to array | +| aliasing.cpp:126:15:126:20 | ... - ... indirection | aliasing.cpp:105:23:105:24 | pa indirection | +| aliasing.cpp:126:15:126:20 | ... - ... indirection | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | +| aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:126:15:126:20 | ... - ... indirection | | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | * ... | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... | | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | * ... | | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:17:141:20 | s indirection [post update] [data indirection] | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:8:143:16 | access to array | -| aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:8:143:16 | access to array indirection | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | aliasing.cpp:143:10:143:13 | data indirection | -| aliasing.cpp:143:8:143:16 | access to array indirection | aliasing.cpp:143:8:143:16 | access to array | | aliasing.cpp:143:10:143:13 | data indirection | aliasing.cpp:143:8:143:16 | access to array | | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | aliasing.cpp:159:9:159:9 | s indirection [data] | | aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:8:159:14 | * ... | -| aliasing.cpp:159:9:159:9 | s indirection [data] | aliasing.cpp:159:9:159:14 | data indirection | -| aliasing.cpp:159:9:159:14 | data indirection | aliasing.cpp:159:8:159:14 | * ... | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | aliasing.cpp:165:8:165:8 | s indirection [data] | | aliasing.cpp:165:8:165:8 | s indirection [data] | aliasing.cpp:165:8:165:16 | access to array | -| aliasing.cpp:165:8:165:8 | s indirection [data] | aliasing.cpp:165:8:165:16 | access to array indirection | -| aliasing.cpp:165:8:165:16 | access to array indirection | aliasing.cpp:165:8:165:16 | access to array | | aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | aliasing.cpp:175:21:175:22 | s indirection [post update] [m1] | | aliasing.cpp:175:19:175:19 | s2 indirection [post update] [s, m1] | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | | aliasing.cpp:175:21:175:22 | s indirection [post update] [m1] | aliasing.cpp:175:19:175:19 | s2 indirection [post update] [s, m1] | | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | aliasing.cpp:176:11:176:11 | s indirection [m1] | | aliasing.cpp:176:11:176:11 | s indirection [m1] | aliasing.cpp:176:13:176:14 | m1 | -| aliasing.cpp:176:11:176:11 | s indirection [m1] | aliasing.cpp:176:13:176:14 | m1 indirection | -| aliasing.cpp:176:13:176:14 | m1 indirection | aliasing.cpp:176:13:176:14 | m1 | | aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | aliasing.cpp:187:21:187:22 | s indirection [post update] [m1] | | aliasing.cpp:187:19:187:19 | s2 indirection [post update] [s, m1] | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | | aliasing.cpp:187:21:187:22 | s indirection [post update] [m1] | aliasing.cpp:187:19:187:19 | s2 indirection [post update] [s, m1] | | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | aliasing.cpp:189:13:189:13 | s indirection [m1] | | aliasing.cpp:189:13:189:13 | s indirection [m1] | aliasing.cpp:189:15:189:16 | m1 | -| aliasing.cpp:189:13:189:13 | s indirection [m1] | aliasing.cpp:189:15:189:16 | m1 indirection | -| aliasing.cpp:189:15:189:16 | m1 indirection | aliasing.cpp:189:15:189:16 | m1 | +| aliasing.cpp:200:15:200:24 | & ... indirection | aliasing.cpp:105:23:105:24 | pa indirection | +| aliasing.cpp:200:15:200:24 | & ... indirection | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | aliasing.cpp:200:23:200:24 | s indirection [post update] [m1] | +| aliasing.cpp:200:16:200:18 | ps2 indirection [s, m1] | aliasing.cpp:200:21:200:21 | s indirection [m1] | +| aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | aliasing.cpp:200:16:200:18 | ps2 indirection [s, m1] | | aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | +| aliasing.cpp:200:21:200:21 | s indirection [m1] | aliasing.cpp:200:15:200:24 | & ... indirection | | aliasing.cpp:200:23:200:24 | s indirection [post update] [m1] | aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | aliasing.cpp:201:13:201:13 | s indirection [m1] | | aliasing.cpp:201:13:201:13 | s indirection [m1] | aliasing.cpp:201:15:201:16 | m1 | -| aliasing.cpp:201:13:201:13 | s indirection [m1] | aliasing.cpp:201:15:201:16 | m1 indirection | -| aliasing.cpp:201:15:201:16 | m1 indirection | aliasing.cpp:201:15:201:16 | m1 | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | | arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | @@ -380,14 +321,10 @@ edges | arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:36:3:36:37 | ... = ... | | arrays.cpp:37:8:37:8 | o indirection [nested, arr, data] | arrays.cpp:37:10:37:15 | nested indirection [arr, data] | | arrays.cpp:37:8:37:22 | access to array indirection [data] | arrays.cpp:37:24:37:27 | data | -| arrays.cpp:37:8:37:22 | access to array indirection [data] | arrays.cpp:37:24:37:27 | data indirection | | arrays.cpp:37:10:37:15 | nested indirection [arr, data] | arrays.cpp:37:8:37:22 | access to array indirection [data] | -| arrays.cpp:37:24:37:27 | data indirection | arrays.cpp:37:24:37:27 | data | | arrays.cpp:38:8:38:8 | o indirection [nested, arr, data] | arrays.cpp:38:10:38:15 | nested indirection [arr, data] | | arrays.cpp:38:8:38:22 | access to array indirection [data] | arrays.cpp:38:24:38:27 | data | -| arrays.cpp:38:8:38:22 | access to array indirection [data] | arrays.cpp:38:24:38:27 | data indirection | | arrays.cpp:38:10:38:15 | nested indirection [arr, data] | arrays.cpp:38:8:38:22 | access to array indirection [data] | -| arrays.cpp:38:24:38:27 | data indirection | arrays.cpp:38:24:38:27 | data | | arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:22:42:25 | access to array indirection [post update] [data] | | arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | | arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | @@ -395,19 +332,13 @@ edges | arrays.cpp:42:22:42:25 | access to array indirection [post update] [data] | arrays.cpp:42:15:42:17 | indirect indirection [post update] [arr, data] | | arrays.cpp:42:29:42:38 | call to user_input | arrays.cpp:42:3:42:40 | ... = ... | | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | -| arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | | arrays.cpp:43:8:43:25 | access to array indirection [data] | arrays.cpp:43:27:43:30 | data | -| arrays.cpp:43:8:43:25 | access to array indirection [data] | arrays.cpp:43:27:43:30 | data indirection | | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | arrays.cpp:43:8:43:25 | access to array indirection [data] | | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | -| arrays.cpp:43:27:43:30 | data indirection | arrays.cpp:43:27:43:30 | data | -| arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | | arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | | arrays.cpp:44:8:44:25 | access to array indirection [data] | arrays.cpp:44:27:44:30 | data | -| arrays.cpp:44:8:44:25 | access to array indirection [data] | arrays.cpp:44:27:44:30 | data indirection | | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | arrays.cpp:44:8:44:25 | access to array indirection [data] | | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | -| arrays.cpp:44:27:44:30 | data indirection | arrays.cpp:44:27:44:30 | data | | arrays.cpp:48:3:48:40 | ... = ... | arrays.cpp:48:22:48:25 | access to array indirection [post update] [data] | | arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | | arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | arrays.cpp:50:8:50:8 | o indirection [indirect indirection, ptr indirection, data] | @@ -415,23 +346,17 @@ edges | arrays.cpp:48:22:48:25 | access to array indirection [post update] [data] | arrays.cpp:48:15:48:17 | indirect indirection [post update] [ptr indirection, data] | | arrays.cpp:48:29:48:38 | call to user_input | arrays.cpp:48:3:48:40 | ... = ... | | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | -| arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | | arrays.cpp:49:8:49:25 | access to array indirection [data] | arrays.cpp:49:27:49:30 | data | -| arrays.cpp:49:8:49:25 | access to array indirection [data] | arrays.cpp:49:27:49:30 | data indirection | | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | arrays.cpp:49:8:49:25 | access to array indirection [data] | | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | arrays.cpp:49:20:49:22 | ptr indirection [data] | | arrays.cpp:49:20:49:22 | ptr indirection [data] | arrays.cpp:49:8:49:25 | access to array indirection [data] | -| arrays.cpp:49:27:49:30 | data indirection | arrays.cpp:49:27:49:30 | data | -| arrays.cpp:50:8:50:8 | o indirection [indirect indirection, ptr indirection, data] | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | | arrays.cpp:50:8:50:8 | o indirection [indirect indirection, ptr indirection, data] | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | | arrays.cpp:50:8:50:25 | access to array indirection [data] | arrays.cpp:50:27:50:30 | data | -| arrays.cpp:50:8:50:25 | access to array indirection [data] | arrays.cpp:50:27:50:30 | data indirection | | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | arrays.cpp:50:8:50:25 | access to array indirection [data] | | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | arrays.cpp:50:20:50:22 | ptr indirection [data] | | arrays.cpp:50:20:50:22 | ptr indirection [data] | arrays.cpp:50:8:50:25 | access to array indirection [data] | -| arrays.cpp:50:27:50:30 | data indirection | arrays.cpp:50:27:50:30 | data | | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | | by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | @@ -444,14 +369,10 @@ edges | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:32:12:32:12 | s indirection [a] | | by_reference.cpp:32:12:32:12 | s indirection [a] | by_reference.cpp:32:15:32:15 | a | -| by_reference.cpp:32:12:32:12 | s indirection [a] | by_reference.cpp:32:15:32:15 | a indirection | | by_reference.cpp:32:15:32:15 | a | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | -| by_reference.cpp:32:15:32:15 | a indirection | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | | by_reference.cpp:35:9:35:19 | this indirection [a] | by_reference.cpp:36:12:36:15 | this indirection [a] | | by_reference.cpp:36:12:36:15 | this indirection [a] | by_reference.cpp:36:18:36:18 | a | -| by_reference.cpp:36:12:36:15 | this indirection [a] | by_reference.cpp:36:18:36:18 | a indirection | | by_reference.cpp:36:18:36:18 | a | by_reference.cpp:35:9:35:19 | getDirectly indirection | -| by_reference.cpp:36:18:36:18 | a indirection | by_reference.cpp:35:9:35:19 | getDirectly indirection | | by_reference.cpp:39:9:39:21 | this indirection [a] | by_reference.cpp:40:12:40:15 | this indirection [a] | | by_reference.cpp:40:12:40:15 | this indirection [a] | by_reference.cpp:35:9:35:19 | this indirection [a] | | by_reference.cpp:40:12:40:15 | this indirection [a] | by_reference.cpp:40:18:40:28 | call to getDirectly | @@ -494,6 +415,7 @@ edges | by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | +| by_reference.cpp:91:25:91:26 | pa indirection | by_reference.cpp:91:25:91:26 | pa | | by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | pa | | by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:124:15:124:21 | taint_a_ref output argument | | by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:128:15:128:23 | taint_a_ref output argument | @@ -508,34 +430,24 @@ edges | by_reference.cpp:106:30:106:41 | pouter indirection [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | pouter indirection [inner_nested, a] | | by_reference.cpp:107:29:107:37 | pouter indirection [post update] [inner_ptr indirection, a] | by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | by_reference.cpp:107:29:107:37 | pouter indirection [post update] [inner_ptr indirection, a] | +| by_reference.cpp:108:15:108:24 | & ... indirection | by_reference.cpp:91:25:91:26 | pa indirection | +| by_reference.cpp:108:15:108:24 | & ... indirection | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | +| by_reference.cpp:108:16:108:21 | pouter indirection [a] | by_reference.cpp:108:15:108:24 | & ... indirection | +| by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | by_reference.cpp:108:16:108:21 | pouter indirection [a] | | by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | by_reference.cpp:116:8:116:13 | pouter indirection [a] | | by_reference.cpp:110:8:110:12 | outer indirection [inner_nested, a] | by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | | by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | by_reference.cpp:110:27:110:27 | a | -| by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | by_reference.cpp:110:27:110:27 | a indirection | -| by_reference.cpp:110:27:110:27 | a indirection | by_reference.cpp:110:27:110:27 | a | -| by_reference.cpp:111:8:111:12 | outer indirection [inner_ptr indirection, a] | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | | by_reference.cpp:111:8:111:12 | outer indirection [inner_ptr indirection, a] | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | by_reference.cpp:111:25:111:25 | a | -| by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | by_reference.cpp:111:25:111:25 | a indirection | -| by_reference.cpp:111:25:111:25 | a indirection | by_reference.cpp:111:25:111:25 | a | | by_reference.cpp:112:8:112:12 | outer indirection [a] | by_reference.cpp:112:14:112:14 | a | -| by_reference.cpp:112:8:112:12 | outer indirection [a] | by_reference.cpp:112:14:112:14 | a indirection | -| by_reference.cpp:112:14:112:14 | a indirection | by_reference.cpp:112:14:112:14 | a | | by_reference.cpp:114:8:114:13 | pouter indirection [inner_nested, a] | by_reference.cpp:114:16:114:27 | inner_nested indirection [a] | | by_reference.cpp:114:16:114:27 | inner_nested indirection [a] | by_reference.cpp:114:29:114:29 | a | -| by_reference.cpp:114:16:114:27 | inner_nested indirection [a] | by_reference.cpp:114:29:114:29 | a indirection | -| by_reference.cpp:114:29:114:29 | a indirection | by_reference.cpp:114:29:114:29 | a | -| by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | | by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | by_reference.cpp:115:27:115:27 | a | -| by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | by_reference.cpp:115:27:115:27 | a indirection | -| by_reference.cpp:115:27:115:27 | a indirection | by_reference.cpp:115:27:115:27 | a | | by_reference.cpp:116:8:116:13 | pouter indirection [a] | by_reference.cpp:116:16:116:16 | a | -| by_reference.cpp:116:8:116:13 | pouter indirection [a] | by_reference.cpp:116:16:116:16 | a indirection | -| by_reference.cpp:116:16:116:16 | a indirection | by_reference.cpp:116:16:116:16 | a | | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:122:27:122:38 | outer indirection [post update] [inner_nested, a] | | by_reference.cpp:122:27:122:38 | outer indirection [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | by_reference.cpp:123:28:123:36 | outer indirection [post update] [inner_ptr indirection, a] | @@ -550,39 +462,21 @@ edges | by_reference.cpp:128:23:128:23 | pouter indirection [post update] [a] | by_reference.cpp:136:8:136:13 | pouter indirection [a] | | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | | by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | by_reference.cpp:130:27:130:27 | a | -| by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | by_reference.cpp:130:27:130:27 | a indirection | -| by_reference.cpp:130:27:130:27 | a indirection | by_reference.cpp:130:27:130:27 | a | -| by_reference.cpp:131:8:131:12 | outer indirection [inner_ptr indirection, a] | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | | by_reference.cpp:131:8:131:12 | outer indirection [inner_ptr indirection, a] | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | by_reference.cpp:131:25:131:25 | a | -| by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | by_reference.cpp:131:25:131:25 | a indirection | -| by_reference.cpp:131:25:131:25 | a indirection | by_reference.cpp:131:25:131:25 | a | | by_reference.cpp:132:8:132:12 | outer indirection [a] | by_reference.cpp:132:14:132:14 | a | -| by_reference.cpp:132:8:132:12 | outer indirection [a] | by_reference.cpp:132:14:132:14 | a indirection | -| by_reference.cpp:132:14:132:14 | a indirection | by_reference.cpp:132:14:132:14 | a | | by_reference.cpp:134:8:134:13 | pouter indirection [inner_nested, a] | by_reference.cpp:134:16:134:27 | inner_nested indirection [a] | | by_reference.cpp:134:16:134:27 | inner_nested indirection [a] | by_reference.cpp:134:29:134:29 | a | -| by_reference.cpp:134:16:134:27 | inner_nested indirection [a] | by_reference.cpp:134:29:134:29 | a indirection | -| by_reference.cpp:134:29:134:29 | a indirection | by_reference.cpp:134:29:134:29 | a | -| by_reference.cpp:135:8:135:13 | pouter indirection [inner_ptr indirection, a] | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | | by_reference.cpp:135:8:135:13 | pouter indirection [inner_ptr indirection, a] | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | by_reference.cpp:135:27:135:27 | a | -| by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | by_reference.cpp:135:27:135:27 | a indirection | -| by_reference.cpp:135:27:135:27 | a indirection | by_reference.cpp:135:27:135:27 | a | | by_reference.cpp:136:8:136:13 | pouter indirection [a] | by_reference.cpp:136:16:136:16 | a | -| by_reference.cpp:136:8:136:13 | pouter indirection [a] | by_reference.cpp:136:16:136:16 | a indirection | -| by_reference.cpp:136:16:136:16 | a indirection | by_reference.cpp:136:16:136:16 | a | | clearning.cpp:32:3:32:25 | ... = ... | clearning.cpp:32:6:32:6 | s indirection [post update] [x indirection] | | clearning.cpp:32:6:32:6 | s indirection [post update] [x indirection] | clearning.cpp:33:5:33:5 | s indirection [x indirection] | | clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:32:3:32:25 | ... = ... | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | clearning.cpp:34:9:34:9 | s indirection [x indirection] | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:8:34:11 | * ... | -| clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:11:34:11 | x indirection | -| clearning.cpp:34:9:34:9 | s indirection [x indirection] | clearning.cpp:34:11:34:11 | x indirection | -| clearning.cpp:34:11:34:11 | x indirection | clearning.cpp:34:8:34:11 | * ... | -| clearning.cpp:34:11:34:11 | x indirection | clearning.cpp:34:8:34:11 | * ... | | clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | clearning.cpp:54:3:54:3 | s indirection [x indirection] | | clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:3:53:25 | ... = ... | @@ -596,6 +490,7 @@ edges | clearning.cpp:55:8:55:8 | s indirection [x indirection] | clearning.cpp:55:10:55:10 | x indirection | | clearning.cpp:55:8:55:8 | s indirection [x indirection] | clearning.cpp:55:10:55:10 | x indirection | | clearning.cpp:55:10:55:10 | x indirection | clearning.cpp:55:10:55:10 | x indirection | +| clearning.cpp:55:10:55:10 | x indirection | clearning.cpp:55:10:55:10 | x indirection | | clearning.cpp:60:3:60:22 | ... = ... | clearning.cpp:60:7:60:7 | s indirection [post update] [x indirection] | | clearning.cpp:60:7:60:7 | s indirection [post update] [x indirection] | clearning.cpp:61:3:61:3 | s indirection [x indirection] | | clearning.cpp:60:11:60:20 | call to user_input | clearning.cpp:60:3:60:22 | ... = ... | @@ -609,13 +504,10 @@ edges | clearning.cpp:62:8:62:8 | s indirection [x indirection] | clearning.cpp:62:10:62:10 | x indirection | | clearning.cpp:62:8:62:8 | s indirection [x indirection] | clearning.cpp:62:10:62:10 | x indirection | | clearning.cpp:62:10:62:10 | x indirection | clearning.cpp:62:10:62:10 | x indirection | +| clearning.cpp:62:10:62:10 | x indirection | clearning.cpp:62:10:62:10 | x indirection | | clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | clearning.cpp:76:8:76:8 | s indirection [val indirection] | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:7:76:12 | * ... | -| clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:10:76:12 | val indirection | -| clearning.cpp:76:8:76:8 | s indirection [val indirection] | clearning.cpp:76:10:76:12 | val indirection | -| clearning.cpp:76:10:76:12 | val indirection | clearning.cpp:76:7:76:12 | * ... | -| clearning.cpp:76:10:76:12 | val indirection | clearning.cpp:76:7:76:12 | * ... | | clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | clearning.cpp:83:13:83:13 | s indirection [val indirection] | | clearning.cpp:83:5:83:21 | ... = ... indirection | clearning.cpp:83:7:83:9 | s indirection [post update] [val indirection] | @@ -625,10 +517,6 @@ edges | clearning.cpp:83:13:83:21 | ... + ... indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:83:15:83:17 | val indirection | clearning.cpp:83:5:83:21 | ... = ... indirection | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:7:84:12 | * ... | -| clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:10:84:12 | val indirection | -| clearning.cpp:84:8:84:8 | s indirection [val indirection] | clearning.cpp:84:10:84:12 | val indirection | -| clearning.cpp:84:10:84:12 | val indirection | clearning.cpp:84:7:84:12 | * ... | -| clearning.cpp:84:10:84:12 | val indirection | clearning.cpp:84:7:84:12 | * ... | | clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | clearning.cpp:90:3:90:3 | s indirection [val indirection] | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | clearning.cpp:90:3:90:9 | ... ++ indirection | @@ -639,10 +527,6 @@ edges | clearning.cpp:90:5:90:7 | s indirection [post update] [val indirection] | clearning.cpp:91:8:91:8 | s indirection [val indirection] | | clearning.cpp:90:5:90:7 | val indirection | clearning.cpp:90:3:90:9 | ... ++ indirection | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:7:91:12 | * ... | -| clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:10:91:12 | val indirection | -| clearning.cpp:91:8:91:8 | s indirection [val indirection] | clearning.cpp:91:10:91:12 | val indirection | -| clearning.cpp:91:10:91:12 | val indirection | clearning.cpp:91:7:91:12 | * ... | -| clearning.cpp:91:10:91:12 | val indirection | clearning.cpp:91:7:91:12 | * ... | | clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | clearning.cpp:97:10:97:10 | s indirection [val indirection] | | clearning.cpp:97:2:97:18 | ... = ... indirection | clearning.cpp:97:4:97:6 | s indirection [post update] [val indirection] | @@ -652,10 +536,6 @@ edges | clearning.cpp:97:10:97:18 | ... + ... indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:97:12:97:14 | val indirection | clearning.cpp:97:2:97:18 | ... = ... indirection | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:7:98:12 | * ... | -| clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:10:98:12 | val indirection | -| clearning.cpp:98:8:98:8 | s indirection [val indirection] | clearning.cpp:98:10:98:12 | val indirection | -| clearning.cpp:98:10:98:12 | val indirection | clearning.cpp:98:7:98:12 | * ... | -| clearning.cpp:98:10:98:12 | val indirection | clearning.cpp:98:7:98:12 | * ... | | clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | clearning.cpp:104:2:104:2 | s indirection [val indirection] | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | clearning.cpp:104:2:104:8 | ... ++ indirection | @@ -666,10 +546,6 @@ edges | clearning.cpp:104:4:104:6 | s indirection [post update] [val indirection] | clearning.cpp:105:8:105:8 | s indirection [val indirection] | | clearning.cpp:104:4:104:6 | val indirection | clearning.cpp:104:2:104:8 | ... ++ indirection | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:7:105:12 | * ... | -| clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:10:105:12 | val indirection | -| clearning.cpp:105:8:105:8 | s indirection [val indirection] | clearning.cpp:105:10:105:12 | val indirection | -| clearning.cpp:105:10:105:12 | val indirection | clearning.cpp:105:7:105:12 | * ... | -| clearning.cpp:105:10:105:12 | val indirection | clearning.cpp:105:7:105:12 | * ... | | clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | clearning.cpp:111:4:111:4 | s indirection [val indirection] | | clearning.cpp:111:2:111:8 | ++ ... indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | @@ -680,10 +556,6 @@ edges | clearning.cpp:111:6:111:8 | s indirection [post update] [val indirection] | clearning.cpp:112:8:112:8 | s indirection [val indirection] | | clearning.cpp:111:6:111:8 | val indirection | clearning.cpp:111:2:111:8 | ++ ... indirection | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:7:112:12 | * ... | -| clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:10:112:12 | val indirection | -| clearning.cpp:112:8:112:8 | s indirection [val indirection] | clearning.cpp:112:10:112:12 | val indirection | -| clearning.cpp:112:10:112:12 | val indirection | clearning.cpp:112:7:112:12 | * ... | -| clearning.cpp:112:10:112:12 | val indirection | clearning.cpp:112:7:112:12 | * ... | | clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | clearning.cpp:118:2:118:2 | s indirection [val indirection] | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | clearning.cpp:118:2:118:11 | ... += ... indirection | @@ -694,26 +566,16 @@ edges | clearning.cpp:118:4:118:6 | s indirection [post update] [val indirection] | clearning.cpp:119:8:119:8 | s indirection [val indirection] | | clearning.cpp:118:4:118:6 | val indirection | clearning.cpp:118:2:118:11 | ... += ... indirection | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:7:119:12 | * ... | -| clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:10:119:12 | val indirection | -| clearning.cpp:119:8:119:8 | s indirection [val indirection] | clearning.cpp:119:10:119:12 | val indirection | -| clearning.cpp:119:10:119:12 | val indirection | clearning.cpp:119:7:119:12 | * ... | -| clearning.cpp:119:10:119:12 | val indirection | clearning.cpp:119:7:119:12 | * ... | | clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | clearning.cpp:152:8:152:8 | s indirection [val] | | clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | | clearning.cpp:152:8:152:8 | s indirection [val] | clearning.cpp:152:10:152:12 | val | -| clearning.cpp:152:8:152:8 | s indirection [val] | clearning.cpp:152:10:152:12 | val indirection | -| clearning.cpp:152:10:152:12 | val indirection | clearning.cpp:152:10:152:12 | val | | complex.cpp:9:7:9:7 | this indirection [a_] | complex.cpp:9:20:9:21 | this indirection [a_] | | complex.cpp:9:20:9:21 | a_ | complex.cpp:9:7:9:7 | a indirection | -| complex.cpp:9:20:9:21 | a_ indirection | complex.cpp:9:7:9:7 | a indirection | | complex.cpp:9:20:9:21 | this indirection [a_] | complex.cpp:9:20:9:21 | a_ | -| complex.cpp:9:20:9:21 | this indirection [a_] | complex.cpp:9:20:9:21 | a_ indirection | | complex.cpp:10:7:10:7 | this indirection [b_] | complex.cpp:10:20:10:21 | this indirection [b_] | | complex.cpp:10:20:10:21 | b_ | complex.cpp:10:7:10:7 | b indirection | -| complex.cpp:10:20:10:21 | b_ indirection | complex.cpp:10:7:10:7 | b indirection | | complex.cpp:10:20:10:21 | this indirection [b_] | complex.cpp:10:20:10:21 | b_ | -| complex.cpp:10:20:10:21 | this indirection [b_] | complex.cpp:10:20:10:21 | b_ indirection | | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | | complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | this indirection [post update] [a_] | | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | @@ -772,55 +634,36 @@ edges | conflated.cpp:10:7:10:7 | ra indirection [post update] [p indirection] | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:8:11:12 | * ... | -| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:12:11:12 | p indirection | -| conflated.cpp:11:9:11:10 | ra indirection [p indirection] | conflated.cpp:11:12:11:12 | p indirection | -| conflated.cpp:11:12:11:12 | p indirection | conflated.cpp:11:8:11:12 | * ... | -| conflated.cpp:11:12:11:12 | p indirection | conflated.cpp:11:8:11:12 | * ... | -| conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | | conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | conflated.cpp:30:8:30:9 | pa indirection [x] | | conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... | | conflated.cpp:30:8:30:9 | pa indirection [x] | conflated.cpp:30:12:30:12 | x | -| conflated.cpp:30:8:30:9 | pa indirection [x] | conflated.cpp:30:12:30:12 | x indirection | -| conflated.cpp:30:12:30:12 | x indirection | conflated.cpp:30:12:30:12 | x | | conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:7:36:7 | pa indirection [post update] [x] | | conflated.cpp:36:7:36:7 | pa indirection [post update] [x] | conflated.cpp:37:8:37:9 | pa indirection [x] | | conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:36:3:36:22 | ... = ... | | conflated.cpp:37:8:37:9 | pa indirection [x] | conflated.cpp:37:12:37:12 | x | -| conflated.cpp:37:8:37:9 | pa indirection [x] | conflated.cpp:37:12:37:12 | x indirection | -| conflated.cpp:37:12:37:12 | x indirection | conflated.cpp:37:12:37:12 | x | | conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:13:54:13 | next indirection [post update] [y] | | conflated.cpp:54:7:54:10 | ll indirection [post update] [next indirection, y] | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | | conflated.cpp:54:13:54:13 | next indirection [post update] [y] | conflated.cpp:54:7:54:10 | ll indirection [post update] [next indirection, y] | | conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:54:3:54:28 | ... = ... | | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | conflated.cpp:55:12:55:15 | next indirection [y] | -| conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | conflated.cpp:55:12:55:15 | next indirection [y] | | conflated.cpp:55:12:55:15 | next indirection [y] | conflated.cpp:55:12:55:15 | next indirection [y] | | conflated.cpp:55:12:55:15 | next indirection [y] | conflated.cpp:55:18:55:18 | y | -| conflated.cpp:55:12:55:15 | next indirection [y] | conflated.cpp:55:18:55:18 | y indirection | -| conflated.cpp:55:18:55:18 | y indirection | conflated.cpp:55:18:55:18 | y | | conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:13:60:13 | next indirection [post update] [y] | | conflated.cpp:60:7:60:10 | ll indirection [post update] [next indirection, y] | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | | conflated.cpp:60:13:60:13 | next indirection [post update] [y] | conflated.cpp:60:7:60:10 | ll indirection [post update] [next indirection, y] | | conflated.cpp:60:17:60:26 | call to user_input | conflated.cpp:60:3:60:28 | ... = ... | | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | conflated.cpp:61:12:61:15 | next indirection [y] | -| conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | conflated.cpp:61:12:61:15 | next indirection [y] | | conflated.cpp:61:12:61:15 | next indirection [y] | conflated.cpp:61:12:61:15 | next indirection [y] | | conflated.cpp:61:12:61:15 | next indirection [y] | conflated.cpp:61:18:61:18 | y | -| conflated.cpp:61:12:61:15 | next indirection [y] | conflated.cpp:61:18:61:18 | y indirection | -| conflated.cpp:61:18:61:18 | y indirection | conflated.cpp:61:18:61:18 | y | | constructors.cpp:18:9:18:9 | this indirection [a_] | constructors.cpp:18:22:18:23 | this indirection [a_] | | constructors.cpp:18:22:18:23 | a_ | constructors.cpp:18:9:18:9 | a indirection | -| constructors.cpp:18:22:18:23 | a_ indirection | constructors.cpp:18:9:18:9 | a indirection | | constructors.cpp:18:22:18:23 | this indirection [a_] | constructors.cpp:18:22:18:23 | a_ | -| constructors.cpp:18:22:18:23 | this indirection [a_] | constructors.cpp:18:22:18:23 | a_ indirection | | constructors.cpp:19:9:19:9 | this indirection [b_] | constructors.cpp:19:22:19:23 | this indirection [b_] | | constructors.cpp:19:22:19:23 | b_ | constructors.cpp:19:9:19:9 | b indirection | -| constructors.cpp:19:22:19:23 | b_ indirection | constructors.cpp:19:9:19:9 | b indirection | | constructors.cpp:19:22:19:23 | this indirection [b_] | constructors.cpp:19:22:19:23 | b_ | -| constructors.cpp:19:22:19:23 | this indirection [b_] | constructors.cpp:19:22:19:23 | b_ indirection | | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | | constructors.cpp:23:28:23:28 | a | constructors.cpp:23:25:23:29 | this indirection [post update] [a_] | @@ -858,61 +701,43 @@ edges | qualifiers.cpp:22:23:22:23 | call to getInner indirection [post update] [a] | qualifiers.cpp:22:5:22:9 | getInner output argument [inner indirection, a] | | qualifiers.cpp:22:27:22:36 | call to user_input | qualifiers.cpp:22:5:22:38 | ... = ... | | qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | qualifiers.cpp:23:16:23:20 | inner indirection [a] | -| qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | qualifiers.cpp:23:16:23:20 | inner indirection [a] | | qualifiers.cpp:23:16:23:20 | inner indirection [a] | qualifiers.cpp:23:16:23:20 | inner indirection [a] | | qualifiers.cpp:23:16:23:20 | inner indirection [a] | qualifiers.cpp:23:23:23:23 | a | -| qualifiers.cpp:23:16:23:20 | inner indirection [a] | qualifiers.cpp:23:23:23:23 | a indirection | -| qualifiers.cpp:23:23:23:23 | a indirection | qualifiers.cpp:23:23:23:23 | a | | qualifiers.cpp:27:5:27:9 | getInner output argument [inner indirection, a] | qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:27:11:27:18 | setA output argument [a] | qualifiers.cpp:27:5:27:9 | getInner output argument [inner indirection, a] | | qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | | qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | setA output argument [a] | | qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | qualifiers.cpp:28:16:28:20 | inner indirection [a] | -| qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | qualifiers.cpp:28:16:28:20 | inner indirection [a] | | qualifiers.cpp:28:16:28:20 | inner indirection [a] | qualifiers.cpp:28:16:28:20 | inner indirection [a] | | qualifiers.cpp:28:16:28:20 | inner indirection [a] | qualifiers.cpp:28:23:28:23 | a | -| qualifiers.cpp:28:16:28:20 | inner indirection [a] | qualifiers.cpp:28:23:28:23 | a indirection | -| qualifiers.cpp:28:23:28:23 | a indirection | qualifiers.cpp:28:23:28:23 | a | | qualifiers.cpp:32:17:32:21 | getInner output argument [inner indirection, a] | qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:17:32:21 | getInner output argument [inner indirection, a] | | qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | | qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | | qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] | qualifiers.cpp:33:16:33:20 | inner indirection [a] | -| qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] | qualifiers.cpp:33:16:33:20 | inner indirection [a] | | qualifiers.cpp:33:16:33:20 | inner indirection [a] | qualifiers.cpp:33:16:33:20 | inner indirection [a] | | qualifiers.cpp:33:16:33:20 | inner indirection [a] | qualifiers.cpp:33:23:33:23 | a | -| qualifiers.cpp:33:16:33:20 | inner indirection [a] | qualifiers.cpp:33:23:33:23 | a indirection | -| qualifiers.cpp:33:23:33:23 | a indirection | qualifiers.cpp:33:23:33:23 | a | | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:20:37:24 | getInner output argument [inner indirection, a] | | qualifiers.cpp:37:20:37:24 | getInner output argument [inner indirection, a] | qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | | qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] | qualifiers.cpp:38:16:38:20 | inner indirection [a] | -| qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] | qualifiers.cpp:38:16:38:20 | inner indirection [a] | | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:16:38:20 | inner indirection [a] | | qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:23:38:23 | a | -| qualifiers.cpp:38:16:38:20 | inner indirection [a] | qualifiers.cpp:38:23:38:23 | a indirection | -| qualifiers.cpp:38:23:38:23 | a indirection | qualifiers.cpp:38:23:38:23 | a | | qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | -| qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | qualifiers.cpp:43:16:43:20 | inner indirection [a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | qualifiers.cpp:43:23:43:23 | a | -| qualifiers.cpp:43:16:43:20 | inner indirection [a] | qualifiers.cpp:43:23:43:23 | a indirection | -| qualifiers.cpp:43:23:43:23 | a indirection | qualifiers.cpp:43:23:43:23 | a | | qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:27:47:27 | call to getInner indirection [post update] [a] | | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | | qualifiers.cpp:47:27:47:27 | call to getInner indirection [post update] [a] | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | | qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:47:5:47:42 | ... = ... | | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | qualifiers.cpp:48:16:48:20 | inner indirection [a] | -| qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | qualifiers.cpp:48:16:48:20 | inner indirection [a] | | qualifiers.cpp:48:16:48:20 | inner indirection [a] | qualifiers.cpp:48:16:48:20 | inner indirection [a] | | qualifiers.cpp:48:16:48:20 | inner indirection [a] | qualifiers.cpp:48:23:48:23 | a | -| qualifiers.cpp:48:16:48:20 | inner indirection [a] | qualifiers.cpp:48:23:48:23 | a indirection | -| qualifiers.cpp:48:23:48:23 | a indirection | qualifiers.cpp:48:23:48:23 | a | | realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:35:53:43 | userInput indirection [post update] [bufferLen] | | realistic.cpp:53:13:53:15 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | | realistic.cpp:53:20:53:22 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | realistic.cpp:53:13:53:15 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | @@ -922,23 +747,16 @@ edges | realistic.cpp:53:55:53:64 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | -| realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | | realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | realistic.cpp:61:14:61:55 | bufferLen | -| realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen indirection | -| realistic.cpp:61:47:61:55 | bufferLen indirection | realistic.cpp:61:14:61:55 | bufferLen | -| realistic.cpp:61:47:61:55 | bufferLen indirection | realistic.cpp:61:47:61:55 | bufferLen | +| realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen | | simple.cpp:18:9:18:9 | this indirection [a_] | simple.cpp:18:22:18:23 | this indirection [a_] | | simple.cpp:18:22:18:23 | a_ | simple.cpp:18:9:18:9 | a indirection | -| simple.cpp:18:22:18:23 | a_ indirection | simple.cpp:18:9:18:9 | a indirection | | simple.cpp:18:22:18:23 | this indirection [a_] | simple.cpp:18:22:18:23 | a_ | -| simple.cpp:18:22:18:23 | this indirection [a_] | simple.cpp:18:22:18:23 | a_ indirection | | simple.cpp:19:9:19:9 | this indirection [b_] | simple.cpp:19:22:19:23 | this indirection [b_] | | simple.cpp:19:22:19:23 | b_ | simple.cpp:19:9:19:9 | b indirection | -| simple.cpp:19:22:19:23 | b_ indirection | simple.cpp:19:9:19:9 | b indirection | | simple.cpp:19:22:19:23 | this indirection [b_] | simple.cpp:19:22:19:23 | b_ | -| simple.cpp:19:22:19:23 | this indirection [b_] | simple.cpp:19:22:19:23 | b_ indirection | | simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | | simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | this indirection [post update] [a_] | | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | @@ -969,14 +787,10 @@ edges | simple.cpp:65:7:65:7 | a indirection [post update] [i] | simple.cpp:67:10:67:11 | a2 indirection [i] | | simple.cpp:65:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... | | simple.cpp:67:10:67:11 | a2 indirection [i] | simple.cpp:67:13:67:13 | i | -| simple.cpp:67:10:67:11 | a2 indirection [i] | simple.cpp:67:13:67:13 | i indirection | -| simple.cpp:67:13:67:13 | i indirection | simple.cpp:67:13:67:13 | i | | simple.cpp:78:9:78:15 | this indirection [f2, f1] | simple.cpp:79:16:79:17 | this indirection [f2, f1] | | simple.cpp:79:16:79:17 | f2 indirection [f1] | simple.cpp:79:19:79:20 | f1 | -| simple.cpp:79:16:79:17 | f2 indirection [f1] | simple.cpp:79:19:79:20 | f1 indirection | | simple.cpp:79:16:79:17 | this indirection [f2, f1] | simple.cpp:79:16:79:17 | f2 indirection [f1] | | simple.cpp:79:19:79:20 | f1 | simple.cpp:78:9:78:15 | getf2f1 indirection | -| simple.cpp:79:19:79:20 | f1 indirection | simple.cpp:78:9:78:15 | getf2f1 indirection | | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | simple.cpp:84:14:84:20 | this indirection [f2, f1] | | simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:12:83:13 | f2 indirection [post update] [f1] | | simple.cpp:83:12:83:13 | f2 indirection [post update] [f1] | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | @@ -987,12 +801,8 @@ edges | simple.cpp:92:7:92:7 | a indirection [post update] [i] | simple.cpp:94:10:94:11 | a2 indirection [i] | | simple.cpp:92:11:92:20 | call to user_input | simple.cpp:92:5:92:22 | ... = ... | | simple.cpp:94:10:94:11 | a2 indirection [i] | simple.cpp:94:13:94:13 | i | -| simple.cpp:94:10:94:11 | a2 indirection [i] | simple.cpp:94:13:94:13 | i indirection | -| simple.cpp:94:13:94:13 | i indirection | simple.cpp:94:13:94:13 | i | | struct_init.c:14:24:14:25 | ab indirection [a] | struct_init.c:15:8:15:9 | ab indirection [a] | | struct_init.c:15:8:15:9 | ab indirection [a] | struct_init.c:15:12:15:12 | a | -| struct_init.c:15:8:15:9 | ab indirection [a] | struct_init.c:15:12:15:12 | a indirection | -| struct_init.c:15:12:15:12 | a indirection | struct_init.c:15:12:15:12 | a | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:22:8:22:9 | ab indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:24:10:24:12 | & ... indirection [a] | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | struct_init.c:28:5:28:7 | & ... indirection [a] | @@ -1000,8 +810,6 @@ edges | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | | struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:20:20:29 | call to user_input | | struct_init.c:22:8:22:9 | ab indirection [a] | struct_init.c:22:11:22:11 | a | -| struct_init.c:22:8:22:9 | ab indirection [a] | struct_init.c:22:11:22:11 | a indirection | -| struct_init.c:22:11:22:11 | a indirection | struct_init.c:22:11:22:11 | a | | struct_init.c:24:10:24:12 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | @@ -1015,14 +823,9 @@ edges | struct_init.c:28:5:28:7 | & ... indirection [a] | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [pointerAB indirection, a] | | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | struct_init.c:31:14:31:21 | nestedAB indirection [a] | | struct_init.c:31:14:31:21 | nestedAB indirection [a] | struct_init.c:31:23:31:23 | a | -| struct_init.c:31:14:31:21 | nestedAB indirection [a] | struct_init.c:31:23:31:23 | a indirection | -| struct_init.c:31:23:31:23 | a indirection | struct_init.c:31:23:31:23 | a | -| struct_init.c:33:8:33:12 | outer indirection [pointerAB indirection, a] | struct_init.c:33:14:33:22 | pointerAB indirection [a] | | struct_init.c:33:8:33:12 | outer indirection [pointerAB indirection, a] | struct_init.c:33:14:33:22 | pointerAB indirection [a] | | struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:14:33:22 | pointerAB indirection [a] | | struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:25:33:25 | a | -| struct_init.c:33:14:33:22 | pointerAB indirection [a] | struct_init.c:33:25:33:25 | a indirection | -| struct_init.c:33:25:33:25 | a indirection | struct_init.c:33:25:33:25 | a | | struct_init.c:36:10:36:24 | & ... indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | struct_init.c:36:10:36:24 | & ... indirection [a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | struct_init.c:43:5:43:7 | & ... indirection [a] | @@ -1032,7 +835,6 @@ edges | struct_init.c:41:23:44:3 | definition of outer indirection [post update] [pointerAB indirection, a] | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | | struct_init.c:43:5:43:7 | & ... indirection [a] | struct_init.c:41:23:44:3 | definition of outer indirection [post update] [pointerAB indirection, a] | | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | struct_init.c:46:16:46:24 | pointerAB indirection [a] | -| struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | struct_init.c:46:16:46:24 | pointerAB indirection [a] | | struct_init.c:46:16:46:24 | pointerAB indirection [a] | struct_init.c:14:24:14:25 | ab indirection [a] | | struct_init.c:46:16:46:24 | pointerAB indirection [a] | struct_init.c:46:16:46:24 | pointerAB indirection [a] | nodes @@ -1046,7 +848,6 @@ nodes | A.cpp:28:8:28:10 | this indirection [c] | semmle.label | this indirection [c] | | A.cpp:28:23:28:26 | this indirection [c] | semmle.label | this indirection [c] | | A.cpp:28:29:28:29 | c | semmle.label | c | -| A.cpp:28:29:28:29 | c indirection | semmle.label | c indirection | | A.cpp:29:15:29:18 | make indirection [c] | semmle.label | make indirection [c] | | A.cpp:29:23:29:23 | c | semmle.label | c | | A.cpp:31:14:31:21 | call to B [c] | semmle.label | call to B [c] | @@ -1061,7 +862,6 @@ nodes | A.cpp:49:10:49:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:49:10:49:13 | c | semmle.label | c | | A.cpp:49:13:49:13 | c | semmle.label | c | -| A.cpp:49:13:49:13 | c indirection | semmle.label | c indirection | | A.cpp:55:5:55:5 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:55:12:55:19 | new | semmle.label | new | | A.cpp:55:12:55:19 | new | semmle.label | new | @@ -1078,14 +878,12 @@ nodes | A.cpp:66:10:66:11 | b2 indirection [c] | semmle.label | b2 indirection [c] | | A.cpp:66:10:66:14 | c | semmle.label | c | | A.cpp:66:14:66:14 | c | semmle.label | c | -| A.cpp:66:14:66:14 | c indirection | semmle.label | c indirection | | A.cpp:73:10:73:19 | call to setOnBWrap indirection [c] | semmle.label | call to setOnBWrap indirection [c] | | A.cpp:73:25:73:32 | new | semmle.label | new | | A.cpp:73:25:73:32 | new | semmle.label | new | | A.cpp:75:10:75:11 | b2 indirection [c] | semmle.label | b2 indirection [c] | | A.cpp:75:10:75:14 | c | semmle.label | c | | A.cpp:75:14:75:14 | c | semmle.label | c | -| A.cpp:75:14:75:14 | c indirection | semmle.label | c indirection | | A.cpp:78:6:78:15 | setOnBWrap indirection [c] | semmle.label | setOnBWrap indirection [c] | | A.cpp:78:27:78:27 | c | semmle.label | c | | A.cpp:81:10:81:15 | call to setOnB indirection [c] | semmle.label | call to setOnB indirection [c] | @@ -1102,11 +900,9 @@ nodes | A.cpp:107:12:107:13 | c1 indirection [a] | semmle.label | c1 indirection [a] | | A.cpp:107:12:107:16 | a | semmle.label | a | | A.cpp:107:16:107:16 | a | semmle.label | a | -| A.cpp:107:16:107:16 | a indirection | semmle.label | a indirection | | A.cpp:120:12:120:13 | c1 indirection [a] | semmle.label | c1 indirection [a] | | A.cpp:120:12:120:16 | a | semmle.label | a | | A.cpp:120:16:120:16 | a | semmle.label | a | -| A.cpp:120:16:120:16 | a indirection | semmle.label | a indirection | | A.cpp:126:5:126:5 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:126:12:126:18 | new | semmle.label | new | | A.cpp:126:12:126:18 | new | semmle.label | new | @@ -1114,7 +910,6 @@ nodes | A.cpp:132:10:132:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:132:10:132:13 | c | semmle.label | c | | A.cpp:132:13:132:13 | c | semmle.label | c | -| A.cpp:132:13:132:13 | c indirection | semmle.label | c indirection | | A.cpp:140:13:140:13 | b | semmle.label | b | | A.cpp:142:7:142:20 | ... = ... | semmle.label | ... = ... | | A.cpp:142:10:142:10 | b indirection [post update] [c] | semmle.label | b indirection [post update] [c] | @@ -1134,17 +929,13 @@ nodes | A.cpp:152:10:152:10 | d indirection [b] | semmle.label | d indirection [b] | | A.cpp:152:10:152:13 | b | semmle.label | b | | A.cpp:152:13:152:13 | b | semmle.label | b | -| A.cpp:152:13:152:13 | b indirection | semmle.label | b indirection | | A.cpp:153:10:153:10 | d indirection [b indirection, c] | semmle.label | d indirection [b indirection, c] | | A.cpp:153:10:153:16 | c | semmle.label | c | | A.cpp:153:13:153:13 | b indirection [c] | semmle.label | b indirection [c] | -| A.cpp:153:13:153:13 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:153:16:153:16 | c | semmle.label | c | -| A.cpp:153:16:153:16 | c indirection | semmle.label | c indirection | | A.cpp:154:10:154:10 | b indirection [c] | semmle.label | b indirection [c] | | A.cpp:154:10:154:13 | c | semmle.label | c | | A.cpp:154:13:154:13 | c | semmle.label | c | -| A.cpp:154:13:154:13 | c indirection | semmle.label | c indirection | | A.cpp:159:12:159:18 | new | semmle.label | new | | A.cpp:160:18:160:60 | call to MyList [head] | semmle.label | call to MyList [head] | | A.cpp:160:29:160:29 | b | semmle.label | b | @@ -1155,21 +946,15 @@ nodes | A.cpp:165:10:165:11 | l3 indirection [next indirection, next indirection, head] | semmle.label | l3 indirection [next indirection, next indirection, head] | | A.cpp:165:10:165:29 | head | semmle.label | head | | A.cpp:165:14:165:17 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | -| A.cpp:165:14:165:17 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | -| A.cpp:165:20:165:23 | next indirection [head] | semmle.label | next indirection [head] | | A.cpp:165:20:165:23 | next indirection [head] | semmle.label | next indirection [head] | | A.cpp:165:26:165:29 | head | semmle.label | head | -| A.cpp:165:26:165:29 | head indirection | semmle.label | head indirection | | A.cpp:167:44:167:44 | l indirection [next indirection, head] | semmle.label | l indirection [next indirection, head] | | A.cpp:167:44:167:44 | l indirection [next indirection, next indirection, head] | semmle.label | l indirection [next indirection, next indirection, head] | | A.cpp:167:47:167:50 | next indirection [head] | semmle.label | next indirection [head] | -| A.cpp:167:47:167:50 | next indirection [head] | semmle.label | next indirection [head] | -| A.cpp:167:47:167:50 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | | A.cpp:167:47:167:50 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | | A.cpp:169:12:169:12 | l indirection [head] | semmle.label | l indirection [head] | | A.cpp:169:12:169:18 | head | semmle.label | head | | A.cpp:169:15:169:18 | head | semmle.label | head | -| A.cpp:169:15:169:18 | head indirection | semmle.label | head indirection | | A.cpp:181:15:181:21 | newHead | semmle.label | newHead | | A.cpp:181:32:181:35 | next indirection [head] | semmle.label | next indirection [head] | | A.cpp:181:32:181:35 | next indirection [next indirection, head] | semmle.label | next indirection [next indirection, head] | @@ -1187,9 +972,7 @@ nodes | B.cpp:9:10:9:11 | b2 indirection [box1 indirection, elem1] | semmle.label | b2 indirection [box1 indirection, elem1] | | B.cpp:9:10:9:24 | elem1 | semmle.label | elem1 | | B.cpp:9:14:9:17 | box1 indirection [elem1] | semmle.label | box1 indirection [elem1] | -| B.cpp:9:14:9:17 | box1 indirection [elem1] | semmle.label | box1 indirection [elem1] | | B.cpp:9:20:9:24 | elem1 | semmle.label | elem1 | -| B.cpp:9:20:9:24 | elem1 indirection | semmle.label | elem1 indirection | | B.cpp:15:15:15:27 | new | semmle.label | new | | B.cpp:16:16:16:38 | call to Box1 [elem2] | semmle.label | call to Box1 [elem2] | | B.cpp:16:37:16:37 | e | semmle.label | e | @@ -1198,9 +981,7 @@ nodes | B.cpp:19:10:19:11 | b2 indirection [box1 indirection, elem2] | semmle.label | b2 indirection [box1 indirection, elem2] | | B.cpp:19:10:19:24 | elem2 | semmle.label | elem2 | | B.cpp:19:14:19:17 | box1 indirection [elem2] | semmle.label | box1 indirection [elem2] | -| B.cpp:19:14:19:17 | box1 indirection [elem2] | semmle.label | box1 indirection [elem2] | | B.cpp:19:20:19:24 | elem2 | semmle.label | elem2 | -| B.cpp:19:20:19:24 | elem2 indirection | semmle.label | elem2 indirection | | B.cpp:33:16:33:17 | e1 | semmle.label | e1 | | B.cpp:33:26:33:27 | e2 | semmle.label | e2 | | B.cpp:35:7:35:22 | ... = ... | semmle.label | ... = ... | @@ -1226,15 +1007,12 @@ nodes | C.cpp:27:8:27:11 | this indirection [s1] | semmle.label | this indirection [s1] | | C.cpp:27:8:27:11 | this indirection [s3] | semmle.label | this indirection [s3] | | C.cpp:29:10:29:11 | s1 | semmle.label | s1 | -| C.cpp:29:10:29:11 | s1 indirection | semmle.label | s1 indirection | | C.cpp:29:10:29:11 | this indirection [s1] | semmle.label | this indirection [s1] | | C.cpp:31:10:31:11 | s3 | semmle.label | s3 | -| C.cpp:31:10:31:11 | s3 indirection | semmle.label | s3 indirection | | C.cpp:31:10:31:11 | this indirection [s3] | semmle.label | this indirection [s3] | | D.cpp:10:11:10:17 | getElem indirection | semmle.label | getElem indirection | | D.cpp:10:11:10:17 | this indirection [elem] | semmle.label | this indirection [elem] | | D.cpp:10:30:10:33 | elem | semmle.label | elem | -| D.cpp:10:30:10:33 | elem indirection | semmle.label | elem indirection | | D.cpp:10:30:10:33 | this indirection [elem] | semmle.label | this indirection [elem] | | D.cpp:11:24:11:24 | e | semmle.label | e | | D.cpp:11:29:11:32 | this indirection [post update] [elem] | semmle.label | this indirection [post update] [elem] | @@ -1242,7 +1020,6 @@ nodes | D.cpp:17:11:17:17 | getBox1 indirection [elem] | semmle.label | getBox1 indirection [elem] | | D.cpp:17:11:17:17 | this indirection [box indirection, elem] | semmle.label | this indirection [box indirection, elem] | | D.cpp:17:30:17:32 | box indirection [elem] | semmle.label | box indirection [elem] | -| D.cpp:17:30:17:32 | box indirection [elem] | semmle.label | box indirection [elem] | | D.cpp:17:30:17:32 | this indirection [box indirection, elem] | semmle.label | this indirection [box indirection, elem] | | D.cpp:21:30:21:31 | b2 indirection [box indirection, elem] | semmle.label | b2 indirection [box indirection, elem] | | D.cpp:22:10:22:11 | b2 indirection [box indirection, elem] | semmle.label | b2 indirection [box indirection, elem] | @@ -1276,13 +1053,10 @@ nodes | D.cpp:59:5:59:7 | this indirection [boxfield indirection, box indirection, elem] | semmle.label | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:63:8:63:10 | this indirection [boxfield indirection, box indirection, elem] | semmle.label | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | semmle.label | boxfield indirection [box indirection, elem] | -| D.cpp:64:10:64:17 | boxfield indirection [box indirection, elem] | semmle.label | boxfield indirection [box indirection, elem] | | D.cpp:64:10:64:17 | this indirection [boxfield indirection, box indirection, elem] | semmle.label | this indirection [boxfield indirection, box indirection, elem] | | D.cpp:64:10:64:28 | elem | semmle.label | elem | | D.cpp:64:20:64:22 | box indirection [elem] | semmle.label | box indirection [elem] | -| D.cpp:64:20:64:22 | box indirection [elem] | semmle.label | box indirection [elem] | | D.cpp:64:25:64:28 | elem | semmle.label | elem | -| D.cpp:64:25:64:28 | elem indirection | semmle.label | elem indirection | | E.cpp:19:27:19:27 | p indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | | E.cpp:21:10:21:10 | p indirection [data, buffer indirection] | semmle.label | p indirection [data, buffer indirection] | | E.cpp:21:13:21:16 | data indirection [buffer indirection] | semmle.label | data indirection [buffer indirection] | @@ -1295,7 +1069,6 @@ nodes | E.cpp:30:23:30:26 | p indirection [post update] [data, buffer indirection] | semmle.label | p indirection [post update] [data, buffer indirection] | | E.cpp:30:28:30:33 | data indirection [post update] [buffer indirection] | semmle.label | data indirection [post update] [buffer indirection] | | E.cpp:31:10:31:12 | raw indirection | semmle.label | raw indirection | -| E.cpp:31:10:31:12 | raw indirection | semmle.label | raw indirection | | E.cpp:32:10:32:10 | b indirection [buffer indirection] | semmle.label | b indirection [buffer indirection] | | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | | E.cpp:32:13:32:18 | buffer indirection | semmle.label | buffer indirection | @@ -1310,16 +1083,13 @@ nodes | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | semmle.label | referenceSetter output argument [m1] | | aliasing.cpp:29:8:29:9 | s1 indirection [m1] | semmle.label | s1 indirection [m1] | | aliasing.cpp:29:11:29:12 | m1 | semmle.label | m1 | -| aliasing.cpp:29:11:29:12 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:30:8:30:9 | s2 indirection [m1] | semmle.label | s2 indirection [m1] | | aliasing.cpp:30:11:30:12 | m1 | semmle.label | m1 | -| aliasing.cpp:30:11:30:12 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:60:3:60:22 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:60:6:60:7 | s2 indirection [post update] [m1] | semmle.label | s2 indirection [post update] [m1] | | aliasing.cpp:60:11:60:20 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:62:8:62:12 | copy2 indirection [m1] | semmle.label | copy2 indirection [m1] | | aliasing.cpp:62:14:62:15 | m1 | semmle.label | m1 | -| aliasing.cpp:62:14:62:15 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:92:3:92:23 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:92:5:92:5 | w indirection [post update] [s, m1] | semmle.label | w indirection [post update] [s, m1] | | aliasing.cpp:92:7:92:8 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | @@ -1327,7 +1097,6 @@ nodes | aliasing.cpp:93:8:93:8 | w indirection [s, m1] | semmle.label | w indirection [s, m1] | | aliasing.cpp:93:10:93:10 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:93:12:93:13 | m1 | semmle.label | m1 | -| aliasing.cpp:93:12:93:13 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:98:3:98:21 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:98:5:98:6 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:98:10:98:19 | call to user_input | semmle.label | call to user_input | @@ -1335,9 +1104,12 @@ nodes | aliasing.cpp:101:14:101:19 | s_copy indirection [m1] | semmle.label | s_copy indirection [m1] | | aliasing.cpp:102:8:102:10 | * ... | semmle.label | * ... | | aliasing.cpp:105:23:105:24 | pa | semmle.label | pa | +| aliasing.cpp:105:23:105:24 | pa | semmle.label | pa | +| aliasing.cpp:105:23:105:24 | pa indirection | semmle.label | pa indirection | | aliasing.cpp:106:9:106:18 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:122:8:122:12 | access to array | semmle.label | access to array | +| aliasing.cpp:126:15:126:20 | ... - ... indirection | semmle.label | ... - ... indirection | | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:127:8:127:16 | * ... | semmle.label | * ... | | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | @@ -1348,39 +1120,36 @@ nodes | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:143:8:143:8 | s indirection [data indirection] | semmle.label | s indirection [data indirection] | | aliasing.cpp:143:8:143:16 | access to array | semmle.label | access to array | -| aliasing.cpp:143:8:143:16 | access to array indirection | semmle.label | access to array indirection | | aliasing.cpp:143:10:143:13 | data indirection | semmle.label | data indirection | | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:158:17:158:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:159:8:159:14 | * ... | semmle.label | * ... | | aliasing.cpp:159:9:159:9 | s indirection [data] | semmle.label | s indirection [data] | -| aliasing.cpp:159:9:159:14 | data indirection | semmle.label | data indirection | | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:164:17:164:20 | s indirection [post update] [data] | semmle.label | s indirection [post update] [data] | | aliasing.cpp:165:8:165:8 | s indirection [data] | semmle.label | s indirection [data] | | aliasing.cpp:165:8:165:16 | access to array | semmle.label | access to array | -| aliasing.cpp:165:8:165:16 | access to array indirection | semmle.label | access to array indirection | | aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:175:19:175:19 | s2 indirection [post update] [s, m1] | semmle.label | s2 indirection [post update] [s, m1] | | aliasing.cpp:175:21:175:22 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:176:8:176:9 | s2 indirection [s, m1] | semmle.label | s2 indirection [s, m1] | | aliasing.cpp:176:11:176:11 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:176:13:176:14 | m1 | semmle.label | m1 | -| aliasing.cpp:176:13:176:14 | m1 indirection | semmle.label | m1 indirection | | aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | | aliasing.cpp:187:19:187:19 | s2 indirection [post update] [s, m1] | semmle.label | s2 indirection [post update] [s, m1] | | aliasing.cpp:187:21:187:22 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:189:8:189:11 | s2_2 indirection [s, m1] | semmle.label | s2_2 indirection [s, m1] | | aliasing.cpp:189:13:189:13 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:189:15:189:16 | m1 | semmle.label | m1 | -| aliasing.cpp:189:15:189:16 | m1 indirection | semmle.label | m1 indirection | +| aliasing.cpp:200:15:200:24 | & ... indirection | semmle.label | & ... indirection | | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | +| aliasing.cpp:200:16:200:18 | ps2 indirection [s, m1] | semmle.label | ps2 indirection [s, m1] | | aliasing.cpp:200:21:200:21 | ps2 indirection [post update] [s, m1] | semmle.label | ps2 indirection [post update] [s, m1] | +| aliasing.cpp:200:21:200:21 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:200:23:200:24 | s indirection [post update] [m1] | semmle.label | s indirection [post update] [m1] | | aliasing.cpp:201:8:201:10 | ps2 indirection [s, m1] | semmle.label | ps2 indirection [s, m1] | | aliasing.cpp:201:13:201:13 | s indirection [m1] | semmle.label | s indirection [m1] | | aliasing.cpp:201:15:201:16 | m1 | semmle.label | m1 | -| aliasing.cpp:201:15:201:16 | m1 indirection | semmle.label | m1 indirection | | arrays.cpp:6:12:6:21 | call to user_input | semmle.label | call to user_input | | arrays.cpp:7:8:7:13 | access to array | semmle.label | access to array | | arrays.cpp:8:8:8:13 | access to array | semmle.label | access to array | @@ -1398,12 +1167,10 @@ nodes | arrays.cpp:37:8:37:22 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:37:10:37:15 | nested indirection [arr, data] | semmle.label | nested indirection [arr, data] | | arrays.cpp:37:24:37:27 | data | semmle.label | data | -| arrays.cpp:37:24:37:27 | data indirection | semmle.label | data indirection | | arrays.cpp:38:8:38:8 | o indirection [nested, arr, data] | semmle.label | o indirection [nested, arr, data] | | arrays.cpp:38:8:38:22 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:38:10:38:15 | nested indirection [arr, data] | semmle.label | nested indirection [arr, data] | | arrays.cpp:38:24:38:27 | data | semmle.label | data | -| arrays.cpp:38:24:38:27 | data indirection | semmle.label | data indirection | | arrays.cpp:42:3:42:40 | ... = ... | semmle.label | ... = ... | | arrays.cpp:42:5:42:12 | o indirection [post update] [indirect indirection, arr, data] | semmle.label | o indirection [post update] [indirect indirection, arr, data] | | arrays.cpp:42:15:42:17 | indirect indirection [post update] [arr, data] | semmle.label | indirect indirection [post update] [arr, data] | @@ -1412,15 +1179,11 @@ nodes | arrays.cpp:43:8:43:8 | o indirection [indirect indirection, arr, data] | semmle.label | o indirection [indirect indirection, arr, data] | | arrays.cpp:43:8:43:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | semmle.label | indirect indirection [arr, data] | -| arrays.cpp:43:10:43:17 | indirect indirection [arr, data] | semmle.label | indirect indirection [arr, data] | | arrays.cpp:43:27:43:30 | data | semmle.label | data | -| arrays.cpp:43:27:43:30 | data indirection | semmle.label | data indirection | | arrays.cpp:44:8:44:8 | o indirection [indirect indirection, arr, data] | semmle.label | o indirection [indirect indirection, arr, data] | | arrays.cpp:44:8:44:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | semmle.label | indirect indirection [arr, data] | -| arrays.cpp:44:10:44:17 | indirect indirection [arr, data] | semmle.label | indirect indirection [arr, data] | | arrays.cpp:44:27:44:30 | data | semmle.label | data | -| arrays.cpp:44:27:44:30 | data indirection | semmle.label | data indirection | | arrays.cpp:48:3:48:40 | ... = ... | semmle.label | ... = ... | | arrays.cpp:48:5:48:12 | o indirection [post update] [indirect indirection, ptr indirection, data] | semmle.label | o indirection [post update] [indirect indirection, ptr indirection, data] | | arrays.cpp:48:15:48:17 | indirect indirection [post update] [ptr indirection, data] | semmle.label | indirect indirection [post update] [ptr indirection, data] | @@ -1429,17 +1192,13 @@ nodes | arrays.cpp:49:8:49:8 | o indirection [indirect indirection, ptr indirection, data] | semmle.label | o indirection [indirect indirection, ptr indirection, data] | | arrays.cpp:49:8:49:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | semmle.label | indirect indirection [ptr indirection, data] | -| arrays.cpp:49:10:49:17 | indirect indirection [ptr indirection, data] | semmle.label | indirect indirection [ptr indirection, data] | | arrays.cpp:49:20:49:22 | ptr indirection [data] | semmle.label | ptr indirection [data] | | arrays.cpp:49:27:49:30 | data | semmle.label | data | -| arrays.cpp:49:27:49:30 | data indirection | semmle.label | data indirection | | arrays.cpp:50:8:50:8 | o indirection [indirect indirection, ptr indirection, data] | semmle.label | o indirection [indirect indirection, ptr indirection, data] | | arrays.cpp:50:8:50:25 | access to array indirection [data] | semmle.label | access to array indirection [data] | | arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | semmle.label | indirect indirection [ptr indirection, data] | -| arrays.cpp:50:10:50:17 | indirect indirection [ptr indirection, data] | semmle.label | indirect indirection [ptr indirection, data] | | arrays.cpp:50:20:50:22 | ptr indirection [data] | semmle.label | ptr indirection [data] | | arrays.cpp:50:27:50:30 | data | semmle.label | data | -| arrays.cpp:50:27:50:30 | data indirection | semmle.label | data indirection | | by_reference.cpp:11:48:11:52 | value | semmle.label | value | | by_reference.cpp:12:5:12:16 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | semmle.label | s indirection [post update] [a] | @@ -1456,12 +1215,10 @@ nodes | by_reference.cpp:31:46:31:46 | s indirection [a] | semmle.label | s indirection [a] | | by_reference.cpp:32:12:32:12 | s indirection [a] | semmle.label | s indirection [a] | | by_reference.cpp:32:15:32:15 | a | semmle.label | a | -| by_reference.cpp:32:15:32:15 | a indirection | semmle.label | a indirection | | by_reference.cpp:35:9:35:19 | getDirectly indirection | semmle.label | getDirectly indirection | | by_reference.cpp:35:9:35:19 | this indirection [a] | semmle.label | this indirection [a] | | by_reference.cpp:36:12:36:15 | this indirection [a] | semmle.label | this indirection [a] | | by_reference.cpp:36:18:36:18 | a | semmle.label | a | -| by_reference.cpp:36:18:36:18 | a indirection | semmle.label | a indirection | | by_reference.cpp:39:9:39:21 | getIndirectly indirection | semmle.label | getIndirectly indirection | | by_reference.cpp:39:9:39:21 | this indirection [a] | semmle.label | this indirection [a] | | by_reference.cpp:40:12:40:15 | this indirection [a] | semmle.label | this indirection [a] | @@ -1493,6 +1250,8 @@ nodes | by_reference.cpp:88:9:88:9 | inner indirection [post update] [a] | semmle.label | inner indirection [post update] [a] | | by_reference.cpp:88:13:88:22 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:91:25:91:26 | pa | semmle.label | pa | +| by_reference.cpp:91:25:91:26 | pa | semmle.label | pa | +| by_reference.cpp:91:25:91:26 | pa indirection | semmle.label | pa indirection | | by_reference.cpp:92:9:92:18 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:95:25:95:26 | pa | semmle.label | pa | | by_reference.cpp:96:8:96:17 | call to user_input | semmle.label | call to user_input | @@ -1506,32 +1265,26 @@ nodes | by_reference.cpp:106:30:106:41 | pouter indirection [post update] [inner_nested, a] | semmle.label | pouter indirection [post update] [inner_nested, a] | | by_reference.cpp:107:29:107:37 | pouter indirection [post update] [inner_ptr indirection, a] | semmle.label | pouter indirection [post update] [inner_ptr indirection, a] | | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | semmle.label | taint_inner_a_ptr output argument [a] | +| by_reference.cpp:108:15:108:24 | & ... indirection | semmle.label | & ... indirection | | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | semmle.label | taint_a_ptr output argument | +| by_reference.cpp:108:16:108:21 | pouter indirection [a] | semmle.label | pouter indirection [a] | | by_reference.cpp:108:24:108:24 | pouter indirection [post update] [a] | semmle.label | pouter indirection [post update] [a] | | by_reference.cpp:110:8:110:12 | outer indirection [inner_nested, a] | semmle.label | outer indirection [inner_nested, a] | | by_reference.cpp:110:14:110:25 | inner_nested indirection [a] | semmle.label | inner_nested indirection [a] | | by_reference.cpp:110:27:110:27 | a | semmle.label | a | -| by_reference.cpp:110:27:110:27 | a indirection | semmle.label | a indirection | | by_reference.cpp:111:8:111:12 | outer indirection [inner_ptr indirection, a] | semmle.label | outer indirection [inner_ptr indirection, a] | | by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | -| by_reference.cpp:111:14:111:22 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | | by_reference.cpp:111:25:111:25 | a | semmle.label | a | -| by_reference.cpp:111:25:111:25 | a indirection | semmle.label | a indirection | | by_reference.cpp:112:8:112:12 | outer indirection [a] | semmle.label | outer indirection [a] | | by_reference.cpp:112:14:112:14 | a | semmle.label | a | -| by_reference.cpp:112:14:112:14 | a indirection | semmle.label | a indirection | | by_reference.cpp:114:8:114:13 | pouter indirection [inner_nested, a] | semmle.label | pouter indirection [inner_nested, a] | | by_reference.cpp:114:16:114:27 | inner_nested indirection [a] | semmle.label | inner_nested indirection [a] | | by_reference.cpp:114:29:114:29 | a | semmle.label | a | -| by_reference.cpp:114:29:114:29 | a indirection | semmle.label | a indirection | | by_reference.cpp:115:8:115:13 | pouter indirection [inner_ptr indirection, a] | semmle.label | pouter indirection [inner_ptr indirection, a] | | by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | -| by_reference.cpp:115:16:115:24 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | | by_reference.cpp:115:27:115:27 | a | semmle.label | a | -| by_reference.cpp:115:27:115:27 | a indirection | semmle.label | a indirection | | by_reference.cpp:116:8:116:13 | pouter indirection [a] | semmle.label | pouter indirection [a] | | by_reference.cpp:116:16:116:16 | a | semmle.label | a | -| by_reference.cpp:116:16:116:16 | a indirection | semmle.label | a indirection | | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | semmle.label | taint_inner_a_ref output argument [a] | | by_reference.cpp:122:27:122:38 | outer indirection [post update] [inner_nested, a] | semmle.label | outer indirection [post update] [inner_nested, a] | | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | semmle.label | taint_inner_a_ref output argument [a] | @@ -1547,35 +1300,25 @@ nodes | by_reference.cpp:130:8:130:12 | outer indirection [inner_nested, a] | semmle.label | outer indirection [inner_nested, a] | | by_reference.cpp:130:14:130:25 | inner_nested indirection [a] | semmle.label | inner_nested indirection [a] | | by_reference.cpp:130:27:130:27 | a | semmle.label | a | -| by_reference.cpp:130:27:130:27 | a indirection | semmle.label | a indirection | | by_reference.cpp:131:8:131:12 | outer indirection [inner_ptr indirection, a] | semmle.label | outer indirection [inner_ptr indirection, a] | | by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | -| by_reference.cpp:131:14:131:22 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | | by_reference.cpp:131:25:131:25 | a | semmle.label | a | -| by_reference.cpp:131:25:131:25 | a indirection | semmle.label | a indirection | | by_reference.cpp:132:8:132:12 | outer indirection [a] | semmle.label | outer indirection [a] | | by_reference.cpp:132:14:132:14 | a | semmle.label | a | -| by_reference.cpp:132:14:132:14 | a indirection | semmle.label | a indirection | | by_reference.cpp:134:8:134:13 | pouter indirection [inner_nested, a] | semmle.label | pouter indirection [inner_nested, a] | | by_reference.cpp:134:16:134:27 | inner_nested indirection [a] | semmle.label | inner_nested indirection [a] | | by_reference.cpp:134:29:134:29 | a | semmle.label | a | -| by_reference.cpp:134:29:134:29 | a indirection | semmle.label | a indirection | | by_reference.cpp:135:8:135:13 | pouter indirection [inner_ptr indirection, a] | semmle.label | pouter indirection [inner_ptr indirection, a] | | by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | -| by_reference.cpp:135:16:135:24 | inner_ptr indirection [a] | semmle.label | inner_ptr indirection [a] | | by_reference.cpp:135:27:135:27 | a | semmle.label | a | -| by_reference.cpp:135:27:135:27 | a indirection | semmle.label | a indirection | | by_reference.cpp:136:8:136:13 | pouter indirection [a] | semmle.label | pouter indirection [a] | | by_reference.cpp:136:16:136:16 | a | semmle.label | a | -| by_reference.cpp:136:16:136:16 | a indirection | semmle.label | a indirection | | clearning.cpp:32:3:32:25 | ... = ... | semmle.label | ... = ... | | clearning.cpp:32:6:32:6 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:32:10:32:19 | call to user_input | semmle.label | call to user_input | | clearning.cpp:33:5:33:5 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | | clearning.cpp:34:8:34:11 | * ... | semmle.label | * ... | | clearning.cpp:34:9:34:9 | s indirection [x indirection] | semmle.label | s indirection [x indirection] | -| clearning.cpp:34:11:34:11 | x indirection | semmle.label | x indirection | -| clearning.cpp:34:11:34:11 | x indirection | semmle.label | x indirection | | clearning.cpp:53:3:53:25 | ... = ... | semmle.label | ... = ... | | clearning.cpp:53:6:53:6 | s indirection [post update] [x indirection] | semmle.label | s indirection [post update] [x indirection] | | clearning.cpp:53:10:53:19 | call to user_input | semmle.label | call to user_input | @@ -1602,8 +1345,6 @@ nodes | clearning.cpp:74:20:74:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:76:7:76:12 | * ... | semmle.label | * ... | | clearning.cpp:76:8:76:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:76:10:76:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:76:10:76:12 | val indirection | semmle.label | val indirection | | clearning.cpp:81:20:81:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:81:20:81:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:83:5:83:21 | ... = ... indirection | semmle.label | ... = ... indirection | @@ -1613,8 +1354,6 @@ nodes | clearning.cpp:83:15:83:17 | val indirection | semmle.label | val indirection | | clearning.cpp:84:7:84:12 | * ... | semmle.label | * ... | | clearning.cpp:84:8:84:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:84:10:84:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:84:10:84:12 | val indirection | semmle.label | val indirection | | clearning.cpp:89:20:89:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:89:20:89:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:90:3:90:3 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | @@ -1624,8 +1363,6 @@ nodes | clearning.cpp:90:5:90:7 | val indirection | semmle.label | val indirection | | clearning.cpp:91:7:91:12 | * ... | semmle.label | * ... | | clearning.cpp:91:8:91:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:91:10:91:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:91:10:91:12 | val indirection | semmle.label | val indirection | | clearning.cpp:96:20:96:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:96:20:96:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:97:2:97:18 | ... = ... indirection | semmle.label | ... = ... indirection | @@ -1635,8 +1372,6 @@ nodes | clearning.cpp:97:12:97:14 | val indirection | semmle.label | val indirection | | clearning.cpp:98:7:98:12 | * ... | semmle.label | * ... | | clearning.cpp:98:8:98:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:98:10:98:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:98:10:98:12 | val indirection | semmle.label | val indirection | | clearning.cpp:103:20:103:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:103:20:103:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:104:2:104:2 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | @@ -1646,8 +1381,6 @@ nodes | clearning.cpp:104:4:104:6 | val indirection | semmle.label | val indirection | | clearning.cpp:105:7:105:12 | * ... | semmle.label | * ... | | clearning.cpp:105:8:105:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:105:10:105:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:105:10:105:12 | val indirection | semmle.label | val indirection | | clearning.cpp:110:20:110:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:110:20:110:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:111:2:111:8 | ++ ... indirection | semmle.label | ++ ... indirection | @@ -1657,8 +1390,6 @@ nodes | clearning.cpp:111:6:111:8 | val indirection | semmle.label | val indirection | | clearning.cpp:112:7:112:12 | * ... | semmle.label | * ... | | clearning.cpp:112:8:112:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:112:10:112:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:112:10:112:12 | val indirection | semmle.label | val indirection | | clearning.cpp:117:20:117:22 | argument_source output argument | semmle.label | argument_source output argument | | clearning.cpp:117:20:117:22 | s indirection [post update] [val indirection] | semmle.label | s indirection [post update] [val indirection] | | clearning.cpp:118:2:118:2 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | @@ -1668,23 +1399,18 @@ nodes | clearning.cpp:118:4:118:6 | val indirection | semmle.label | val indirection | | clearning.cpp:119:7:119:12 | * ... | semmle.label | * ... | | clearning.cpp:119:8:119:8 | s indirection [val indirection] | semmle.label | s indirection [val indirection] | -| clearning.cpp:119:10:119:12 | val indirection | semmle.label | val indirection | -| clearning.cpp:119:10:119:12 | val indirection | semmle.label | val indirection | | clearning.cpp:151:3:151:22 | ... = ... | semmle.label | ... = ... | | clearning.cpp:151:5:151:7 | s indirection [post update] [val] | semmle.label | s indirection [post update] [val] | | clearning.cpp:151:11:151:20 | call to user_input | semmle.label | call to user_input | | clearning.cpp:152:8:152:8 | s indirection [val] | semmle.label | s indirection [val] | | clearning.cpp:152:10:152:12 | val | semmle.label | val | -| clearning.cpp:152:10:152:12 | val indirection | semmle.label | val indirection | | complex.cpp:9:7:9:7 | a indirection | semmle.label | a indirection | | complex.cpp:9:7:9:7 | this indirection [a_] | semmle.label | this indirection [a_] | | complex.cpp:9:20:9:21 | a_ | semmle.label | a_ | -| complex.cpp:9:20:9:21 | a_ indirection | semmle.label | a_ indirection | | complex.cpp:9:20:9:21 | this indirection [a_] | semmle.label | this indirection [a_] | | complex.cpp:10:7:10:7 | b indirection | semmle.label | b indirection | | complex.cpp:10:7:10:7 | this indirection [b_] | semmle.label | this indirection [b_] | | complex.cpp:10:20:10:21 | b_ | semmle.label | b_ | -| complex.cpp:10:20:10:21 | b_ indirection | semmle.label | b_ indirection | | complex.cpp:10:20:10:21 | this indirection [b_] | semmle.label | this indirection [b_] | | complex.cpp:11:17:11:17 | a | semmle.label | a | | complex.cpp:11:22:11:23 | this indirection [post update] [a_] | semmle.label | this indirection [post update] [a_] | @@ -1735,51 +1461,40 @@ nodes | conflated.cpp:10:11:10:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:11:8:11:12 | * ... | semmle.label | * ... | | conflated.cpp:11:9:11:10 | ra indirection [p indirection] | semmle.label | ra indirection [p indirection] | -| conflated.cpp:11:12:11:12 | p indirection | semmle.label | p indirection | -| conflated.cpp:11:12:11:12 | p indirection | semmle.label | p indirection | | conflated.cpp:19:19:19:21 | argument_source output argument | semmle.label | argument_source output argument | | conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | | conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | -| conflated.cpp:20:8:20:10 | raw indirection | semmle.label | raw indirection | | conflated.cpp:29:3:29:22 | ... = ... | semmle.label | ... = ... | | conflated.cpp:29:7:29:7 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:29:11:29:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:30:8:30:9 | pa indirection [x] | semmle.label | pa indirection [x] | | conflated.cpp:30:12:30:12 | x | semmle.label | x | -| conflated.cpp:30:12:30:12 | x indirection | semmle.label | x indirection | | conflated.cpp:36:3:36:22 | ... = ... | semmle.label | ... = ... | | conflated.cpp:36:7:36:7 | pa indirection [post update] [x] | semmle.label | pa indirection [post update] [x] | | conflated.cpp:36:11:36:20 | call to user_input | semmle.label | call to user_input | | conflated.cpp:37:8:37:9 | pa indirection [x] | semmle.label | pa indirection [x] | | conflated.cpp:37:12:37:12 | x | semmle.label | x | -| conflated.cpp:37:12:37:12 | x indirection | semmle.label | x indirection | | conflated.cpp:54:3:54:28 | ... = ... | semmle.label | ... = ... | | conflated.cpp:54:7:54:10 | ll indirection [post update] [next indirection, y] | semmle.label | ll indirection [post update] [next indirection, y] | | conflated.cpp:54:13:54:13 | next indirection [post update] [y] | semmle.label | next indirection [post update] [y] | | conflated.cpp:54:17:54:26 | call to user_input | semmle.label | call to user_input | | conflated.cpp:55:8:55:9 | ll indirection [next indirection, y] | semmle.label | ll indirection [next indirection, y] | | conflated.cpp:55:12:55:15 | next indirection [y] | semmle.label | next indirection [y] | -| conflated.cpp:55:12:55:15 | next indirection [y] | semmle.label | next indirection [y] | | conflated.cpp:55:18:55:18 | y | semmle.label | y | -| conflated.cpp:55:18:55:18 | y indirection | semmle.label | y indirection | | conflated.cpp:60:3:60:28 | ... = ... | semmle.label | ... = ... | | conflated.cpp:60:7:60:10 | ll indirection [post update] [next indirection, y] | semmle.label | ll indirection [post update] [next indirection, y] | | conflated.cpp:60:13:60:13 | next indirection [post update] [y] | semmle.label | next indirection [post update] [y] | | conflated.cpp:60:17:60:26 | call to user_input | semmle.label | call to user_input | | conflated.cpp:61:8:61:9 | ll indirection [next indirection, y] | semmle.label | ll indirection [next indirection, y] | | conflated.cpp:61:12:61:15 | next indirection [y] | semmle.label | next indirection [y] | -| conflated.cpp:61:12:61:15 | next indirection [y] | semmle.label | next indirection [y] | | conflated.cpp:61:18:61:18 | y | semmle.label | y | -| conflated.cpp:61:18:61:18 | y indirection | semmle.label | y indirection | | constructors.cpp:18:9:18:9 | a indirection | semmle.label | a indirection | | constructors.cpp:18:9:18:9 | this indirection [a_] | semmle.label | this indirection [a_] | | constructors.cpp:18:22:18:23 | a_ | semmle.label | a_ | -| constructors.cpp:18:22:18:23 | a_ indirection | semmle.label | a_ indirection | | constructors.cpp:18:22:18:23 | this indirection [a_] | semmle.label | this indirection [a_] | | constructors.cpp:19:9:19:9 | b indirection | semmle.label | b indirection | | constructors.cpp:19:9:19:9 | this indirection [b_] | semmle.label | this indirection [b_] | | constructors.cpp:19:22:19:23 | b_ | semmle.label | b_ | -| constructors.cpp:19:22:19:23 | b_ indirection | semmle.label | b_ indirection | | constructors.cpp:19:22:19:23 | this indirection [b_] | semmle.label | this indirection [b_] | | constructors.cpp:23:13:23:13 | a | semmle.label | a | | constructors.cpp:23:20:23:20 | b | semmle.label | b | @@ -1820,51 +1535,39 @@ nodes | qualifiers.cpp:22:27:22:36 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:23:10:23:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:23:16:23:20 | inner indirection [a] | semmle.label | inner indirection [a] | -| qualifiers.cpp:23:16:23:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:23:23:23:23 | a | semmle.label | a | -| qualifiers.cpp:23:23:23:23 | a indirection | semmle.label | a indirection | | qualifiers.cpp:27:5:27:9 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:27:11:27:18 | setA output argument [a] | semmle.label | setA output argument [a] | | qualifiers.cpp:27:28:27:37 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:28:10:28:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:28:16:28:20 | inner indirection [a] | semmle.label | inner indirection [a] | -| qualifiers.cpp:28:16:28:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:28:23:28:23 | a | semmle.label | a | -| qualifiers.cpp:28:23:28:23 | a indirection | semmle.label | a indirection | | qualifiers.cpp:32:17:32:21 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | semmle.label | pointerSetA output argument [a] | | qualifiers.cpp:32:35:32:44 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:33:10:33:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:33:16:33:20 | inner indirection [a] | semmle.label | inner indirection [a] | -| qualifiers.cpp:33:16:33:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:33:23:33:23 | a | semmle.label | a | -| qualifiers.cpp:33:23:33:23 | a indirection | semmle.label | a indirection | | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | semmle.label | referenceSetA output argument [a] | | qualifiers.cpp:37:20:37:24 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:37:38:37:47 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:38:10:38:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:38:16:38:20 | inner indirection [a] | semmle.label | inner indirection [a] | -| qualifiers.cpp:38:16:38:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:38:23:38:23 | a | semmle.label | a | -| qualifiers.cpp:38:23:38:23 | a indirection | semmle.label | a indirection | | qualifiers.cpp:42:5:42:40 | ... = ... | semmle.label | ... = ... | | qualifiers.cpp:42:7:42:11 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:42:25:42:25 | * ... indirection [post update] [a] | semmle.label | * ... indirection [post update] [a] | | qualifiers.cpp:42:29:42:38 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:43:10:43:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:43:16:43:20 | inner indirection [a] | semmle.label | inner indirection [a] | -| qualifiers.cpp:43:16:43:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:43:23:43:23 | a | semmle.label | a | -| qualifiers.cpp:43:23:43:23 | a indirection | semmle.label | a indirection | | qualifiers.cpp:47:5:47:42 | ... = ... | semmle.label | ... = ... | | qualifiers.cpp:47:6:47:11 | getInner output argument [inner indirection, a] | semmle.label | getInner output argument [inner indirection, a] | | qualifiers.cpp:47:27:47:27 | call to getInner indirection [post update] [a] | semmle.label | call to getInner indirection [post update] [a] | | qualifiers.cpp:47:31:47:40 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:48:10:48:14 | outer indirection [inner indirection, a] | semmle.label | outer indirection [inner indirection, a] | | qualifiers.cpp:48:16:48:20 | inner indirection [a] | semmle.label | inner indirection [a] | -| qualifiers.cpp:48:16:48:20 | inner indirection [a] | semmle.label | inner indirection [a] | | qualifiers.cpp:48:23:48:23 | a | semmle.label | a | -| qualifiers.cpp:48:23:48:23 | a indirection | semmle.label | a indirection | | realistic.cpp:53:9:53:66 | ... = ... | semmle.label | ... = ... | | realistic.cpp:53:13:53:15 | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | semmle.label | foo indirection [post update] [bar, baz indirection, userInput, bufferLen] | | realistic.cpp:53:20:53:22 | access to array indirection [post update] [baz indirection, userInput, bufferLen] | semmle.label | access to array indirection [post update] [baz indirection, userInput, bufferLen] | @@ -1876,19 +1579,15 @@ nodes | realistic.cpp:61:21:61:23 | foo indirection [bar, baz indirection, userInput, bufferLen] | semmle.label | foo indirection [bar, baz indirection, userInput, bufferLen] | | realistic.cpp:61:21:61:30 | access to array indirection [baz indirection, userInput, bufferLen] | semmle.label | access to array indirection [baz indirection, userInput, bufferLen] | | realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | semmle.label | baz indirection [userInput, bufferLen] | -| realistic.cpp:61:32:61:34 | baz indirection [userInput, bufferLen] | semmle.label | baz indirection [userInput, bufferLen] | | realistic.cpp:61:37:61:45 | userInput indirection [bufferLen] | semmle.label | userInput indirection [bufferLen] | | realistic.cpp:61:47:61:55 | bufferLen | semmle.label | bufferLen | -| realistic.cpp:61:47:61:55 | bufferLen indirection | semmle.label | bufferLen indirection | | simple.cpp:18:9:18:9 | a indirection | semmle.label | a indirection | | simple.cpp:18:9:18:9 | this indirection [a_] | semmle.label | this indirection [a_] | | simple.cpp:18:22:18:23 | a_ | semmle.label | a_ | -| simple.cpp:18:22:18:23 | a_ indirection | semmle.label | a_ indirection | | simple.cpp:18:22:18:23 | this indirection [a_] | semmle.label | this indirection [a_] | | simple.cpp:19:9:19:9 | b indirection | semmle.label | b indirection | | simple.cpp:19:9:19:9 | this indirection [b_] | semmle.label | this indirection [b_] | | simple.cpp:19:22:19:23 | b_ | semmle.label | b_ | -| simple.cpp:19:22:19:23 | b_ indirection | semmle.label | b_ indirection | | simple.cpp:19:22:19:23 | this indirection [b_] | semmle.label | this indirection [b_] | | simple.cpp:20:19:20:19 | a | semmle.label | a | | simple.cpp:20:24:20:25 | this indirection [post update] [a_] | semmle.label | this indirection [post update] [a_] | @@ -1919,13 +1618,11 @@ nodes | simple.cpp:65:11:65:20 | call to user_input | semmle.label | call to user_input | | simple.cpp:67:10:67:11 | a2 indirection [i] | semmle.label | a2 indirection [i] | | simple.cpp:67:13:67:13 | i | semmle.label | i | -| simple.cpp:67:13:67:13 | i indirection | semmle.label | i indirection | | simple.cpp:78:9:78:15 | getf2f1 indirection | semmle.label | getf2f1 indirection | | simple.cpp:78:9:78:15 | this indirection [f2, f1] | semmle.label | this indirection [f2, f1] | | simple.cpp:79:16:79:17 | f2 indirection [f1] | semmle.label | f2 indirection [f1] | | simple.cpp:79:16:79:17 | this indirection [f2, f1] | semmle.label | this indirection [f2, f1] | | simple.cpp:79:19:79:20 | f1 | semmle.label | f1 | -| simple.cpp:79:19:79:20 | f1 indirection | semmle.label | f1 indirection | | simple.cpp:83:9:83:10 | this indirection [post update] [f2, f1] | semmle.label | this indirection [post update] [f2, f1] | | simple.cpp:83:9:83:28 | ... = ... | semmle.label | ... = ... | | simple.cpp:83:12:83:13 | f2 indirection [post update] [f1] | semmle.label | f2 indirection [post update] [f1] | @@ -1937,18 +1634,15 @@ nodes | simple.cpp:92:11:92:20 | call to user_input | semmle.label | call to user_input | | simple.cpp:94:10:94:11 | a2 indirection [i] | semmle.label | a2 indirection [i] | | simple.cpp:94:13:94:13 | i | semmle.label | i | -| simple.cpp:94:13:94:13 | i indirection | semmle.label | i indirection | | struct_init.c:14:24:14:25 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:15:8:15:9 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:15:12:15:12 | a | semmle.label | a | -| struct_init.c:15:12:15:12 | a indirection | semmle.label | a indirection | | struct_init.c:20:13:20:14 | definition of ab indirection [a] | semmle.label | definition of ab indirection [a] | | struct_init.c:20:17:20:36 | definition of ab indirection [post update] [a] | semmle.label | definition of ab indirection [post update] [a] | | struct_init.c:20:20:20:29 | call to user_input | semmle.label | call to user_input | | struct_init.c:20:20:20:29 | call to user_input | semmle.label | call to user_input | | struct_init.c:22:8:22:9 | ab indirection [a] | semmle.label | ab indirection [a] | | struct_init.c:22:11:22:11 | a | semmle.label | a | -| struct_init.c:22:11:22:11 | a indirection | semmle.label | a indirection | | struct_init.c:24:10:24:12 | & ... indirection [a] | semmle.label | & ... indirection [a] | | struct_init.c:26:16:26:20 | definition of outer indirection [nestedAB, a] | semmle.label | definition of outer indirection [nestedAB, a] | | struct_init.c:26:23:29:3 | definition of outer indirection [post update] [nestedAB, a] | semmle.label | definition of outer indirection [post update] [nestedAB, a] | @@ -1961,12 +1655,9 @@ nodes | struct_init.c:31:8:31:12 | outer indirection [nestedAB, a] | semmle.label | outer indirection [nestedAB, a] | | struct_init.c:31:14:31:21 | nestedAB indirection [a] | semmle.label | nestedAB indirection [a] | | struct_init.c:31:23:31:23 | a | semmle.label | a | -| struct_init.c:31:23:31:23 | a indirection | semmle.label | a indirection | | struct_init.c:33:8:33:12 | outer indirection [pointerAB indirection, a] | semmle.label | outer indirection [pointerAB indirection, a] | | struct_init.c:33:14:33:22 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | -| struct_init.c:33:14:33:22 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | | struct_init.c:33:25:33:25 | a | semmle.label | a | -| struct_init.c:33:25:33:25 | a indirection | semmle.label | a indirection | | struct_init.c:36:10:36:24 | & ... indirection [a] | semmle.label | & ... indirection [a] | | struct_init.c:36:11:36:15 | outer indirection [nestedAB, a] | semmle.label | outer indirection [nestedAB, a] | | struct_init.c:40:13:40:14 | definition of ab indirection [a] | semmle.label | definition of ab indirection [a] | @@ -1977,7 +1668,6 @@ nodes | struct_init.c:43:5:43:7 | & ... indirection [a] | semmle.label | & ... indirection [a] | | struct_init.c:46:10:46:14 | outer indirection [pointerAB indirection, a] | semmle.label | outer indirection [pointerAB indirection, a] | | struct_init.c:46:16:46:24 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | -| struct_init.c:46:16:46:24 | pointerAB indirection [a] | semmle.label | pointerAB indirection [a] | subpaths | A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:25:13:25:13 | this indirection [post update] [c] | A.cpp:31:14:31:21 | call to B [c] | | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | A.cpp:29:15:29:18 | make indirection [c] | A.cpp:48:12:48:18 | call to make indirection [c] | @@ -2002,6 +1692,8 @@ subpaths | D.cpp:22:14:22:20 | call to getBox1 indirection [elem] | D.cpp:10:11:10:17 | this indirection [elem] | D.cpp:10:11:10:17 | getElem indirection | D.cpp:22:10:22:33 | call to getElem | | D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:32 | this indirection [post update] [elem] | D.cpp:37:8:37:10 | setElem output argument [elem] | | D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:32 | this indirection [post update] [elem] | D.cpp:51:8:51:14 | setElem output argument [elem] | +| aliasing.cpp:126:15:126:20 | ... - ... indirection | aliasing.cpp:105:23:105:24 | pa indirection | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | +| aliasing.cpp:200:15:200:24 | & ... indirection | aliasing.cpp:105:23:105:24 | pa indirection | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:11:16:11 | this indirection [post update] [a] | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | | by_reference.cpp:40:12:40:15 | this indirection [a] | by_reference.cpp:35:9:35:19 | this indirection [a] | by_reference.cpp:35:9:35:19 | getDirectly indirection | by_reference.cpp:40:18:40:28 | call to getDirectly | @@ -2014,6 +1706,7 @@ subpaths | by_reference.cpp:63:8:63:8 | s indirection [a] | by_reference.cpp:43:9:43:27 | this indirection [a] | by_reference.cpp:43:9:43:27 | getThroughNonMember indirection | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:8:12:8 | s indirection [post update] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | & ... indirection [a] | by_reference.cpp:31:46:31:46 | s indirection [a] | by_reference.cpp:31:16:31:28 | nonMemberGetA indirection | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | +| by_reference.cpp:108:15:108:24 | & ... indirection | by_reference.cpp:91:25:91:26 | pa indirection | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | | complex.cpp:42:16:42:16 | f indirection [a_] | complex.cpp:9:7:9:7 | this indirection [a_] | complex.cpp:9:7:9:7 | a indirection | complex.cpp:42:18:42:18 | call to a | | complex.cpp:43:16:43:16 | f indirection [b_] | complex.cpp:10:7:10:7 | this indirection [b_] | complex.cpp:10:7:10:7 | b indirection | complex.cpp:43:18:43:18 | call to b | | complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:23 | this indirection [post update] [a_] | complex.cpp:53:12:53:12 | setA output argument [a_] | @@ -2084,7 +1777,6 @@ subpaths | D.cpp:64:25:64:28 | elem | D.cpp:56:15:56:24 | new | D.cpp:64:25:64:28 | elem | elem flows from $@ | D.cpp:56:15:56:24 | new | new | | E.cpp:21:18:21:23 | buffer indirection | E.cpp:30:21:30:33 | argument_source output argument | E.cpp:21:18:21:23 | buffer indirection | buffer indirection flows from $@ | E.cpp:30:21:30:33 | argument_source output argument | argument_source output argument | | E.cpp:31:10:31:12 | raw indirection | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | raw indirection flows from $@ | E.cpp:28:21:28:23 | argument_source output argument | argument_source output argument | -| E.cpp:31:10:31:12 | raw indirection | E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | raw indirection | raw indirection flows from $@ | E.cpp:28:21:28:23 | argument_source output argument | argument_source output argument | | E.cpp:32:13:32:18 | buffer indirection | E.cpp:29:21:29:29 | argument_source output argument | E.cpp:32:13:32:18 | buffer indirection | buffer indirection flows from $@ | E.cpp:29:21:29:29 | argument_source output argument | argument_source output argument | | aliasing.cpp:29:11:29:12 | m1 | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:29:11:29:12 | m1 | m1 flows from $@ | aliasing.cpp:9:11:9:20 | call to user_input | call to user_input | | aliasing.cpp:30:11:30:12 | m1 | aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:30:11:30:12 | m1 | m1 flows from $@ | aliasing.cpp:13:10:13:19 | call to user_input | call to user_input | @@ -2147,7 +1839,6 @@ subpaths | conflated.cpp:11:8:11:12 | * ... | conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:11:8:11:12 | * ... | * ... flows from $@ | conflated.cpp:10:11:10:20 | call to user_input | call to user_input | | conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument | | conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument | -| conflated.cpp:20:8:20:10 | raw indirection | conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | raw indirection | raw indirection flows from $@ | conflated.cpp:19:19:19:21 | argument_source output argument | argument_source output argument | | conflated.cpp:30:12:30:12 | x | conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:30:12:30:12 | x | x flows from $@ | conflated.cpp:29:11:29:20 | call to user_input | call to user_input | | conflated.cpp:37:12:37:12 | x | conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:37:12:37:12 | x | x flows from $@ | conflated.cpp:36:11:36:20 | call to user_input | call to user_input | | conflated.cpp:55:18:55:18 | y | conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:55:18:55:18 | y | y flows from $@ | conflated.cpp:54:17:54:26 | call to user_input | call to user_input | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected index 97e2352000a..69682372967 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected @@ -3,5 +3,6 @@ WARNING: Module DataFlow has been deprecated and may be removed in future (taint WARNING: Module DataFlow has been deprecated and may be removed in future (taint.ql:61,22-30) WARNING: Module DataFlow has been deprecated and may be removed in future (taint.ql:68,25-33) WARNING: Module TaintTracking has been deprecated and may be removed in future (taint.ql:73,20-33) -failures testFailures +| vector.cpp:532:10:532:12 | call to operator[] | Unexpected result: ir= | +failures diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected index de7089cab07..01ee5fc10cc 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected @@ -2,6 +2,7 @@ edges | tests.cpp:26:15:26:23 | badSource indirection | tests.cpp:51:12:51:20 | call to badSource indirection | | tests.cpp:33:34:33:39 | call to getenv indirection | tests.cpp:38:39:38:49 | environment indirection | | tests.cpp:38:25:38:36 | strncat output argument | tests.cpp:26:15:26:23 | badSource indirection | +| tests.cpp:38:25:38:36 | strncat output argument | tests.cpp:38:25:38:36 | strncat output argument | | tests.cpp:38:39:38:49 | environment indirection | tests.cpp:38:25:38:36 | strncat output argument | | tests.cpp:51:12:51:20 | call to badSource indirection | tests.cpp:53:16:53:19 | data indirection | nodes diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected index 4916d84cf47..f1ca12790ec 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected @@ -3,9 +3,11 @@ edges | test.cpp:15:27:15:30 | argv indirection | test.cpp:22:45:22:52 | userName indirection | | test.cpp:22:13:22:20 | sprintf output argument | test.cpp:23:12:23:19 | command1 indirection | | test.cpp:22:45:22:52 | userName indirection | test.cpp:22:13:22:20 | sprintf output argument | +| test.cpp:22:45:22:52 | userName indirection | test.cpp:22:45:22:52 | userName indirection | | test.cpp:47:21:47:26 | call to getenv indirection | test.cpp:50:35:50:43 | envCflags indirection | | test.cpp:50:11:50:17 | sprintf output argument | test.cpp:51:10:51:16 | command indirection | | test.cpp:50:35:50:43 | envCflags indirection | test.cpp:50:11:50:17 | sprintf output argument | +| test.cpp:50:35:50:43 | envCflags indirection | test.cpp:50:35:50:43 | envCflags indirection | | test.cpp:62:9:62:16 | fread output argument | test.cpp:64:20:64:27 | filename indirection | | test.cpp:64:11:64:17 | strncat output argument | test.cpp:65:10:65:16 | command indirection | | test.cpp:64:20:64:27 | filename indirection | test.cpp:64:11:64:17 | strncat output argument | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index e1665c23315..56297693056 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -4,38 +4,29 @@ edges | test.cpp:18:10:18:15 | str indirection [post update] [string] | test.cpp:19:5:19:7 | str indirection [string] | | test.cpp:18:19:18:24 | call to malloc | test.cpp:18:5:18:30 | ... = ... | | test.cpp:19:5:19:7 | str indirection [string] | test.cpp:16:11:16:21 | mk_string_t indirection [string] | +| test.cpp:19:5:19:7 | str indirection [string] | test.cpp:19:5:19:7 | str indirection [string] | | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | test.cpp:42:13:42:15 | str indirection [string] | | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | test.cpp:72:17:72:19 | str indirection [string] | | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | test.cpp:80:17:80:19 | str indirection [string] | | test.cpp:42:13:42:15 | str indirection [string] | test.cpp:42:18:42:23 | string | -| test.cpp:42:13:42:15 | str indirection [string] | test.cpp:42:18:42:23 | string indirection | -| test.cpp:42:18:42:23 | string indirection | test.cpp:42:18:42:23 | string | | test.cpp:72:17:72:19 | str indirection [string] | test.cpp:72:22:72:27 | string | -| test.cpp:72:17:72:19 | str indirection [string] | test.cpp:72:22:72:27 | string indirection | -| test.cpp:72:22:72:27 | string indirection | test.cpp:72:22:72:27 | string | | test.cpp:80:17:80:19 | str indirection [string] | test.cpp:80:22:80:27 | string | -| test.cpp:80:17:80:19 | str indirection [string] | test.cpp:80:22:80:27 | string indirection | -| test.cpp:80:22:80:27 | string indirection | test.cpp:80:22:80:27 | string | | test.cpp:88:11:88:30 | mk_string_t_plus_one indirection [string] | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | | test.cpp:90:5:90:34 | ... = ... | test.cpp:90:10:90:15 | str indirection [post update] [string] | | test.cpp:90:10:90:15 | str indirection [post update] [string] | test.cpp:91:5:91:7 | str indirection [string] | | test.cpp:90:19:90:24 | call to malloc | test.cpp:90:5:90:34 | ... = ... | | test.cpp:91:5:91:7 | str indirection [string] | test.cpp:88:11:88:30 | mk_string_t_plus_one indirection [string] | +| test.cpp:91:5:91:7 | str indirection [string] | test.cpp:91:5:91:7 | str indirection [string] | | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | test.cpp:99:13:99:15 | str indirection [string] | | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | test.cpp:129:17:129:19 | str indirection [string] | | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | test.cpp:137:17:137:19 | str indirection [string] | | test.cpp:99:13:99:15 | str indirection [string] | test.cpp:99:18:99:23 | string | -| test.cpp:99:13:99:15 | str indirection [string] | test.cpp:99:18:99:23 | string indirection | -| test.cpp:99:18:99:23 | string indirection | test.cpp:99:18:99:23 | string | | test.cpp:129:17:129:19 | str indirection [string] | test.cpp:129:22:129:27 | string | -| test.cpp:129:17:129:19 | str indirection [string] | test.cpp:129:22:129:27 | string indirection | -| test.cpp:129:22:129:27 | string indirection | test.cpp:129:22:129:27 | string | | test.cpp:137:17:137:19 | str indirection [string] | test.cpp:137:22:137:27 | string | -| test.cpp:137:17:137:19 | str indirection [string] | test.cpp:137:22:137:27 | string indirection | -| test.cpp:137:22:137:27 | string indirection | test.cpp:137:22:137:27 | string | | test.cpp:147:5:147:34 | ... = ... | test.cpp:147:10:147:15 | str indirection [post update] [string] | | test.cpp:147:10:147:15 | str indirection [post update] [string] | test.cpp:148:5:148:7 | str indirection [string] | | test.cpp:147:19:147:24 | call to malloc | test.cpp:147:5:147:34 | ... = ... | +| test.cpp:148:5:148:7 | str indirection [string] | test.cpp:148:5:148:7 | str indirection [string] | | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:152:13:152:15 | str indirection [string] | | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:154:13:154:15 | str indirection [string] | | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:156:13:156:15 | str indirection [string] | @@ -46,32 +37,14 @@ edges | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:203:17:203:19 | str indirection [string] | | test.cpp:148:5:148:7 | str indirection [string] | test.cpp:207:17:207:19 | str indirection [string] | | test.cpp:152:13:152:15 | str indirection [string] | test.cpp:152:18:152:23 | string | -| test.cpp:152:13:152:15 | str indirection [string] | test.cpp:152:18:152:23 | string indirection | -| test.cpp:152:18:152:23 | string indirection | test.cpp:152:18:152:23 | string | | test.cpp:154:13:154:15 | str indirection [string] | test.cpp:154:18:154:23 | string | -| test.cpp:154:13:154:15 | str indirection [string] | test.cpp:154:18:154:23 | string indirection | -| test.cpp:154:18:154:23 | string indirection | test.cpp:154:18:154:23 | string | | test.cpp:156:13:156:15 | str indirection [string] | test.cpp:156:18:156:23 | string | -| test.cpp:156:13:156:15 | str indirection [string] | test.cpp:156:18:156:23 | string indirection | -| test.cpp:156:18:156:23 | string indirection | test.cpp:156:18:156:23 | string | | test.cpp:175:17:175:19 | str indirection [string] | test.cpp:175:22:175:27 | string | -| test.cpp:175:17:175:19 | str indirection [string] | test.cpp:175:22:175:27 | string indirection | -| test.cpp:175:22:175:27 | string indirection | test.cpp:175:22:175:27 | string | | test.cpp:187:17:187:19 | str indirection [string] | test.cpp:187:22:187:27 | string | -| test.cpp:187:17:187:19 | str indirection [string] | test.cpp:187:22:187:27 | string indirection | -| test.cpp:187:22:187:27 | string indirection | test.cpp:187:22:187:27 | string | | test.cpp:195:17:195:19 | str indirection [string] | test.cpp:195:22:195:27 | string | -| test.cpp:195:17:195:19 | str indirection [string] | test.cpp:195:22:195:27 | string indirection | -| test.cpp:195:22:195:27 | string indirection | test.cpp:195:22:195:27 | string | | test.cpp:199:17:199:19 | str indirection [string] | test.cpp:199:22:199:27 | string | -| test.cpp:199:17:199:19 | str indirection [string] | test.cpp:199:22:199:27 | string indirection | -| test.cpp:199:22:199:27 | string indirection | test.cpp:199:22:199:27 | string | | test.cpp:203:17:203:19 | str indirection [string] | test.cpp:203:22:203:27 | string | -| test.cpp:203:17:203:19 | str indirection [string] | test.cpp:203:22:203:27 | string indirection | -| test.cpp:203:22:203:27 | string indirection | test.cpp:203:22:203:27 | string | | test.cpp:207:17:207:19 | str indirection [string] | test.cpp:207:22:207:27 | string | -| test.cpp:207:17:207:19 | str indirection [string] | test.cpp:207:22:207:27 | string indirection | -| test.cpp:207:22:207:27 | string indirection | test.cpp:207:22:207:27 | string | | test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | | test.cpp:220:43:220:48 | call to malloc | test.cpp:222:15:222:20 | buffer | | test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | @@ -83,8 +56,6 @@ edges | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | | test.cpp:242:22:242:27 | buffer | test.cpp:242:16:242:19 | set_string output argument [string] | | test.cpp:243:12:243:14 | str indirection [string] | test.cpp:243:12:243:21 | string | -| test.cpp:243:12:243:14 | str indirection [string] | test.cpp:243:16:243:21 | string indirection | -| test.cpp:243:16:243:21 | string indirection | test.cpp:243:12:243:21 | string | | test.cpp:249:20:249:27 | call to my_alloc | test.cpp:250:12:250:12 | p | | test.cpp:256:17:256:22 | call to malloc | test.cpp:257:12:257:12 | p | | test.cpp:262:22:262:27 | call to malloc | test.cpp:266:12:266:12 | p | @@ -98,13 +69,10 @@ nodes | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] | semmle.label | call to mk_string_t indirection [string] | | test.cpp:42:13:42:15 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:42:18:42:23 | string | semmle.label | string | -| test.cpp:42:18:42:23 | string indirection | semmle.label | string indirection | | test.cpp:72:17:72:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:72:22:72:27 | string | semmle.label | string | -| test.cpp:72:22:72:27 | string indirection | semmle.label | string indirection | | test.cpp:80:17:80:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:80:22:80:27 | string | semmle.label | string | -| test.cpp:80:22:80:27 | string indirection | semmle.label | string indirection | | test.cpp:88:11:88:30 | mk_string_t_plus_one indirection [string] | semmle.label | mk_string_t_plus_one indirection [string] | | test.cpp:90:5:90:34 | ... = ... | semmle.label | ... = ... | | test.cpp:90:10:90:15 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | @@ -113,44 +81,32 @@ nodes | test.cpp:96:21:96:40 | call to mk_string_t_plus_one indirection [string] | semmle.label | call to mk_string_t_plus_one indirection [string] | | test.cpp:99:13:99:15 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:99:18:99:23 | string | semmle.label | string | -| test.cpp:99:18:99:23 | string indirection | semmle.label | string indirection | | test.cpp:129:17:129:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:129:22:129:27 | string | semmle.label | string | -| test.cpp:129:22:129:27 | string indirection | semmle.label | string indirection | | test.cpp:137:17:137:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:137:22:137:27 | string | semmle.label | string | -| test.cpp:137:22:137:27 | string indirection | semmle.label | string indirection | | test.cpp:147:5:147:34 | ... = ... | semmle.label | ... = ... | | test.cpp:147:10:147:15 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] | | test.cpp:147:19:147:24 | call to malloc | semmle.label | call to malloc | | test.cpp:148:5:148:7 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:152:13:152:15 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:152:18:152:23 | string | semmle.label | string | -| test.cpp:152:18:152:23 | string indirection | semmle.label | string indirection | | test.cpp:154:13:154:15 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:154:18:154:23 | string | semmle.label | string | -| test.cpp:154:18:154:23 | string indirection | semmle.label | string indirection | | test.cpp:156:13:156:15 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:156:18:156:23 | string | semmle.label | string | -| test.cpp:156:18:156:23 | string indirection | semmle.label | string indirection | | test.cpp:175:17:175:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:175:22:175:27 | string | semmle.label | string | -| test.cpp:175:22:175:27 | string indirection | semmle.label | string indirection | | test.cpp:187:17:187:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:187:22:187:27 | string | semmle.label | string | -| test.cpp:187:22:187:27 | string indirection | semmle.label | string indirection | | test.cpp:195:17:195:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:195:22:195:27 | string | semmle.label | string | -| test.cpp:195:22:195:27 | string indirection | semmle.label | string indirection | | test.cpp:199:17:199:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:199:22:199:27 | string | semmle.label | string | -| test.cpp:199:22:199:27 | string indirection | semmle.label | string indirection | | test.cpp:203:17:203:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:203:22:203:27 | string | semmle.label | string | -| test.cpp:203:22:203:27 | string indirection | semmle.label | string indirection | | test.cpp:207:17:207:19 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:207:22:207:27 | string | semmle.label | string | -| test.cpp:207:22:207:27 | string indirection | semmle.label | string indirection | | test.cpp:214:24:214:24 | p | semmle.label | p | | test.cpp:216:10:216:10 | p | semmle.label | p | | test.cpp:220:43:220:48 | call to malloc | semmle.label | call to malloc | @@ -165,7 +121,6 @@ nodes | test.cpp:242:22:242:27 | buffer | semmle.label | buffer | | test.cpp:243:12:243:14 | str indirection [string] | semmle.label | str indirection [string] | | test.cpp:243:12:243:21 | string | semmle.label | string | -| test.cpp:243:16:243:21 | string indirection | semmle.label | string indirection | | test.cpp:249:20:249:27 | call to my_alloc | semmle.label | call to my_alloc | | test.cpp:250:12:250:12 | p | semmle.label | p | | test.cpp:256:17:256:22 | call to malloc | semmle.label | call to malloc | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected index 8d46c8fe99b..131fe0265a7 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected @@ -3,19 +3,16 @@ edges | main.cpp:6:27:6:30 | argv indirection | main.cpp:7:33:7:36 | argv indirection | | main.cpp:7:33:7:36 | argv indirection | overflowdestination.cpp:23:45:23:48 | argv indirection | | main.cpp:7:33:7:36 | argv indirection | overflowdestination.cpp:23:45:23:48 | argv indirection | -| overflowdestination.cpp:23:45:23:48 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | -| overflowdestination.cpp:23:45:23:48 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | +| main.cpp:7:33:7:36 | argv indirection | overflowdestination.cpp:23:45:23:48 | argv indirection | | overflowdestination.cpp:23:45:23:48 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | | overflowdestination.cpp:23:45:23:48 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | | overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | src indirection | | overflowdestination.cpp:50:52:50:54 | src indirection | overflowdestination.cpp:53:9:53:12 | memcpy output argument | | overflowdestination.cpp:50:52:50:54 | src indirection | overflowdestination.cpp:53:15:53:17 | src indirection | -| overflowdestination.cpp:50:52:50:54 | src indirection | overflowdestination.cpp:53:15:53:17 | src indirection | | overflowdestination.cpp:50:52:50:54 | src indirection | overflowdestination.cpp:54:9:54:12 | memcpy output argument | | overflowdestination.cpp:53:9:53:12 | memcpy output argument | overflowdestination.cpp:54:9:54:12 | memcpy output argument | | overflowdestination.cpp:54:9:54:12 | memcpy output argument | overflowdestination.cpp:54:9:54:12 | memcpy output argument | | overflowdestination.cpp:57:52:57:54 | src indirection | overflowdestination.cpp:64:16:64:19 | src2 indirection | -| overflowdestination.cpp:57:52:57:54 | src indirection | overflowdestination.cpp:64:16:64:19 | src2 indirection | | overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:75:30:75:32 | src indirection | | overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:76:30:76:32 | src indirection | | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument | overflowdestination.cpp:76:30:76:32 | src indirection | @@ -30,17 +27,14 @@ nodes | overflowdestination.cpp:23:45:23:48 | argv indirection | semmle.label | argv indirection | | overflowdestination.cpp:23:45:23:48 | argv indirection | semmle.label | argv indirection | | overflowdestination.cpp:30:17:30:20 | arg1 indirection | semmle.label | arg1 indirection | -| overflowdestination.cpp:30:17:30:20 | arg1 indirection | semmle.label | arg1 indirection | | overflowdestination.cpp:43:8:43:10 | fgets output argument | semmle.label | fgets output argument | | overflowdestination.cpp:46:15:46:17 | src indirection | semmle.label | src indirection | | overflowdestination.cpp:50:52:50:54 | src indirection | semmle.label | src indirection | | overflowdestination.cpp:53:9:53:12 | memcpy output argument | semmle.label | memcpy output argument | | overflowdestination.cpp:53:15:53:17 | src indirection | semmle.label | src indirection | -| overflowdestination.cpp:53:15:53:17 | src indirection | semmle.label | src indirection | | overflowdestination.cpp:54:9:54:12 | memcpy output argument | semmle.label | memcpy output argument | | overflowdestination.cpp:57:52:57:54 | src indirection | semmle.label | src indirection | | overflowdestination.cpp:64:16:64:19 | src2 indirection | semmle.label | src2 indirection | -| overflowdestination.cpp:64:16:64:19 | src2 indirection | semmle.label | src2 indirection | | overflowdestination.cpp:73:8:73:10 | fgets output argument | semmle.label | fgets output argument | | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument | semmle.label | overflowdest_test2 output argument | | overflowdestination.cpp:75:30:75:32 | src indirection | semmle.label | src indirection | @@ -51,10 +45,6 @@ subpaths #select | overflowdestination.cpp:30:2:30:8 | call to strncpy | main.cpp:6:27:6:30 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | | overflowdestination.cpp:30:2:30:8 | call to strncpy | main.cpp:6:27:6:30 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | -| overflowdestination.cpp:30:2:30:8 | call to strncpy | main.cpp:6:27:6:30 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | -| overflowdestination.cpp:30:2:30:8 | call to strncpy | main.cpp:6:27:6:30 | argv indirection | overflowdestination.cpp:30:17:30:20 | arg1 indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | | overflowdestination.cpp:46:2:46:7 | call to memcpy | overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | src indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | | overflowdestination.cpp:53:2:53:7 | call to memcpy | overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:53:15:53:17 | src indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | -| overflowdestination.cpp:53:2:53:7 | call to memcpy | overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:53:15:53:17 | src indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | -| overflowdestination.cpp:64:2:64:7 | call to memcpy | overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:64:16:64:19 | src2 indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | | overflowdestination.cpp:64:2:64:7 | call to memcpy | overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:64:16:64:19 | src2 indirection | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected index f4d503b340a..6792bcdd776 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected @@ -1,18 +1,13 @@ edges | test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | | test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | -| test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | -| test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | nodes | test2.cpp:110:3:110:6 | call to gets indirection | semmle.label | call to gets indirection | | test.cpp:53:27:53:30 | argv indirection | semmle.label | argv indirection | | test.cpp:53:27:53:30 | argv indirection | semmle.label | argv indirection | | test.cpp:58:25:58:29 | input indirection | semmle.label | input indirection | -| test.cpp:58:25:58:29 | input indirection | semmle.label | input indirection | subpaths #select | test2.cpp:110:3:110:6 | call to gets | test2.cpp:110:3:110:6 | call to gets indirection | test2.cpp:110:3:110:6 | call to gets indirection | This write into buffer 'password' may contain unencrypted data from $@. | test2.cpp:110:3:110:6 | call to gets indirection | user input (string read by gets) | | test.cpp:58:3:58:9 | call to sprintf | test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | This write into buffer 'passwd' may contain unencrypted data from $@. | test.cpp:53:27:53:30 | argv indirection | user input (a command-line argument) | | test.cpp:58:3:58:9 | call to sprintf | test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | This write into buffer 'passwd' may contain unencrypted data from $@. | test.cpp:53:27:53:30 | argv indirection | user input (a command-line argument) | -| test.cpp:58:3:58:9 | call to sprintf | test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | This write into buffer 'passwd' may contain unencrypted data from $@. | test.cpp:53:27:53:30 | argv indirection | user input (a command-line argument) | -| test.cpp:58:3:58:9 | call to sprintf | test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection | This write into buffer 'passwd' may contain unencrypted data from $@. | test.cpp:53:27:53:30 | argv indirection | user input (a command-line argument) | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected index d5a39f2465c..ba2e1dc5834 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected @@ -1,6 +1,5 @@ edges | test.cpp:11:26:11:28 | url indirection | test.cpp:15:30:15:32 | url indirection | -| test.cpp:11:26:11:28 | url indirection | test.cpp:15:30:15:32 | url indirection | | test.cpp:24:13:24:17 | url_g indirection | test.cpp:38:11:38:15 | url_g indirection | | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:24:13:24:17 | url_g indirection | | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:24:13:24:17 | url_g indirection | @@ -23,7 +22,6 @@ edges nodes | test.cpp:11:26:11:28 | url indirection | semmle.label | url indirection | | test.cpp:15:30:15:32 | url indirection | semmle.label | url indirection | -| test.cpp:15:30:15:32 | url indirection | semmle.label | url indirection | | test.cpp:24:13:24:17 | url_g indirection | semmle.label | url_g indirection | | test.cpp:24:21:24:40 | http://example.com indirection | semmle.label | http://example.com indirection | | test.cpp:24:21:24:40 | http://example.com indirection | semmle.label | http://example.com indirection | @@ -47,27 +45,14 @@ subpaths #select | test.cpp:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:28:10:28:29 | http://example.com | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:28:10:28:29 | http://example.com | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:28:10:28:29 | http://example.com | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:28:10:28:29 | http://example.com | test.cpp:28:10:28:29 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:35:23:35:42 | http://example.com | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:35:23:35:42 | http://example.com | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:35:23:35:42 | http://example.com | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:35:23:35:42 | http://example.com | test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:36:26:36:45 | http://example.com | test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | http:// indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | -| test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | | test.cpp:110:21:110:40 | http://example.com | test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:15:30:15:32 | url indirection | This URL may be constructed with the HTTP protocol. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected index a675c3a99d5..da20718ac12 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected @@ -1,6 +1,5 @@ edges | tests2.cpp:50:13:50:19 | global1 indirection | tests2.cpp:82:14:82:20 | global1 indirection | -| tests2.cpp:50:13:50:19 | global1 indirection | tests2.cpp:82:14:82:20 | global1 indirection | | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | tests2.cpp:50:13:50:19 | global1 indirection | | tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | | tests2.cpp:64:13:64:18 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | @@ -8,29 +7,24 @@ edges | tests2.cpp:66:13:66:18 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | tests2.cpp:81:14:81:19 | buffer indirection | | tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | -| tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | -| tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | | tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | | tests2.cpp:109:3:109:36 | ... = ... indirection | tests2.cpp:109:6:109:8 | c1 indirection [post update] [ptr indirection] | | tests2.cpp:109:6:109:8 | c1 indirection [post update] [ptr indirection] | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:109:3:109:36 | ... = ... indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:14:111:19 | ptr indirection | | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:17:111:19 | ptr indirection | +| tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | tests2.cpp:111:17:111:19 | ptr indirection | | tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:111:14:111:19 | ptr indirection | | tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:111:17:111:19 | ptr indirection | +| tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:111:17:111:19 | ptr indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | -| tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | -| tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | -| tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | -| tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | -| tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | nodes @@ -52,13 +46,10 @@ nodes | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | semmle.label | call to mysql_get_client_info indirection | | tests2.cpp:81:14:81:19 | buffer indirection | semmle.label | buffer indirection | | tests2.cpp:82:14:82:20 | global1 indirection | semmle.label | global1 indirection | -| tests2.cpp:82:14:82:20 | global1 indirection | semmle.label | global1 indirection | | tests2.cpp:91:42:91:45 | str1 indirection | semmle.label | str1 indirection | | tests2.cpp:93:14:93:17 | str1 indirection | semmle.label | str1 indirection | -| tests2.cpp:93:14:93:17 | str1 indirection | semmle.label | str1 indirection | | tests2.cpp:101:8:101:15 | call to getpwuid indirection | semmle.label | call to getpwuid indirection | | tests2.cpp:102:14:102:15 | pw indirection | semmle.label | pw indirection | -| tests2.cpp:102:14:102:15 | pw indirection | semmle.label | pw indirection | | tests2.cpp:109:3:109:36 | ... = ... indirection | semmle.label | ... = ... indirection | | tests2.cpp:109:6:109:8 | c1 indirection [post update] [ptr indirection] | semmle.label | c1 indirection [post update] [ptr indirection] | | tests2.cpp:109:12:109:17 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -69,21 +60,16 @@ nodes | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests_sockets.cpp:39:19:39:22 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:39:19:39:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:39:19:39:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:43:20:43:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:43:20:43:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:43:20:43:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | semmle.label | call to getenv indirection | | tests_sockets.cpp:76:19:76:22 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:76:19:76:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:76:19:76:22 | path indirection | semmle.label | path indirection | -| tests_sockets.cpp:80:20:80:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:80:20:80:23 | path indirection | semmle.label | path indirection | | tests_sockets.cpp:80:20:80:23 | path indirection | semmle.label | path indirection | | tests_sysconf.cpp:36:21:36:27 | confstr output argument | semmle.label | confstr output argument | | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | semmle.label | pathbuf indirection | | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | semmle.label | pathbuf indirection | -| tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | semmle.label | pathbuf indirection | subpaths #select | tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:18 | call to getenv indirection | tests2.cpp:63:13:63:18 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:63:13:63:18 | call to getenv indirection | call to getenv indirection | @@ -97,25 +83,17 @@ subpaths | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | This operation exposes system data from $@. | tests2.cpp:80:14:80:34 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | | tests2.cpp:81:14:81:19 | buffer indirection | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | tests2.cpp:81:14:81:19 | buffer indirection | This operation exposes system data from $@. | tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | | tests2.cpp:82:14:82:20 | global1 indirection | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | tests2.cpp:82:14:82:20 | global1 indirection | This operation exposes system data from $@. | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | -| tests2.cpp:82:14:82:20 | global1 indirection | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | tests2.cpp:82:14:82:20 | global1 indirection | This operation exposes system data from $@. | tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | call to mysql_get_client_info indirection | | tests2.cpp:93:14:93:17 | str1 indirection | tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | This operation exposes system data from $@. | tests2.cpp:91:42:91:45 | str1 indirection | str1 indirection | -| tests2.cpp:93:14:93:17 | str1 indirection | tests2.cpp:91:42:91:45 | str1 indirection | tests2.cpp:93:14:93:17 | str1 indirection | This operation exposes system data from $@. | tests2.cpp:91:42:91:45 | str1 indirection | str1 indirection | -| tests2.cpp:102:14:102:15 | pw indirection | tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | This operation exposes system data from $@. | tests2.cpp:101:8:101:15 | call to getpwuid indirection | call to getpwuid indirection | | tests2.cpp:102:14:102:15 | pw indirection | tests2.cpp:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection | This operation exposes system data from $@. | tests2.cpp:101:8:101:15 | call to getpwuid indirection | call to getpwuid indirection | | tests2.cpp:111:14:111:19 | ptr indirection | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:111:14:111:19 | ptr indirection | This operation exposes system data from $@. | tests2.cpp:109:12:109:17 | call to getenv indirection | call to getenv indirection | | tests2.cpp:111:17:111:19 | ptr indirection | tests2.cpp:109:12:109:17 | call to getenv indirection | tests2.cpp:111:17:111:19 | ptr indirection | This operation exposes system data from $@. | tests2.cpp:109:12:109:17 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:39:19:39:22 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:39:19:39:22 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:39:19:39:22 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:39:19:39:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:43:20:43:23 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:43:20:43:23 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:43:20:43:23 | path indirection | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | tests_sockets.cpp:43:20:43:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:76:19:76:22 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:76:19:76:22 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:76:19:76:22 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:76:19:76:22 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | -| tests_sockets.cpp:80:20:80:23 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:80:20:80:23 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | | tests_sockets.cpp:80:20:80:23 | path indirection | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | tests_sockets.cpp:80:20:80:23 | path indirection | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | call to getenv indirection | call to getenv indirection | | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | This operation exposes system data from $@. | tests_sysconf.cpp:36:21:36:27 | confstr output argument | confstr output argument | | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | This operation exposes system data from $@. | tests_sysconf.cpp:36:21:36:27 | confstr output argument | confstr output argument | -| tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | pathbuf indirection | This operation exposes system data from $@. | tests_sysconf.cpp:36:21:36:27 | confstr output argument | confstr output argument | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected index 4c37d69d3d6..79d0c0c8921 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected @@ -6,20 +6,15 @@ edges | tests.cpp:58:41:58:46 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | | tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:64 | call to getenv indirection | | tests.cpp:62:7:62:18 | global_token indirection | tests.cpp:71:27:71:38 | global_token indirection | -| tests.cpp:62:7:62:18 | global_token indirection | tests.cpp:71:27:71:38 | global_token indirection | -| tests.cpp:62:7:62:18 | global_token indirection | tests.cpp:73:27:73:31 | maybe indirection | | tests.cpp:62:7:62:18 | global_token indirection | tests.cpp:73:27:73:31 | maybe indirection | | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:62:7:62:18 | global_token indirection | | tests.cpp:86:29:86:31 | msg indirection | tests.cpp:88:15:88:17 | msg indirection | -| tests.cpp:86:29:86:31 | msg indirection | tests.cpp:88:15:88:17 | msg indirection | | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:86:29:86:31 | msg indirection | | tests.cpp:107:30:107:32 | msg indirection | tests.cpp:111:15:111:17 | tmp indirection | -| tests.cpp:107:30:107:32 | msg indirection | tests.cpp:111:15:111:17 | tmp indirection | | tests.cpp:114:30:114:32 | msg indirection | tests.cpp:119:7:119:12 | buffer indirection | | tests.cpp:122:30:122:32 | msg indirection | tests.cpp:124:15:124:17 | msg indirection | -| tests.cpp:122:30:122:32 | msg indirection | tests.cpp:124:15:124:17 | msg indirection | | tests.cpp:131:14:131:19 | call to getenv indirection | tests.cpp:131:14:131:35 | call to getenv indirection | | tests.cpp:131:14:131:35 | call to getenv indirection | tests.cpp:107:30:107:32 | msg indirection | | tests.cpp:132:14:132:19 | call to getenv indirection | tests.cpp:132:14:132:35 | call to getenv indirection | @@ -28,8 +23,6 @@ edges | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | | tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:122:30:122:32 | msg indirection | | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:18:29:18:31 | pwd indirection | -| tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:18:29:18:31 | pwd indirection | -| tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:19:26:19:28 | pwd indirection | | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:19:26:19:28 | pwd indirection | nodes | tests.cpp:48:15:48:20 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -53,24 +46,19 @@ nodes | tests.cpp:62:7:62:18 | global_token indirection | semmle.label | global_token indirection | | tests.cpp:62:22:62:27 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:71:27:71:38 | global_token indirection | semmle.label | global_token indirection | -| tests.cpp:71:27:71:38 | global_token indirection | semmle.label | global_token indirection | -| tests.cpp:73:27:73:31 | maybe indirection | semmle.label | maybe indirection | | tests.cpp:73:27:73:31 | maybe indirection | semmle.label | maybe indirection | | tests.cpp:86:29:86:31 | msg indirection | semmle.label | msg indirection | | tests.cpp:88:15:88:17 | msg indirection | semmle.label | msg indirection | -| tests.cpp:88:15:88:17 | msg indirection | semmle.label | msg indirection | | tests.cpp:97:13:97:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:97:13:97:18 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:107:30:107:32 | msg indirection | semmle.label | msg indirection | | tests.cpp:111:15:111:17 | tmp indirection | semmle.label | tmp indirection | -| tests.cpp:111:15:111:17 | tmp indirection | semmle.label | tmp indirection | | tests.cpp:114:30:114:32 | msg indirection | semmle.label | msg indirection | | tests.cpp:119:7:119:12 | buffer indirection | semmle.label | buffer indirection | | tests.cpp:122:30:122:32 | msg indirection | semmle.label | msg indirection | | tests.cpp:124:15:124:17 | msg indirection | semmle.label | msg indirection | -| tests.cpp:124:15:124:17 | msg indirection | semmle.label | msg indirection | | tests.cpp:131:14:131:19 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:131:14:131:35 | call to getenv indirection | semmle.label | call to getenv indirection | | tests.cpp:132:14:132:19 | call to getenv indirection | semmle.label | call to getenv indirection | @@ -81,8 +69,6 @@ nodes | tests.cpp:133:14:133:35 | call to getenv indirection | semmle.label | call to getenv indirection | | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | semmle.label | call to getpwnam indirection | | tests_passwd.cpp:18:29:18:31 | pwd indirection | semmle.label | pwd indirection | -| tests_passwd.cpp:18:29:18:31 | pwd indirection | semmle.label | pwd indirection | -| tests_passwd.cpp:19:26:19:28 | pwd indirection | semmle.label | pwd indirection | | tests_passwd.cpp:19:26:19:28 | pwd indirection | semmle.label | pwd indirection | subpaths #select @@ -99,21 +85,14 @@ subpaths | tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:48 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:48 | call to getenv indirection | call to getenv indirection | | tests.cpp:59:43:59:64 | call to getenv indirection | tests.cpp:59:43:59:48 | call to getenv indirection | tests.cpp:59:43:59:64 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:48 | call to getenv indirection | call to getenv indirection | | tests.cpp:71:27:71:38 | global_token indirection | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:71:27:71:38 | global_token indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv indirection | call to getenv indirection | -| tests.cpp:71:27:71:38 | global_token indirection | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:71:27:71:38 | global_token indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv indirection | call to getenv indirection | | tests.cpp:73:27:73:31 | maybe indirection | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:73:27:73:31 | maybe indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv indirection | call to getenv indirection | -| tests.cpp:73:27:73:31 | maybe indirection | tests.cpp:62:22:62:27 | call to getenv indirection | tests.cpp:73:27:73:31 | maybe indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | call to getenv indirection | call to getenv indirection | -| tests.cpp:88:15:88:17 | msg indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:88:15:88:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | | tests.cpp:88:15:88:17 | msg indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:88:15:88:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:18 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | | tests.cpp:97:13:97:34 | call to getenv indirection | tests.cpp:97:13:97:18 | call to getenv indirection | tests.cpp:97:13:97:34 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:18 | call to getenv indirection | call to getenv indirection | | tests.cpp:111:15:111:17 | tmp indirection | tests.cpp:131:14:131:19 | call to getenv indirection | tests.cpp:111:15:111:17 | tmp indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:131:14:131:19 | call to getenv indirection | call to getenv indirection | -| tests.cpp:111:15:111:17 | tmp indirection | tests.cpp:131:14:131:19 | call to getenv indirection | tests.cpp:111:15:111:17 | tmp indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:131:14:131:19 | call to getenv indirection | call to getenv indirection | | tests.cpp:119:7:119:12 | buffer indirection | tests.cpp:132:14:132:19 | call to getenv indirection | tests.cpp:119:7:119:12 | buffer indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:132:14:132:19 | call to getenv indirection | call to getenv indirection | | tests.cpp:124:15:124:17 | msg indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:124:15:124:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | -| tests.cpp:124:15:124:17 | msg indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:124:15:124:17 | msg indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:19 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | | tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:133:14:133:19 | call to getenv indirection | tests.cpp:133:14:133:35 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:19 | call to getenv indirection | call to getenv indirection | | tests_passwd.cpp:18:29:18:31 | pwd indirection | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:18:29:18:31 | pwd indirection | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | call to getpwnam indirection | -| tests_passwd.cpp:18:29:18:31 | pwd indirection | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:18:29:18:31 | pwd indirection | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | call to getpwnam indirection | -| tests_passwd.cpp:19:26:19:28 | pwd indirection | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:19:26:19:28 | pwd indirection | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | call to getpwnam indirection | | tests_passwd.cpp:19:26:19:28 | pwd indirection | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | tests_passwd.cpp:19:26:19:28 | pwd indirection | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | call to getpwnam indirection | call to getpwnam indirection | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected index 7acab8885ed..275e9e1fae9 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected @@ -1,38 +1,25 @@ edges | tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | p indirection | -| tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | p indirection | -| tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | p indirection | | tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | p indirection | | tests2.cpp:49:12:49:12 | call to SAXParser | tests2.cpp:51:2:51:2 | p indirection | | tests3.cpp:23:21:23:53 | call to createXMLReader indirection | tests3.cpp:25:2:25:2 | p indirection | -| tests3.cpp:23:21:23:53 | call to createXMLReader indirection | tests3.cpp:25:2:25:2 | p indirection | -| tests3.cpp:35:16:35:20 | p_3_3 indirection | tests3.cpp:38:2:38:6 | p_3_3 indirection | | tests3.cpp:35:16:35:20 | p_3_3 indirection | tests3.cpp:38:2:38:6 | p_3_3 indirection | | tests3.cpp:35:24:35:56 | call to createXMLReader indirection | tests3.cpp:35:16:35:20 | p_3_3 indirection | | tests3.cpp:48:16:48:20 | p_3_5 indirection | tests3.cpp:56:2:56:6 | p_3_5 indirection | -| tests3.cpp:48:16:48:20 | p_3_5 indirection | tests3.cpp:56:2:56:6 | p_3_5 indirection | | tests3.cpp:48:24:48:56 | call to createXMLReader indirection | tests3.cpp:48:16:48:20 | p_3_5 indirection | | tests3.cpp:60:21:60:53 | call to createXMLReader indirection | tests3.cpp:63:2:63:2 | p indirection | -| tests3.cpp:60:21:60:53 | call to createXMLReader indirection | tests3.cpp:63:2:63:2 | p indirection | -| tests3.cpp:67:21:67:53 | call to createXMLReader indirection | tests3.cpp:70:2:70:2 | p indirection | | tests3.cpp:67:21:67:53 | call to createXMLReader indirection | tests3.cpp:70:2:70:2 | p indirection | | tests5.cpp:27:25:27:38 | call to createLSParser indirection | tests5.cpp:29:2:29:2 | p indirection | -| tests5.cpp:27:25:27:38 | call to createLSParser indirection | tests5.cpp:29:2:29:2 | p indirection | -| tests5.cpp:40:25:40:38 | call to createLSParser indirection | tests5.cpp:43:2:43:2 | p indirection | | tests5.cpp:40:25:40:38 | call to createLSParser indirection | tests5.cpp:43:2:43:2 | p indirection | | tests5.cpp:55:25:55:38 | call to createLSParser indirection | tests5.cpp:59:2:59:2 | p indirection | -| tests5.cpp:55:25:55:38 | call to createLSParser indirection | tests5.cpp:59:2:59:2 | p indirection | -| tests5.cpp:63:21:63:24 | g_p2 indirection | tests5.cpp:77:2:77:5 | g_p2 indirection | | tests5.cpp:63:21:63:24 | g_p2 indirection | tests5.cpp:77:2:77:5 | g_p2 indirection | | tests5.cpp:70:17:70:30 | call to createLSParser indirection | tests5.cpp:63:21:63:24 | g_p2 indirection | | tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:83:2:83:2 | p indirection | | tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:83:2:83:2 | p indirection | -| tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:83:2:83:2 | p indirection | | tests5.cpp:83:2:83:2 | p indirection | tests5.cpp:85:2:85:2 | p indirection | | tests5.cpp:85:2:85:2 | p indirection | tests5.cpp:86:2:86:2 | p indirection | | tests5.cpp:86:2:86:2 | p indirection | tests5.cpp:88:2:88:2 | p indirection | | tests5.cpp:88:2:88:2 | p indirection | tests5.cpp:89:2:89:2 | p indirection | -| tests5.cpp:88:2:88:2 | p indirection | tests5.cpp:89:2:89:2 | p indirection | | tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | p indirection | | tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | p indirection | | tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:35:23:35:43 | new indirection | @@ -63,29 +50,22 @@ edges nodes | tests2.cpp:20:17:20:31 | call to SAXParser | semmle.label | call to SAXParser | | tests2.cpp:22:2:22:2 | p indirection | semmle.label | p indirection | -| tests2.cpp:22:2:22:2 | p indirection | semmle.label | p indirection | | tests2.cpp:33:17:33:31 | call to SAXParser | semmle.label | call to SAXParser | | tests2.cpp:37:2:37:2 | p indirection | semmle.label | p indirection | -| tests2.cpp:37:2:37:2 | p indirection | semmle.label | p indirection | | tests2.cpp:49:12:49:12 | call to SAXParser | semmle.label | call to SAXParser | | tests2.cpp:51:2:51:2 | p indirection | semmle.label | p indirection | | tests3.cpp:23:21:23:53 | call to createXMLReader indirection | semmle.label | call to createXMLReader indirection | | tests3.cpp:25:2:25:2 | p indirection | semmle.label | p indirection | -| tests3.cpp:25:2:25:2 | p indirection | semmle.label | p indirection | | tests3.cpp:35:16:35:20 | p_3_3 indirection | semmle.label | p_3_3 indirection | | tests3.cpp:35:24:35:56 | call to createXMLReader indirection | semmle.label | call to createXMLReader indirection | | tests3.cpp:38:2:38:6 | p_3_3 indirection | semmle.label | p_3_3 indirection | -| tests3.cpp:38:2:38:6 | p_3_3 indirection | semmle.label | p_3_3 indirection | | tests3.cpp:48:16:48:20 | p_3_5 indirection | semmle.label | p_3_5 indirection | | tests3.cpp:48:24:48:56 | call to createXMLReader indirection | semmle.label | call to createXMLReader indirection | | tests3.cpp:56:2:56:6 | p_3_5 indirection | semmle.label | p_3_5 indirection | -| tests3.cpp:56:2:56:6 | p_3_5 indirection | semmle.label | p_3_5 indirection | | tests3.cpp:60:21:60:53 | call to createXMLReader indirection | semmle.label | call to createXMLReader indirection | | tests3.cpp:63:2:63:2 | p indirection | semmle.label | p indirection | -| tests3.cpp:63:2:63:2 | p indirection | semmle.label | p indirection | | tests3.cpp:67:21:67:53 | call to createXMLReader indirection | semmle.label | call to createXMLReader indirection | | tests3.cpp:70:2:70:2 | p indirection | semmle.label | p indirection | -| tests3.cpp:70:2:70:2 | p indirection | semmle.label | p indirection | | tests4.cpp:26:34:26:48 | XML_PARSE_NOENT | semmle.label | XML_PARSE_NOENT | | tests4.cpp:36:34:36:50 | XML_PARSE_DTDLOAD | semmle.label | XML_PARSE_DTDLOAD | | tests4.cpp:46:34:46:68 | ... \| ... | semmle.label | ... \| ... | @@ -93,26 +73,20 @@ nodes | tests4.cpp:130:39:130:55 | XML_PARSE_DTDLOAD | semmle.label | XML_PARSE_DTDLOAD | | tests5.cpp:27:25:27:38 | call to createLSParser indirection | semmle.label | call to createLSParser indirection | | tests5.cpp:29:2:29:2 | p indirection | semmle.label | p indirection | -| tests5.cpp:29:2:29:2 | p indirection | semmle.label | p indirection | | tests5.cpp:40:25:40:38 | call to createLSParser indirection | semmle.label | call to createLSParser indirection | | tests5.cpp:43:2:43:2 | p indirection | semmle.label | p indirection | -| tests5.cpp:43:2:43:2 | p indirection | semmle.label | p indirection | | tests5.cpp:55:25:55:38 | call to createLSParser indirection | semmle.label | call to createLSParser indirection | | tests5.cpp:59:2:59:2 | p indirection | semmle.label | p indirection | -| tests5.cpp:59:2:59:2 | p indirection | semmle.label | p indirection | | tests5.cpp:63:21:63:24 | g_p2 indirection | semmle.label | g_p2 indirection | | tests5.cpp:70:17:70:30 | call to createLSParser indirection | semmle.label | call to createLSParser indirection | | tests5.cpp:77:2:77:5 | g_p2 indirection | semmle.label | g_p2 indirection | -| tests5.cpp:77:2:77:5 | g_p2 indirection | semmle.label | g_p2 indirection | | tests5.cpp:81:25:81:38 | call to createLSParser indirection | semmle.label | call to createLSParser indirection | | tests5.cpp:83:2:83:2 | p indirection | semmle.label | p indirection | | tests5.cpp:83:2:83:2 | p indirection | semmle.label | p indirection | -| tests5.cpp:83:2:83:2 | p indirection | semmle.label | p indirection | | tests5.cpp:85:2:85:2 | p indirection | semmle.label | p indirection | | tests5.cpp:86:2:86:2 | p indirection | semmle.label | p indirection | | tests5.cpp:88:2:88:2 | p indirection | semmle.label | p indirection | | tests5.cpp:89:2:89:2 | p indirection | semmle.label | p indirection | -| tests5.cpp:89:2:89:2 | p indirection | semmle.label | p indirection | | tests.cpp:15:23:15:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | | tests.cpp:17:2:17:2 | p indirection | semmle.label | p indirection | | tests.cpp:28:23:28:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser | @@ -152,19 +126,12 @@ nodes subpaths #select | tests2.cpp:22:2:22:2 | p indirection | tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:20:17:20:31 | call to SAXParser | XML parser | -| tests2.cpp:22:2:22:2 | p indirection | tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:20:17:20:31 | call to SAXParser | XML parser | -| tests2.cpp:37:2:37:2 | p indirection | tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:33:17:33:31 | call to SAXParser | XML parser | | tests2.cpp:37:2:37:2 | p indirection | tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:33:17:33:31 | call to SAXParser | XML parser | | tests2.cpp:51:2:51:2 | p indirection | tests2.cpp:49:12:49:12 | call to SAXParser | tests2.cpp:51:2:51:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests2.cpp:49:12:49:12 | call to SAXParser | XML parser | | tests3.cpp:25:2:25:2 | p indirection | tests3.cpp:23:21:23:53 | call to createXMLReader indirection | tests3.cpp:25:2:25:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:23:21:23:53 | call to createXMLReader indirection | XML parser | -| tests3.cpp:25:2:25:2 | p indirection | tests3.cpp:23:21:23:53 | call to createXMLReader indirection | tests3.cpp:25:2:25:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:23:21:23:53 | call to createXMLReader indirection | XML parser | -| tests3.cpp:38:2:38:6 | p_3_3 indirection | tests3.cpp:35:24:35:56 | call to createXMLReader indirection | tests3.cpp:38:2:38:6 | p_3_3 indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:35:24:35:56 | call to createXMLReader indirection | XML parser | | tests3.cpp:38:2:38:6 | p_3_3 indirection | tests3.cpp:35:24:35:56 | call to createXMLReader indirection | tests3.cpp:38:2:38:6 | p_3_3 indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:35:24:35:56 | call to createXMLReader indirection | XML parser | | tests3.cpp:56:2:56:6 | p_3_5 indirection | tests3.cpp:48:24:48:56 | call to createXMLReader indirection | tests3.cpp:56:2:56:6 | p_3_5 indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:48:24:48:56 | call to createXMLReader indirection | XML parser | -| tests3.cpp:56:2:56:6 | p_3_5 indirection | tests3.cpp:48:24:48:56 | call to createXMLReader indirection | tests3.cpp:56:2:56:6 | p_3_5 indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:48:24:48:56 | call to createXMLReader indirection | XML parser | | tests3.cpp:63:2:63:2 | p indirection | tests3.cpp:60:21:60:53 | call to createXMLReader indirection | tests3.cpp:63:2:63:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:60:21:60:53 | call to createXMLReader indirection | XML parser | -| tests3.cpp:63:2:63:2 | p indirection | tests3.cpp:60:21:60:53 | call to createXMLReader indirection | tests3.cpp:63:2:63:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:60:21:60:53 | call to createXMLReader indirection | XML parser | -| tests3.cpp:70:2:70:2 | p indirection | tests3.cpp:67:21:67:53 | call to createXMLReader indirection | tests3.cpp:70:2:70:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:67:21:67:53 | call to createXMLReader indirection | XML parser | | tests3.cpp:70:2:70:2 | p indirection | tests3.cpp:67:21:67:53 | call to createXMLReader indirection | tests3.cpp:70:2:70:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:67:21:67:53 | call to createXMLReader indirection | XML parser | | tests4.cpp:26:34:26:48 | XML_PARSE_NOENT | tests4.cpp:26:34:26:48 | XML_PARSE_NOENT | tests4.cpp:26:34:26:48 | XML_PARSE_NOENT | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests4.cpp:26:34:26:48 | XML_PARSE_NOENT | XML parser | | tests4.cpp:36:34:36:50 | XML_PARSE_DTDLOAD | tests4.cpp:36:34:36:50 | XML_PARSE_DTDLOAD | tests4.cpp:36:34:36:50 | XML_PARSE_DTDLOAD | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests4.cpp:36:34:36:50 | XML_PARSE_DTDLOAD | XML parser | @@ -172,16 +139,10 @@ subpaths | tests4.cpp:77:34:77:38 | flags | tests4.cpp:77:34:77:38 | flags | tests4.cpp:77:34:77:38 | flags | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests4.cpp:77:34:77:38 | flags | XML parser | | tests4.cpp:130:39:130:55 | XML_PARSE_DTDLOAD | tests4.cpp:130:39:130:55 | XML_PARSE_DTDLOAD | tests4.cpp:130:39:130:55 | XML_PARSE_DTDLOAD | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests4.cpp:130:39:130:55 | XML_PARSE_DTDLOAD | XML parser | | tests5.cpp:29:2:29:2 | p indirection | tests5.cpp:27:25:27:38 | call to createLSParser indirection | tests5.cpp:29:2:29:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:27:25:27:38 | call to createLSParser indirection | XML parser | -| tests5.cpp:29:2:29:2 | p indirection | tests5.cpp:27:25:27:38 | call to createLSParser indirection | tests5.cpp:29:2:29:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:27:25:27:38 | call to createLSParser indirection | XML parser | -| tests5.cpp:43:2:43:2 | p indirection | tests5.cpp:40:25:40:38 | call to createLSParser indirection | tests5.cpp:43:2:43:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:40:25:40:38 | call to createLSParser indirection | XML parser | | tests5.cpp:43:2:43:2 | p indirection | tests5.cpp:40:25:40:38 | call to createLSParser indirection | tests5.cpp:43:2:43:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:40:25:40:38 | call to createLSParser indirection | XML parser | | tests5.cpp:59:2:59:2 | p indirection | tests5.cpp:55:25:55:38 | call to createLSParser indirection | tests5.cpp:59:2:59:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:55:25:55:38 | call to createLSParser indirection | XML parser | -| tests5.cpp:59:2:59:2 | p indirection | tests5.cpp:55:25:55:38 | call to createLSParser indirection | tests5.cpp:59:2:59:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:55:25:55:38 | call to createLSParser indirection | XML parser | -| tests5.cpp:77:2:77:5 | g_p2 indirection | tests5.cpp:70:17:70:30 | call to createLSParser indirection | tests5.cpp:77:2:77:5 | g_p2 indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:70:17:70:30 | call to createLSParser indirection | XML parser | | tests5.cpp:77:2:77:5 | g_p2 indirection | tests5.cpp:70:17:70:30 | call to createLSParser indirection | tests5.cpp:77:2:77:5 | g_p2 indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:70:17:70:30 | call to createLSParser indirection | XML parser | | tests5.cpp:83:2:83:2 | p indirection | tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:83:2:83:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | call to createLSParser indirection | XML parser | -| tests5.cpp:83:2:83:2 | p indirection | tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:83:2:83:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | call to createLSParser indirection | XML parser | -| tests5.cpp:89:2:89:2 | p indirection | tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:89:2:89:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | call to createLSParser indirection | XML parser | | tests5.cpp:89:2:89:2 | p indirection | tests5.cpp:81:25:81:38 | call to createLSParser indirection | tests5.cpp:89:2:89:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | call to createLSParser indirection | XML parser | | tests.cpp:17:2:17:2 | p indirection | tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:15:23:15:43 | call to XercesDOMParser | XML parser | | tests.cpp:31:2:31:2 | p indirection | tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:28:23:28:43 | call to XercesDOMParser | XML parser |