Merge branch 'main' of https://github.com/github/codeql into python/captured-variables-basic

This commit is contained in:
Rasmus Lerchedahl Petersen
2023-12-15 14:31:57 +01:00
651 changed files with 53188 additions and 47833 deletions

View File

@@ -15,7 +15,7 @@ jobs:
runs-on: macos-latest
steps:
- name: Set up Go ${{ env.GO_VERSION }}
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
id: go
@@ -50,7 +50,7 @@ jobs:
runs-on: windows-latest-xl
steps:
- name: Set up Go ${{ env.GO_VERSION }}
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
id: go

View File

@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest-xl
steps:
- name: Set up Go ${{ env.GO_VERSION }}
uses: actions/setup-go@v4
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
id: go

View File

@@ -53,14 +53,6 @@
"ruby/ql/lib/codeql/ruby/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
"swift/ql/lib/codeql/swift/dataflow/internal/tainttracking1/TaintTrackingImpl.qll"
],
"DataFlow Java/C#/Go/Ruby/Python/Swift Flow Summaries": [
"java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll",
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll",
"go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll",
"ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll",
"python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll",
"swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll"
],
"SsaReadPosition Java/C#": [
"java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll",
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaReadPositionCommon.qll"
@@ -466,15 +458,6 @@
"python/ql/lib/semmle/python/dataflow/new/internal/SummaryTypeTracker.qll",
"ruby/ql/lib/codeql/ruby/typetracking/internal/SummaryTypeTracker.qll"
],
"AccessPathSyntax": [
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/AccessPathSyntax.qll",
"go/ql/lib/semmle/go/dataflow/internal/AccessPathSyntax.qll",
"java/ql/lib/semmle/code/java/dataflow/internal/AccessPathSyntax.qll",
"javascript/ql/lib/semmle/javascript/frameworks/data/internal/AccessPathSyntax.qll",
"ruby/ql/lib/codeql/ruby/dataflow/internal/AccessPathSyntax.qll",
"python/ql/lib/semmle/python/dataflow/new/internal/AccessPathSyntax.qll",
"swift/ql/lib/codeql/swift/dataflow/internal/AccessPathSyntax.qll"
],
"IncompleteUrlSubstringSanitization": [
"javascript/ql/src/Security/CWE-020/IncompleteUrlSubstringSanitization.qll",
"ruby/ql/src/queries/security/cwe-020/IncompleteUrlSubstringSanitization.qll"

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Changed the output of `Node.toString` to better reflect how many indirections a given dataflow node has.

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -492,10 +492,41 @@ private string toExprString(Node n) {
result = n.asExpr(0).toString()
or
not exists(n.asExpr()) and
result = n.asIndirectExpr(0, 1).toString() + " indirection"
result = stars(n) + n.asIndirectExpr(0, 1).toString()
)
}
private module NodeStars {
private int getNumberOfIndirections(Node n) {
result = n.(RawIndirectOperand).getIndirectionIndex()
or
result = n.(RawIndirectInstruction).getIndirectionIndex()
or
result = n.(VariableNode).getIndirectionIndex()
or
result = n.(PostUpdateNodeImpl).getIndirectionIndex()
or
result = n.(FinalParameterNode).getIndirectionIndex()
}
private int maxNumberOfIndirections() { result = max(getNumberOfIndirections(_)) }
private string repeatStars(int n) {
n = 0 and result = ""
or
n = [1 .. maxNumberOfIndirections()] and
result = "*" + repeatStars(n - 1)
}
/**
* Gets the number of stars (i.e., `*`s) needed to produce the `toString`
* output for `n`.
*/
string stars(Node n) { result = repeatStars(getNumberOfIndirections(n)) }
}
private import NodeStars
/**
* A class that lifts pre-SSA dataflow nodes to regular dataflow nodes.
*/
@@ -786,10 +817,12 @@ class IndirectParameterNode extends Node instanceof IndirectInstruction {
override Location getLocationImpl() { result = this.getParameter().getLocation() }
override string toStringImpl() {
result = this.getParameter().toString() + " indirection"
exists(string prefix | prefix = stars(this) |
result = prefix + this.getParameter().toString()
or
not exists(this.getParameter()) and
result = "this indirection"
result = prefix + "this"
)
}
}
@@ -1016,7 +1049,7 @@ private module RawIndirectNodes {
}
override string toStringImpl() {
result = operandNode(this.getOperand()).toStringImpl() + " indirection"
result = stars(this) + operandNode(this.getOperand()).toStringImpl()
}
}
@@ -1058,7 +1091,7 @@ private module RawIndirectNodes {
}
override string toStringImpl() {
result = instructionNode(this.getInstruction()).toStringImpl() + " indirection"
result = stars(this) + instructionNode(this.getInstruction()).toStringImpl()
}
}
@@ -1151,9 +1184,7 @@ class FinalParameterNode extends Node, TFinalParameterNode {
result instanceof UnknownDefaultLocation
}
override string toStringImpl() {
if indirectionIndex > 1 then result = p.toString() + " indirection" else result = p.toString()
}
override string toStringImpl() { result = stars(this) + p.toString() }
}
/**
@@ -1787,9 +1818,7 @@ class VariableNode extends Node, TVariableNode {
result instanceof UnknownDefaultLocation
}
override string toStringImpl() {
if indirectionIndex = 1 then result = v.toString() else result = v.toString() + " indirection"
}
override string toStringImpl() { result = stars(this) + v.toString() }
}
/**
@@ -2249,6 +2278,25 @@ class Content extends TContent {
abstract predicate impliesClearOf(Content c);
}
private module ContentStars {
private int maxNumberOfIndirections() { result = max(any(Content c).getIndirectionIndex()) }
private string repeatStars(int n) {
n = 0 and result = ""
or
n = [1 .. maxNumberOfIndirections()] and
result = "*" + repeatStars(n - 1)
}
/**
* Gets the number of stars (i.e., `*`s) needed to produce the `toString`
* output for `c`.
*/
string contentStars(Content c) { result = repeatStars(c.getIndirectionIndex() - 1) }
}
private import ContentStars
/** A reference through a non-union instance field. */
class FieldContent extends Content, TFieldContent {
Field f;
@@ -2256,11 +2304,7 @@ class FieldContent extends Content, TFieldContent {
FieldContent() { this = TFieldContent(f, indirectionIndex) }
override string toString() {
indirectionIndex = 1 and result = f.toString()
or
indirectionIndex > 1 and result = f.toString() + " indirection"
}
override string toString() { result = contentStars(this) + f.toString() }
Field getField() { result = f }
@@ -2289,11 +2333,7 @@ class UnionContent extends Content, TUnionContent {
UnionContent() { this = TUnionContent(u, bytes, indirectionIndex) }
override string toString() {
indirectionIndex = 1 and result = u.toString()
or
indirectionIndex > 1 and result = u.toString() + " indirection"
}
override string toString() { result = contentStars(this) + u.toString() }
/** Gets a field of the underlying union of this `UnionContent`, if any. */
Field getAField() { result = u.getAField() and getFieldSize(result) = bytes }

View File

@@ -24,7 +24,7 @@ import semmle.code.cpp.security.BufferWrite
from BufferWrite bw, int destSize
where
bw.hasExplicitLimit() and // has an explicit size limit
destSize = getBufferSize(bw.getDest(), _) and
destSize = max(getBufferSize(bw.getDest(), _)) and
bw.getExplicitLimit() > destSize // but it's larger than the destination
select bw,
"This '" + bw.getBWDesc() + "' operation is limited to " + bw.getExplicitLimit() +

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* The `cpp/badly-bounded-write` query could report false positives when a pointer was first initialized with a literal and later assigned a dynamically allocated array. These false positives now no longer occur.

View File

@@ -1,8 +1,8 @@
edges
| test.cpp:22:27:22:30 | argv indirection | test.cpp:29:13:29:20 | filePath indirection |
| test.cpp:22:27:22:30 | **argv | test.cpp:29:13:29:20 | *filePath |
nodes
| test.cpp:22:27:22:30 | argv indirection | semmle.label | argv indirection |
| test.cpp:29:13:29:20 | filePath indirection | semmle.label | filePath indirection |
| test.cpp:22:27:22:30 | **argv | semmle.label | **argv |
| test.cpp:29:13:29:20 | *filePath | semmle.label | *filePath |
subpaths
#select
| test.cpp:29:13:29:20 | filePath indirection | test.cpp:22:27:22:30 | argv indirection | test.cpp:29:13:29:20 | filePath indirection | Using user-supplied data in a `wordexp` command, without disabling command substitution, can make code vulnerable to command injection. |
| test.cpp:29:13:29:20 | *filePath | test.cpp:22:27:22:30 | **argv | test.cpp:29:13:29:20 | *filePath | Using user-supplied data in a `wordexp` command, without disabling command substitution, can make code vulnerable to command injection. |

View File

@@ -1,87 +1,87 @@
edges
| test.cpp:4:17:4:22 | call to malloc | test.cpp:6:9:6:11 | arr |
| test.cpp:4:17:4:22 | call to malloc | test.cpp:10:9:10:11 | arr |
| test.cpp:19:9:19:16 | mk_array indirection [p] | test.cpp:28:19:28:26 | call to mk_array [p] |
| test.cpp:19:9:19:16 | mk_array indirection [p] | test.cpp:50:18:50:25 | call to mk_array [p] |
| test.cpp:21:5:21:7 | arr indirection [post update] [p] | test.cpp:22:5:22:7 | arr indirection [p] |
| test.cpp:21:5:21:24 | ... = ... | test.cpp:21:5:21:7 | arr indirection [post update] [p] |
| test.cpp:19:9:19:16 | *mk_array [p] | test.cpp:28:19:28:26 | call to mk_array [p] |
| test.cpp:19:9:19:16 | *mk_array [p] | test.cpp:50:18:50:25 | call to mk_array [p] |
| test.cpp:21:5:21:7 | *arr [post update] [p] | test.cpp:22:5:22:7 | *arr [p] |
| test.cpp:21:5:21:24 | ... = ... | test.cpp:21:5:21:7 | *arr [post update] [p] |
| test.cpp:21:13:21:18 | call to malloc | test.cpp:21:5:21:24 | ... = ... |
| test.cpp:22:5:22:7 | arr indirection [p] | test.cpp:19:9:19:16 | mk_array indirection [p] |
| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:31:9:31:11 | arr indirection [p] |
| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:35:9:35:11 | arr indirection [p] |
| test.cpp:31:9:31:11 | arr indirection [p] | test.cpp:31:13:31:13 | p |
| test.cpp:35:9:35:11 | arr indirection [p] | test.cpp:35:13:35:13 | p |
| test.cpp:39:27:39:29 | arr [p] | test.cpp:41:9:41:11 | arr indirection [p] |
| test.cpp:39:27:39:29 | arr [p] | test.cpp:45:9:45:11 | arr indirection [p] |
| test.cpp:41:9:41:11 | arr indirection [p] | test.cpp:41:13:41:13 | p |
| test.cpp:45:9:45:11 | arr indirection [p] | test.cpp:45:13:45:13 | p |
| test.cpp:22:5:22:7 | *arr [p] | test.cpp:19:9:19:16 | *mk_array [p] |
| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:31:9:31:11 | *arr [p] |
| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:35:9:35:11 | *arr [p] |
| test.cpp:31:9:31:11 | *arr [p] | test.cpp:31:13:31:13 | p |
| test.cpp:35:9:35:11 | *arr [p] | test.cpp:35:13:35:13 | p |
| test.cpp:39:27:39:29 | arr [p] | test.cpp:41:9:41:11 | *arr [p] |
| test.cpp:39:27:39:29 | arr [p] | test.cpp:45:9:45:11 | *arr [p] |
| test.cpp:41:9:41:11 | *arr [p] | test.cpp:41:13:41:13 | p |
| test.cpp:45:9:45:11 | *arr [p] | test.cpp:45:13:45:13 | p |
| test.cpp:50:18:50:25 | call to mk_array [p] | test.cpp:39:27:39:29 | arr [p] |
| test.cpp:55:5:55:7 | arr indirection [post update] [p] | test.cpp:56:5:56:7 | arr indirection [p] |
| test.cpp:55:5:55:24 | ... = ... | test.cpp:55:5:55:7 | arr indirection [post update] [p] |
| test.cpp:55:5:55:7 | *arr [post update] [p] | test.cpp:56:5:56:7 | *arr [p] |
| test.cpp:55:5:55:24 | ... = ... | test.cpp:55:5:55:7 | *arr [post update] [p] |
| test.cpp:55:13:55:18 | call to malloc | test.cpp:55:5:55:24 | ... = ... |
| test.cpp:56:5:56:7 | arr indirection [p] | test.cpp:59:9:59:11 | arr indirection [p] |
| test.cpp:56:5:56:7 | arr indirection [p] | test.cpp:63:9:63:11 | arr indirection [p] |
| test.cpp:59:9:59:11 | arr indirection [p] | test.cpp:59:13:59:13 | p |
| test.cpp:63:9:63:11 | arr indirection [p] | test.cpp:63:13:63:13 | p |
| test.cpp:67:10:67:19 | mk_array_p indirection [p] | test.cpp:76:20:76:29 | call to mk_array_p indirection [p] |
| test.cpp:67:10:67:19 | mk_array_p indirection [p] | test.cpp:98:18:98:27 | call to mk_array_p indirection [p] |
| test.cpp:69:5:69:7 | arr indirection [post update] [p] | test.cpp:70:5:70:7 | arr indirection [p] |
| test.cpp:69:5:69:25 | ... = ... | test.cpp:69:5:69:7 | arr indirection [post update] [p] |
| test.cpp:56:5:56:7 | *arr [p] | test.cpp:59:9:59:11 | *arr [p] |
| test.cpp:56:5:56:7 | *arr [p] | test.cpp:63:9:63:11 | *arr [p] |
| test.cpp:59:9:59:11 | *arr [p] | test.cpp:59:13:59:13 | p |
| test.cpp:63:9:63:11 | *arr [p] | test.cpp:63:13:63:13 | p |
| test.cpp:67:10:67:19 | **mk_array_p [p] | test.cpp:76:20:76:29 | *call to mk_array_p [p] |
| test.cpp:67:10:67:19 | **mk_array_p [p] | test.cpp:98:18:98:27 | *call to mk_array_p [p] |
| test.cpp:69:5:69:7 | *arr [post update] [p] | test.cpp:70:5:70:7 | *arr [p] |
| test.cpp:69:5:69:25 | ... = ... | test.cpp:69:5:69:7 | *arr [post update] [p] |
| test.cpp:69:14:69:19 | call to malloc | test.cpp:69:5:69:25 | ... = ... |
| test.cpp:70:5:70:7 | arr indirection [p] | test.cpp:67:10:67:19 | mk_array_p indirection [p] |
| test.cpp:76:20:76:29 | call to mk_array_p indirection [p] | test.cpp:79:9:79:11 | arr indirection [p] |
| test.cpp:76:20:76:29 | call to mk_array_p indirection [p] | test.cpp:83:9:83:11 | arr indirection [p] |
| test.cpp:79:9:79:11 | arr indirection [p] | test.cpp:79:14:79:14 | p |
| test.cpp:83:9:83:11 | arr indirection [p] | test.cpp:83:14:83:14 | p |
| test.cpp:87:28:87:30 | arr indirection [p] | test.cpp:89:9:89:11 | arr indirection [p] |
| test.cpp:87:28:87:30 | arr indirection [p] | test.cpp:93:9:93:11 | arr indirection [p] |
| test.cpp:89:9:89:11 | arr indirection [p] | test.cpp:89:14:89:14 | p |
| test.cpp:93:9:93:11 | arr indirection [p] | test.cpp:93:14:93:14 | p |
| test.cpp:98:18:98:27 | call to mk_array_p indirection [p] | test.cpp:87:28:87:30 | arr indirection [p] |
| test.cpp:70:5:70:7 | *arr [p] | test.cpp:67:10:67:19 | **mk_array_p [p] |
| test.cpp:76:20:76:29 | *call to mk_array_p [p] | test.cpp:79:9:79:11 | *arr [p] |
| test.cpp:76:20:76:29 | *call to mk_array_p [p] | test.cpp:83:9:83:11 | *arr [p] |
| test.cpp:79:9:79:11 | *arr [p] | test.cpp:79:14:79:14 | p |
| test.cpp:83:9:83:11 | *arr [p] | test.cpp:83:14:83:14 | p |
| test.cpp:87:28:87:30 | *arr [p] | test.cpp:89:9:89:11 | *arr [p] |
| test.cpp:87:28:87:30 | *arr [p] | test.cpp:93:9:93:11 | *arr [p] |
| test.cpp:89:9:89:11 | *arr [p] | test.cpp:89:14:89:14 | p |
| test.cpp:93:9:93:11 | *arr [p] | test.cpp:93:14:93:14 | p |
| test.cpp:98:18:98:27 | *call to mk_array_p [p] | test.cpp:87:28:87:30 | *arr [p] |
nodes
| test.cpp:4:17:4:22 | call to malloc | semmle.label | call to malloc |
| test.cpp:6:9:6:11 | arr | semmle.label | arr |
| test.cpp:10:9:10:11 | arr | semmle.label | arr |
| test.cpp:19:9:19:16 | mk_array indirection [p] | semmle.label | mk_array indirection [p] |
| test.cpp:21:5:21:7 | arr indirection [post update] [p] | semmle.label | arr indirection [post update] [p] |
| test.cpp:19:9:19:16 | *mk_array [p] | semmle.label | *mk_array [p] |
| test.cpp:21:5:21:7 | *arr [post update] [p] | semmle.label | *arr [post update] [p] |
| test.cpp:21:5:21:24 | ... = ... | semmle.label | ... = ... |
| test.cpp:21:13:21:18 | call to malloc | semmle.label | call to malloc |
| test.cpp:22:5:22:7 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:22:5:22:7 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:28:19:28:26 | call to mk_array [p] | semmle.label | call to mk_array [p] |
| test.cpp:31:9:31:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:31:9:31:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:31:13:31:13 | p | semmle.label | p |
| test.cpp:35:9:35:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:35:9:35:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:35:13:35:13 | p | semmle.label | p |
| test.cpp:39:27:39:29 | arr [p] | semmle.label | arr [p] |
| test.cpp:41:9:41:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:41:9:41:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:41:13:41:13 | p | semmle.label | p |
| test.cpp:45:9:45:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:45:9:45:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:45:13:45:13 | p | semmle.label | p |
| test.cpp:50:18:50:25 | call to mk_array [p] | semmle.label | call to mk_array [p] |
| test.cpp:55:5:55:7 | arr indirection [post update] [p] | semmle.label | arr indirection [post update] [p] |
| test.cpp:55:5:55:7 | *arr [post update] [p] | semmle.label | *arr [post update] [p] |
| test.cpp:55:5:55:24 | ... = ... | semmle.label | ... = ... |
| test.cpp:55:13:55:18 | call to malloc | semmle.label | call to malloc |
| test.cpp:56:5:56:7 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:59:9:59:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:56:5:56:7 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:59:9:59:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:59:13:59:13 | p | semmle.label | p |
| test.cpp:63:9:63:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:63:9:63:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:63:13:63:13 | p | semmle.label | p |
| test.cpp:67:10:67:19 | mk_array_p indirection [p] | semmle.label | mk_array_p indirection [p] |
| test.cpp:69:5:69:7 | arr indirection [post update] [p] | semmle.label | arr indirection [post update] [p] |
| test.cpp:67:10:67:19 | **mk_array_p [p] | semmle.label | **mk_array_p [p] |
| test.cpp:69:5:69:7 | *arr [post update] [p] | semmle.label | *arr [post update] [p] |
| test.cpp:69:5:69:25 | ... = ... | semmle.label | ... = ... |
| test.cpp:69:14:69:19 | call to malloc | semmle.label | call to malloc |
| test.cpp:70:5:70:7 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:76:20:76:29 | call to mk_array_p indirection [p] | semmle.label | call to mk_array_p indirection [p] |
| test.cpp:79:9:79:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:70:5:70:7 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:76:20:76:29 | *call to mk_array_p [p] | semmle.label | *call to mk_array_p [p] |
| test.cpp:79:9:79:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:79:14:79:14 | p | semmle.label | p |
| test.cpp:83:9:83:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:83:9:83:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:83:14:83:14 | p | semmle.label | p |
| test.cpp:87:28:87:30 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:89:9:89:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:87:28:87:30 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:89:9:89:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:89:14:89:14 | p | semmle.label | p |
| test.cpp:93:9:93:11 | arr indirection [p] | semmle.label | arr indirection [p] |
| test.cpp:93:9:93:11 | *arr [p] | semmle.label | *arr [p] |
| test.cpp:93:14:93:14 | p | semmle.label | p |
| test.cpp:98:18:98:27 | call to mk_array_p indirection [p] | semmle.label | call to mk_array_p indirection [p] |
| test.cpp:98:18:98:27 | *call to mk_array_p [p] | semmle.label | *call to mk_array_p [p] |
subpaths
#select
| test.cpp:10:9:10:11 | arr | test.cpp:4:17:4:22 | call to malloc | test.cpp:10:9:10:11 | arr | Off-by one error allocated at $@ bounded by $@. | test.cpp:4:17:4:22 | call to malloc | call to malloc | test.cpp:4:24:4:27 | size | size |

View File

@@ -35,10 +35,10 @@ edges
| test.cpp:136:9:136:16 | ... += ... | test.cpp:138:13:138:15 | arr |
| test.cpp:143:18:143:21 | asdf | test.cpp:134:25:134:27 | arr |
| test.cpp:143:18:143:21 | asdf | test.cpp:143:18:143:21 | asdf |
| test.cpp:146:26:146:26 | p indirection | test.cpp:147:4:147:9 | -- ... |
| test.cpp:146:26:146:26 | *p | test.cpp:147:4:147:9 | -- ... |
| test.cpp:156:12:156:14 | buf | test.cpp:156:12:156:18 | ... + ... |
| test.cpp:156:12:156:18 | ... + ... | test.cpp:158:17:158:18 | & ... indirection |
| test.cpp:158:17:158:18 | & ... indirection | test.cpp:146:26:146:26 | p indirection |
| test.cpp:156:12:156:18 | ... + ... | test.cpp:158:17:158:18 | *& ... |
| test.cpp:158:17:158:18 | *& ... | test.cpp:146:26:146:26 | *p |
| test.cpp:218:23:218:28 | buffer | test.cpp:220:5:220:11 | access to array |
| test.cpp:218:23:218:28 | buffer | test.cpp:221:5:221:11 | access to array |
| test.cpp:229:25:229:29 | array | test.cpp:231:5:231:10 | access to array |
@@ -121,11 +121,11 @@ nodes
| test.cpp:138:13:138:15 | arr | semmle.label | arr |
| test.cpp:143:18:143:21 | asdf | semmle.label | asdf |
| test.cpp:143:18:143:21 | asdf | semmle.label | asdf |
| test.cpp:146:26:146:26 | p indirection | semmle.label | p indirection |
| test.cpp:146:26:146:26 | *p | semmle.label | *p |
| test.cpp:147:4:147:9 | -- ... | semmle.label | -- ... |
| test.cpp:156:12:156:14 | buf | semmle.label | buf |
| test.cpp:156:12:156:18 | ... + ... | semmle.label | ... + ... |
| test.cpp:158:17:158:18 | & ... indirection | semmle.label | & ... indirection |
| test.cpp:158:17:158:18 | *& ... | semmle.label | *& ... |
| test.cpp:218:23:218:28 | buffer | semmle.label | buffer |
| test.cpp:220:5:220:11 | access to array | semmle.label | access to array |
| test.cpp:221:5:221:11 | access to array | semmle.label | access to array |

View File

@@ -1,5 +1,5 @@
edges
| test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | func indirection |
| test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | *func |
| test.cpp:74:24:74:30 | medical | test.cpp:78:24:78:27 | temp |
| test.cpp:74:24:74:30 | medical | test.cpp:81:22:81:28 | medical |
| test.cpp:77:16:77:22 | medical | test.cpp:78:24:78:27 | temp |
@@ -10,7 +10,7 @@ edges
| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode |
| test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode |
nodes
| test.cpp:45:7:45:10 | func indirection | semmle.label | func indirection |
| test.cpp:45:7:45:10 | *func | semmle.label | *func |
| test.cpp:45:18:45:23 | buffer | semmle.label | buffer |
| test.cpp:57:9:57:18 | theZipcode | semmle.label | theZipcode |
| test.cpp:74:24:74:30 | medical | semmle.label | medical |
@@ -25,7 +25,7 @@ nodes
| test.cpp:99:42:99:51 | theZipcode | semmle.label | theZipcode |
| test.cpp:99:61:99:70 | theZipcode | semmle.label | theZipcode |
subpaths
| test.cpp:81:22:81:28 | medical | test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | func indirection | test.cpp:81:17:81:20 | call to func |
| test.cpp:81:22:81:28 | medical | test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | *func | test.cpp:81:17:81:20 | call to func |
#select
| test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | test.cpp:57:9:57:18 | theZipcode | This write into the external location 'theZipcode' may contain unencrypted data from $@. | test.cpp:57:9:57:18 | theZipcode | this source of private data. |
| test.cpp:74:24:74:30 | medical | test.cpp:74:24:74:30 | medical | test.cpp:74:24:74:30 | medical | This write into the external location 'medical' may contain unencrypted data from $@. | test.cpp:74:24:74:30 | medical | this source of private data. |

View File

@@ -12,14 +12,14 @@ compatibleTypesReflexive
unreachableNodeCCtx
localCallNodes
postIsNotPre
| flowOut.cpp:84:3:84:14 | access to array indirection | PostUpdateNode should not equal its pre-update node. |
| flowOut.cpp:84:3:84:14 | *access to array | PostUpdateNode should not equal its pre-update node. |
postHasUniquePre
uniquePostUpdate
postIsInSameCallable
reverseRead
argHasPostUpdate
postWithInFlow
| flowOut.cpp:84:3:84:14 | access to array indirection | PostUpdateNode should not be the target of local flow. |
| flowOut.cpp:84:3:84:14 | *access to array | PostUpdateNode should not be the target of local flow. |
| test.cpp:384:10:384:13 | memcpy output argument | PostUpdateNode should not be the target of local flow. |
| test.cpp:391:10:391:13 | memcpy output argument | PostUpdateNode should not be the target of local flow. |
| test.cpp:400:10:400:13 | memcpy output argument | PostUpdateNode should not be the target of local flow. |

View File

@@ -142,16 +142,16 @@ irFlow
| BarrierGuard.cpp:60:11:60:16 | call to source | BarrierGuard.cpp:66:14:66:14 | x |
| acrossLinkTargets.cpp:19:27:19:32 | call to source | acrossLinkTargets.cpp:12:8:12:8 | x |
| clang.cpp:12:9:12:20 | sourceArray1 | clang.cpp:18:8:18:19 | sourceArray1 |
| clang.cpp:12:9:12:20 | sourceArray1 | clang.cpp:23:17:23:29 | & ... indirection |
| clang.cpp:12:9:12:20 | sourceArray1 | clang.cpp:23:17:23:29 | *& ... |
| clang.cpp:29:27:29:32 | call to source | clang.cpp:30:27:30:28 | m1 |
| clang.cpp:29:27:29:32 | call to source | clang.cpp:31:27:31:34 | call to getFirst |
| clang.cpp:35:32:35:37 | call to source | clang.cpp:38:10:38:11 | m2 |
| clang.cpp:40:42:40:47 | call to source | clang.cpp:42:18:42:19 | m2 |
| clang.cpp:44:35:44:40 | call to source | clang.cpp:46:17:46:18 | m2 |
| clang.cpp:50:7:50:16 | definition of stackArray | clang.cpp:52:8:52:17 | stackArray |
| clang.cpp:50:25:50:30 | call to source | clang.cpp:53:17:53:26 | stackArray indirection |
| clang.cpp:50:35:50:40 | call to source | clang.cpp:53:17:53:26 | stackArray indirection |
| clang.cpp:51:19:51:24 | call to source | clang.cpp:53:17:53:26 | stackArray indirection |
| clang.cpp:50:25:50:30 | call to source | clang.cpp:53:17:53:26 | *stackArray |
| clang.cpp:50:35:50:40 | call to source | clang.cpp:53:17:53:26 | *stackArray |
| clang.cpp:51:19:51:24 | call to source | clang.cpp:53:17:53:26 | *stackArray |
| dispatch.cpp:9:37:9:42 | call to source | dispatch.cpp:35:16:35:25 | call to notSource1 |
| dispatch.cpp:9:37:9:42 | call to source | dispatch.cpp:43:15:43:24 | call to notSource1 |
| dispatch.cpp:10:37:10:42 | call to source | dispatch.cpp:36:16:36:25 | call to notSource2 |
@@ -210,7 +210,7 @@ irFlow
| test.cpp:75:7:75:8 | definition of u1 | test.cpp:76:8:76:9 | u1 |
| test.cpp:83:7:83:8 | definition of u2 | test.cpp:84:8:84:18 | ... ? ... : ... |
| test.cpp:83:7:83:8 | definition of u2 | test.cpp:86:8:86:9 | i1 |
| test.cpp:89:28:89:34 | source1 indirection | test.cpp:90:8:90:14 | source1 |
| test.cpp:89:28:89:34 | *source1 | test.cpp:90:8:90:14 | source1 |
| test.cpp:100:13:100:18 | call to source | test.cpp:103:10:103:12 | ref |
| test.cpp:138:27:138:32 | call to source | test.cpp:140:8:140:8 | y |
| test.cpp:151:33:151:38 | call to source | test.cpp:144:8:144:8 | s |
@@ -256,19 +256,19 @@ irFlow
| test.cpp:531:29:531:34 | call to source | test.cpp:532:8:532:9 | * ... |
| test.cpp:547:9:547:9 | definition of x | test.cpp:536:10:536:11 | * ... |
| test.cpp:551:9:551:9 | definition of y | test.cpp:541:10:541:10 | y |
| test.cpp:562:17:562:31 | call to indirect_source indirection | test.cpp:566:10:566:19 | * ... |
| test.cpp:562:17:562:31 | call to indirect_source indirection | test.cpp:568:10:568:19 | * ... |
| test.cpp:562:17:562:31 | call to indirect_source indirection | test.cpp:572:10:572:19 | * ... |
| test.cpp:562:17:562:31 | call to indirect_source indirection | test.cpp:578:10:578:19 | * ... |
| test.cpp:576:17:576:31 | call to indirect_source indirection | test.cpp:566:10:566:19 | * ... |
| test.cpp:576:17:576:31 | call to indirect_source indirection | test.cpp:568:10:568:19 | * ... |
| test.cpp:576:17:576:31 | call to indirect_source indirection | test.cpp:572:10:572:19 | * ... |
| test.cpp:576:17:576:31 | call to indirect_source indirection | test.cpp:578:10:578:19 | * ... |
| test.cpp:594:12:594:26 | call to indirect_source indirection | test.cpp:597:8:597:13 | * ... |
| test.cpp:562:17:562:31 | *call to indirect_source | test.cpp:566:10:566:19 | * ... |
| test.cpp:562:17:562:31 | *call to indirect_source | test.cpp:568:10:568:19 | * ... |
| test.cpp:562:17:562:31 | *call to indirect_source | test.cpp:572:10:572:19 | * ... |
| test.cpp:562:17:562:31 | *call to indirect_source | test.cpp:578:10:578:19 | * ... |
| test.cpp:576:17:576:31 | *call to indirect_source | test.cpp:566:10:566:19 | * ... |
| test.cpp:576:17:576:31 | *call to indirect_source | test.cpp:568:10:568:19 | * ... |
| test.cpp:576:17:576:31 | *call to indirect_source | test.cpp:572:10:572:19 | * ... |
| test.cpp:576:17:576:31 | *call to indirect_source | test.cpp:578:10:578:19 | * ... |
| test.cpp:594:12:594:26 | *call to indirect_source | test.cpp:597:8:597:13 | * ... |
| test.cpp:601:20:601:20 | intPointerSource output argument | test.cpp:603:8:603:9 | * ... |
| test.cpp:607:20:607:20 | intPointerSource output argument | test.cpp:609:8:609:9 | * ... |
| test.cpp:614:20:614:20 | intPointerSource output argument | test.cpp:616:8:616:17 | * ... |
| test.cpp:628:20:628:25 | intPointerSource output argument | test.cpp:629:17:629:22 | buffer indirection |
| test.cpp:628:20:628:25 | intPointerSource output argument | test.cpp:629:17:629:22 | *buffer |
| test.cpp:633:18:633:23 | call to source | test.cpp:634:8:634:8 | x |
| test.cpp:646:7:646:12 | call to source | test.cpp:645:8:645:8 | x |
| test.cpp:660:7:660:12 | call to source | test.cpp:658:8:658:8 | x |
@@ -283,23 +283,23 @@ irFlow
| test.cpp:775:32:775:37 | call to source | test.cpp:760:10:760:10 | x |
| test.cpp:788:31:788:36 | call to source | test.cpp:782:12:782:12 | x |
| test.cpp:790:31:790:36 | call to source | test.cpp:782:12:782:12 | x |
| test.cpp:797:22:797:28 | intPointerSource output argument | test.cpp:798:19:798:25 | content indirection |
| test.cpp:808:25:808:39 | call to indirect_source indirection | test.cpp:813:19:813:35 | * ... indirection |
| test.cpp:797:22:797:28 | intPointerSource output argument | test.cpp:798:19:798:25 | *content |
| test.cpp:808:25:808:39 | *call to indirect_source | test.cpp:813:19:813:35 | ** ... |
| test.cpp:818:26:818:31 | call to source | test.cpp:823:10:823:27 | * ... |
| test.cpp:832:21:832:26 | call to source | test.cpp:836:10:836:22 | global_direct |
| test.cpp:842:11:842:16 | call to source | test.cpp:844:8:844:8 | y |
| test.cpp:846:13:846:27 | call to indirect_source indirection | test.cpp:848:17:848:25 | rpx indirection |
| test.cpp:846:13:846:27 | *call to indirect_source | test.cpp:848:17:848:25 | *rpx |
| test.cpp:853:55:853:62 | call to source | test.cpp:854:10:854:36 | * ... |
| test.cpp:860:54:860:59 | call to source | test.cpp:861:10:861:37 | static_local_pointer_dynamic |
| test.cpp:872:46:872:51 | call to source | test.cpp:875:10:875:31 | global_pointer_dynamic |
| test.cpp:880:64:880:83 | indirect_source(1) indirection | test.cpp:883:10:883:45 | static_local_array_static_indirect_1 |
| test.cpp:881:64:881:83 | indirect_source(2) indirection | test.cpp:886:19:886:54 | static_local_array_static_indirect_2 indirection |
| test.cpp:880:64:880:83 | indirect_source(1) | test.cpp:883:10:883:45 | static_local_array_static_indirect_1 |
| test.cpp:881:64:881:83 | *indirect_source(2) | test.cpp:886:19:886:54 | *static_local_array_static_indirect_2 |
| test.cpp:890:54:890:61 | source | test.cpp:893:10:893:36 | static_local_pointer_static |
| test.cpp:891:65:891:84 | indirect_source(1) indirection | test.cpp:895:19:895:56 | static_local_pointer_static_indirect_1 indirection |
| test.cpp:901:56:901:75 | indirect_source(1) indirection | test.cpp:907:10:907:39 | global_array_static_indirect_1 |
| test.cpp:902:56:902:75 | indirect_source(2) indirection | test.cpp:911:19:911:48 | global_array_static_indirect_2 indirection |
| test.cpp:891:65:891:84 | *indirect_source(1) | test.cpp:895:19:895:56 | *static_local_pointer_static_indirect_1 |
| test.cpp:901:56:901:75 | indirect_source(1) | test.cpp:907:10:907:39 | global_array_static_indirect_1 |
| test.cpp:902:56:902:75 | *indirect_source(2) | test.cpp:911:19:911:48 | *global_array_static_indirect_2 |
| test.cpp:914:46:914:53 | source | test.cpp:919:10:919:30 | global_pointer_static |
| test.cpp:915:57:915:76 | indirect_source(1) indirection | test.cpp:921:19:921:50 | global_pointer_static_indirect_1 indirection |
| test.cpp:915:57:915:76 | *indirect_source(1) | test.cpp:921:19:921:50 | *global_pointer_static_indirect_1 |
| true_upon_entry.cpp:9:11:9:16 | call to source | true_upon_entry.cpp:13:8:13:8 | x |
| true_upon_entry.cpp:17:11:17:16 | call to source | true_upon_entry.cpp:21:8:21:8 | x |
| true_upon_entry.cpp:27:9:27:14 | call to source | true_upon_entry.cpp:29:8:29:8 | x |

File diff suppressed because it is too large Load Diff

View File

@@ -35,8 +35,8 @@ postWithInFlow
| try_catch.cpp:7:8:7:8 | call to exception | PostUpdateNode should not be the target of local flow. |
viableImplInCallContextTooLarge
uniqueParameterNodeAtPosition
| ir.cpp:726:6:726:13 | TryCatch | 0 indirection | ir.cpp:737:22:737:22 | s indirection | Parameters with overlapping positions. |
| ir.cpp:726:6:726:13 | TryCatch | 0 indirection | ir.cpp:740:24:740:24 | e indirection | Parameters with overlapping positions. |
| ir.cpp:726:6:726:13 | TryCatch | 0 indirection | ir.cpp:737:22:737:22 | *s | Parameters with overlapping positions. |
| ir.cpp:726:6:726:13 | TryCatch | 0 indirection | ir.cpp:740:24:740:24 | *e | Parameters with overlapping positions. |
uniqueParameterNodePosition
uniqueContentApprox
identityLocalStep

View File

@@ -12,16 +12,16 @@ edges
| test_free.cpp:233:14:233:15 | pointer to free output argument | test_free.cpp:236:9:236:10 | * ... |
| test_free.cpp:239:14:239:15 | pointer to free output argument | test_free.cpp:241:9:241:10 | * ... |
| test_free.cpp:245:10:245:11 | pointer to free output argument | test_free.cpp:246:9:246:10 | * ... |
| test_free.cpp:277:8:277:8 | s indirection [post update] [buf] | test_free.cpp:278:12:278:12 | s indirection [buf] |
| test_free.cpp:277:8:277:13 | pointer to free output argument | test_free.cpp:277:8:277:8 | s indirection [post update] [buf] |
| test_free.cpp:278:12:278:12 | s indirection [buf] | test_free.cpp:278:15:278:17 | buf |
| test_free.cpp:282:8:282:8 | s indirection [post update] [buf] | test_free.cpp:283:12:283:12 | s indirection [buf] |
| test_free.cpp:282:8:282:12 | pointer to free output argument | test_free.cpp:282:8:282:8 | s indirection [post update] [buf] |
| test_free.cpp:283:12:283:12 | s indirection [buf] | test_free.cpp:283:14:283:16 | buf |
| test_free.cpp:277:8:277:8 | *s [post update] [buf] | test_free.cpp:278:12:278:12 | *s [buf] |
| test_free.cpp:277:8:277:13 | pointer to free output argument | test_free.cpp:277:8:277:8 | *s [post update] [buf] |
| test_free.cpp:278:12:278:12 | *s [buf] | test_free.cpp:278:15:278:17 | buf |
| test_free.cpp:282:8:282:8 | *s [post update] [buf] | test_free.cpp:283:12:283:12 | *s [buf] |
| test_free.cpp:282:8:282:12 | pointer to free output argument | test_free.cpp:282:8:282:8 | *s [post update] [buf] |
| test_free.cpp:283:12:283:12 | *s [buf] | test_free.cpp:283:14:283:16 | buf |
| test_free.cpp:293:8:293:10 | pointer to free output argument | test_free.cpp:294:3:294:13 | ... = ... |
| test_free.cpp:294:3:294:3 | s indirection [post update] [buf] | test_free.cpp:295:12:295:12 | s indirection [buf] |
| test_free.cpp:294:3:294:13 | ... = ... | test_free.cpp:294:3:294:3 | s indirection [post update] [buf] |
| test_free.cpp:295:12:295:12 | s indirection [buf] | test_free.cpp:295:14:295:16 | buf |
| test_free.cpp:294:3:294:3 | *s [post update] [buf] | test_free.cpp:295:12:295:12 | *s [buf] |
| test_free.cpp:294:3:294:13 | ... = ... | test_free.cpp:294:3:294:3 | *s [post update] [buf] |
| test_free.cpp:295:12:295:12 | *s [buf] | test_free.cpp:295:14:295:16 | buf |
nodes
| test_free.cpp:11:10:11:10 | pointer to free output argument | semmle.label | pointer to free output argument |
| test_free.cpp:12:5:12:5 | a | semmle.label | a |
@@ -48,18 +48,18 @@ nodes
| test_free.cpp:241:9:241:10 | * ... | semmle.label | * ... |
| test_free.cpp:245:10:245:11 | pointer to free output argument | semmle.label | pointer to free output argument |
| test_free.cpp:246:9:246:10 | * ... | semmle.label | * ... |
| test_free.cpp:277:8:277:8 | s indirection [post update] [buf] | semmle.label | s indirection [post update] [buf] |
| test_free.cpp:277:8:277:8 | *s [post update] [buf] | semmle.label | *s [post update] [buf] |
| test_free.cpp:277:8:277:13 | pointer to free output argument | semmle.label | pointer to free output argument |
| test_free.cpp:278:12:278:12 | s indirection [buf] | semmle.label | s indirection [buf] |
| test_free.cpp:278:12:278:12 | *s [buf] | semmle.label | *s [buf] |
| test_free.cpp:278:15:278:17 | buf | semmle.label | buf |
| test_free.cpp:282:8:282:8 | s indirection [post update] [buf] | semmle.label | s indirection [post update] [buf] |
| test_free.cpp:282:8:282:8 | *s [post update] [buf] | semmle.label | *s [post update] [buf] |
| test_free.cpp:282:8:282:12 | pointer to free output argument | semmle.label | pointer to free output argument |
| test_free.cpp:283:12:283:12 | s indirection [buf] | semmle.label | s indirection [buf] |
| test_free.cpp:283:12:283:12 | *s [buf] | semmle.label | *s [buf] |
| test_free.cpp:283:14:283:16 | buf | semmle.label | buf |
| test_free.cpp:293:8:293:10 | pointer to free output argument | semmle.label | pointer to free output argument |
| test_free.cpp:294:3:294:3 | s indirection [post update] [buf] | semmle.label | s indirection [post update] [buf] |
| test_free.cpp:294:3:294:3 | *s [post update] [buf] | semmle.label | *s [post update] [buf] |
| test_free.cpp:294:3:294:13 | ... = ... | semmle.label | ... = ... |
| test_free.cpp:295:12:295:12 | s indirection [buf] | semmle.label | s indirection [buf] |
| test_free.cpp:295:12:295:12 | *s [buf] | semmle.label | *s [buf] |
| test_free.cpp:295:14:295:16 | buf | semmle.label | buf |
subpaths
#select

View File

@@ -1,8 +1,8 @@
edges
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | data indirection |
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | *data |
nodes
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | semmle.label | fgets output argument |
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | data indirection | semmle.label | data indirection |
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | *data | semmle.label | *data |
subpaths
#select
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | data | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | data indirection | This argument to a file access function is derived from $@ and then passed to fopen(filename). | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | user input (string read by fgets) |
| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | data | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | *data | This argument to a file access function is derived from $@ and then passed to fopen(filename). | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | user input (string read by fgets) |

View File

@@ -1,22 +1,22 @@
edges
| test.c:8:27:8:30 | argv indirection | test.c:17:11:17:18 | fileName indirection |
| test.c:8:27:8:30 | argv indirection | test.c:32:11:32:18 | fileName indirection |
| test.c:8:27:8:30 | argv indirection | test.c:57:10:57:16 | access to array indirection |
| test.c:37:17:37:24 | scanf output argument | test.c:38:11:38:18 | fileName indirection |
| test.c:43:17:43:24 | scanf output argument | test.c:44:11:44:18 | fileName indirection |
| test.c:8:27:8:30 | **argv | test.c:17:11:17:18 | *fileName |
| test.c:8:27:8:30 | **argv | test.c:32:11:32:18 | *fileName |
| test.c:8:27:8:30 | **argv | test.c:57:10:57:16 | *access to array |
| test.c:37:17:37:24 | scanf output argument | test.c:38:11:38:18 | *fileName |
| test.c:43:17:43:24 | scanf output argument | test.c:44:11:44:18 | *fileName |
nodes
| test.c:8:27:8:30 | argv indirection | semmle.label | argv indirection |
| test.c:17:11:17:18 | fileName indirection | semmle.label | fileName indirection |
| test.c:32:11:32:18 | fileName indirection | semmle.label | fileName indirection |
| test.c:8:27:8:30 | **argv | semmle.label | **argv |
| test.c:17:11:17:18 | *fileName | semmle.label | *fileName |
| test.c:32:11:32:18 | *fileName | semmle.label | *fileName |
| test.c:37:17:37:24 | scanf output argument | semmle.label | scanf output argument |
| test.c:38:11:38:18 | fileName indirection | semmle.label | fileName indirection |
| test.c:38:11:38:18 | *fileName | semmle.label | *fileName |
| test.c:43:17:43:24 | scanf output argument | semmle.label | scanf output argument |
| test.c:44:11:44:18 | fileName indirection | semmle.label | fileName indirection |
| test.c:57:10:57:16 | access to array indirection | semmle.label | access to array indirection |
| test.c:44:11:44:18 | *fileName | semmle.label | *fileName |
| test.c:57:10:57:16 | *access to array | semmle.label | *access to array |
subpaths
#select
| test.c:17:11:17:18 | fileName | test.c:8:27:8:30 | argv indirection | test.c:17:11:17:18 | fileName indirection | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:8:27:8:30 | argv indirection | user input (a command-line argument) |
| test.c:32:11:32:18 | fileName | test.c:8:27:8:30 | argv indirection | test.c:32:11:32:18 | fileName indirection | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:8:27:8:30 | argv indirection | user input (a command-line argument) |
| test.c:38:11:38:18 | fileName | test.c:37:17:37:24 | scanf output argument | test.c:38:11:38:18 | fileName indirection | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:37:17:37:24 | scanf output argument | user input (value read by scanf) |
| test.c:44:11:44:18 | fileName | test.c:43:17:43:24 | scanf output argument | test.c:44:11:44:18 | fileName indirection | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:43:17:43:24 | scanf output argument | user input (value read by scanf) |
| test.c:57:10:57:16 | access to array | test.c:8:27:8:30 | argv indirection | test.c:57:10:57:16 | access to array indirection | This argument to a file access function is derived from $@ and then passed to read(fileName), which calls fopen(filename). | test.c:8:27:8:30 | argv indirection | user input (a command-line argument) |
| test.c:17:11:17:18 | fileName | test.c:8:27:8:30 | **argv | test.c:17:11:17:18 | *fileName | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:8:27:8:30 | **argv | user input (a command-line argument) |
| test.c:32:11:32:18 | fileName | test.c:8:27:8:30 | **argv | test.c:32:11:32:18 | *fileName | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:8:27:8:30 | **argv | user input (a command-line argument) |
| test.c:38:11:38:18 | fileName | test.c:37:17:37:24 | scanf output argument | test.c:38:11:38:18 | *fileName | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:37:17:37:24 | scanf output argument | user input (value read by scanf) |
| test.c:44:11:44:18 | fileName | test.c:43:17:43:24 | scanf output argument | test.c:44:11:44:18 | *fileName | This argument to a file access function is derived from $@ and then passed to fopen(filename). | test.c:43:17:43:24 | scanf output argument | user input (value read by scanf) |
| test.c:57:10:57:16 | access to array | test.c:8:27:8:30 | **argv | test.c:57:10:57:16 | *access to array | This argument to a file access function is derived from $@ and then passed to read(fileName), which calls fopen(filename). | test.c:8:27:8:30 | **argv | user input (a command-line argument) |

View File

@@ -1,16 +1,16 @@
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: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 |
| tests.cpp:26:15:26:23 | **badSource | tests.cpp:51:12:51:20 | *call to badSource |
| tests.cpp:33:34:33:39 | *call to getenv | tests.cpp:38:39:38:49 | *environment |
| tests.cpp:38:25:38:36 | strncat output argument | tests.cpp:26:15:26:23 | **badSource |
| tests.cpp:38:39:38:49 | *environment | tests.cpp:38:25:38:36 | strncat output argument |
| tests.cpp:51:12:51:20 | *call to badSource | tests.cpp:53:16:53:19 | *data |
nodes
| tests.cpp:26:15:26:23 | badSource indirection | semmle.label | badSource indirection |
| tests.cpp:33:34:33:39 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:26:15:26:23 | **badSource | semmle.label | **badSource |
| tests.cpp:33:34:33:39 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:38:25:38:36 | strncat output argument | semmle.label | strncat output argument |
| tests.cpp:38:39:38:49 | environment indirection | semmle.label | environment indirection |
| tests.cpp:51:12:51:20 | call to badSource indirection | semmle.label | call to badSource indirection |
| tests.cpp:53:16:53:19 | data indirection | semmle.label | data indirection |
| tests.cpp:38:39:38:49 | *environment | semmle.label | *environment |
| tests.cpp:51:12:51:20 | *call to badSource | semmle.label | *call to badSource |
| tests.cpp:53:16:53:19 | *data | semmle.label | *data |
subpaths
#select
| tests.cpp:53:16:53:19 | data | tests.cpp:33:34:33:39 | call to getenv indirection | tests.cpp:53:16:53:19 | data indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | tests.cpp:33:34:33:39 | call to getenv indirection | user input (an environment variable) | tests.cpp:38:25:38:36 | strncat output argument | strncat output argument |
| tests.cpp:53:16:53:19 | data | tests.cpp:33:34:33:39 | *call to getenv | tests.cpp:53:16:53:19 | *data | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | tests.cpp:33:34:33:39 | *call to getenv | user input (an environment variable) | tests.cpp:38:25:38:36 | strncat output argument | strncat output argument |

View File

@@ -1,164 +1,164 @@
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: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: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 |
| test.cpp:82:9:82:16 | fread output argument | test.cpp:84:20:84:27 | filename indirection |
| test.cpp:84:11:84:17 | strncat output argument | test.cpp:85:32:85:38 | command indirection |
| test.cpp:84:20:84:27 | filename indirection | test.cpp:84:11:84:17 | strncat output argument |
| test.cpp:91:9:91:16 | fread output argument | test.cpp:93:17:93:24 | filename indirection |
| test.cpp:93:11:93:14 | strncat output argument | test.cpp:94:45:94:48 | path indirection |
| test.cpp:93:17:93:24 | filename indirection | test.cpp:93:11:93:14 | strncat output argument |
| test.cpp:106:20:106:38 | call to getenv indirection | test.cpp:107:33:107:36 | path indirection |
| test.cpp:107:31:107:31 | call to operator+ | test.cpp:108:18:108:22 | call to c_str indirection |
| test.cpp:107:33:107:36 | path indirection | test.cpp:107:31:107:31 | call to operator+ |
| test.cpp:113:20:113:38 | call to getenv indirection | test.cpp:114:19:114:22 | path indirection |
| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | call to c_str indirection |
| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | call to c_str indirection |
| test.cpp:15:27:15:30 | **argv | test.cpp:22:45:22:52 | *userName |
| test.cpp:22:13:22:20 | sprintf output argument | test.cpp:23:12:23:19 | *command1 |
| test.cpp:22:45:22:52 | *userName | test.cpp:22:13:22:20 | sprintf output argument |
| test.cpp:47:21:47:26 | *call to getenv | test.cpp:50:35:50:43 | *envCflags |
| test.cpp:50:11:50:17 | sprintf output argument | test.cpp:51:10:51:16 | *command |
| test.cpp:50:35:50:43 | *envCflags | test.cpp:50:11:50:17 | sprintf output argument |
| test.cpp:62:9:62:16 | fread output argument | test.cpp:64:20:64:27 | *filename |
| test.cpp:64:11:64:17 | strncat output argument | test.cpp:65:10:65:16 | *command |
| test.cpp:64:20:64:27 | *filename | test.cpp:64:11:64:17 | strncat output argument |
| test.cpp:82:9:82:16 | fread output argument | test.cpp:84:20:84:27 | *filename |
| test.cpp:84:11:84:17 | strncat output argument | test.cpp:85:32:85:38 | *command |
| test.cpp:84:20:84:27 | *filename | test.cpp:84:11:84:17 | strncat output argument |
| test.cpp:91:9:91:16 | fread output argument | test.cpp:93:17:93:24 | *filename |
| test.cpp:93:11:93:14 | strncat output argument | test.cpp:94:45:94:48 | *path |
| test.cpp:93:17:93:24 | *filename | test.cpp:93:11:93:14 | strncat output argument |
| test.cpp:106:20:106:38 | *call to getenv | test.cpp:107:33:107:36 | *path |
| test.cpp:107:31:107:31 | call to operator+ | test.cpp:108:18:108:22 | *call to c_str |
| test.cpp:107:33:107:36 | *path | test.cpp:107:31:107:31 | call to operator+ |
| test.cpp:113:20:113:38 | *call to getenv | test.cpp:114:19:114:22 | *path |
| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | *call to c_str |
| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | *call to c_str |
| test.cpp:114:17:114:17 | call to operator+ | test.cpp:114:10:114:23 | call to operator+ |
| test.cpp:114:19:114:22 | path indirection | test.cpp:114:10:114:23 | call to operator+ |
| test.cpp:114:19:114:22 | path indirection | test.cpp:114:17:114:17 | call to operator+ |
| test.cpp:119:20:119:38 | call to getenv indirection | test.cpp:120:19:120:22 | path indirection |
| test.cpp:120:17:120:17 | call to operator+ | test.cpp:120:10:120:30 | call to data indirection |
| test.cpp:120:19:120:22 | path indirection | test.cpp:120:17:120:17 | call to operator+ |
| test.cpp:140:9:140:11 | fread output argument | test.cpp:142:31:142:33 | str indirection |
| test.cpp:142:11:142:17 | sprintf output argument | test.cpp:143:10:143:16 | command indirection |
| test.cpp:142:31:142:33 | str indirection | test.cpp:142:11:142:17 | sprintf output argument |
| test.cpp:174:9:174:16 | fread output argument | test.cpp:177:20:177:27 | filename indirection |
| test.cpp:174:9:174:16 | fread output argument | test.cpp:180:22:180:29 | filename indirection |
| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | flags indirection |
| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | flags indirection |
| test.cpp:177:20:177:27 | filename indirection | test.cpp:177:13:177:17 | strncat output argument |
| test.cpp:177:20:177:27 | filename indirection | test.cpp:177:13:177:17 | strncat output argument |
| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | command indirection |
| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | command indirection |
| test.cpp:178:22:178:26 | flags indirection | test.cpp:178:13:178:19 | strncat output argument |
| test.cpp:178:22:178:26 | flags indirection | test.cpp:178:13:178:19 | strncat output argument |
| test.cpp:180:13:180:19 | strncat output argument | test.cpp:183:32:183:38 | command indirection |
| test.cpp:180:22:180:29 | filename indirection | test.cpp:180:13:180:19 | strncat output argument |
| test.cpp:186:47:186:54 | filename indirection | test.cpp:187:18:187:25 | filename indirection |
| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | flags indirection |
| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | flags indirection |
| test.cpp:187:18:187:25 | filename indirection | test.cpp:187:11:187:15 | strncat output argument |
| test.cpp:187:18:187:25 | filename indirection | test.cpp:187:11:187:15 | strncat output argument |
| test.cpp:188:20:188:24 | flags indirection | test.cpp:188:11:188:17 | strncat output argument |
| test.cpp:188:20:188:24 | flags indirection | test.cpp:188:11:188:17 | strncat output argument |
| test.cpp:194:9:194:16 | fread output argument | test.cpp:196:26:196:33 | filename indirection |
| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | command indirection |
| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | command indirection |
| test.cpp:196:26:196:33 | filename indirection | test.cpp:186:47:186:54 | filename indirection |
| test.cpp:196:26:196:33 | filename indirection | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:196:26:196:33 | filename indirection | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:218:9:218:16 | fread output argument | test.cpp:220:19:220:26 | filename indirection |
| test.cpp:114:19:114:22 | *path | test.cpp:114:10:114:23 | call to operator+ |
| test.cpp:114:19:114:22 | *path | test.cpp:114:17:114:17 | call to operator+ |
| test.cpp:119:20:119:38 | *call to getenv | test.cpp:120:19:120:22 | *path |
| test.cpp:120:17:120:17 | call to operator+ | test.cpp:120:10:120:30 | *call to data |
| test.cpp:120:19:120:22 | *path | test.cpp:120:17:120:17 | call to operator+ |
| test.cpp:140:9:140:11 | fread output argument | test.cpp:142:31:142:33 | *str |
| test.cpp:142:11:142:17 | sprintf output argument | test.cpp:143:10:143:16 | *command |
| test.cpp:142:31:142:33 | *str | test.cpp:142:11:142:17 | sprintf output argument |
| test.cpp:174:9:174:16 | fread output argument | test.cpp:177:20:177:27 | *filename |
| test.cpp:174:9:174:16 | fread output argument | test.cpp:180:22:180:29 | *filename |
| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | *flags |
| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | *flags |
| test.cpp:177:20:177:27 | *filename | test.cpp:177:13:177:17 | strncat output argument |
| test.cpp:177:20:177:27 | *filename | test.cpp:177:13:177:17 | strncat output argument |
| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | *command |
| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | *command |
| test.cpp:178:22:178:26 | *flags | test.cpp:178:13:178:19 | strncat output argument |
| test.cpp:178:22:178:26 | *flags | test.cpp:178:13:178:19 | strncat output argument |
| test.cpp:180:13:180:19 | strncat output argument | test.cpp:183:32:183:38 | *command |
| test.cpp:180:22:180:29 | *filename | test.cpp:180:13:180:19 | strncat output argument |
| test.cpp:186:47:186:54 | *filename | test.cpp:187:18:187:25 | *filename |
| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | *flags |
| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | *flags |
| test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument |
| test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument |
| test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument |
| test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument |
| test.cpp:194:9:194:16 | fread output argument | test.cpp:196:26:196:33 | *filename |
| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | *command |
| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | *command |
| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename |
| test.cpp:196:26:196:33 | *filename | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:196:26:196:33 | *filename | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:218:9:218:16 | fread output argument | test.cpp:220:19:220:26 | *filename |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | command indirection |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | command indirection |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | command indirection |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | command indirection |
| test.cpp:220:19:220:26 | filename indirection | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:19:220:26 | filename indirection | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:19:220:26 | filename indirection | test.cpp:220:19:220:26 | filename indirection |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command |
| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command |
| test.cpp:220:19:220:26 | *filename | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:19:220:26 | *filename | test.cpp:220:10:220:16 | strncat output argument |
| test.cpp:220:19:220:26 | *filename | test.cpp:220:19:220:26 | *filename |
nodes
| test.cpp:15:27:15:30 | argv indirection | semmle.label | argv indirection |
| test.cpp:15:27:15:30 | **argv | semmle.label | **argv |
| test.cpp:22:13:22:20 | sprintf output argument | semmle.label | sprintf output argument |
| test.cpp:22:45:22:52 | userName indirection | semmle.label | userName indirection |
| test.cpp:23:12:23:19 | command1 indirection | semmle.label | command1 indirection |
| test.cpp:47:21:47:26 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:22:45:22:52 | *userName | semmle.label | *userName |
| test.cpp:23:12:23:19 | *command1 | semmle.label | *command1 |
| test.cpp:47:21:47:26 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:50:11:50:17 | sprintf output argument | semmle.label | sprintf output argument |
| test.cpp:50:35:50:43 | envCflags indirection | semmle.label | envCflags indirection |
| test.cpp:51:10:51:16 | command indirection | semmle.label | command indirection |
| test.cpp:50:35:50:43 | *envCflags | semmle.label | *envCflags |
| test.cpp:51:10:51:16 | *command | semmle.label | *command |
| test.cpp:62:9:62:16 | fread output argument | semmle.label | fread output argument |
| test.cpp:64:11:64:17 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:64:20:64:27 | filename indirection | semmle.label | filename indirection |
| test.cpp:65:10:65:16 | command indirection | semmle.label | command indirection |
| test.cpp:64:20:64:27 | *filename | semmle.label | *filename |
| test.cpp:65:10:65:16 | *command | semmle.label | *command |
| test.cpp:82:9:82:16 | fread output argument | semmle.label | fread output argument |
| test.cpp:84:11:84:17 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:84:20:84:27 | filename indirection | semmle.label | filename indirection |
| test.cpp:85:32:85:38 | command indirection | semmle.label | command indirection |
| test.cpp:84:20:84:27 | *filename | semmle.label | *filename |
| test.cpp:85:32:85:38 | *command | semmle.label | *command |
| test.cpp:91:9:91:16 | fread output argument | semmle.label | fread output argument |
| test.cpp:93:11:93:14 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:93:17:93:24 | filename indirection | semmle.label | filename indirection |
| test.cpp:94:45:94:48 | path indirection | semmle.label | path indirection |
| test.cpp:106:20:106:38 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:93:17:93:24 | *filename | semmle.label | *filename |
| test.cpp:94:45:94:48 | *path | semmle.label | *path |
| test.cpp:106:20:106:38 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:107:31:107:31 | call to operator+ | semmle.label | call to operator+ |
| test.cpp:107:33:107:36 | path indirection | semmle.label | path indirection |
| test.cpp:108:18:108:22 | call to c_str indirection | semmle.label | call to c_str indirection |
| test.cpp:113:20:113:38 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:107:33:107:36 | *path | semmle.label | *path |
| test.cpp:108:18:108:22 | *call to c_str | semmle.label | *call to c_str |
| test.cpp:113:20:113:38 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:114:10:114:23 | call to operator+ | semmle.label | call to operator+ |
| test.cpp:114:10:114:23 | call to operator+ | semmle.label | call to operator+ |
| test.cpp:114:17:114:17 | call to operator+ | semmle.label | call to operator+ |
| test.cpp:114:19:114:22 | path indirection | semmle.label | path indirection |
| test.cpp:114:25:114:29 | call to c_str indirection | semmle.label | call to c_str indirection |
| test.cpp:114:25:114:29 | call to c_str indirection | semmle.label | call to c_str indirection |
| test.cpp:119:20:119:38 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:120:10:120:30 | call to data indirection | semmle.label | call to data indirection |
| test.cpp:114:19:114:22 | *path | semmle.label | *path |
| test.cpp:114:25:114:29 | *call to c_str | semmle.label | *call to c_str |
| test.cpp:114:25:114:29 | *call to c_str | semmle.label | *call to c_str |
| test.cpp:119:20:119:38 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:120:10:120:30 | *call to data | semmle.label | *call to data |
| test.cpp:120:17:120:17 | call to operator+ | semmle.label | call to operator+ |
| test.cpp:120:19:120:22 | path indirection | semmle.label | path indirection |
| test.cpp:120:19:120:22 | *path | semmle.label | *path |
| test.cpp:140:9:140:11 | fread output argument | semmle.label | fread output argument |
| test.cpp:142:11:142:17 | sprintf output argument | semmle.label | sprintf output argument |
| test.cpp:142:31:142:33 | str indirection | semmle.label | str indirection |
| test.cpp:143:10:143:16 | command indirection | semmle.label | command indirection |
| test.cpp:142:31:142:33 | *str | semmle.label | *str |
| test.cpp:143:10:143:16 | *command | semmle.label | *command |
| test.cpp:174:9:174:16 | fread output argument | semmle.label | fread output argument |
| test.cpp:177:13:177:17 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:177:13:177:17 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:177:20:177:27 | filename indirection | semmle.label | filename indirection |
| test.cpp:177:20:177:27 | *filename | semmle.label | *filename |
| test.cpp:178:13:178:19 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:178:13:178:19 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:178:22:178:26 | flags indirection | semmle.label | flags indirection |
| test.cpp:178:22:178:26 | flags indirection | semmle.label | flags indirection |
| test.cpp:178:22:178:26 | *flags | semmle.label | *flags |
| test.cpp:178:22:178:26 | *flags | semmle.label | *flags |
| test.cpp:180:13:180:19 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:180:22:180:29 | filename indirection | semmle.label | filename indirection |
| test.cpp:183:32:183:38 | command indirection | semmle.label | command indirection |
| test.cpp:183:32:183:38 | command indirection | semmle.label | command indirection |
| test.cpp:183:32:183:38 | command indirection | semmle.label | command indirection |
| test.cpp:186:47:186:54 | filename indirection | semmle.label | filename indirection |
| test.cpp:180:22:180:29 | *filename | semmle.label | *filename |
| test.cpp:183:32:183:38 | *command | semmle.label | *command |
| test.cpp:183:32:183:38 | *command | semmle.label | *command |
| test.cpp:183:32:183:38 | *command | semmle.label | *command |
| test.cpp:186:47:186:54 | *filename | semmle.label | *filename |
| test.cpp:187:11:187:15 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:187:11:187:15 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:187:18:187:25 | filename indirection | semmle.label | filename indirection |
| test.cpp:187:18:187:25 | *filename | semmle.label | *filename |
| test.cpp:188:11:188:17 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:188:11:188:17 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:188:20:188:24 | flags indirection | semmle.label | flags indirection |
| test.cpp:188:20:188:24 | flags indirection | semmle.label | flags indirection |
| test.cpp:188:20:188:24 | *flags | semmle.label | *flags |
| test.cpp:188:20:188:24 | *flags | semmle.label | *flags |
| test.cpp:194:9:194:16 | fread output argument | semmle.label | fread output argument |
| test.cpp:196:10:196:16 | concat output argument | semmle.label | concat output argument |
| test.cpp:196:10:196:16 | concat output argument | semmle.label | concat output argument |
| test.cpp:196:26:196:33 | filename indirection | semmle.label | filename indirection |
| test.cpp:198:32:198:38 | command indirection | semmle.label | command indirection |
| test.cpp:198:32:198:38 | command indirection | semmle.label | command indirection |
| test.cpp:196:26:196:33 | *filename | semmle.label | *filename |
| test.cpp:198:32:198:38 | *command | semmle.label | *command |
| test.cpp:198:32:198:38 | *command | semmle.label | *command |
| test.cpp:218:9:218:16 | fread output argument | semmle.label | fread output argument |
| test.cpp:220:10:220:16 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:220:10:220:16 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:220:10:220:16 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:220:10:220:16 | strncat output argument | semmle.label | strncat output argument |
| test.cpp:220:19:220:26 | filename indirection | semmle.label | filename indirection |
| test.cpp:220:19:220:26 | filename indirection | semmle.label | filename indirection |
| test.cpp:222:32:222:38 | command indirection | semmle.label | command indirection |
| test.cpp:222:32:222:38 | command indirection | semmle.label | command indirection |
| test.cpp:220:19:220:26 | *filename | semmle.label | *filename |
| test.cpp:220:19:220:26 | *filename | semmle.label | *filename |
| test.cpp:222:32:222:38 | *command | semmle.label | *command |
| test.cpp:222:32:222:38 | *command | semmle.label | *command |
subpaths
| test.cpp:196:26:196:33 | filename indirection | test.cpp:186:47:186:54 | filename indirection | test.cpp:188:11:188:17 | strncat output argument | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:196:26:196:33 | filename indirection | test.cpp:186:47:186:54 | filename indirection | test.cpp:188:11:188:17 | strncat output argument | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:188:11:188:17 | strncat output argument | test.cpp:196:10:196:16 | concat output argument |
| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:188:11:188:17 | strncat output argument | test.cpp:196:10:196:16 | concat output argument |
#select
| test.cpp:23:12:23:19 | command1 | test.cpp:15:27:15:30 | argv indirection | test.cpp:23:12:23:19 | command1 indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:15:27:15:30 | argv indirection | user input (a command-line argument) | test.cpp:22:13:22:20 | sprintf output argument | sprintf output argument |
| test.cpp:51:10:51:16 | command | test.cpp:47:21:47:26 | call to getenv indirection | test.cpp:51:10:51:16 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:47:21:47:26 | call to getenv indirection | user input (an environment variable) | test.cpp:50:11:50:17 | sprintf output argument | sprintf output argument |
| test.cpp:65:10:65:16 | command | test.cpp:62:9:62:16 | fread output argument | test.cpp:65:10:65:16 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:62:9:62:16 | fread output argument | user input (string read by fread) | test.cpp:64:11:64:17 | strncat output argument | strncat output argument |
| test.cpp:85:32:85:38 | command | test.cpp:82:9:82:16 | fread output argument | test.cpp:85:32:85:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:82:9:82:16 | fread output argument | user input (string read by fread) | test.cpp:84:11:84:17 | strncat output argument | strncat output argument |
| test.cpp:94:45:94:48 | path | test.cpp:91:9:91:16 | fread output argument | test.cpp:94:45:94:48 | path indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:91:9:91:16 | fread output argument | user input (string read by fread) | test.cpp:93:11:93:14 | strncat output argument | strncat output argument |
| test.cpp:108:18:108:22 | call to c_str | test.cpp:106:20:106:38 | call to getenv indirection | test.cpp:108:18:108:22 | call to c_str indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:106:20:106:38 | call to getenv indirection | user input (an environment variable) | test.cpp:107:31:107:31 | call to operator+ | call to operator+ |
| test.cpp:114:25:114:29 | call to c_str | test.cpp:113:20:113:38 | call to getenv indirection | test.cpp:114:25:114:29 | call to c_str indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:113:20:113:38 | call to getenv indirection | user input (an environment variable) | test.cpp:114:10:114:23 | call to operator+ | call to operator+ |
| test.cpp:114:25:114:29 | call to c_str | test.cpp:113:20:113:38 | call to getenv indirection | test.cpp:114:25:114:29 | call to c_str indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:113:20:113:38 | call to getenv indirection | user input (an environment variable) | test.cpp:114:17:114:17 | call to operator+ | call to operator+ |
| test.cpp:120:25:120:28 | call to data | test.cpp:119:20:119:38 | call to getenv indirection | test.cpp:120:10:120:30 | call to data indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:119:20:119:38 | call to getenv indirection | user input (an environment variable) | test.cpp:120:17:120:17 | call to operator+ | call to operator+ |
| test.cpp:143:10:143:16 | command | test.cpp:140:9:140:11 | fread output argument | test.cpp:143:10:143:16 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:140:9:140:11 | fread output argument | user input (string read by fread) | test.cpp:142:11:142:17 | sprintf output argument | sprintf output argument |
| test.cpp:183:32:183:38 | command | test.cpp:174:9:174:16 | fread output argument | test.cpp:183:32:183:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:174:9:174:16 | fread output argument | user input (string read by fread) | test.cpp:177:13:177:17 | strncat output argument | strncat output argument |
| test.cpp:183:32:183:38 | command | test.cpp:174:9:174:16 | fread output argument | test.cpp:183:32:183:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:174:9:174:16 | fread output argument | user input (string read by fread) | test.cpp:178:13:178:19 | strncat output argument | strncat output argument |
| test.cpp:183:32:183:38 | command | test.cpp:174:9:174:16 | fread output argument | test.cpp:183:32:183:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:174:9:174:16 | fread output argument | user input (string read by fread) | test.cpp:180:13:180:19 | strncat output argument | strncat output argument |
| test.cpp:198:32:198:38 | command | test.cpp:194:9:194:16 | fread output argument | test.cpp:198:32:198:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:194:9:194:16 | fread output argument | user input (string read by fread) | test.cpp:187:11:187:15 | strncat output argument | strncat output argument |
| test.cpp:198:32:198:38 | command | test.cpp:194:9:194:16 | fread output argument | test.cpp:198:32:198:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:194:9:194:16 | fread output argument | user input (string read by fread) | test.cpp:188:11:188:17 | strncat output argument | strncat output argument |
| test.cpp:222:32:222:38 | command | test.cpp:218:9:218:16 | fread output argument | test.cpp:222:32:222:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:218:9:218:16 | fread output argument | user input (string read by fread) | test.cpp:220:10:220:16 | strncat output argument | strncat output argument |
| test.cpp:222:32:222:38 | command | test.cpp:218:9:218:16 | fread output argument | test.cpp:222:32:222:38 | command indirection | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:218:9:218:16 | fread output argument | user input (string read by fread) | test.cpp:220:10:220:16 | strncat output argument | strncat output argument |
| test.cpp:23:12:23:19 | command1 | test.cpp:15:27:15:30 | **argv | test.cpp:23:12:23:19 | *command1 | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:15:27:15:30 | **argv | user input (a command-line argument) | test.cpp:22:13:22:20 | sprintf output argument | sprintf output argument |
| test.cpp:51:10:51:16 | command | test.cpp:47:21:47:26 | *call to getenv | test.cpp:51:10:51:16 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:47:21:47:26 | *call to getenv | user input (an environment variable) | test.cpp:50:11:50:17 | sprintf output argument | sprintf output argument |
| test.cpp:65:10:65:16 | command | test.cpp:62:9:62:16 | fread output argument | test.cpp:65:10:65:16 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:62:9:62:16 | fread output argument | user input (string read by fread) | test.cpp:64:11:64:17 | strncat output argument | strncat output argument |
| test.cpp:85:32:85:38 | command | test.cpp:82:9:82:16 | fread output argument | test.cpp:85:32:85:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:82:9:82:16 | fread output argument | user input (string read by fread) | test.cpp:84:11:84:17 | strncat output argument | strncat output argument |
| test.cpp:94:45:94:48 | path | test.cpp:91:9:91:16 | fread output argument | test.cpp:94:45:94:48 | *path | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:91:9:91:16 | fread output argument | user input (string read by fread) | test.cpp:93:11:93:14 | strncat output argument | strncat output argument |
| test.cpp:108:18:108:22 | call to c_str | test.cpp:106:20:106:38 | *call to getenv | test.cpp:108:18:108:22 | *call to c_str | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:106:20:106:38 | *call to getenv | user input (an environment variable) | test.cpp:107:31:107:31 | call to operator+ | call to operator+ |
| test.cpp:114:25:114:29 | call to c_str | test.cpp:113:20:113:38 | *call to getenv | test.cpp:114:25:114:29 | *call to c_str | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:113:20:113:38 | *call to getenv | user input (an environment variable) | test.cpp:114:10:114:23 | call to operator+ | call to operator+ |
| test.cpp:114:25:114:29 | call to c_str | test.cpp:113:20:113:38 | *call to getenv | test.cpp:114:25:114:29 | *call to c_str | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:113:20:113:38 | *call to getenv | user input (an environment variable) | test.cpp:114:17:114:17 | call to operator+ | call to operator+ |
| test.cpp:120:25:120:28 | call to data | test.cpp:119:20:119:38 | *call to getenv | test.cpp:120:10:120:30 | *call to data | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:119:20:119:38 | *call to getenv | user input (an environment variable) | test.cpp:120:17:120:17 | call to operator+ | call to operator+ |
| test.cpp:143:10:143:16 | command | test.cpp:140:9:140:11 | fread output argument | test.cpp:143:10:143:16 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:140:9:140:11 | fread output argument | user input (string read by fread) | test.cpp:142:11:142:17 | sprintf output argument | sprintf output argument |
| test.cpp:183:32:183:38 | command | test.cpp:174:9:174:16 | fread output argument | test.cpp:183:32:183:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:174:9:174:16 | fread output argument | user input (string read by fread) | test.cpp:177:13:177:17 | strncat output argument | strncat output argument |
| test.cpp:183:32:183:38 | command | test.cpp:174:9:174:16 | fread output argument | test.cpp:183:32:183:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:174:9:174:16 | fread output argument | user input (string read by fread) | test.cpp:178:13:178:19 | strncat output argument | strncat output argument |
| test.cpp:183:32:183:38 | command | test.cpp:174:9:174:16 | fread output argument | test.cpp:183:32:183:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:174:9:174:16 | fread output argument | user input (string read by fread) | test.cpp:180:13:180:19 | strncat output argument | strncat output argument |
| test.cpp:198:32:198:38 | command | test.cpp:194:9:194:16 | fread output argument | test.cpp:198:32:198:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:194:9:194:16 | fread output argument | user input (string read by fread) | test.cpp:187:11:187:15 | strncat output argument | strncat output argument |
| test.cpp:198:32:198:38 | command | test.cpp:194:9:194:16 | fread output argument | test.cpp:198:32:198:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:194:9:194:16 | fread output argument | user input (string read by fread) | test.cpp:188:11:188:17 | strncat output argument | strncat output argument |
| test.cpp:222:32:222:38 | command | test.cpp:218:9:218:16 | fread output argument | test.cpp:222:32:222:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:218:9:218:16 | fread output argument | user input (string read by fread) | test.cpp:220:10:220:16 | strncat output argument | strncat output argument |
| test.cpp:222:32:222:38 | command | test.cpp:218:9:218:16 | fread output argument | test.cpp:222:32:222:38 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to execl. | test.cpp:218:9:218:16 | fread output argument | user input (string read by fread) | test.cpp:220:10:220:16 | strncat output argument | strncat output argument |

View File

@@ -1,26 +1,26 @@
edges
| search.c:14:24:14:28 | query indirection | search.c:17:8:17:12 | query indirection |
| search.c:22:24:22:28 | query indirection | search.c:23:39:23:43 | query indirection |
| search.c:55:24:55:28 | query indirection | search.c:62:8:62:17 | query_text indirection |
| search.c:67:21:67:26 | call to getenv indirection | search.c:71:17:71:25 | raw_query indirection |
| search.c:67:21:67:26 | call to getenv indirection | search.c:73:17:73:25 | raw_query indirection |
| search.c:67:21:67:26 | call to getenv indirection | search.c:77:17:77:25 | raw_query indirection |
| search.c:71:17:71:25 | raw_query indirection | search.c:14:24:14:28 | query indirection |
| search.c:73:17:73:25 | raw_query indirection | search.c:22:24:22:28 | query indirection |
| search.c:77:17:77:25 | raw_query indirection | search.c:55:24:55:28 | query indirection |
| search.c:14:24:14:28 | *query | search.c:17:8:17:12 | *query |
| search.c:22:24:22:28 | *query | search.c:23:39:23:43 | *query |
| search.c:55:24:55:28 | *query | search.c:62:8:62:17 | *query_text |
| search.c:67:21:67:26 | *call to getenv | search.c:71:17:71:25 | *raw_query |
| search.c:67:21:67:26 | *call to getenv | search.c:73:17:73:25 | *raw_query |
| search.c:67:21:67:26 | *call to getenv | search.c:77:17:77:25 | *raw_query |
| search.c:71:17:71:25 | *raw_query | search.c:14:24:14:28 | *query |
| search.c:73:17:73:25 | *raw_query | search.c:22:24:22:28 | *query |
| search.c:77:17:77:25 | *raw_query | search.c:55:24:55:28 | *query |
nodes
| search.c:14:24:14:28 | query indirection | semmle.label | query indirection |
| search.c:17:8:17:12 | query indirection | semmle.label | query indirection |
| search.c:22:24:22:28 | query indirection | semmle.label | query indirection |
| search.c:23:39:23:43 | query indirection | semmle.label | query indirection |
| search.c:55:24:55:28 | query indirection | semmle.label | query indirection |
| search.c:62:8:62:17 | query_text indirection | semmle.label | query_text indirection |
| search.c:67:21:67:26 | call to getenv indirection | semmle.label | call to getenv indirection |
| search.c:71:17:71:25 | raw_query indirection | semmle.label | raw_query indirection |
| search.c:73:17:73:25 | raw_query indirection | semmle.label | raw_query indirection |
| search.c:77:17:77:25 | raw_query indirection | semmle.label | raw_query indirection |
| search.c:14:24:14:28 | *query | semmle.label | *query |
| search.c:17:8:17:12 | *query | semmle.label | *query |
| search.c:22:24:22:28 | *query | semmle.label | *query |
| search.c:23:39:23:43 | *query | semmle.label | *query |
| search.c:55:24:55:28 | *query | semmle.label | *query |
| search.c:62:8:62:17 | *query_text | semmle.label | *query_text |
| search.c:67:21:67:26 | *call to getenv | semmle.label | *call to getenv |
| search.c:71:17:71:25 | *raw_query | semmle.label | *raw_query |
| search.c:73:17:73:25 | *raw_query | semmle.label | *raw_query |
| search.c:77:17:77:25 | *raw_query | semmle.label | *raw_query |
subpaths
#select
| search.c:17:8:17:12 | query indirection | search.c:67:21:67:26 | call to getenv indirection | search.c:17:8:17:12 | query indirection | Cross-site scripting vulnerability due to $@. | search.c:67:21:67:26 | call to getenv | this query data |
| search.c:23:39:23:43 | query indirection | search.c:67:21:67:26 | call to getenv indirection | search.c:23:39:23:43 | query indirection | Cross-site scripting vulnerability due to $@. | search.c:67:21:67:26 | call to getenv | this query data |
| search.c:62:8:62:17 | query_text indirection | search.c:67:21:67:26 | call to getenv indirection | search.c:62:8:62:17 | query_text indirection | Cross-site scripting vulnerability due to $@. | search.c:67:21:67:26 | call to getenv | this query data |
| search.c:17:8:17:12 | *query | search.c:67:21:67:26 | *call to getenv | search.c:17:8:17:12 | *query | Cross-site scripting vulnerability due to $@. | search.c:67:21:67:26 | call to getenv | this query data |
| search.c:23:39:23:43 | *query | search.c:67:21:67:26 | *call to getenv | search.c:23:39:23:43 | *query | Cross-site scripting vulnerability due to $@. | search.c:67:21:67:26 | call to getenv | this query data |
| search.c:62:8:62:17 | *query_text | search.c:67:21:67:26 | *call to getenv | search.c:62:8:62:17 | *query_text | Cross-site scripting vulnerability due to $@. | search.c:67:21:67:26 | call to getenv | this query data |

View File

@@ -1,28 +1,28 @@
edges
| test.c:14:27:14:30 | argv indirection | test.c:21:18:21:23 | query1 indirection |
| test.c:14:27:14:30 | argv indirection | test.c:35:16:35:23 | userName indirection |
| test.c:35:16:35:23 | userName indirection | test.c:40:25:40:32 | username indirection |
| test.c:38:7:38:20 | globalUsername indirection | test.c:51:18:51:23 | query1 indirection |
| test.c:40:25:40:32 | username indirection | test.c:38:7:38:20 | globalUsername indirection |
| test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | userInput indirection |
| test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | userInput indirection |
| test.cpp:39:27:39:30 | argv indirection | test.cpp:43:27:43:33 | access to array indirection |
| test.c:14:27:14:30 | **argv | test.c:21:18:21:23 | *query1 |
| test.c:14:27:14:30 | **argv | test.c:35:16:35:23 | *userName |
| test.c:35:16:35:23 | *userName | test.c:40:25:40:32 | *username |
| test.c:38:7:38:20 | **globalUsername | test.c:51:18:51:23 | *query1 |
| test.c:40:25:40:32 | *username | test.c:38:7:38:20 | **globalUsername |
| test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput |
| test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput |
| test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array |
nodes
| test.c:14:27:14:30 | argv indirection | semmle.label | argv indirection |
| test.c:21:18:21:23 | query1 indirection | semmle.label | query1 indirection |
| test.c:35:16:35:23 | userName indirection | semmle.label | userName indirection |
| test.c:38:7:38:20 | globalUsername indirection | semmle.label | globalUsername indirection |
| test.c:40:25:40:32 | username indirection | semmle.label | username indirection |
| test.c:51:18:51:23 | query1 indirection | semmle.label | query1 indirection |
| test.c:14:27:14:30 | **argv | semmle.label | **argv |
| test.c:21:18:21:23 | *query1 | semmle.label | *query1 |
| test.c:35:16:35:23 | *userName | semmle.label | *userName |
| test.c:38:7:38:20 | **globalUsername | semmle.label | **globalUsername |
| test.c:40:25:40:32 | *username | semmle.label | *username |
| test.c:51:18:51:23 | *query1 | semmle.label | *query1 |
| test.c:75:8:75:16 | gets output argument | semmle.label | gets output argument |
| test.c:76:17:76:25 | userInput indirection | semmle.label | userInput indirection |
| test.c:77:20:77:28 | userInput indirection | semmle.label | userInput indirection |
| test.cpp:39:27:39:30 | argv indirection | semmle.label | argv indirection |
| test.cpp:43:27:43:33 | access to array indirection | semmle.label | access to array indirection |
| test.c:76:17:76:25 | *userInput | semmle.label | *userInput |
| test.c:77:20:77:28 | *userInput | semmle.label | *userInput |
| test.cpp:39:27:39:30 | **argv | semmle.label | **argv |
| test.cpp:43:27:43:33 | *access to array | semmle.label | *access to array |
subpaths
#select
| test.c:21:18:21:23 | query1 | test.c:14:27:14:30 | argv indirection | test.c:21:18:21:23 | query1 indirection | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | argv indirection | user input (a command-line argument) |
| test.c:51:18:51:23 | query1 | test.c:14:27:14:30 | argv indirection | test.c:51:18:51:23 | query1 indirection | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | argv indirection | user input (a command-line argument) |
| test.c:76:17:76:25 | userInput | test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | userInput indirection | This argument to a SQL query function is derived from $@ and then passed to SQLPrepare(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) |
| test.c:77:20:77:28 | userInput | test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | userInput indirection | This argument to a SQL query function is derived from $@ and then passed to SQLExecDirect(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) |
| test.cpp:43:27:43:33 | access to array | test.cpp:39:27:39:30 | argv indirection | test.cpp:43:27:43:33 | access to array indirection | This argument to a SQL query function is derived from $@ and then passed to pqxx::work::exec1((unnamed parameter 0)). | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.c:21:18:21:23 | query1 | test.c:14:27:14:30 | **argv | test.c:21:18:21:23 | *query1 | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | **argv | user input (a command-line argument) |
| test.c:51:18:51:23 | query1 | test.c:14:27:14:30 | **argv | test.c:51:18:51:23 | *query1 | This argument to a SQL query function is derived from $@ and then passed to mysql_query(sqlArg). | test.c:14:27:14:30 | **argv | user input (a command-line argument) |
| test.c:76:17:76:25 | userInput | test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput | This argument to a SQL query function is derived from $@ and then passed to SQLPrepare(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) |
| test.c:77:20:77:28 | userInput | test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput | This argument to a SQL query function is derived from $@ and then passed to SQLExecDirect(StatementText). | test.c:75:8:75:16 | gets output argument | user input (string read by gets) |
| test.cpp:43:27:43:33 | access to array | test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array | This argument to a SQL query function is derived from $@ and then passed to pqxx::work::exec1((unnamed parameter 0)). | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |

View File

@@ -1,12 +1,12 @@
edges
| test.cpp:37:73:37:76 | data indirection | test.cpp:43:32:43:35 | data indirection |
| test.cpp:64:30:64:35 | call to getenv indirection | test.cpp:73:24:73:27 | data indirection |
| test.cpp:73:24:73:27 | data indirection | test.cpp:37:73:37:76 | data indirection |
| test.cpp:37:73:37:76 | *data | test.cpp:43:32:43:35 | *data |
| test.cpp:64:30:64:35 | *call to getenv | test.cpp:73:24:73:27 | *data |
| test.cpp:73:24:73:27 | *data | test.cpp:37:73:37:76 | *data |
nodes
| test.cpp:37:73:37:76 | data indirection | semmle.label | data indirection |
| test.cpp:43:32:43:35 | data indirection | semmle.label | data indirection |
| test.cpp:64:30:64:35 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:73:24:73:27 | data indirection | semmle.label | data indirection |
| test.cpp:37:73:37:76 | *data | semmle.label | *data |
| test.cpp:43:32:43:35 | *data | semmle.label | *data |
| test.cpp:64:30:64:35 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:73:24:73:27 | *data | semmle.label | *data |
subpaths
#select
| test.cpp:43:32:43:35 | data indirection | test.cpp:64:30:64:35 | call to getenv indirection | test.cpp:43:32:43:35 | data indirection | The value of this argument may come from $@ and is being passed to LoadLibraryA. | test.cpp:64:30:64:35 | call to getenv indirection | an environment variable |
| test.cpp:43:32:43:35 | *data | test.cpp:64:30:64:35 | *call to getenv | test.cpp:43:32:43:35 | *data | The value of this argument may come from $@ and is being passed to LoadLibraryA. | test.cpp:64:30:64:35 | *call to getenv | an environment variable |

View File

@@ -1,45 +1,45 @@
edges
| test.cpp:24:30:24:36 | command indirection | test.cpp:26:10:26:16 | command indirection |
| test.cpp:29:30:29:36 | command indirection | test.cpp:31:10:31:16 | command indirection |
| test.cpp:42:18:42:34 | call to getenv indirection | test.cpp:24:30:24:36 | command indirection |
| test.cpp:43:18:43:34 | call to getenv indirection | test.cpp:29:30:29:36 | command indirection |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer indirection |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data indirection |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref indirection |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 indirection |
| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | buffer indirection |
| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | buffer indirection |
| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | buffer indirection |
| test.cpp:113:8:113:12 | call to fgets indirection | test.cpp:114:9:114:11 | ptr indirection |
| test.cpp:24:30:24:36 | *command | test.cpp:26:10:26:16 | *command |
| test.cpp:29:30:29:36 | *command | test.cpp:31:10:31:16 | *command |
| test.cpp:42:18:42:34 | *call to getenv | test.cpp:24:30:24:36 | *command |
| test.cpp:43:18:43:34 | *call to getenv | test.cpp:29:30:29:36 | *command |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | *buffer |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | *data |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | *dataref |
| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | *data2 |
| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | *buffer |
| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | *buffer |
| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | *buffer |
| test.cpp:113:8:113:12 | *call to fgets | test.cpp:114:9:114:11 | *ptr |
nodes
| test.cpp:24:30:24:36 | command indirection | semmle.label | command indirection |
| test.cpp:26:10:26:16 | command indirection | semmle.label | command indirection |
| test.cpp:29:30:29:36 | command indirection | semmle.label | command indirection |
| test.cpp:31:10:31:16 | command indirection | semmle.label | command indirection |
| test.cpp:42:18:42:34 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:43:18:43:34 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:24:30:24:36 | *command | semmle.label | *command |
| test.cpp:26:10:26:16 | *command | semmle.label | *command |
| test.cpp:29:30:29:36 | *command | semmle.label | *command |
| test.cpp:31:10:31:16 | *command | semmle.label | *command |
| test.cpp:42:18:42:34 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:43:18:43:34 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:56:12:56:17 | fgets output argument | semmle.label | fgets output argument |
| test.cpp:62:10:62:15 | buffer indirection | semmle.label | buffer indirection |
| test.cpp:63:10:63:13 | data indirection | semmle.label | data indirection |
| test.cpp:64:10:64:16 | dataref indirection | semmle.label | dataref indirection |
| test.cpp:65:10:65:14 | data2 indirection | semmle.label | data2 indirection |
| test.cpp:62:10:62:15 | *buffer | semmle.label | *buffer |
| test.cpp:63:10:63:13 | *data | semmle.label | *data |
| test.cpp:64:10:64:16 | *dataref | semmle.label | *dataref |
| test.cpp:65:10:65:14 | *data2 | semmle.label | *data2 |
| test.cpp:76:12:76:17 | fgets output argument | semmle.label | fgets output argument |
| test.cpp:78:10:78:15 | buffer indirection | semmle.label | buffer indirection |
| test.cpp:78:10:78:15 | *buffer | semmle.label | *buffer |
| test.cpp:98:17:98:22 | recv output argument | semmle.label | recv output argument |
| test.cpp:99:15:99:20 | buffer indirection | semmle.label | buffer indirection |
| test.cpp:99:15:99:20 | *buffer | semmle.label | *buffer |
| test.cpp:106:17:106:22 | recv output argument | semmle.label | recv output argument |
| test.cpp:107:15:107:20 | buffer indirection | semmle.label | buffer indirection |
| test.cpp:113:8:113:12 | call to fgets indirection | semmle.label | call to fgets indirection |
| test.cpp:114:9:114:11 | ptr indirection | semmle.label | ptr indirection |
| test.cpp:107:15:107:20 | *buffer | semmle.label | *buffer |
| test.cpp:113:8:113:12 | *call to fgets | semmle.label | *call to fgets |
| test.cpp:114:9:114:11 | *ptr | semmle.label | *ptr |
subpaths
#select
| test.cpp:26:10:26:16 | command indirection | test.cpp:42:18:42:34 | call to getenv indirection | test.cpp:26:10:26:16 | command indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:42:18:42:34 | call to getenv indirection | an environment variable |
| test.cpp:31:10:31:16 | command indirection | test.cpp:43:18:43:34 | call to getenv indirection | test.cpp:31:10:31:16 | command indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:43:18:43:34 | call to getenv indirection | an environment variable |
| test.cpp:62:10:62:15 | buffer indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | buffer indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:63:10:63:13 | data indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | data indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:64:10:64:16 | dataref indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | dataref indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:65:10:65:14 | data2 indirection | test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | data2 indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:78:10:78:15 | buffer indirection | test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | buffer indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:76:12:76:17 | fgets output argument | string read by fgets |
| test.cpp:99:15:99:20 | buffer indirection | test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | buffer indirection | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:98:17:98:22 | recv output argument | buffer read by recv |
| test.cpp:107:15:107:20 | buffer indirection | test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | buffer indirection | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:106:17:106:22 | recv output argument | buffer read by recv |
| test.cpp:114:9:114:11 | ptr indirection | test.cpp:113:8:113:12 | call to fgets indirection | test.cpp:114:9:114:11 | ptr indirection | The value of this argument may come from $@ and is being passed to system. | test.cpp:113:8:113:12 | call to fgets indirection | string read by fgets |
| test.cpp:26:10:26:16 | *command | test.cpp:42:18:42:34 | *call to getenv | test.cpp:26:10:26:16 | *command | The value of this argument may come from $@ and is being passed to system. | test.cpp:42:18:42:34 | *call to getenv | an environment variable |
| test.cpp:31:10:31:16 | *command | test.cpp:43:18:43:34 | *call to getenv | test.cpp:31:10:31:16 | *command | The value of this argument may come from $@ and is being passed to system. | test.cpp:43:18:43:34 | *call to getenv | an environment variable |
| test.cpp:62:10:62:15 | *buffer | test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | *buffer | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:63:10:63:13 | *data | test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | *data | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:64:10:64:16 | *dataref | test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | *dataref | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:65:10:65:14 | *data2 | test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | *data2 | The value of this argument may come from $@ and is being passed to system. | test.cpp:56:12:56:17 | fgets output argument | string read by fgets |
| test.cpp:78:10:78:15 | *buffer | test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | *buffer | The value of this argument may come from $@ and is being passed to system. | test.cpp:76:12:76:17 | fgets output argument | string read by fgets |
| test.cpp:99:15:99:20 | *buffer | test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | *buffer | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:98:17:98:22 | recv output argument | buffer read by recv |
| test.cpp:107:15:107:20 | *buffer | test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | *buffer | The value of this argument may come from $@ and is being passed to LoadLibrary. | test.cpp:106:17:106:22 | recv output argument | buffer read by recv |
| test.cpp:114:9:114:11 | *ptr | test.cpp:113:8:113:12 | *call to fgets | test.cpp:114:9:114:11 | *ptr | The value of this argument may come from $@ and is being passed to system. | test.cpp:113:8:113:12 | *call to fgets | string read by fgets |

View File

@@ -1,108 +1,108 @@
edges
| test.cpp:16:11:16:21 | mk_string_t indirection [string] | test.cpp:39:21:39:31 | call to mk_string_t indirection [string] |
| test.cpp:18:5:18:7 | str indirection [post update] [string] | test.cpp:19:5:19:7 | str indirection [string] |
| test.cpp:18:5:18:30 | ... = ... | test.cpp:18:5:18:7 | str indirection [post update] [string] |
| test.cpp:16:11:16:21 | **mk_string_t [string] | test.cpp:39:21:39:31 | *call to mk_string_t [string] |
| test.cpp:18:5:18:7 | *str [post update] [string] | test.cpp:19:5:19:7 | *str [string] |
| test.cpp:18:5:18:30 | ... = ... | test.cpp:18:5:18:7 | *str [post update] [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: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:72:17:72:19 | str indirection [string] | 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: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:7 | str indirection [post update] [string] | test.cpp:91:5:91:7 | str indirection [string] |
| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:5:90:7 | str indirection [post update] [string] |
| test.cpp:19:5:19:7 | *str [string] | test.cpp:16:11:16:21 | **mk_string_t [string] |
| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:42:13:42:15 | *str [string] |
| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:72:17:72:19 | *str [string] |
| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:80:17:80:19 | *str [string] |
| test.cpp:42:13:42:15 | *str [string] | test.cpp:42:18:42:23 | string |
| test.cpp:72:17:72:19 | *str [string] | test.cpp:72:22:72:27 | string |
| test.cpp:80:17:80:19 | *str [string] | test.cpp:80:22:80:27 | string |
| test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] |
| test.cpp:90:5:90:7 | *str [post update] [string] | test.cpp:91:5:91:7 | *str [string] |
| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:5:90:7 | *str [post update] [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: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:129:17:129:19 | str indirection [string] | 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:147:5:147:7 | str indirection [post update] [string] | test.cpp:148:5:148:7 | str indirection [string] |
| test.cpp:147:5:147:34 | ... = ... | test.cpp:147:5:147:7 | str indirection [post update] [string] |
| test.cpp:91:5:91:7 | *str [string] | test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] |
| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:99:13:99:15 | *str [string] |
| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:129:17:129:19 | *str [string] |
| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:137:17:137:19 | *str [string] |
| test.cpp:99:13:99:15 | *str [string] | test.cpp:99:18:99:23 | string |
| test.cpp:129:17:129:19 | *str [string] | test.cpp:129:22:129:27 | string |
| test.cpp:137:17:137:19 | *str [string] | test.cpp:137:22:137:27 | string |
| test.cpp:147:5:147:7 | *str [post update] [string] | test.cpp:148:5:148:7 | *str [string] |
| test.cpp:147:5:147:34 | ... = ... | test.cpp:147:5:147:7 | *str [post update] [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: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] |
| test.cpp:148:5:148:7 | str indirection [string] | test.cpp:175:17:175:19 | str indirection [string] |
| test.cpp:148:5:148:7 | str indirection [string] | test.cpp:187:17:187:19 | str indirection [string] |
| test.cpp:148:5:148:7 | str indirection [string] | test.cpp:195:17:195:19 | str indirection [string] |
| test.cpp:148:5:148:7 | str indirection [string] | test.cpp:199:17:199:19 | str indirection [string] |
| 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:154:13:154:15 | str indirection [string] | 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:175:17:175:19 | str indirection [string] | 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:195:17:195:19 | str indirection [string] | 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:203:17:203:19 | str indirection [string] | 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:148:5:148:7 | *str [string] | test.cpp:152:13:152:15 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:154:13:154:15 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:156:13:156:15 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:175:17:175:19 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:187:17:187:19 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:195:17:195:19 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:199:17:199:19 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:203:17:203:19 | *str [string] |
| test.cpp:148:5:148:7 | *str [string] | test.cpp:207:17:207:19 | *str [string] |
| test.cpp:152:13:152:15 | *str [string] | test.cpp:152:18:152:23 | string |
| test.cpp:154:13:154:15 | *str [string] | test.cpp:154:18:154:23 | string |
| test.cpp:156:13:156:15 | *str [string] | test.cpp:156:18:156:23 | string |
| test.cpp:175:17:175:19 | *str [string] | test.cpp:175:22:175:27 | string |
| test.cpp:187:17:187:19 | *str [string] | test.cpp:187:22:187:27 | string |
| test.cpp:195:17:195:19 | *str [string] | test.cpp:195:22:195:27 | string |
| test.cpp:199:17:199:19 | *str [string] | test.cpp:199:22:199:27 | string |
| test.cpp:203:17:203:19 | *str [string] | test.cpp:203:22:203:27 | string |
| test.cpp:207:17:207:19 | *str [string] | test.cpp:207:22:207:27 | string |
| test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p |
| test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer |
| test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p |
| test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer |
| test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... |
| test.cpp:236:5:236:26 | ... = ... | test.cpp:236:5:236:9 | p_str indirection [post update] [string] |
| test.cpp:236:5:236:26 | ... = ... | test.cpp:236:5:236:9 | *p_str [post update] [string] |
| test.cpp:241:20:241:38 | call to malloc | 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:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | *str [string] |
| 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 [string] | test.cpp:243:12:243:21 | string |
| test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p |
| test.cpp:256:9:256:25 | call to malloc | test.cpp:257:12:257:12 | p |
| test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p |
| test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p |
nodes
| test.cpp:16:11:16:21 | mk_string_t indirection [string] | semmle.label | mk_string_t indirection [string] |
| test.cpp:18:5:18:7 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] |
| test.cpp:16:11:16:21 | **mk_string_t [string] | semmle.label | **mk_string_t [string] |
| test.cpp:18:5:18:7 | *str [post update] [string] | semmle.label | *str [post update] [string] |
| test.cpp:18:5:18:30 | ... = ... | semmle.label | ... = ... |
| test.cpp:18:19:18:24 | call to malloc | semmle.label | call to malloc |
| test.cpp:19:5:19:7 | str indirection [string] | semmle.label | str indirection [string] |
| 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:19:5:19:7 | *str [string] | semmle.label | *str [string] |
| test.cpp:39:21:39:31 | *call to mk_string_t [string] | semmle.label | *call to mk_string_t [string] |
| test.cpp:42:13:42:15 | *str [string] | semmle.label | *str [string] |
| test.cpp:42:18:42:23 | string | semmle.label | string |
| test.cpp:72:17:72:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:72:17:72:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:72:22:72:27 | string | semmle.label | string |
| test.cpp:80:17:80:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:80:17:80:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:80:22:80:27 | string | semmle.label | string |
| 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:7 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] |
| test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | semmle.label | **mk_string_t_plus_one [string] |
| test.cpp:90:5:90:7 | *str [post update] [string] | semmle.label | *str [post update] [string] |
| test.cpp:90:5:90:34 | ... = ... | semmle.label | ... = ... |
| test.cpp:90:19:90:24 | call to malloc | semmle.label | call to malloc |
| test.cpp:91:5:91:7 | str indirection [string] | semmle.label | str indirection [string] |
| 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:91:5:91:7 | *str [string] | semmle.label | *str [string] |
| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | semmle.label | *call to mk_string_t_plus_one [string] |
| test.cpp:99:13:99:15 | *str [string] | semmle.label | *str [string] |
| test.cpp:99:18:99:23 | string | semmle.label | string |
| test.cpp:129:17:129:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:129:17:129:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:129:22:129:27 | string | semmle.label | string |
| test.cpp:137:17:137:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:137:17:137:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:137:22:137:27 | string | semmle.label | string |
| test.cpp:147:5:147:7 | str indirection [post update] [string] | semmle.label | str indirection [post update] [string] |
| test.cpp:147:5:147:7 | *str [post update] [string] | semmle.label | *str [post update] [string] |
| test.cpp:147:5:147:34 | ... = ... | semmle.label | ... = ... |
| 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:148:5:148:7 | *str [string] | semmle.label | *str [string] |
| test.cpp:152:13:152:15 | *str [string] | semmle.label | *str [string] |
| test.cpp:152:18:152:23 | string | semmle.label | string |
| test.cpp:154:13:154:15 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:154:13:154:15 | *str [string] | semmle.label | *str [string] |
| test.cpp:154:18:154:23 | string | semmle.label | string |
| test.cpp:156:13:156:15 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:156:13:156:15 | *str [string] | semmle.label | *str [string] |
| test.cpp:156:18:156:23 | string | semmle.label | string |
| test.cpp:175:17:175:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:175:17:175:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:175:22:175:27 | string | semmle.label | string |
| test.cpp:187:17:187:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:187:17:187:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:187:22:187:27 | string | semmle.label | string |
| test.cpp:195:17:195:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:195:17:195:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:195:22:195:27 | string | semmle.label | string |
| test.cpp:199:17:199:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:199:17:199:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:199:22:199:27 | string | semmle.label | string |
| test.cpp:203:17:203:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:203:17:203:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:203:22:203:27 | string | semmle.label | string |
| test.cpp:207:17:207:19 | str indirection [string] | semmle.label | str indirection [string] |
| test.cpp:207:17:207:19 | *str [string] | semmle.label | *str [string] |
| test.cpp:207:22:207:27 | string | semmle.label | string |
| test.cpp:214:24:214:24 | p | semmle.label | p |
| test.cpp:216:10:216:10 | p | semmle.label | p |
@@ -111,12 +111,12 @@ nodes
| test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc |
| test.cpp:232:10:232:15 | buffer | semmle.label | buffer |
| test.cpp:235:40:235:45 | buffer | semmle.label | buffer |
| test.cpp:236:5:236:9 | p_str indirection [post update] [string] | semmle.label | p_str indirection [post update] [string] |
| test.cpp:236:5:236:9 | *p_str [post update] [string] | semmle.label | *p_str [post update] [string] |
| test.cpp:236:5:236:26 | ... = ... | semmle.label | ... = ... |
| test.cpp:241:20:241:38 | call to malloc | semmle.label | call to malloc |
| test.cpp:242:16:242:19 | set_string output argument [string] | semmle.label | set_string output argument [string] |
| 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:14 | *str [string] | semmle.label | *str [string] |
| test.cpp:243:12:243:21 | string | semmle.label | string |
| test.cpp:249:14:249:33 | call to my_alloc | semmle.label | call to my_alloc |
| test.cpp:250:12:250:12 | p | semmle.label | p |
@@ -126,7 +126,7 @@ nodes
| test.cpp:264:13:264:30 | call to malloc | semmle.label | call to malloc |
| test.cpp:266:12:266:12 | p | semmle.label | p |
subpaths
| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:9 | p_str indirection [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] |
| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:9 | *p_str [post update] [string] | test.cpp:242:16:242:19 | set_string output argument [string] |
#select
| test.cpp:42:5:42:11 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:42:18:42:23 | string | This write may overflow $@ by 1 element. | test.cpp:42:18:42:23 | string | string |
| test.cpp:72:9:72:15 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:72:22:72:27 | string | This write may overflow $@ by 1 element. | test.cpp:72:22:72:27 | string | string |

View File

@@ -1,42 +1,42 @@
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 |
| 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:54:9:54:12 | memcpy output argument |
| main.cpp:6:27:6:30 | **argv | main.cpp:7:33:7:36 | **argv |
| main.cpp:7:33:7:36 | **argv | overflowdestination.cpp:23:45:23:48 | **argv |
| overflowdestination.cpp:23:45:23:48 | **argv | overflowdestination.cpp:30:17:30:20 | *arg1 |
| overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | *src |
| overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:53:9:53:12 | memcpy output argument |
| overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:53:15:53:17 | *src |
| overflowdestination.cpp:50:52:50:54 | *src | 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: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 |
| overflowdestination.cpp:75:30:75:32 | src indirection | overflowdestination.cpp:50:52:50:54 | src indirection |
| overflowdestination.cpp:75:30:75:32 | src indirection | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument |
| overflowdestination.cpp:76:30:76:32 | src indirection | overflowdestination.cpp:57:52:57:54 | src indirection |
| overflowdestination.cpp:57:52:57:54 | *src | overflowdestination.cpp:64:16:64:19 | *src2 |
| overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:75:30:75:32 | *src |
| overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:76:30:76:32 | *src |
| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src |
| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument |
| overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument | overflowdestination.cpp:76:30:76:32 | *src |
| overflowdestination.cpp:76:30:76:32 | *src | overflowdestination.cpp:57:52:57:54 | *src |
nodes
| main.cpp:6:27:6:30 | argv indirection | semmle.label | argv indirection |
| main.cpp:7:33:7:36 | 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 |
| main.cpp:6:27:6:30 | **argv | semmle.label | **argv |
| main.cpp:7:33:7:36 | **argv | semmle.label | **argv |
| overflowdestination.cpp:23:45:23:48 | **argv | semmle.label | **argv |
| overflowdestination.cpp:30:17:30:20 | *arg1 | semmle.label | *arg1 |
| 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:46:15:46:17 | *src | semmle.label | *src |
| overflowdestination.cpp:50:52:50:54 | *src | semmle.label | *src |
| 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 | semmle.label | *src |
| 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:57:52:57:54 | *src | semmle.label | *src |
| overflowdestination.cpp:64:16:64:19 | *src2 | semmle.label | *src2 |
| overflowdestination.cpp:73:8:73:10 | fgets output argument | semmle.label | fgets output argument |
| overflowdestination.cpp:75:30:75:32 | *src | semmle.label | *src |
| 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 |
| overflowdestination.cpp:76:30:76:32 | src indirection | semmle.label | src indirection |
| overflowdestination.cpp:76:30:76:32 | *src | semmle.label | *src |
subpaths
| overflowdestination.cpp:75:30:75:32 | src indirection | overflowdestination.cpp:50:52:50:54 | src indirection | overflowdestination.cpp:53:9:53:12 | memcpy output argument | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument |
| overflowdestination.cpp:75:30:75:32 | src indirection | overflowdestination.cpp:50:52:50:54 | src indirection | overflowdestination.cpp:54:9:54:12 | memcpy output argument | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument |
| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:53:9:53:12 | memcpy output argument | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument |
| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:54:9:54:12 | memcpy output argument | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument |
#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: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: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:30:2:30:8 | call to strncpy | main.cpp:6:27:6:30 | **argv | overflowdestination.cpp:30:17:30:20 | *arg1 | 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 | 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 | 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 | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. |

View File

@@ -1,32 +1,32 @@
edges
| main.cpp:6:27:6:30 | argv indirection | main.cpp:10:20:10:23 | argv indirection |
| main.cpp:10:20:10:23 | argv indirection | tests.cpp:657:32:657:35 | argv indirection |
| tests.cpp:613:19:613:24 | source indirection | tests.cpp:615:17:615:22 | source indirection |
| tests.cpp:622:19:622:24 | source indirection | tests.cpp:625:2:625:16 | ... = ... indirection |
| tests.cpp:625:2:625:2 | s indirection [post update] [home indirection] | tests.cpp:628:14:628:14 | s indirection [home indirection] |
| tests.cpp:625:2:625:16 | ... = ... indirection | tests.cpp:625:2:625:2 | s indirection [post update] [home indirection] |
| tests.cpp:628:14:628:14 | s indirection [home indirection] | tests.cpp:628:14:628:19 | home indirection |
| tests.cpp:628:14:628:14 | s indirection [home indirection] | tests.cpp:628:16:628:19 | home indirection |
| tests.cpp:628:16:628:19 | home indirection | tests.cpp:628:14:628:19 | home indirection |
| tests.cpp:657:32:657:35 | argv indirection | tests.cpp:682:9:682:15 | access to array indirection |
| tests.cpp:657:32:657:35 | argv indirection | tests.cpp:683:9:683:15 | access to array indirection |
| tests.cpp:682:9:682:15 | access to array indirection | tests.cpp:613:19:613:24 | source indirection |
| tests.cpp:683:9:683:15 | access to array indirection | tests.cpp:622:19:622:24 | source indirection |
| main.cpp:6:27:6:30 | **argv | main.cpp:10:20:10:23 | **argv |
| main.cpp:10:20:10:23 | **argv | tests.cpp:657:32:657:35 | **argv |
| tests.cpp:613:19:613:24 | *source | tests.cpp:615:17:615:22 | *source |
| tests.cpp:622:19:622:24 | *source | tests.cpp:625:2:625:16 | *... = ... |
| tests.cpp:625:2:625:2 | *s [post update] [*home] | tests.cpp:628:14:628:14 | *s [*home] |
| tests.cpp:625:2:625:16 | *... = ... | tests.cpp:625:2:625:2 | *s [post update] [*home] |
| tests.cpp:628:14:628:14 | *s [*home] | tests.cpp:628:14:628:19 | *home |
| tests.cpp:628:14:628:14 | *s [*home] | tests.cpp:628:16:628:19 | *home |
| tests.cpp:628:16:628:19 | *home | tests.cpp:628:14:628:19 | *home |
| tests.cpp:657:32:657:35 | **argv | tests.cpp:682:9:682:15 | *access to array |
| tests.cpp:657:32:657:35 | **argv | tests.cpp:683:9:683:15 | *access to array |
| tests.cpp:682:9:682:15 | *access to array | tests.cpp:613:19:613:24 | *source |
| tests.cpp:683:9:683:15 | *access to array | tests.cpp:622:19:622:24 | *source |
nodes
| main.cpp:6:27:6:30 | argv indirection | semmle.label | argv indirection |
| main.cpp:10:20:10:23 | argv indirection | semmle.label | argv indirection |
| tests.cpp:613:19:613:24 | source indirection | semmle.label | source indirection |
| tests.cpp:615:17:615:22 | source indirection | semmle.label | source indirection |
| tests.cpp:622:19:622:24 | source indirection | semmle.label | source indirection |
| tests.cpp:625:2:625:2 | s indirection [post update] [home indirection] | semmle.label | s indirection [post update] [home indirection] |
| tests.cpp:625:2:625:16 | ... = ... indirection | semmle.label | ... = ... indirection |
| tests.cpp:628:14:628:14 | s indirection [home indirection] | semmle.label | s indirection [home indirection] |
| tests.cpp:628:14:628:19 | home indirection | semmle.label | home indirection |
| tests.cpp:628:16:628:19 | home indirection | semmle.label | home indirection |
| tests.cpp:657:32:657:35 | argv indirection | semmle.label | argv indirection |
| tests.cpp:682:9:682:15 | access to array indirection | semmle.label | access to array indirection |
| tests.cpp:683:9:683:15 | access to array indirection | semmle.label | access to array indirection |
| main.cpp:6:27:6:30 | **argv | semmle.label | **argv |
| main.cpp:10:20:10:23 | **argv | semmle.label | **argv |
| tests.cpp:613:19:613:24 | *source | semmle.label | *source |
| tests.cpp:615:17:615:22 | *source | semmle.label | *source |
| tests.cpp:622:19:622:24 | *source | semmle.label | *source |
| tests.cpp:625:2:625:2 | *s [post update] [*home] | semmle.label | *s [post update] [*home] |
| tests.cpp:625:2:625:16 | *... = ... | semmle.label | *... = ... |
| tests.cpp:628:14:628:14 | *s [*home] | semmle.label | *s [*home] |
| tests.cpp:628:14:628:19 | *home | semmle.label | *home |
| tests.cpp:628:16:628:19 | *home | semmle.label | *home |
| tests.cpp:657:32:657:35 | **argv | semmle.label | **argv |
| tests.cpp:682:9:682:15 | *access to array | semmle.label | *access to array |
| tests.cpp:683:9:683:15 | *access to array | semmle.label | *access to array |
subpaths
#select
| tests.cpp:615:2:615:7 | call to strcpy | main.cpp:6:27:6:30 | argv indirection | tests.cpp:615:17:615:22 | source indirection | This 'call to strcpy' with input from $@ may overflow the destination. | main.cpp:6:27:6:30 | argv indirection | a command-line argument |
| tests.cpp:628:2:628:7 | call to strcpy | main.cpp:6:27:6:30 | argv indirection | tests.cpp:628:14:628:19 | home indirection | This 'call to strcpy' with input from $@ may overflow the destination. | main.cpp:6:27:6:30 | argv indirection | a command-line argument |
| tests.cpp:615:2:615:7 | call to strcpy | main.cpp:6:27:6:30 | **argv | tests.cpp:615:17:615:22 | *source | This 'call to strcpy' with input from $@ may overflow the destination. | main.cpp:6:27:6:30 | **argv | a command-line argument |
| tests.cpp:628:2:628:7 | call to strcpy | main.cpp:6:27:6:30 | **argv | tests.cpp:628:14:628:19 | *home | This 'call to strcpy' with input from $@ may overflow the destination. | main.cpp:6:27:6:30 | **argv | a command-line argument |

View File

@@ -1,4 +1,2 @@
| tests2.cpp:59:3:59:10 | call to snprintf | This 'call to snprintf' operation is limited to 13 bytes but the destination is only 2 bytes. |
| tests2.cpp:63:3:63:10 | call to snprintf | This 'call to snprintf' operation is limited to 13 bytes but the destination is only 3 bytes. |
| tests.c:43:3:43:10 | call to snprintf | This 'call to snprintf' operation is limited to 111 bytes but the destination is only 110 bytes. |
| tests.c:46:3:46:10 | call to snprintf | This 'call to snprintf' operation is limited to 111 bytes but the destination is only 110 bytes. |

View File

@@ -1,18 +1,18 @@
edges
| tests.c:16:26:16:29 | argv indirection | tests.c:28:22:28:28 | access to array indirection |
| tests.c:16:26:16:29 | argv indirection | tests.c:29:28:29:34 | access to array indirection |
| tests.c:16:26:16:29 | argv indirection | tests.c:34:10:34:16 | access to array indirection |
| tests.c:16:26:16:29 | **argv | tests.c:28:22:28:28 | *access to array |
| tests.c:16:26:16:29 | **argv | tests.c:29:28:29:34 | *access to array |
| tests.c:16:26:16:29 | **argv | tests.c:34:10:34:16 | *access to array |
nodes
| tests.c:16:26:16:29 | argv indirection | semmle.label | argv indirection |
| tests.c:28:22:28:28 | access to array indirection | semmle.label | access to array indirection |
| tests.c:29:28:29:34 | access to array indirection | semmle.label | access to array indirection |
| tests.c:16:26:16:29 | **argv | semmle.label | **argv |
| tests.c:28:22:28:28 | *access to array | semmle.label | *access to array |
| tests.c:29:28:29:34 | *access to array | semmle.label | *access to array |
| tests.c:31:15:31:23 | scanf output argument | semmle.label | scanf output argument |
| tests.c:33:21:33:29 | scanf output argument | semmle.label | scanf output argument |
| tests.c:34:10:34:16 | access to array indirection | semmle.label | access to array indirection |
| tests.c:34:10:34:16 | *access to array | semmle.label | *access to array |
subpaths
#select
| tests.c:28:3:28:9 | call to sprintf | tests.c:16:26:16:29 | argv indirection | tests.c:28:22:28:28 | access to array indirection | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:16:26:16:29 | argv indirection | a command-line argument |
| tests.c:29:3:29:9 | call to sprintf | tests.c:16:26:16:29 | argv indirection | tests.c:29:28:29:34 | access to array indirection | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:16:26:16:29 | argv indirection | a command-line argument |
| tests.c:28:3:28:9 | call to sprintf | tests.c:16:26:16:29 | **argv | tests.c:28:22:28:28 | *access to array | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:16:26:16:29 | **argv | a command-line argument |
| tests.c:29:3:29:9 | call to sprintf | tests.c:16:26:16:29 | **argv | tests.c:29:28:29:34 | *access to array | This 'call to sprintf' with input from $@ may overflow the destination. | tests.c:16:26:16:29 | **argv | a command-line argument |
| tests.c:31:15:31:23 | buffer100 | tests.c:31:15:31:23 | scanf output argument | tests.c:31:15:31:23 | scanf output argument | This 'scanf string argument' with input from $@ may overflow the destination. | tests.c:31:15:31:23 | scanf output argument | value read by scanf |
| tests.c:33:21:33:29 | buffer100 | tests.c:33:21:33:29 | scanf output argument | tests.c:33:21:33:29 | scanf output argument | This 'scanf string argument' with input from $@ may overflow the destination. | tests.c:33:21:33:29 | scanf output argument | value read by scanf |
| tests.c:34:25:34:33 | buffer100 | tests.c:16:26:16:29 | argv indirection | tests.c:34:10:34:16 | access to array indirection | This 'sscanf string argument' with input from $@ may overflow the destination. | tests.c:16:26:16:29 | argv indirection | a command-line argument |
| tests.c:34:25:34:33 | buffer100 | tests.c:16:26:16:29 | **argv | tests.c:34:10:34:16 | *access to array | This 'sscanf string argument' with input from $@ may overflow the destination. | tests.c:16:26:16:29 | **argv | a command-line argument |

View File

@@ -56,9 +56,9 @@ void test3() {
dest1 = (char*)malloc(sizeof(src));
if (!dest1)
return;
snprintf(dest1, sizeof(src), "%s", src); // GOOD [FALSE POSITIVE]
snprintf(dest1, sizeof(src), "%s", src); // GOOD
dest2 = (char*)malloc(3);
if (!dest2)
return;
snprintf(dest2, sizeof(src), "%s", src); // BAD (but with duplicate alerts)
snprintf(dest2, sizeof(src), "%s", src); // BAD [NOT DETECTED]
}

View File

@@ -1,7 +1,7 @@
edges
| test1.c:7:26:7:29 | argv indirection | test1.c:9:9:9:9 | i |
| test1.c:7:26:7:29 | argv indirection | test1.c:11:9:11:9 | i |
| test1.c:7:26:7:29 | argv indirection | test1.c:13:9:13:9 | i |
| test1.c:7:26:7:29 | **argv | test1.c:9:9:9:9 | i |
| test1.c:7:26:7:29 | **argv | test1.c:11:9:11:9 | i |
| test1.c:7:26:7:29 | **argv | test1.c:13:9:13:9 | i |
| test1.c:9:9:9:9 | i | test1.c:16:16:16:16 | i |
| test1.c:11:9:11:9 | i | test1.c:32:16:32:16 | i |
| test1.c:13:9:13:9 | i | test1.c:48:16:48:16 | i |
@@ -9,7 +9,7 @@ edges
| test1.c:32:16:32:16 | i | test1.c:33:11:33:11 | i |
| test1.c:48:16:48:16 | i | test1.c:53:15:53:15 | j |
nodes
| test1.c:7:26:7:29 | argv indirection | semmle.label | argv indirection |
| test1.c:7:26:7:29 | **argv | semmle.label | **argv |
| test1.c:9:9:9:9 | i | semmle.label | i |
| test1.c:11:9:11:9 | i | semmle.label | i |
| test1.c:13:9:13:9 | i | semmle.label | i |
@@ -21,6 +21,6 @@ nodes
| test1.c:53:15:53:15 | j | semmle.label | j |
subpaths
#select
| test1.c:18:16:18:16 | i | test1.c:7:26:7:29 | argv indirection | test1.c:18:16:18:16 | i | An array indexing expression depends on $@ that might be outside the bounds of the array. | test1.c:7:26:7:29 | argv indirection | a command-line argument |
| test1.c:33:11:33:11 | i | test1.c:7:26:7:29 | argv indirection | test1.c:33:11:33:11 | i | An array indexing expression depends on $@ that might be outside the bounds of the array. | test1.c:7:26:7:29 | argv indirection | a command-line argument |
| test1.c:53:15:53:15 | j | test1.c:7:26:7:29 | argv indirection | test1.c:53:15:53:15 | j | An array indexing expression depends on $@ that might be outside the bounds of the array. | test1.c:7:26:7:29 | argv indirection | a command-line argument |
| test1.c:18:16:18:16 | i | test1.c:7:26:7:29 | **argv | test1.c:18:16:18:16 | i | An array indexing expression depends on $@ that might be outside the bounds of the array. | test1.c:7:26:7:29 | **argv | a command-line argument |
| test1.c:33:11:33:11 | i | test1.c:7:26:7:29 | **argv | test1.c:33:11:33:11 | i | An array indexing expression depends on $@ that might be outside the bounds of the array. | test1.c:7:26:7:29 | **argv | a command-line argument |
| test1.c:53:15:53:15 | j | test1.c:7:26:7:29 | **argv | test1.c:53:15:53:15 | j | An array indexing expression depends on $@ that might be outside the bounds of the array. | test1.c:7:26:7:29 | **argv | a command-line argument |

View File

@@ -1,16 +1,16 @@
edges
| char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data indirection |
| char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | data indirection |
| char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv indirection | char_environment_fprintf_01_bad.c:36:21:36:24 | data indirection |
| char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data |
| char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | *data |
| char_environment_fprintf_01_bad.c:27:30:27:35 | *call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | *data |
nodes
| char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | semmle.label | recv output argument |
| char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data indirection | semmle.label | data indirection |
| char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data | semmle.label | *data |
| char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | semmle.label | fgets output argument |
| char_console_fprintf_01_bad.c:49:21:49:24 | data indirection | semmle.label | data indirection |
| char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv indirection | semmle.label | call to getenv indirection |
| char_environment_fprintf_01_bad.c:36:21:36:24 | data indirection | semmle.label | data indirection |
| char_console_fprintf_01_bad.c:49:21:49:24 | *data | semmle.label | *data |
| char_environment_fprintf_01_bad.c:27:30:27:35 | *call to getenv | semmle.label | *call to getenv |
| char_environment_fprintf_01_bad.c:36:21:36:24 | *data | semmle.label | *data |
subpaths
#select
| char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data indirection | char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | data indirection | The value of this argument may come from $@ and is being used as a formatting argument to badVaSink(data), which calls vsnprintf(format). | char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | buffer read by recv |
| char_console_fprintf_01_bad.c:49:21:49:24 | data indirection | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | data indirection | The value of this argument may come from $@ and is being used as a formatting argument to fprintf(format). | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | string read by fgets |
| char_environment_fprintf_01_bad.c:36:21:36:24 | data indirection | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv indirection | char_environment_fprintf_01_bad.c:36:21:36:24 | data indirection | The value of this argument may come from $@ and is being used as a formatting argument to fprintf(format). | char_environment_fprintf_01_bad.c:27:30:27:35 | call to getenv indirection | an environment variable |
| char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data | char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data | The value of this argument may come from $@ and is being used as a formatting argument to badVaSink(data), which calls vsnprintf(format). | char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | buffer read by recv |
| char_console_fprintf_01_bad.c:49:21:49:24 | *data | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | *data | The value of this argument may come from $@ and is being used as a formatting argument to fprintf(format). | char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | string read by fgets |
| char_environment_fprintf_01_bad.c:36:21:36:24 | *data | char_environment_fprintf_01_bad.c:27:30:27:35 | *call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | *data | The value of this argument may come from $@ and is being used as a formatting argument to fprintf(format). | char_environment_fprintf_01_bad.c:27:30:27:35 | *call to getenv | an environment variable |

View File

@@ -1,77 +1,77 @@
edges
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:95:9:95:15 | access to array indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:96:15:96:21 | access to array indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:101:9:101:10 | i1 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:102:15:102:16 | i1 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:106:9:106:13 | access to array indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:107:15:107:19 | access to array indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:110:9:110:11 | * ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:111:15:111:17 | * ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:116:9:116:10 | i3 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:117:15:117:16 | i3 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:121:9:121:10 | i4 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:122:15:122:16 | i4 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:127:9:127:10 | i5 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:128:15:128:16 | i5 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:131:9:131:14 | ... + ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:132:15:132:20 | ... + ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:135:9:135:12 | ... ++ indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:136:15:136:18 | -- ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:139:9:139:26 | ... ? ... : ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:140:15:140:32 | ... ? ... : ... indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:144:9:144:10 | i7 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:145:15:145:16 | i7 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:150:9:150:10 | i8 indirection |
| argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:151:15:151:16 | i8 indirection |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:95:9:95:15 | *access to array |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:96:15:96:21 | *access to array |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:101:9:101:10 | *i1 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:102:15:102:16 | *i1 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:106:9:106:13 | *access to array |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:107:15:107:19 | *access to array |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:110:9:110:11 | ** ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:111:15:111:17 | ** ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:116:9:116:10 | *i3 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:117:15:117:16 | *i3 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:121:9:121:10 | *i4 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:122:15:122:16 | *i4 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:127:9:127:10 | *i5 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:128:15:128:16 | *i5 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:131:9:131:14 | *... + ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:132:15:132:20 | *... + ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:135:9:135:12 | *... ++ |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:136:15:136:18 | *-- ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:139:9:139:26 | *... ? ... : ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:140:15:140:32 | *... ? ... : ... |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:144:9:144:10 | *i7 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:145:15:145:16 | *i7 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:150:9:150:10 | *i8 |
| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:151:15:151:16 | *i8 |
nodes
| argvLocal.c:13:27:13:30 | argv indirection | semmle.label | argv indirection |
| argvLocal.c:95:9:95:15 | access to array indirection | semmle.label | access to array indirection |
| argvLocal.c:96:15:96:21 | access to array indirection | semmle.label | access to array indirection |
| argvLocal.c:101:9:101:10 | i1 indirection | semmle.label | i1 indirection |
| argvLocal.c:102:15:102:16 | i1 indirection | semmle.label | i1 indirection |
| argvLocal.c:106:9:106:13 | access to array indirection | semmle.label | access to array indirection |
| argvLocal.c:107:15:107:19 | access to array indirection | semmle.label | access to array indirection |
| argvLocal.c:110:9:110:11 | * ... indirection | semmle.label | * ... indirection |
| argvLocal.c:111:15:111:17 | * ... indirection | semmle.label | * ... indirection |
| argvLocal.c:116:9:116:10 | i3 indirection | semmle.label | i3 indirection |
| argvLocal.c:117:15:117:16 | i3 indirection | semmle.label | i3 indirection |
| argvLocal.c:121:9:121:10 | i4 indirection | semmle.label | i4 indirection |
| argvLocal.c:122:15:122:16 | i4 indirection | semmle.label | i4 indirection |
| argvLocal.c:127:9:127:10 | i5 indirection | semmle.label | i5 indirection |
| argvLocal.c:128:15:128:16 | i5 indirection | semmle.label | i5 indirection |
| argvLocal.c:131:9:131:14 | ... + ... indirection | semmle.label | ... + ... indirection |
| argvLocal.c:132:15:132:20 | ... + ... indirection | semmle.label | ... + ... indirection |
| argvLocal.c:135:9:135:12 | ... ++ indirection | semmle.label | ... ++ indirection |
| argvLocal.c:136:15:136:18 | -- ... indirection | semmle.label | -- ... indirection |
| argvLocal.c:139:9:139:26 | ... ? ... : ... indirection | semmle.label | ... ? ... : ... indirection |
| argvLocal.c:140:15:140:32 | ... ? ... : ... indirection | semmle.label | ... ? ... : ... indirection |
| argvLocal.c:144:9:144:10 | i7 indirection | semmle.label | i7 indirection |
| argvLocal.c:145:15:145:16 | i7 indirection | semmle.label | i7 indirection |
| argvLocal.c:150:9:150:10 | i8 indirection | semmle.label | i8 indirection |
| argvLocal.c:151:15:151:16 | i8 indirection | semmle.label | i8 indirection |
| argvLocal.c:13:27:13:30 | **argv | semmle.label | **argv |
| argvLocal.c:95:9:95:15 | *access to array | semmle.label | *access to array |
| argvLocal.c:96:15:96:21 | *access to array | semmle.label | *access to array |
| argvLocal.c:101:9:101:10 | *i1 | semmle.label | *i1 |
| argvLocal.c:102:15:102:16 | *i1 | semmle.label | *i1 |
| argvLocal.c:106:9:106:13 | *access to array | semmle.label | *access to array |
| argvLocal.c:107:15:107:19 | *access to array | semmle.label | *access to array |
| argvLocal.c:110:9:110:11 | ** ... | semmle.label | ** ... |
| argvLocal.c:111:15:111:17 | ** ... | semmle.label | ** ... |
| argvLocal.c:116:9:116:10 | *i3 | semmle.label | *i3 |
| argvLocal.c:117:15:117:16 | *i3 | semmle.label | *i3 |
| argvLocal.c:121:9:121:10 | *i4 | semmle.label | *i4 |
| argvLocal.c:122:15:122:16 | *i4 | semmle.label | *i4 |
| argvLocal.c:127:9:127:10 | *i5 | semmle.label | *i5 |
| argvLocal.c:128:15:128:16 | *i5 | semmle.label | *i5 |
| argvLocal.c:131:9:131:14 | *... + ... | semmle.label | *... + ... |
| argvLocal.c:132:15:132:20 | *... + ... | semmle.label | *... + ... |
| argvLocal.c:135:9:135:12 | *... ++ | semmle.label | *... ++ |
| argvLocal.c:136:15:136:18 | *-- ... | semmle.label | *-- ... |
| argvLocal.c:139:9:139:26 | *... ? ... : ... | semmle.label | *... ? ... : ... |
| argvLocal.c:140:15:140:32 | *... ? ... : ... | semmle.label | *... ? ... : ... |
| argvLocal.c:144:9:144:10 | *i7 | semmle.label | *i7 |
| argvLocal.c:145:15:145:16 | *i7 | semmle.label | *i7 |
| argvLocal.c:150:9:150:10 | *i8 | semmle.label | *i8 |
| argvLocal.c:151:15:151:16 | *i8 | semmle.label | *i8 |
subpaths
#select
| argvLocal.c:95:9:95:15 | access to array indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:95:9:95:15 | access to array indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:96:15:96:21 | access to array indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:96:15:96:21 | access to array indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:101:9:101:10 | i1 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:101:9:101:10 | i1 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:102:15:102:16 | i1 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:102:15:102:16 | i1 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:106:9:106:13 | access to array indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:106:9:106:13 | access to array indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:107:15:107:19 | access to array indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:107:15:107:19 | access to array indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:110:9:110:11 | * ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:110:9:110:11 | * ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:111:15:111:17 | * ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:111:15:111:17 | * ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:116:9:116:10 | i3 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:116:9:116:10 | i3 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:117:15:117:16 | i3 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:117:15:117:16 | i3 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:121:9:121:10 | i4 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:121:9:121:10 | i4 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:122:15:122:16 | i4 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:122:15:122:16 | i4 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:127:9:127:10 | i5 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:127:9:127:10 | i5 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:128:15:128:16 | i5 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:128:15:128:16 | i5 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:131:9:131:14 | ... + ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:131:9:131:14 | ... + ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:132:15:132:20 | ... + ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:132:15:132:20 | ... + ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:135:9:135:12 | ... ++ indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:135:9:135:12 | ... ++ indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:136:15:136:18 | -- ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:136:15:136:18 | -- ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:139:9:139:26 | ... ? ... : ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:139:9:139:26 | ... ? ... : ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:140:15:140:32 | ... ? ... : ... indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:140:15:140:32 | ... ? ... : ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:144:9:144:10 | i7 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:144:9:144:10 | i7 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:145:15:145:16 | i7 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:145:15:145:16 | i7 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:150:9:150:10 | i8 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:150:9:150:10 | i8 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:151:15:151:16 | i8 indirection | argvLocal.c:13:27:13:30 | argv indirection | argvLocal.c:151:15:151:16 | i8 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | argv indirection | a command-line argument |
| argvLocal.c:95:9:95:15 | *access to array | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:95:9:95:15 | *access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:96:15:96:21 | *access to array | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:96:15:96:21 | *access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:101:9:101:10 | *i1 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:101:9:101:10 | *i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:102:15:102:16 | *i1 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:102:15:102:16 | *i1 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:106:9:106:13 | *access to array | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:106:9:106:13 | *access to array | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:107:15:107:19 | *access to array | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:107:15:107:19 | *access to array | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:110:9:110:11 | ** ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:110:9:110:11 | ** ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:111:15:111:17 | ** ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:111:15:111:17 | ** ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:116:9:116:10 | *i3 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:116:9:116:10 | *i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:117:15:117:16 | *i3 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:117:15:117:16 | *i3 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:121:9:121:10 | *i4 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:121:9:121:10 | *i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:122:15:122:16 | *i4 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:122:15:122:16 | *i4 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:127:9:127:10 | *i5 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:127:9:127:10 | *i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:128:15:128:16 | *i5 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:128:15:128:16 | *i5 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:131:9:131:14 | *... + ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:131:9:131:14 | *... + ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:132:15:132:20 | *... + ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:132:15:132:20 | *... + ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:135:9:135:12 | *... ++ | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:135:9:135:12 | *... ++ | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:136:15:136:18 | *-- ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:136:15:136:18 | *-- ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:139:9:139:26 | *... ? ... : ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:139:9:139:26 | *... ? ... : ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:140:15:140:32 | *... ? ... : ... | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:140:15:140:32 | *... ? ... : ... | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:144:9:144:10 | *i7 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:144:9:144:10 | *i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:145:15:145:16 | *i7 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:145:15:145:16 | *i7 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:150:9:150:10 | *i8 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:150:9:150:10 | *i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |
| argvLocal.c:151:15:151:16 | *i8 | argvLocal.c:13:27:13:30 | **argv | argvLocal.c:151:15:151:16 | *i8 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(correct), which calls printf(format). | argvLocal.c:13:27:13:30 | **argv | a command-line argument |

View File

@@ -1,35 +1,35 @@
edges
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | i1 indirection |
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | e1 indirection |
| funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | i3 indirection |
| funcsLocal.c:31:13:31:17 | call to fgets indirection | funcsLocal.c:32:9:32:10 | i4 indirection |
| funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | i5 indirection |
| funcsLocal.c:41:13:41:16 | call to gets indirection | funcsLocal.c:42:9:42:10 | i6 indirection |
| funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... indirection |
| funcsLocal.c:52:8:52:11 | call to gets indirection | funcsLocal.c:53:9:53:11 | * ... indirection |
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | *i1 |
| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | *e1 |
| funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | *i3 |
| funcsLocal.c:31:13:31:17 | *call to fgets | funcsLocal.c:32:9:32:10 | *i4 |
| funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | *i5 |
| funcsLocal.c:41:13:41:16 | *call to gets | funcsLocal.c:42:9:42:10 | *i6 |
| funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | ** ... |
| funcsLocal.c:52:8:52:11 | *call to gets | funcsLocal.c:53:9:53:11 | ** ... |
nodes
| funcsLocal.c:16:8:16:9 | fread output argument | semmle.label | fread output argument |
| funcsLocal.c:17:9:17:10 | i1 indirection | semmle.label | i1 indirection |
| funcsLocal.c:17:9:17:10 | *i1 | semmle.label | *i1 |
| funcsLocal.c:26:8:26:9 | fgets output argument | semmle.label | fgets output argument |
| funcsLocal.c:27:9:27:10 | i3 indirection | semmle.label | i3 indirection |
| funcsLocal.c:31:13:31:17 | call to fgets indirection | semmle.label | call to fgets indirection |
| funcsLocal.c:32:9:32:10 | i4 indirection | semmle.label | i4 indirection |
| funcsLocal.c:27:9:27:10 | *i3 | semmle.label | *i3 |
| funcsLocal.c:31:13:31:17 | *call to fgets | semmle.label | *call to fgets |
| funcsLocal.c:32:9:32:10 | *i4 | semmle.label | *i4 |
| funcsLocal.c:36:7:36:8 | gets output argument | semmle.label | gets output argument |
| funcsLocal.c:37:9:37:10 | i5 indirection | semmle.label | i5 indirection |
| funcsLocal.c:41:13:41:16 | call to gets indirection | semmle.label | call to gets indirection |
| funcsLocal.c:42:9:42:10 | i6 indirection | semmle.label | i6 indirection |
| funcsLocal.c:37:9:37:10 | *i5 | semmle.label | *i5 |
| funcsLocal.c:41:13:41:16 | *call to gets | semmle.label | *call to gets |
| funcsLocal.c:42:9:42:10 | *i6 | semmle.label | *i6 |
| funcsLocal.c:46:7:46:9 | gets output argument | semmle.label | gets output argument |
| funcsLocal.c:47:9:47:11 | * ... indirection | semmle.label | * ... indirection |
| funcsLocal.c:52:8:52:11 | call to gets indirection | semmle.label | call to gets indirection |
| funcsLocal.c:53:9:53:11 | * ... indirection | semmle.label | * ... indirection |
| funcsLocal.c:58:9:58:10 | e1 indirection | semmle.label | e1 indirection |
| funcsLocal.c:47:9:47:11 | ** ... | semmle.label | ** ... |
| funcsLocal.c:52:8:52:11 | *call to gets | semmle.label | *call to gets |
| funcsLocal.c:53:9:53:11 | ** ... | semmle.label | ** ... |
| funcsLocal.c:58:9:58:10 | *e1 | semmle.label | *e1 |
subpaths
#select
| funcsLocal.c:17:9:17:10 | i1 indirection | funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | i1 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:16:8:16:9 | fread output argument | string read by fread |
| funcsLocal.c:27:9:27:10 | i3 indirection | funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | i3 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:26:8:26:9 | fgets output argument | string read by fgets |
| funcsLocal.c:32:9:32:10 | i4 indirection | funcsLocal.c:31:13:31:17 | call to fgets indirection | funcsLocal.c:32:9:32:10 | i4 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:31:13:31:17 | call to fgets indirection | string read by fgets |
| funcsLocal.c:37:9:37:10 | i5 indirection | funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | i5 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:36:7:36:8 | gets output argument | string read by gets |
| funcsLocal.c:42:9:42:10 | i6 indirection | funcsLocal.c:41:13:41:16 | call to gets indirection | funcsLocal.c:42:9:42:10 | i6 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:41:13:41:16 | call to gets indirection | string read by gets |
| funcsLocal.c:47:9:47:11 | * ... indirection | funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | * ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:46:7:46:9 | gets output argument | string read by gets |
| funcsLocal.c:53:9:53:11 | * ... indirection | funcsLocal.c:52:8:52:11 | call to gets indirection | funcsLocal.c:53:9:53:11 | * ... indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:52:8:52:11 | call to gets indirection | string read by gets |
| funcsLocal.c:58:9:58:10 | e1 indirection | funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | e1 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:16:8:16:9 | fread output argument | string read by fread |
| funcsLocal.c:17:9:17:10 | *i1 | funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | *i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:16:8:16:9 | fread output argument | string read by fread |
| funcsLocal.c:27:9:27:10 | *i3 | funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | *i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:26:8:26:9 | fgets output argument | string read by fgets |
| funcsLocal.c:32:9:32:10 | *i4 | funcsLocal.c:31:13:31:17 | *call to fgets | funcsLocal.c:32:9:32:10 | *i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:31:13:31:17 | *call to fgets | string read by fgets |
| funcsLocal.c:37:9:37:10 | *i5 | funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | *i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:36:7:36:8 | gets output argument | string read by gets |
| funcsLocal.c:42:9:42:10 | *i6 | funcsLocal.c:41:13:41:16 | *call to gets | funcsLocal.c:42:9:42:10 | *i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:41:13:41:16 | *call to gets | string read by gets |
| funcsLocal.c:47:9:47:11 | ** ... | funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | ** ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:46:7:46:9 | gets output argument | string read by gets |
| funcsLocal.c:53:9:53:11 | ** ... | funcsLocal.c:52:8:52:11 | *call to gets | funcsLocal.c:53:9:53:11 | ** ... | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:52:8:52:11 | *call to gets | string read by gets |
| funcsLocal.c:58:9:58:10 | *e1 | funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | *e1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | funcsLocal.c:16:8:16:9 | fread output argument | string read by fread |

View File

@@ -1,32 +1,32 @@
edges
| globalVars.c:8:7:8:10 | copy indirection | globalVars.c:27:9:27:12 | copy indirection |
| globalVars.c:8:7:8:10 | copy indirection | globalVars.c:30:15:30:18 | copy indirection |
| globalVars.c:8:7:8:10 | copy indirection | globalVars.c:35:11:35:14 | copy indirection |
| globalVars.c:9:7:9:11 | copy2 indirection | globalVars.c:38:9:38:13 | copy2 indirection |
| globalVars.c:9:7:9:11 | copy2 indirection | globalVars.c:41:15:41:19 | copy2 indirection |
| globalVars.c:9:7:9:11 | copy2 indirection | globalVars.c:50:9:50:13 | copy2 indirection |
| globalVars.c:11:22:11:25 | argv indirection | globalVars.c:8:7:8:10 | copy indirection |
| globalVars.c:15:21:15:23 | val indirection | globalVars.c:9:7:9:11 | copy2 indirection |
| globalVars.c:23:27:23:30 | argv indirection | globalVars.c:24:11:24:14 | argv indirection |
| globalVars.c:24:11:24:14 | argv indirection | globalVars.c:11:22:11:25 | argv indirection |
| globalVars.c:35:11:35:14 | copy indirection | globalVars.c:15:21:15:23 | val indirection |
| globalVars.c:8:7:8:10 | **copy | globalVars.c:27:9:27:12 | *copy |
| globalVars.c:8:7:8:10 | **copy | globalVars.c:30:15:30:18 | *copy |
| globalVars.c:8:7:8:10 | **copy | globalVars.c:35:11:35:14 | *copy |
| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:38:9:38:13 | *copy2 |
| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:41:15:41:19 | *copy2 |
| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:50:9:50:13 | *copy2 |
| globalVars.c:11:22:11:25 | **argv | globalVars.c:8:7:8:10 | **copy |
| globalVars.c:15:21:15:23 | *val | globalVars.c:9:7:9:11 | **copy2 |
| globalVars.c:23:27:23:30 | **argv | globalVars.c:24:11:24:14 | **argv |
| globalVars.c:24:11:24:14 | **argv | globalVars.c:11:22:11:25 | **argv |
| globalVars.c:35:11:35:14 | *copy | globalVars.c:15:21:15:23 | *val |
nodes
| globalVars.c:8:7:8:10 | copy indirection | semmle.label | copy indirection |
| globalVars.c:9:7:9:11 | copy2 indirection | semmle.label | copy2 indirection |
| globalVars.c:11:22:11:25 | argv indirection | semmle.label | argv indirection |
| globalVars.c:15:21:15:23 | val indirection | semmle.label | val indirection |
| globalVars.c:23:27:23:30 | argv indirection | semmle.label | argv indirection |
| globalVars.c:24:11:24:14 | argv indirection | semmle.label | argv indirection |
| globalVars.c:27:9:27:12 | copy indirection | semmle.label | copy indirection |
| globalVars.c:30:15:30:18 | copy indirection | semmle.label | copy indirection |
| globalVars.c:35:11:35:14 | copy indirection | semmle.label | copy indirection |
| globalVars.c:38:9:38:13 | copy2 indirection | semmle.label | copy2 indirection |
| globalVars.c:41:15:41:19 | copy2 indirection | semmle.label | copy2 indirection |
| globalVars.c:50:9:50:13 | copy2 indirection | semmle.label | copy2 indirection |
| globalVars.c:8:7:8:10 | **copy | semmle.label | **copy |
| globalVars.c:9:7:9:11 | **copy2 | semmle.label | **copy2 |
| globalVars.c:11:22:11:25 | **argv | semmle.label | **argv |
| globalVars.c:15:21:15:23 | *val | semmle.label | *val |
| globalVars.c:23:27:23:30 | **argv | semmle.label | **argv |
| globalVars.c:24:11:24:14 | **argv | semmle.label | **argv |
| globalVars.c:27:9:27:12 | *copy | semmle.label | *copy |
| globalVars.c:30:15:30:18 | *copy | semmle.label | *copy |
| globalVars.c:35:11:35:14 | *copy | semmle.label | *copy |
| globalVars.c:38:9:38:13 | *copy2 | semmle.label | *copy2 |
| globalVars.c:41:15:41:19 | *copy2 | semmle.label | *copy2 |
| globalVars.c:50:9:50:13 | *copy2 | semmle.label | *copy2 |
subpaths
#select
| globalVars.c:27:9:27:12 | copy indirection | globalVars.c:23:27:23:30 | argv indirection | globalVars.c:27:9:27:12 | copy indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:23:27:23:30 | argv indirection | a command-line argument |
| globalVars.c:30:15:30:18 | copy indirection | globalVars.c:23:27:23:30 | argv indirection | globalVars.c:30:15:30:18 | copy indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:23:27:23:30 | argv indirection | a command-line argument |
| globalVars.c:38:9:38:13 | copy2 indirection | globalVars.c:23:27:23:30 | argv indirection | globalVars.c:38:9:38:13 | copy2 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:23:27:23:30 | argv indirection | a command-line argument |
| globalVars.c:41:15:41:19 | copy2 indirection | globalVars.c:23:27:23:30 | argv indirection | globalVars.c:41:15:41:19 | copy2 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:23:27:23:30 | argv indirection | a command-line argument |
| globalVars.c:50:9:50:13 | copy2 indirection | globalVars.c:23:27:23:30 | argv indirection | globalVars.c:50:9:50:13 | copy2 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:23:27:23:30 | argv indirection | a command-line argument |
| globalVars.c:27:9:27:12 | *copy | globalVars.c:23:27:23:30 | **argv | globalVars.c:27:9:27:12 | *copy | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:23:27:23:30 | **argv | a command-line argument |
| globalVars.c:30:15:30:18 | *copy | globalVars.c:23:27:23:30 | **argv | globalVars.c:30:15:30:18 | *copy | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:23:27:23:30 | **argv | a command-line argument |
| globalVars.c:38:9:38:13 | *copy2 | globalVars.c:23:27:23:30 | **argv | globalVars.c:38:9:38:13 | *copy2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:23:27:23:30 | **argv | a command-line argument |
| globalVars.c:41:15:41:19 | *copy2 | globalVars.c:23:27:23:30 | **argv | globalVars.c:41:15:41:19 | *copy2 | The value of this argument may come from $@ and is being used as a formatting argument to printWrapper(str), which calls printf(format). | globalVars.c:23:27:23:30 | **argv | a command-line argument |
| globalVars.c:50:9:50:13 | *copy2 | globalVars.c:23:27:23:30 | **argv | globalVars.c:50:9:50:13 | *copy2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | globalVars.c:23:27:23:30 | **argv | a command-line argument |

View File

@@ -1,38 +1,38 @@
edges
| ifs.c:16:27:16:30 | argv indirection | ifs.c:62:9:62:10 | c7 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:69:9:69:10 | c8 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:75:9:75:10 | i1 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:81:9:81:10 | i2 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:87:9:87:10 | i3 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:93:9:93:10 | i4 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:99:9:99:10 | i5 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:106:9:106:10 | i6 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:112:9:112:10 | i7 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:118:9:118:10 | i8 indirection |
| ifs.c:16:27:16:30 | argv indirection | ifs.c:124:9:124:10 | i9 indirection |
| ifs.c:16:27:16:30 | **argv | ifs.c:62:9:62:10 | *c7 |
| ifs.c:16:27:16:30 | **argv | ifs.c:69:9:69:10 | *c8 |
| ifs.c:16:27:16:30 | **argv | ifs.c:75:9:75:10 | *i1 |
| ifs.c:16:27:16:30 | **argv | ifs.c:81:9:81:10 | *i2 |
| ifs.c:16:27:16:30 | **argv | ifs.c:87:9:87:10 | *i3 |
| ifs.c:16:27:16:30 | **argv | ifs.c:93:9:93:10 | *i4 |
| ifs.c:16:27:16:30 | **argv | ifs.c:99:9:99:10 | *i5 |
| ifs.c:16:27:16:30 | **argv | ifs.c:106:9:106:10 | *i6 |
| ifs.c:16:27:16:30 | **argv | ifs.c:112:9:112:10 | *i7 |
| ifs.c:16:27:16:30 | **argv | ifs.c:118:9:118:10 | *i8 |
| ifs.c:16:27:16:30 | **argv | ifs.c:124:9:124:10 | *i9 |
nodes
| ifs.c:16:27:16:30 | argv indirection | semmle.label | argv indirection |
| ifs.c:62:9:62:10 | c7 indirection | semmle.label | c7 indirection |
| ifs.c:69:9:69:10 | c8 indirection | semmle.label | c8 indirection |
| ifs.c:75:9:75:10 | i1 indirection | semmle.label | i1 indirection |
| ifs.c:81:9:81:10 | i2 indirection | semmle.label | i2 indirection |
| ifs.c:87:9:87:10 | i3 indirection | semmle.label | i3 indirection |
| ifs.c:93:9:93:10 | i4 indirection | semmle.label | i4 indirection |
| ifs.c:99:9:99:10 | i5 indirection | semmle.label | i5 indirection |
| ifs.c:106:9:106:10 | i6 indirection | semmle.label | i6 indirection |
| ifs.c:112:9:112:10 | i7 indirection | semmle.label | i7 indirection |
| ifs.c:118:9:118:10 | i8 indirection | semmle.label | i8 indirection |
| ifs.c:124:9:124:10 | i9 indirection | semmle.label | i9 indirection |
| ifs.c:16:27:16:30 | **argv | semmle.label | **argv |
| ifs.c:62:9:62:10 | *c7 | semmle.label | *c7 |
| ifs.c:69:9:69:10 | *c8 | semmle.label | *c8 |
| ifs.c:75:9:75:10 | *i1 | semmle.label | *i1 |
| ifs.c:81:9:81:10 | *i2 | semmle.label | *i2 |
| ifs.c:87:9:87:10 | *i3 | semmle.label | *i3 |
| ifs.c:93:9:93:10 | *i4 | semmle.label | *i4 |
| ifs.c:99:9:99:10 | *i5 | semmle.label | *i5 |
| ifs.c:106:9:106:10 | *i6 | semmle.label | *i6 |
| ifs.c:112:9:112:10 | *i7 | semmle.label | *i7 |
| ifs.c:118:9:118:10 | *i8 | semmle.label | *i8 |
| ifs.c:124:9:124:10 | *i9 | semmle.label | *i9 |
subpaths
#select
| ifs.c:62:9:62:10 | c7 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:62:9:62:10 | c7 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:69:9:69:10 | c8 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:69:9:69:10 | c8 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:75:9:75:10 | i1 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:75:9:75:10 | i1 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:81:9:81:10 | i2 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:81:9:81:10 | i2 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:87:9:87:10 | i3 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:87:9:87:10 | i3 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:93:9:93:10 | i4 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:93:9:93:10 | i4 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:99:9:99:10 | i5 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:99:9:99:10 | i5 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:106:9:106:10 | i6 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:106:9:106:10 | i6 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:112:9:112:10 | i7 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:112:9:112:10 | i7 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:118:9:118:10 | i8 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:118:9:118:10 | i8 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:124:9:124:10 | i9 indirection | ifs.c:16:27:16:30 | argv indirection | ifs.c:124:9:124:10 | i9 indirection | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | argv indirection | a command-line argument |
| ifs.c:62:9:62:10 | *c7 | ifs.c:16:27:16:30 | **argv | ifs.c:62:9:62:10 | *c7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:69:9:69:10 | *c8 | ifs.c:16:27:16:30 | **argv | ifs.c:69:9:69:10 | *c8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:75:9:75:10 | *i1 | ifs.c:16:27:16:30 | **argv | ifs.c:75:9:75:10 | *i1 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:81:9:81:10 | *i2 | ifs.c:16:27:16:30 | **argv | ifs.c:81:9:81:10 | *i2 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:87:9:87:10 | *i3 | ifs.c:16:27:16:30 | **argv | ifs.c:87:9:87:10 | *i3 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:93:9:93:10 | *i4 | ifs.c:16:27:16:30 | **argv | ifs.c:93:9:93:10 | *i4 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:99:9:99:10 | *i5 | ifs.c:16:27:16:30 | **argv | ifs.c:99:9:99:10 | *i5 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:106:9:106:10 | *i6 | ifs.c:16:27:16:30 | **argv | ifs.c:106:9:106:10 | *i6 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:112:9:112:10 | *i7 | ifs.c:16:27:16:30 | **argv | ifs.c:112:9:112:10 | *i7 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:118:9:118:10 | *i8 | ifs.c:16:27:16:30 | **argv | ifs.c:118:9:118:10 | *i8 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |
| ifs.c:124:9:124:10 | *i9 | ifs.c:16:27:16:30 | **argv | ifs.c:124:9:124:10 | *i9 | The value of this argument may come from $@ and is being used as a formatting argument to printf(format). | ifs.c:16:27:16:30 | **argv | a command-line argument |

View File

@@ -10,12 +10,12 @@ edges
| test.c:131:13:131:16 | call to rand | test.c:133:5:133:5 | r |
| test.c:137:13:137:16 | call to rand | test.c:139:10:139:10 | r |
| test.c:155:22:155:27 | call to rand | test.c:157:9:157:9 | r |
| test.cpp:6:5:6:12 | get_rand indirection | test.cpp:24:11:24:18 | call to get_rand |
| test.cpp:8:9:8:12 | call to rand | test.cpp:6:5:6:12 | get_rand indirection |
| test.cpp:11:21:11:24 | dest | test.cpp:30:13:30:14 | get_rand2 output argument |
| test.cpp:13:10:13:13 | call to rand | test.cpp:11:21:11:24 | dest |
| test.cpp:16:21:16:24 | dest | test.cpp:36:13:36:13 | get_rand3 output argument |
| test.cpp:18:9:18:12 | call to rand | test.cpp:16:21:16:24 | dest |
| test.cpp:6:5:6:12 | *get_rand | test.cpp:24:11:24:18 | call to get_rand |
| test.cpp:8:9:8:12 | call to rand | test.cpp:6:5:6:12 | *get_rand |
| test.cpp:11:21:11:24 | *dest | test.cpp:30:13:30:14 | get_rand2 output argument |
| test.cpp:13:10:13:13 | call to rand | test.cpp:11:21:11:24 | *dest |
| test.cpp:16:21:16:24 | *dest | test.cpp:36:13:36:13 | get_rand3 output argument |
| test.cpp:18:9:18:12 | call to rand | test.cpp:16:21:16:24 | *dest |
| test.cpp:24:11:24:18 | call to get_rand | test.cpp:25:7:25:7 | r |
| test.cpp:30:13:30:14 | get_rand2 output argument | test.cpp:31:7:31:7 | r |
| test.cpp:36:13:36:13 | get_rand3 output argument | test.cpp:37:7:37:7 | r |
@@ -52,11 +52,11 @@ nodes
| test.c:139:10:139:10 | r | semmle.label | r |
| test.c:155:22:155:27 | call to rand | semmle.label | call to rand |
| test.c:157:9:157:9 | r | semmle.label | r |
| test.cpp:6:5:6:12 | get_rand indirection | semmle.label | get_rand indirection |
| test.cpp:6:5:6:12 | *get_rand | semmle.label | *get_rand |
| test.cpp:8:9:8:12 | call to rand | semmle.label | call to rand |
| test.cpp:11:21:11:24 | dest | semmle.label | dest |
| test.cpp:11:21:11:24 | *dest | semmle.label | *dest |
| test.cpp:13:10:13:13 | call to rand | semmle.label | call to rand |
| test.cpp:16:21:16:24 | dest | semmle.label | dest |
| test.cpp:16:21:16:24 | *dest | semmle.label | *dest |
| test.cpp:18:9:18:12 | call to rand | semmle.label | call to rand |
| test.cpp:24:11:24:18 | call to get_rand | semmle.label | call to get_rand |
| test.cpp:25:7:25:7 | r | semmle.label | r |

View File

@@ -1,79 +1,79 @@
edges
| test.cpp:39:27:39:30 | argv indirection | test.cpp:43:38:43:44 | tainted |
| test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... |
| test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... |
| test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size |
| test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size |
| test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... |
| test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... |
| test.cpp:133:19:133:32 | call to getenv indirection | test.cpp:135:10:135:27 | ... * ... |
| test.cpp:148:20:148:33 | call to getenv indirection | test.cpp:152:11:152:28 | ... * ... |
| test.cpp:209:8:209:23 | get_tainted_size indirection | test.cpp:241:9:241:24 | call to get_tainted_size |
| test.cpp:211:14:211:27 | call to getenv indirection | test.cpp:209:8:209:23 | get_tainted_size indirection |
| test.cpp:39:27:39:30 | **argv | test.cpp:43:38:43:44 | tainted |
| test.cpp:39:27:39:30 | **argv | test.cpp:44:38:44:63 | ... * ... |
| test.cpp:39:27:39:30 | **argv | test.cpp:46:38:46:63 | ... + ... |
| test.cpp:39:27:39:30 | **argv | test.cpp:49:32:49:35 | size |
| test.cpp:39:27:39:30 | **argv | test.cpp:50:17:50:30 | size |
| test.cpp:39:27:39:30 | **argv | test.cpp:53:35:53:60 | ... * ... |
| test.cpp:124:18:124:31 | *call to getenv | test.cpp:128:24:128:41 | ... * ... |
| test.cpp:133:19:133:32 | *call to getenv | test.cpp:135:10:135:27 | ... * ... |
| test.cpp:148:20:148:33 | *call to getenv | test.cpp:152:11:152:28 | ... * ... |
| test.cpp:209:8:209:23 | *get_tainted_size | test.cpp:241:9:241:24 | call to get_tainted_size |
| test.cpp:211:14:211:27 | *call to getenv | test.cpp:209:8:209:23 | *get_tainted_size |
| test.cpp:230:21:230:21 | s | test.cpp:231:21:231:21 | s |
| test.cpp:237:24:237:37 | call to getenv indirection | test.cpp:239:9:239:18 | local_size |
| test.cpp:237:24:237:37 | call to getenv indirection | test.cpp:245:11:245:20 | local_size |
| test.cpp:237:24:237:37 | call to getenv indirection | test.cpp:247:10:247:19 | local_size |
| test.cpp:237:24:237:37 | *call to getenv | test.cpp:239:9:239:18 | local_size |
| test.cpp:237:24:237:37 | *call to getenv | test.cpp:245:11:245:20 | local_size |
| test.cpp:237:24:237:37 | *call to getenv | test.cpp:247:10:247:19 | local_size |
| test.cpp:247:10:247:19 | local_size | test.cpp:230:21:230:21 | s |
| test.cpp:250:20:250:27 | out_size | test.cpp:289:17:289:20 | get_size output argument |
| test.cpp:250:20:250:27 | out_size | test.cpp:305:18:305:21 | get_size output argument |
| test.cpp:251:18:251:31 | call to getenv indirection | test.cpp:250:20:250:27 | out_size |
| test.cpp:259:20:259:33 | call to getenv indirection | test.cpp:263:11:263:29 | ... * ... |
| test.cpp:250:20:250:27 | *out_size | test.cpp:289:17:289:20 | get_size output argument |
| test.cpp:250:20:250:27 | *out_size | test.cpp:305:18:305:21 | get_size output argument |
| test.cpp:251:18:251:31 | *call to getenv | test.cpp:250:20:250:27 | *out_size |
| test.cpp:259:20:259:33 | *call to getenv | test.cpp:263:11:263:29 | ... * ... |
| test.cpp:289:17:289:20 | get_size output argument | test.cpp:291:11:291:28 | ... * ... |
| test.cpp:305:18:305:21 | get_size output argument | test.cpp:308:10:308:27 | ... * ... |
| test.cpp:353:18:353:31 | call to getenv indirection | test.cpp:355:35:355:38 | size |
| test.cpp:353:18:353:31 | call to getenv indirection | test.cpp:356:35:356:38 | size |
| test.cpp:353:18:353:31 | *call to getenv | test.cpp:355:35:355:38 | size |
| test.cpp:353:18:353:31 | *call to getenv | test.cpp:356:35:356:38 | size |
nodes
| test.cpp:39:27:39:30 | argv indirection | semmle.label | argv indirection |
| test.cpp:39:27:39:30 | **argv | semmle.label | **argv |
| test.cpp:43:38:43:44 | tainted | semmle.label | tainted |
| test.cpp:44:38:44:63 | ... * ... | semmle.label | ... * ... |
| test.cpp:46:38:46:63 | ... + ... | semmle.label | ... + ... |
| test.cpp:49:32:49:35 | size | semmle.label | size |
| test.cpp:50:17:50:30 | size | semmle.label | size |
| test.cpp:53:35:53:60 | ... * ... | semmle.label | ... * ... |
| test.cpp:124:18:124:31 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:124:18:124:31 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:128:24:128:41 | ... * ... | semmle.label | ... * ... |
| test.cpp:133:19:133:32 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:133:19:133:32 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:135:10:135:27 | ... * ... | semmle.label | ... * ... |
| test.cpp:148:20:148:33 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:148:20:148:33 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:152:11:152:28 | ... * ... | semmle.label | ... * ... |
| test.cpp:209:8:209:23 | get_tainted_size indirection | semmle.label | get_tainted_size indirection |
| test.cpp:211:14:211:27 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:209:8:209:23 | *get_tainted_size | semmle.label | *get_tainted_size |
| test.cpp:211:14:211:27 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:230:21:230:21 | s | semmle.label | s |
| test.cpp:231:21:231:21 | s | semmle.label | s |
| test.cpp:237:24:237:37 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:237:24:237:37 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:239:9:239:18 | local_size | semmle.label | local_size |
| test.cpp:241:9:241:24 | call to get_tainted_size | semmle.label | call to get_tainted_size |
| test.cpp:245:11:245:20 | local_size | semmle.label | local_size |
| test.cpp:247:10:247:19 | local_size | semmle.label | local_size |
| test.cpp:250:20:250:27 | out_size | semmle.label | out_size |
| test.cpp:251:18:251:31 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:259:20:259:33 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:250:20:250:27 | *out_size | semmle.label | *out_size |
| test.cpp:251:18:251:31 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:259:20:259:33 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:263:11:263:29 | ... * ... | semmle.label | ... * ... |
| test.cpp:289:17:289:20 | get_size output argument | semmle.label | get_size output argument |
| test.cpp:291:11:291:28 | ... * ... | semmle.label | ... * ... |
| test.cpp:305:18:305:21 | get_size output argument | semmle.label | get_size output argument |
| test.cpp:308:10:308:27 | ... * ... | semmle.label | ... * ... |
| test.cpp:353:18:353:31 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:353:18:353:31 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:355:35:355:38 | size | semmle.label | size |
| test.cpp:356:35:356:38 | size | semmle.label | size |
subpaths
#select
| test.cpp:43:31:43:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:43:38:43:44 | tainted | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.cpp:44:31:44:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:44:38:44:63 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.cpp:46:31:46:36 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:46:38:46:63 | ... + ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.cpp:49:25:49:30 | call to malloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:49:32:49:35 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | argv indirection | test.cpp:50:17:50:30 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.cpp:53:21:53:27 | call to realloc | test.cpp:39:27:39:30 | argv indirection | test.cpp:53:35:53:60 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | argv indirection | user input (a command-line argument) |
| test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:31 | call to getenv indirection | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:31 | call to getenv indirection | user input (an environment variable) |
| test.cpp:135:3:135:8 | call to malloc | test.cpp:133:19:133:32 | call to getenv indirection | test.cpp:135:10:135:27 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:133:19:133:32 | call to getenv indirection | user input (an environment variable) |
| test.cpp:152:4:152:9 | call to malloc | test.cpp:148:20:148:33 | call to getenv indirection | test.cpp:152:11:152:28 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:148:20:148:33 | call to getenv indirection | user input (an environment variable) |
| test.cpp:231:14:231:19 | call to malloc | test.cpp:237:24:237:37 | call to getenv indirection | test.cpp:231:21:231:21 | s | This allocation size is derived from $@ and might overflow. | test.cpp:237:24:237:37 | call to getenv indirection | user input (an environment variable) |
| test.cpp:239:2:239:7 | call to malloc | test.cpp:237:24:237:37 | call to getenv indirection | test.cpp:239:9:239:18 | local_size | This allocation size is derived from $@ and might overflow. | test.cpp:237:24:237:37 | call to getenv indirection | user input (an environment variable) |
| test.cpp:241:2:241:7 | call to malloc | test.cpp:211:14:211:27 | call to getenv indirection | test.cpp:241:9:241:24 | call to get_tainted_size | This allocation size is derived from $@ and might overflow. | test.cpp:211:14:211:27 | call to getenv indirection | user input (an environment variable) |
| test.cpp:245:2:245:9 | call to my_alloc | test.cpp:237:24:237:37 | call to getenv indirection | test.cpp:245:11:245:20 | local_size | This allocation size is derived from $@ and might overflow. | test.cpp:237:24:237:37 | call to getenv indirection | user input (an environment variable) |
| test.cpp:263:4:263:9 | call to malloc | test.cpp:259:20:259:33 | call to getenv indirection | test.cpp:263:11:263:29 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:259:20:259:33 | call to getenv indirection | user input (an environment variable) |
| test.cpp:291:4:291:9 | call to malloc | test.cpp:251:18:251:31 | call to getenv indirection | test.cpp:291:11:291:28 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:251:18:251:31 | call to getenv indirection | user input (an environment variable) |
| test.cpp:308:3:308:8 | call to malloc | test.cpp:251:18:251:31 | call to getenv indirection | test.cpp:308:10:308:27 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:251:18:251:31 | call to getenv indirection | user input (an environment variable) |
| test.cpp:355:25:355:33 | call to MyMalloc1 | test.cpp:353:18:353:31 | call to getenv indirection | test.cpp:355:35:355:38 | size | This allocation size is derived from $@ and might overflow. | test.cpp:353:18:353:31 | call to getenv indirection | user input (an environment variable) |
| test.cpp:356:25:356:33 | call to MyMalloc2 | test.cpp:353:18:353:31 | call to getenv indirection | test.cpp:356:35:356:38 | size | This allocation size is derived from $@ and might overflow. | test.cpp:353:18:353:31 | call to getenv indirection | user input (an environment variable) |
| test.cpp:43:31:43:36 | call to malloc | test.cpp:39:27:39:30 | **argv | test.cpp:43:38:43:44 | tainted | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |
| test.cpp:44:31:44:36 | call to malloc | test.cpp:39:27:39:30 | **argv | test.cpp:44:38:44:63 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |
| test.cpp:46:31:46:36 | call to malloc | test.cpp:39:27:39:30 | **argv | test.cpp:46:38:46:63 | ... + ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |
| test.cpp:49:25:49:30 | call to malloc | test.cpp:39:27:39:30 | **argv | test.cpp:49:32:49:35 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |
| test.cpp:50:17:50:30 | new[] | test.cpp:39:27:39:30 | **argv | test.cpp:50:17:50:30 | size | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |
| test.cpp:53:21:53:27 | call to realloc | test.cpp:39:27:39:30 | **argv | test.cpp:53:35:53:60 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:39:27:39:30 | **argv | user input (a command-line argument) |
| test.cpp:128:17:128:22 | call to malloc | test.cpp:124:18:124:31 | *call to getenv | test.cpp:128:24:128:41 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:124:18:124:31 | *call to getenv | user input (an environment variable) |
| test.cpp:135:3:135:8 | call to malloc | test.cpp:133:19:133:32 | *call to getenv | test.cpp:135:10:135:27 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:133:19:133:32 | *call to getenv | user input (an environment variable) |
| test.cpp:152:4:152:9 | call to malloc | test.cpp:148:20:148:33 | *call to getenv | test.cpp:152:11:152:28 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:148:20:148:33 | *call to getenv | user input (an environment variable) |
| test.cpp:231:14:231:19 | call to malloc | test.cpp:237:24:237:37 | *call to getenv | test.cpp:231:21:231:21 | s | This allocation size is derived from $@ and might overflow. | test.cpp:237:24:237:37 | *call to getenv | user input (an environment variable) |
| test.cpp:239:2:239:7 | call to malloc | test.cpp:237:24:237:37 | *call to getenv | test.cpp:239:9:239:18 | local_size | This allocation size is derived from $@ and might overflow. | test.cpp:237:24:237:37 | *call to getenv | user input (an environment variable) |
| test.cpp:241:2:241:7 | call to malloc | test.cpp:211:14:211:27 | *call to getenv | test.cpp:241:9:241:24 | call to get_tainted_size | This allocation size is derived from $@ and might overflow. | test.cpp:211:14:211:27 | *call to getenv | user input (an environment variable) |
| test.cpp:245:2:245:9 | call to my_alloc | test.cpp:237:24:237:37 | *call to getenv | test.cpp:245:11:245:20 | local_size | This allocation size is derived from $@ and might overflow. | test.cpp:237:24:237:37 | *call to getenv | user input (an environment variable) |
| test.cpp:263:4:263:9 | call to malloc | test.cpp:259:20:259:33 | *call to getenv | test.cpp:263:11:263:29 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:259:20:259:33 | *call to getenv | user input (an environment variable) |
| test.cpp:291:4:291:9 | call to malloc | test.cpp:251:18:251:31 | *call to getenv | test.cpp:291:11:291:28 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:251:18:251:31 | *call to getenv | user input (an environment variable) |
| test.cpp:308:3:308:8 | call to malloc | test.cpp:251:18:251:31 | *call to getenv | test.cpp:308:10:308:27 | ... * ... | This allocation size is derived from $@ and might overflow. | test.cpp:251:18:251:31 | *call to getenv | user input (an environment variable) |
| test.cpp:355:25:355:33 | call to MyMalloc1 | test.cpp:353:18:353:31 | *call to getenv | test.cpp:355:35:355:38 | size | This allocation size is derived from $@ and might overflow. | test.cpp:353:18:353:31 | *call to getenv | user input (an environment variable) |
| test.cpp:356:25:356:33 | call to MyMalloc2 | test.cpp:353:18:353:31 | *call to getenv | test.cpp:356:35:356:38 | size | This allocation size is derived from $@ and might overflow. | test.cpp:353:18:353:31 | *call to getenv | user input (an environment variable) |

View File

@@ -4,16 +4,16 @@ edges
| test2.cpp:27:13:27:13 | v | test2.cpp:12:21:12:21 | v |
| test2.cpp:36:9:36:14 | fgets output argument | test2.cpp:39:9:39:11 | num |
| test2.cpp:36:9:36:14 | fgets output argument | test2.cpp:40:3:40:5 | num |
| test3.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections |
| test3.c:10:27:10:30 | argv indirection | test.c:44:7:44:10 | len2 |
| test3.c:10:27:10:30 | argv indirection | test.c:54:7:54:10 | len3 |
| test5.cpp:5:5:5:17 | getTaintedInt indirection | test5.cpp:17:6:17:18 | call to getTaintedInt |
| test5.cpp:5:5:5:17 | getTaintedInt indirection | test5.cpp:18:6:18:18 | call to getTaintedInt |
| test5.cpp:9:7:9:9 | gets output argument | test5.cpp:5:5:5:17 | getTaintedInt indirection |
| test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections |
| test3.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 |
| test3.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 |
| test5.cpp:5:5:5:17 | *getTaintedInt | test5.cpp:17:6:17:18 | call to getTaintedInt |
| test5.cpp:5:5:5:17 | *getTaintedInt | test5.cpp:18:6:18:18 | call to getTaintedInt |
| test5.cpp:9:7:9:9 | gets output argument | test5.cpp:5:5:5:17 | *getTaintedInt |
| test5.cpp:18:6:18:18 | call to getTaintedInt | test5.cpp:19:6:19:6 | y |
| test.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections |
| test.c:10:27:10:30 | argv indirection | test.c:44:7:44:10 | len2 |
| test.c:10:27:10:30 | argv indirection | test.c:54:7:54:10 | len3 |
| test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections |
| test.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 |
| test.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 |
nodes
| test2.cpp:12:21:12:21 | v | semmle.label | v |
| test2.cpp:14:11:14:11 | v | semmle.label | v |
@@ -22,13 +22,13 @@ nodes
| test2.cpp:36:9:36:14 | fgets output argument | semmle.label | fgets output argument |
| test2.cpp:39:9:39:11 | num | semmle.label | num |
| test2.cpp:40:3:40:5 | num | semmle.label | num |
| test3.c:10:27:10:30 | argv indirection | semmle.label | argv indirection |
| test5.cpp:5:5:5:17 | getTaintedInt indirection | semmle.label | getTaintedInt indirection |
| test3.c:10:27:10:30 | **argv | semmle.label | **argv |
| test5.cpp:5:5:5:17 | *getTaintedInt | semmle.label | *getTaintedInt |
| test5.cpp:9:7:9:9 | gets output argument | semmle.label | gets output argument |
| test5.cpp:17:6:17:18 | call to getTaintedInt | semmle.label | call to getTaintedInt |
| test5.cpp:18:6:18:18 | call to getTaintedInt | semmle.label | call to getTaintedInt |
| test5.cpp:19:6:19:6 | y | semmle.label | y |
| test.c:10:27:10:30 | argv indirection | semmle.label | argv indirection |
| test.c:10:27:10:30 | **argv | semmle.label | **argv |
| test.c:14:15:14:28 | maxConnections | semmle.label | maxConnections |
| test.c:44:7:44:10 | len2 | semmle.label | len2 |
| test.c:54:7:54:10 | len3 | semmle.label | len3 |
@@ -41,19 +41,19 @@ subpaths
| test5.cpp:17:6:17:18 | call to getTaintedInt | test5.cpp:9:7:9:9 | gets output argument | test5.cpp:17:6:17:18 | call to getTaintedInt | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test5.cpp:9:7:9:9 | gets output argument | string read by gets |
| test5.cpp:19:6:19:6 | y | test5.cpp:9:7:9:9 | gets output argument | test5.cpp:19:6:19:6 | y | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test5.cpp:9:7:9:9 | gets output argument | string read by gets |
| test5.cpp:19:6:19:6 | y | test5.cpp:9:7:9:9 | gets output argument | test5.cpp:19:6:19:6 | y | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test5.cpp:9:7:9:9 | gets output argument | string read by gets |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | argv indirection | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:44:7:44:10 | len2 | test3.c:10:27:10:30 | argv indirection | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:44:7:44:10 | len2 | test3.c:10:27:10:30 | argv indirection | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:44:7:44:10 | len2 | test.c:10:27:10:30 | argv indirection | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:44:7:44:10 | len2 | test.c:10:27:10:30 | argv indirection | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:54:7:54:10 | len3 | test3.c:10:27:10:30 | argv indirection | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:54:7:54:10 | len3 | test3.c:10:27:10:30 | argv indirection | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:54:7:54:10 | len3 | test.c:10:27:10:30 | argv indirection | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:54:7:54:10 | len3 | test.c:10:27:10:30 | argv indirection | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an overflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:28 | maxConnections | test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:44:7:44:10 | len2 | test3.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:44:7:44:10 | len2 | test3.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:44:7:44:10 | len2 | test.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:44:7:44:10 | len2 | test.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:54:7:54:10 | len3 | test3.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:54:7:54:10 | len3 | test3.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:54:7:54:10 | len3 | test.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:54:7:54:10 | len3 | test.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | $@ flows to an operand of an arithmetic expression, potentially causing an underflow. | test.c:10:27:10:30 | **argv | a command-line argument |

View File

@@ -4,20 +4,20 @@
| test2.cpp:17:11:17:22 | ... * ... | $@ flows an expression which might overflow. | test2.cpp:25:22:25:23 | fscanf output argument | value read by fscanf |
| test2.cpp:39:9:39:18 | ... + ... | $@ flows an expression which might overflow. | test2.cpp:36:9:36:14 | fgets output argument | string read by fgets |
| test2.cpp:40:3:40:13 | ... += ... | $@ flows an expression which might overflow. | test2.cpp:36:9:36:14 | fgets output argument | string read by fgets |
| test3.c:12:11:12:34 | * ... | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test3.c:12:11:12:34 | * ... | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test3.c:13:11:13:20 | * ... | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test3.c:13:11:13:20 | * ... | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test4.cpp:13:7:13:20 | access to array | $@ flows an expression which might overflow negatively. | test4.cpp:8:27:8:30 | argv indirection | a command-line argument |
| test3.c:12:11:12:34 | * ... | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test3.c:12:11:12:34 | * ... | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | **argv | a command-line argument |
| test3.c:13:11:13:20 | * ... | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test3.c:13:11:13:20 | * ... | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | **argv | a command-line argument |
| test4.cpp:13:7:13:20 | access to array | $@ flows an expression which might overflow negatively. | test4.cpp:8:27:8:30 | **argv | a command-line argument |
| test5.cpp:10:9:10:27 | call to strtoul | $@ flows an expression which might overflow. | test5.cpp:9:7:9:9 | gets output argument | string read by gets |
| test5.cpp:17:6:17:27 | ... * ... | $@ flows an expression which might overflow. | test5.cpp:9:7:9:9 | gets output argument | string read by gets |
| test5.cpp:19:6:19:13 | ... * ... | $@ flows an expression which might overflow. | test5.cpp:9:7:9:9 | gets output argument | string read by gets |
| test6.cpp:11:10:11:15 | s | $@ flows an expression which might overflow. | test6.cpp:39:23:39:24 | fscanf output argument | value read by fscanf |
| test6.cpp:16:10:16:15 | s | $@ flows an expression which might overflow. | test6.cpp:39:23:39:24 | fscanf output argument | value read by fscanf |
| test6.cpp:30:11:30:16 | s | $@ flows an expression which might overflow. | test6.cpp:39:23:39:24 | fscanf output argument | value read by fscanf |
| test.c:14:15:14:35 | ... * ... | $@ flows an expression which might overflow. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:35 | ... * ... | $@ flows an expression which might overflow. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:44:7:44:12 | ... -- | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:44:7:44:12 | ... -- | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:54:7:54:12 | ... -- | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:54:7:54:12 | ... -- | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | argv indirection | a command-line argument |
| test.c:14:15:14:35 | ... * ... | $@ flows an expression which might overflow. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:14:15:14:35 | ... * ... | $@ flows an expression which might overflow. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:44:7:44:12 | ... -- | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:44:7:44:12 | ... -- | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | **argv | a command-line argument |
| test.c:54:7:54:12 | ... -- | $@ flows an expression which might overflow negatively. | test3.c:10:27:10:30 | **argv | a command-line argument |
| test.c:54:7:54:12 | ... -- | $@ flows an expression which might overflow negatively. | test.c:10:27:10:30 | **argv | a command-line argument |

View File

@@ -18,9 +18,9 @@ edges
| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... |
| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... |
| test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | * ... |
| test.cpp:51:33:51:35 | end | test.cpp:60:34:60:37 | mk_array output argument |
| test.cpp:51:33:51:35 | *end | test.cpp:60:34:60:37 | mk_array output argument |
| test.cpp:52:19:52:37 | call to malloc | test.cpp:53:12:53:23 | ... + ... |
| test.cpp:53:12:53:23 | ... + ... | test.cpp:51:33:51:35 | end |
| test.cpp:53:12:53:23 | ... + ... | test.cpp:51:33:51:35 | *end |
| test.cpp:60:34:60:37 | mk_array output argument | test.cpp:67:9:67:14 | ... = ... |
| test.cpp:205:15:205:33 | call to malloc | test.cpp:206:17:206:23 | ... + ... |
| test.cpp:206:17:206:23 | ... + ... | test.cpp:206:17:206:23 | ... + ... |
@@ -40,14 +40,14 @@ edges
| test.cpp:271:14:271:21 | ... + ... | test.cpp:274:5:274:10 | ... = ... |
| test.cpp:355:14:355:27 | new[] | test.cpp:356:15:356:23 | ... + ... |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:356:15:356:23 | ... + ... |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | end_plus_one indirection |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | end_plus_one indirection |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | ... + ... indirection |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | ... + ... indirection |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... |
| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... |
| test.cpp:377:14:377:27 | new[] | test.cpp:378:15:378:23 | ... + ... |
| test.cpp:378:15:378:23 | ... + ... | test.cpp:378:15:378:23 | ... + ... |
| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | end indirection |
| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | end indirection |
| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... |
| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... |
| test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... |
| test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... |
| test.cpp:411:15:411:23 | & ... | test.cpp:411:15:411:23 | & ... |
@@ -85,10 +85,10 @@ edges
| test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array |
| test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array |
| test.cpp:781:14:781:27 | new[] | test.cpp:786:18:786:27 | access to array |
| test.cpp:792:60:792:62 | end | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument |
| test.cpp:792:60:792:62 | end | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument |
| test.cpp:792:60:792:62 | *end | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument |
| test.cpp:792:60:792:62 | *end | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument |
| test.cpp:793:14:793:32 | call to malloc | test.cpp:794:12:794:24 | ... + ... |
| test.cpp:794:12:794:24 | ... + ... | test.cpp:792:60:792:62 | end |
| test.cpp:794:12:794:24 | ... + ... | test.cpp:792:60:792:62 | *end |
| test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | test.cpp:807:7:807:12 | ... = ... |
| test.cpp:815:52:815:54 | end | test.cpp:815:52:815:54 | end |
| test.cpp:815:52:815:54 | end | test.cpp:821:7:821:12 | ... = ... |
@@ -116,7 +116,7 @@ nodes
| test.cpp:30:14:30:15 | * ... | semmle.label | * ... |
| test.cpp:30:14:30:15 | * ... | semmle.label | * ... |
| test.cpp:32:14:32:21 | * ... | semmle.label | * ... |
| test.cpp:51:33:51:35 | end | semmle.label | end |
| test.cpp:51:33:51:35 | *end | semmle.label | *end |
| test.cpp:52:19:52:37 | call to malloc | semmle.label | call to malloc |
| test.cpp:53:12:53:23 | ... + ... | semmle.label | ... + ... |
| test.cpp:60:34:60:37 | mk_array output argument | semmle.label | mk_array output argument |
@@ -137,12 +137,12 @@ nodes
| test.cpp:355:14:355:27 | new[] | semmle.label | new[] |
| test.cpp:356:15:356:23 | ... + ... | semmle.label | ... + ... |
| test.cpp:356:15:356:23 | ... + ... | semmle.label | ... + ... |
| test.cpp:358:14:358:26 | end_plus_one indirection | semmle.label | end_plus_one indirection |
| test.cpp:359:14:359:32 | ... + ... indirection | semmle.label | ... + ... indirection |
| test.cpp:358:14:358:26 | * ... | semmle.label | * ... |
| test.cpp:359:14:359:32 | * ... | semmle.label | * ... |
| test.cpp:377:14:377:27 | new[] | semmle.label | new[] |
| test.cpp:378:15:378:23 | ... + ... | semmle.label | ... + ... |
| test.cpp:378:15:378:23 | ... + ... | semmle.label | ... + ... |
| test.cpp:384:13:384:16 | end indirection | semmle.label | end indirection |
| test.cpp:384:13:384:16 | * ... | semmle.label | * ... |
| test.cpp:410:14:410:27 | new[] | semmle.label | new[] |
| test.cpp:411:15:411:23 | & ... | semmle.label | & ... |
| test.cpp:411:15:411:23 | & ... | semmle.label | & ... |
@@ -180,7 +180,7 @@ nodes
| test.cpp:772:16:772:29 | access to array | semmle.label | access to array |
| test.cpp:781:14:781:27 | new[] | semmle.label | new[] |
| test.cpp:786:18:786:27 | access to array | semmle.label | access to array |
| test.cpp:792:60:792:62 | end | semmle.label | end |
| test.cpp:792:60:792:62 | *end | semmle.label | *end |
| test.cpp:793:14:793:32 | call to malloc | semmle.label | call to malloc |
| test.cpp:794:12:794:24 | ... + ... | semmle.label | ... + ... |
| test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | semmle.label | mk_array_no_field_flow output argument |
@@ -209,9 +209,9 @@ subpaths
| test.cpp:213:5:213:13 | ... = ... | test.cpp:205:15:205:33 | call to malloc | test.cpp:213:5:213:13 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:205:15:205:33 | call to malloc | call to malloc | test.cpp:206:21:206:23 | len | len |
| test.cpp:264:13:264:14 | * ... | test.cpp:260:13:260:24 | new[] | test.cpp:264:13:264:14 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:260:13:260:24 | new[] | new[] | test.cpp:261:19:261:21 | len | len |
| test.cpp:274:5:274:10 | ... = ... | test.cpp:270:13:270:24 | new[] | test.cpp:274:5:274:10 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:270:13:270:24 | new[] | new[] | test.cpp:271:19:271:21 | len | len |
| test.cpp:358:14:358:26 | end_plus_one indirection | test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | end_plus_one indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size |
| test.cpp:359:14:359:32 | ... + ... indirection | test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | ... + ... indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 2. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size |
| test.cpp:384:13:384:16 | end indirection | test.cpp:377:14:377:27 | new[] | test.cpp:384:13:384:16 | end indirection | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:377:14:377:27 | new[] | new[] | test.cpp:378:20:378:23 | size | size |
| test.cpp:358:14:358:26 | * ... | test.cpp:355:14:355:27 | new[] | test.cpp:358:14:358:26 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 1. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size |
| test.cpp:359:14:359:32 | * ... | test.cpp:355:14:355:27 | new[] | test.cpp:359:14:359:32 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@ + 2. | test.cpp:355:14:355:27 | new[] | new[] | test.cpp:356:20:356:23 | size | size |
| test.cpp:384:13:384:16 | * ... | test.cpp:377:14:377:27 | new[] | test.cpp:384:13:384:16 | * ... | This read might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:377:14:377:27 | new[] | new[] | test.cpp:378:20:378:23 | size | size |
| test.cpp:415:7:415:15 | ... = ... | test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:410:14:410:27 | new[] | new[] | test.cpp:411:19:411:22 | size | size |
| test.cpp:426:7:426:15 | ... = ... | test.cpp:421:14:421:27 | new[] | test.cpp:426:7:426:15 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:421:14:421:27 | new[] | new[] | test.cpp:422:19:422:22 | size | size |
| test.cpp:438:7:438:15 | ... = ... | test.cpp:432:14:432:27 | new[] | test.cpp:438:7:438:15 | ... = ... | This write might be out of bounds, as the pointer might be equal to $@ + $@. | test.cpp:432:14:432:27 | new[] | new[] | test.cpp:433:19:433:22 | size | size |

View File

@@ -1,26 +1,26 @@
edges
| test.cpp:16:25:16:42 | call to getenv indirection | test.cpp:20:14:20:20 | address indirection |
| test.cpp:27:25:27:42 | call to getenv indirection | test.cpp:31:14:31:20 | address indirection |
| test.cpp:38:25:38:42 | call to getenv indirection | test.cpp:42:14:42:20 | address indirection |
| test.cpp:49:25:49:42 | call to getenv indirection | test.cpp:52:14:52:20 | address indirection |
| test.cpp:49:25:49:42 | call to getenv indirection | test.cpp:56:14:56:20 | address indirection |
| test.cpp:49:25:49:42 | call to getenv indirection | test.cpp:60:14:60:20 | address indirection |
| test.cpp:16:25:16:42 | *call to getenv | test.cpp:20:14:20:20 | *address |
| test.cpp:27:25:27:42 | *call to getenv | test.cpp:31:14:31:20 | *address |
| test.cpp:38:25:38:42 | *call to getenv | test.cpp:42:14:42:20 | *address |
| test.cpp:49:25:49:42 | *call to getenv | test.cpp:52:14:52:20 | *address |
| test.cpp:49:25:49:42 | *call to getenv | test.cpp:56:14:56:20 | *address |
| test.cpp:49:25:49:42 | *call to getenv | test.cpp:60:14:60:20 | *address |
nodes
| test.cpp:16:25:16:42 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:20:14:20:20 | address indirection | semmle.label | address indirection |
| test.cpp:27:25:27:42 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:31:14:31:20 | address indirection | semmle.label | address indirection |
| test.cpp:38:25:38:42 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:42:14:42:20 | address indirection | semmle.label | address indirection |
| test.cpp:49:25:49:42 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:52:14:52:20 | address indirection | semmle.label | address indirection |
| test.cpp:56:14:56:20 | address indirection | semmle.label | address indirection |
| test.cpp:60:14:60:20 | address indirection | semmle.label | address indirection |
| test.cpp:16:25:16:42 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:20:14:20:20 | *address | semmle.label | *address |
| test.cpp:27:25:27:42 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:31:14:31:20 | *address | semmle.label | *address |
| test.cpp:38:25:38:42 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:42:14:42:20 | *address | semmle.label | *address |
| test.cpp:49:25:49:42 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:52:14:52:20 | *address | semmle.label | *address |
| test.cpp:56:14:56:20 | *address | semmle.label | *address |
| test.cpp:60:14:60:20 | *address | semmle.label | *address |
subpaths
#select
| test.cpp:20:7:20:12 | call to strcmp | test.cpp:16:25:16:42 | call to getenv indirection | test.cpp:20:14:20:20 | address indirection | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:16:25:16:42 | call to getenv indirection | an environment variable |
| test.cpp:31:7:31:12 | call to strcmp | test.cpp:27:25:27:42 | call to getenv indirection | test.cpp:31:14:31:20 | address indirection | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:27:25:27:42 | call to getenv indirection | an environment variable |
| test.cpp:42:7:42:12 | call to strcmp | test.cpp:38:25:38:42 | call to getenv indirection | test.cpp:42:14:42:20 | address indirection | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:38:25:38:42 | call to getenv indirection | an environment variable |
| test.cpp:52:7:52:12 | call to strcmp | test.cpp:49:25:49:42 | call to getenv indirection | test.cpp:52:14:52:20 | address indirection | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:49:25:49:42 | call to getenv indirection | an environment variable |
| test.cpp:56:7:56:12 | call to strcmp | test.cpp:49:25:49:42 | call to getenv indirection | test.cpp:56:14:56:20 | address indirection | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:49:25:49:42 | call to getenv indirection | an environment variable |
| test.cpp:60:7:60:12 | call to strcmp | test.cpp:49:25:49:42 | call to getenv indirection | test.cpp:60:14:60:20 | address indirection | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:49:25:49:42 | call to getenv indirection | an environment variable |
| test.cpp:20:7:20:12 | call to strcmp | test.cpp:16:25:16:42 | *call to getenv | test.cpp:20:14:20:20 | *address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:16:25:16:42 | *call to getenv | an environment variable |
| test.cpp:31:7:31:12 | call to strcmp | test.cpp:27:25:27:42 | *call to getenv | test.cpp:31:14:31:20 | *address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:27:25:27:42 | *call to getenv | an environment variable |
| test.cpp:42:7:42:12 | call to strcmp | test.cpp:38:25:38:42 | *call to getenv | test.cpp:42:14:42:20 | *address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:38:25:38:42 | *call to getenv | an environment variable |
| test.cpp:52:7:52:12 | call to strcmp | test.cpp:49:25:49:42 | *call to getenv | test.cpp:52:14:52:20 | *address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:49:25:49:42 | *call to getenv | an environment variable |
| test.cpp:56:7:56:12 | call to strcmp | test.cpp:49:25:49:42 | *call to getenv | test.cpp:56:14:56:20 | *address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:49:25:49:42 | *call to getenv | an environment variable |
| test.cpp:60:7:60:12 | call to strcmp | test.cpp:49:25:49:42 | *call to getenv | test.cpp:60:14:60:20 | *address | Untrusted input $@ might be vulnerable to a spoofing attack. | test.cpp:49:25:49:42 | *call to getenv | an environment variable |

View File

@@ -1,10 +1,10 @@
edges
| test.cpp:53:27:53:30 | argv indirection | test.cpp:58:25:58:29 | input indirection |
| test.cpp:53:27:53:30 | **argv | test.cpp:58:25:58:29 | *input |
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:58:25:58:29 | input indirection | semmle.label | input indirection |
| test2.cpp:110:3:110:6 | *call to gets | semmle.label | *call to gets |
| test.cpp:53:27:53:30 | **argv | semmle.label | **argv |
| test.cpp:58:25:58:29 | *input | semmle.label | *input |
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) |
| test2.cpp:110:3:110:6 | call to gets | test2.cpp:110:3:110:6 | *call to gets | test2.cpp:110:3:110:6 | *call to gets | This write into buffer 'password' may contain unencrypted data from $@. | test2.cpp:110:3:110:6 | *call to gets | user input (string read by gets) |
| test.cpp:58:3:58:9 | call to sprintf | test.cpp:53:27:53:30 | **argv | test.cpp:58:25:58:29 | *input | This write into buffer 'passwd' may contain unencrypted data from $@. | test.cpp:53:27:53:30 | **argv | user input (a command-line argument) |

View File

@@ -1,8 +1,8 @@
edges
| test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 |
| test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | buf indirection |
| test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | buf indirection |
| test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | buffer indirection |
| test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf |
| test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | *buf |
| test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer |
| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword |
| test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword |
nodes
@@ -16,10 +16,10 @@ nodes
| test2.cpp:62:18:62:25 | password | semmle.label | password |
| test2.cpp:65:31:65:34 | cpy1 | semmle.label | cpy1 |
| test2.cpp:72:15:72:24 | password | semmle.label | password |
| test2.cpp:73:30:73:32 | buf indirection | semmle.label | buf indirection |
| test2.cpp:76:30:76:32 | buf indirection | semmle.label | buf indirection |
| test2.cpp:73:30:73:32 | *buf | semmle.label | *buf |
| test2.cpp:76:30:76:32 | *buf | semmle.label | *buf |
| test2.cpp:98:45:98:52 | password | semmle.label | password |
| test2.cpp:99:27:99:32 | buffer indirection | semmle.label | buffer indirection |
| test2.cpp:99:27:99:32 | *buffer | semmle.label | *buffer |
| test.cpp:45:9:45:19 | thePassword | semmle.label | thePassword |
| test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword |
| test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword |
@@ -35,9 +35,9 @@ subpaths
| test2.cpp:55:2:55:8 | call to fprintf | test2.cpp:55:40:55:51 | widepassword | test2.cpp:55:40:55:51 | widepassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:55:40:55:51 | widepassword | this source. |
| test2.cpp:57:2:57:8 | call to fprintf | test2.cpp:57:39:57:49 | call to getPassword | test2.cpp:57:39:57:49 | call to getPassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:57:39:57:49 | call to getPassword | this source. |
| test2.cpp:65:3:65:9 | call to fprintf | test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:62:18:62:25 | password | this source. |
| test2.cpp:73:3:73:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | buf indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. |
| test2.cpp:76:3:76:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | buf indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. |
| test2.cpp:99:3:99:9 | call to fprintf | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | buffer indirection | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:98:45:98:52 | password | this source. |
| test2.cpp:73:3:73:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. |
| test2.cpp:76:3:76:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | *buf | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. |
| test2.cpp:99:3:99:9 | call to fprintf | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:98:45:98:52 | password | this source. |
| test.cpp:45:3:45:7 | call to fputs | test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | This write into file 'file' may contain unencrypted data from $@. | test.cpp:45:9:45:19 | thePassword | this source. |
| test.cpp:70:35:70:35 | call to operator<< | test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. |
| test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. |

View File

@@ -2,16 +2,16 @@ edges
| test3.cpp:74:21:74:29 | password1 | test3.cpp:76:15:76:17 | ptr |
| test3.cpp:81:15:81:22 | password | test3.cpp:83:15:83:17 | ptr |
| test3.cpp:112:20:112:25 | buffer | test3.cpp:114:14:114:19 | buffer |
| test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | id indirection |
| test3.cpp:124:7:124:20 | get_global_str indirection | test3.cpp:144:16:144:29 | call to get_global_str |
| test3.cpp:126:9:126:23 | global_password | test3.cpp:124:7:124:20 | get_global_str indirection |
| test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | *id |
| test3.cpp:124:7:124:20 | *get_global_str | test3.cpp:144:16:144:29 | call to get_global_str |
| test3.cpp:126:9:126:23 | global_password | test3.cpp:124:7:124:20 | *get_global_str |
| test3.cpp:134:11:134:18 | password | test3.cpp:112:20:112:25 | buffer |
| test3.cpp:138:21:138:22 | call to id | test3.cpp:140:15:140:17 | ptr |
| test3.cpp:138:24:138:32 | password1 | test3.cpp:117:28:117:33 | buffer |
| test3.cpp:138:24:138:32 | password1 | test3.cpp:138:21:138:22 | call to id |
| test3.cpp:144:16:144:29 | call to get_global_str | test3.cpp:146:15:146:18 | data |
| test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | buffer indirection |
| test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | data indirection |
| test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | *buffer |
| test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | *data |
| test3.cpp:278:20:278:23 | data | test3.cpp:280:14:280:17 | data |
| test3.cpp:283:20:283:23 | data | test3.cpp:285:14:285:17 | data |
| test3.cpp:288:20:288:23 | data | test3.cpp:290:14:290:17 | data |
@@ -25,10 +25,10 @@ edges
| test3.cpp:322:16:322:24 | password2 | test3.cpp:325:11:325:14 | data |
| test3.cpp:324:11:324:14 | data | test3.cpp:293:20:293:23 | data |
| test3.cpp:325:11:325:14 | data | test3.cpp:298:20:298:23 | data |
| test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | buffer indirection |
| test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | buffer indirection |
| test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | buffer indirection |
| test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | buffer indirection |
| test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | *buffer |
| test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | *buffer |
| test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | *buffer |
| test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | *buffer |
| test3.cpp:571:8:571:21 | call to get_home_phone | test3.cpp:572:14:572:16 | str |
| test3.cpp:577:8:577:23 | call to get_home_address | test3.cpp:578:14:578:16 | str |
nodes
@@ -43,9 +43,9 @@ nodes
| test3.cpp:101:12:101:19 | password | semmle.label | password |
| test3.cpp:112:20:112:25 | buffer | semmle.label | buffer |
| test3.cpp:114:14:114:19 | buffer | semmle.label | buffer |
| test3.cpp:117:13:117:14 | id indirection | semmle.label | id indirection |
| test3.cpp:117:13:117:14 | *id | semmle.label | *id |
| test3.cpp:117:28:117:33 | buffer | semmle.label | buffer |
| test3.cpp:124:7:124:20 | get_global_str indirection | semmle.label | get_global_str indirection |
| test3.cpp:124:7:124:20 | *get_global_str | semmle.label | *get_global_str |
| test3.cpp:126:9:126:23 | global_password | semmle.label | global_password |
| test3.cpp:134:11:134:18 | password | semmle.label | password |
| test3.cpp:138:21:138:22 | call to id | semmle.label | call to id |
@@ -54,7 +54,7 @@ nodes
| test3.cpp:144:16:144:29 | call to get_global_str | semmle.label | call to get_global_str |
| test3.cpp:146:15:146:18 | data | semmle.label | data |
| test3.cpp:157:19:157:26 | password | semmle.label | password |
| test3.cpp:159:15:159:20 | buffer indirection | semmle.label | buffer indirection |
| test3.cpp:159:15:159:20 | *buffer | semmle.label | *buffer |
| test3.cpp:173:15:173:22 | password | semmle.label | password |
| test3.cpp:181:15:181:22 | password | semmle.label | password |
| test3.cpp:191:15:191:22 | password | semmle.label | password |
@@ -66,7 +66,7 @@ nodes
| test3.cpp:254:15:254:23 | password1 | semmle.label | password1 |
| test3.cpp:264:15:264:23 | password2 | semmle.label | password2 |
| test3.cpp:270:16:270:23 | password | semmle.label | password |
| test3.cpp:272:15:272:18 | data indirection | semmle.label | data indirection |
| test3.cpp:272:15:272:18 | *data | semmle.label | *data |
| test3.cpp:278:20:278:23 | data | semmle.label | data |
| test3.cpp:280:14:280:17 | data | semmle.label | data |
| test3.cpp:283:20:283:23 | data | semmle.label | data |
@@ -105,19 +105,19 @@ nodes
| test3.cpp:517:14:517:29 | medical_info | semmle.label | medical_info |
| test3.cpp:518:14:518:28 | license_key | semmle.label | license_key |
| test3.cpp:526:44:526:54 | my_latitude | semmle.label | my_latitude |
| test3.cpp:527:15:527:20 | buffer indirection | semmle.label | buffer indirection |
| test3.cpp:527:15:527:20 | *buffer | semmle.label | *buffer |
| test3.cpp:532:45:532:58 | home_longitude | semmle.label | home_longitude |
| test3.cpp:533:15:533:20 | buffer indirection | semmle.label | buffer indirection |
| test3.cpp:533:15:533:20 | *buffer | semmle.label | *buffer |
| test3.cpp:551:47:551:58 | salaryString | semmle.label | salaryString |
| test3.cpp:552:15:552:20 | buffer indirection | semmle.label | buffer indirection |
| test3.cpp:552:15:552:20 | *buffer | semmle.label | *buffer |
| test3.cpp:556:19:556:30 | salaryString | semmle.label | salaryString |
| test3.cpp:559:15:559:20 | buffer indirection | semmle.label | buffer indirection |
| test3.cpp:559:15:559:20 | *buffer | semmle.label | *buffer |
| test3.cpp:571:8:571:21 | call to get_home_phone | semmle.label | call to get_home_phone |
| test3.cpp:572:14:572:16 | str | semmle.label | str |
| test3.cpp:577:8:577:23 | call to get_home_address | semmle.label | call to get_home_address |
| test3.cpp:578:14:578:16 | str | semmle.label | str |
subpaths
| test3.cpp:138:24:138:32 | password1 | test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | id indirection | test3.cpp:138:21:138:22 | call to id |
| test3.cpp:138:24:138:32 | password1 | test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | *id | test3.cpp:138:21:138:22 | call to id |
#select
| test3.cpp:22:3:22:6 | call to send | test3.cpp:22:15:22:23 | password1 | test3.cpp:22:15:22:23 | password1 | This operation transmits 'password1', which may contain unencrypted sensitive data from $@. | test3.cpp:22:15:22:23 | password1 | password1 |
| test3.cpp:26:3:26:6 | call to send | test3.cpp:26:15:26:23 | password2 | test3.cpp:26:15:26:23 | password2 | This operation transmits 'password2', which may contain unencrypted sensitive data from $@. | test3.cpp:26:15:26:23 | password2 | password2 |
@@ -129,10 +129,10 @@ subpaths
| test3.cpp:114:2:114:5 | call to recv | test3.cpp:134:11:134:18 | password | test3.cpp:114:14:114:19 | buffer | This operation receives into 'buffer', which may put unencrypted sensitive data into $@. | test3.cpp:134:11:134:18 | password | password |
| test3.cpp:140:3:140:6 | call to send | test3.cpp:138:24:138:32 | password1 | test3.cpp:140:15:140:17 | ptr | This operation transmits 'ptr', which may contain unencrypted sensitive data from $@. | test3.cpp:138:24:138:32 | password1 | password1 |
| test3.cpp:146:3:146:6 | call to send | test3.cpp:126:9:126:23 | global_password | test3.cpp:146:15:146:18 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:126:9:126:23 | global_password | global_password |
| test3.cpp:159:3:159:6 | call to send | test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | buffer indirection | This operation transmits 'buffer indirection', which may contain unencrypted sensitive data from $@. | test3.cpp:157:19:157:26 | password | password |
| test3.cpp:159:3:159:6 | call to send | test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:157:19:157:26 | password | password |
| test3.cpp:228:2:228:5 | call to send | test3.cpp:228:26:228:33 | password | test3.cpp:228:26:228:33 | password | This operation transmits 'password', which may contain unencrypted sensitive data from $@. | test3.cpp:228:26:228:33 | password | password |
| test3.cpp:241:2:241:6 | call to fgets | test3.cpp:241:8:241:15 | password | test3.cpp:241:8:241:15 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:241:8:241:15 | password | password |
| test3.cpp:272:3:272:6 | call to send | test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | data indirection | This operation transmits 'data indirection', which may contain unencrypted sensitive data from $@. | test3.cpp:270:16:270:23 | password | password |
| test3.cpp:272:3:272:6 | call to send | test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | *data | This operation transmits '*data', which may contain unencrypted sensitive data from $@. | test3.cpp:270:16:270:23 | password | password |
| test3.cpp:290:2:290:5 | call to send | test3.cpp:317:11:317:19 | password1 | test3.cpp:290:14:290:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:317:11:317:19 | password1 | password1 |
| test3.cpp:295:2:295:5 | call to send | test3.cpp:322:16:322:24 | password2 | test3.cpp:295:14:295:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:322:16:322:24 | password2 | password2 |
| test3.cpp:300:2:300:5 | call to send | test3.cpp:322:16:322:24 | password2 | test3.cpp:300:14:300:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:322:16:322:24 | password2 | password2 |
@@ -153,9 +153,9 @@ subpaths
| test3.cpp:516:2:516:5 | call to send | test3.cpp:516:14:516:29 | employerName | test3.cpp:516:14:516:29 | employerName | This operation transmits 'employerName', which may contain unencrypted sensitive data from $@. | test3.cpp:516:14:516:29 | employerName | employerName |
| test3.cpp:517:2:517:5 | call to send | test3.cpp:517:14:517:29 | medical_info | test3.cpp:517:14:517:29 | medical_info | This operation transmits 'medical_info', which may contain unencrypted sensitive data from $@. | test3.cpp:517:14:517:29 | medical_info | medical_info |
| test3.cpp:518:2:518:5 | call to send | test3.cpp:518:14:518:28 | license_key | test3.cpp:518:14:518:28 | license_key | This operation transmits 'license_key', which may contain unencrypted sensitive data from $@. | test3.cpp:518:14:518:28 | license_key | license_key |
| test3.cpp:527:3:527:6 | call to send | test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | buffer indirection | This operation transmits 'buffer indirection', which may contain unencrypted sensitive data from $@. | test3.cpp:526:44:526:54 | my_latitude | my_latitude |
| test3.cpp:533:3:533:6 | call to send | test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | buffer indirection | This operation transmits 'buffer indirection', which may contain unencrypted sensitive data from $@. | test3.cpp:532:45:532:58 | home_longitude | home_longitude |
| test3.cpp:552:3:552:6 | call to send | test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | buffer indirection | This operation transmits 'buffer indirection', which may contain unencrypted sensitive data from $@. | test3.cpp:551:47:551:58 | salaryString | salaryString |
| test3.cpp:559:3:559:6 | call to send | test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | buffer indirection | This operation transmits 'buffer indirection', which may contain unencrypted sensitive data from $@. | test3.cpp:556:19:556:30 | salaryString | salaryString |
| test3.cpp:527:3:527:6 | call to send | test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:526:44:526:54 | my_latitude | my_latitude |
| test3.cpp:533:3:533:6 | call to send | test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:532:45:532:58 | home_longitude | home_longitude |
| test3.cpp:552:3:552:6 | call to send | test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:551:47:551:58 | salaryString | salaryString |
| test3.cpp:559:3:559:6 | call to send | test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:556:19:556:30 | salaryString | salaryString |
| test3.cpp:572:2:572:5 | call to send | test3.cpp:571:8:571:21 | call to get_home_phone | test3.cpp:572:14:572:16 | str | This operation transmits 'str', which may contain unencrypted sensitive data from $@. | test3.cpp:571:8:571:21 | call to get_home_phone | call to get_home_phone |
| test3.cpp:578:2:578:5 | call to send | test3.cpp:577:8:577:23 | call to get_home_address | test3.cpp:578:14:578:16 | str | This operation transmits 'str', which may contain unencrypted sensitive data from $@. | test3.cpp:577:8:577:23 | call to get_home_address | call to get_home_address |

View File

@@ -1,37 +1,37 @@
edges
| 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:28:10:28:29 | http://example.com indirection | test.cpp:11:26:11:28 | url indirection |
| test.cpp:35:23:35:42 | http://example.com indirection | test.cpp:39:11:39:15 | url_l indirection |
| test.cpp:36:26:36:45 | http://example.com indirection | test.cpp:40:11:40:17 | access to array indirection |
| test.cpp:38:11:38:15 | url_g indirection | test.cpp:11:26:11:28 | url indirection |
| test.cpp:39:11:39:15 | url_l indirection | test.cpp:11:26:11:28 | url indirection |
| test.cpp:40:11:40:17 | access to array indirection | test.cpp:11:26:11:28 | url indirection |
| test.cpp:46:18:46:26 | http:// indirection | test.cpp:49:11:49:16 | buffer indirection |
| test.cpp:49:11:49:16 | buffer indirection | test.cpp:11:26:11:28 | url indirection |
| test.cpp:110:21:110:40 | http://example.com indirection | test.cpp:121:11:121:13 | ptr indirection |
| test.cpp:121:11:121:13 | ptr indirection | test.cpp:11:26:11:28 | url indirection |
| test.cpp:11:26:11:28 | *url | test.cpp:15:30:15:32 | *url |
| test.cpp:24:13:24:17 | **url_g | test.cpp:38:11:38:15 | *url_g |
| test.cpp:24:21:24:40 | *http://example.com | test.cpp:24:13:24:17 | **url_g |
| test.cpp:28:10:28:29 | *http://example.com | test.cpp:11:26:11:28 | *url |
| test.cpp:35:23:35:42 | *http://example.com | test.cpp:39:11:39:15 | *url_l |
| test.cpp:36:26:36:45 | *http://example.com | test.cpp:40:11:40:17 | *access to array |
| test.cpp:38:11:38:15 | *url_g | test.cpp:11:26:11:28 | *url |
| test.cpp:39:11:39:15 | *url_l | test.cpp:11:26:11:28 | *url |
| test.cpp:40:11:40:17 | *access to array | test.cpp:11:26:11:28 | *url |
| test.cpp:46:18:46:26 | *http:// | test.cpp:49:11:49:16 | *buffer |
| test.cpp:49:11:49:16 | *buffer | test.cpp:11:26:11:28 | *url |
| test.cpp:110:21:110:40 | *http://example.com | test.cpp:121:11:121:13 | *ptr |
| test.cpp:121:11:121:13 | *ptr | test.cpp:11:26:11:28 | *url |
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: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:28:10:28:29 | http://example.com indirection | semmle.label | http://example.com indirection |
| test.cpp:35:23:35:42 | http://example.com indirection | semmle.label | http://example.com indirection |
| test.cpp:36:26:36:45 | http://example.com indirection | semmle.label | http://example.com indirection |
| test.cpp:38:11:38:15 | url_g indirection | semmle.label | url_g indirection |
| test.cpp:39:11:39:15 | url_l indirection | semmle.label | url_l indirection |
| test.cpp:40:11:40:17 | access to array indirection | semmle.label | access to array indirection |
| test.cpp:46:18:46:26 | http:// indirection | semmle.label | http:// indirection |
| test.cpp:49:11:49:16 | buffer indirection | semmle.label | buffer indirection |
| test.cpp:110:21:110:40 | http://example.com indirection | semmle.label | http://example.com indirection |
| test.cpp:121:11:121:13 | ptr indirection | semmle.label | ptr indirection |
| test.cpp:11:26:11:28 | *url | semmle.label | *url |
| test.cpp:15:30:15:32 | *url | semmle.label | *url |
| test.cpp:24:13:24:17 | **url_g | semmle.label | **url_g |
| test.cpp:24:21:24:40 | *http://example.com | semmle.label | *http://example.com |
| test.cpp:28:10:28:29 | *http://example.com | semmle.label | *http://example.com |
| test.cpp:35:23:35:42 | *http://example.com | semmle.label | *http://example.com |
| test.cpp:36:26:36:45 | *http://example.com | semmle.label | *http://example.com |
| test.cpp:38:11:38:15 | *url_g | semmle.label | *url_g |
| test.cpp:39:11:39:15 | *url_l | semmle.label | *url_l |
| test.cpp:40:11:40:17 | *access to array | semmle.label | *access to array |
| test.cpp:46:18:46:26 | *http:// | semmle.label | *http:// |
| test.cpp:49:11:49:16 | *buffer | semmle.label | *buffer |
| test.cpp:110:21:110:40 | *http://example.com | semmle.label | *http://example.com |
| test.cpp:121:11:121:13 | *ptr | semmle.label | *ptr |
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: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: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: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:24:21:24:40 | http://example.com | test.cpp:24:21:24:40 | *http://example.com | test.cpp:15:30:15:32 | *url | 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 | test.cpp:15:30:15:32 | *url | 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 | test.cpp:15:30:15:32 | *url | 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 | test.cpp:15:30:15:32 | *url | This URL may be constructed with the HTTP protocol. |
| test.cpp:46:18:46:26 | http:// | test.cpp:46:18:46:26 | *http:// | test.cpp:15:30:15:32 | *url | 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 | test.cpp:15:30:15:32 | *url | This URL may be constructed with the HTTP protocol. |

View File

@@ -1,8 +1,8 @@
edges
| tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection |
| tests.c:57:21:57:28 | *password | tests.c:70:70:70:77 | *password |
nodes
| tests.c:57:21:57:28 | password indirection | semmle.label | password indirection |
| tests.c:70:70:70:77 | password indirection | semmle.label | password indirection |
| tests.c:57:21:57:28 | *password | semmle.label | *password |
| tests.c:70:70:70:77 | *password | semmle.label | *password |
subpaths
#select
| tests.c:70:70:70:77 | password indirection | tests.c:57:21:57:28 | password indirection | tests.c:70:70:70:77 | password indirection | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | password indirection | password indirection |
| tests.c:70:70:70:77 | *password | tests.c:57:21:57:28 | *password | tests.c:70:70:70:77 | *password | This operation potentially exposes sensitive system data from $@. | tests.c:57:21:57:28 | *password | *password |

View File

@@ -1,63 +1,63 @@
edges
| 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: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:101:8:101:15 | call to getpwuid indirection | tests2.cpp:102:14:102:15 | pw indirection |
| tests2.cpp:109:3:109:4 | c1 indirection [post update] [ptr indirection] | tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] |
| tests2.cpp:109:3:109:36 | ... = ... indirection | tests2.cpp:109:3:109:4 | c1 indirection [post update] [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:17:111:19 | ptr indirection | tests2.cpp:111:14: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: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: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 |
| tests2.cpp:50:13:50:19 | **global1 | tests2.cpp:82:14:82:20 | *global1 |
| tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | tests2.cpp:50:13:50:19 | **global1 |
| tests2.cpp:78:18:78:38 | *call to mysql_get_client_info | tests2.cpp:81:14:81:19 | *buffer |
| tests2.cpp:91:42:91:45 | *str1 | tests2.cpp:93:14:93:17 | *str1 |
| tests2.cpp:101:8:101:15 | *call to getpwuid | tests2.cpp:102:14:102:15 | *pw |
| tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] | tests2.cpp:111:14:111:15 | *c1 [*ptr] |
| tests2.cpp:109:3:109:36 | *... = ... | tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] |
| tests2.cpp:109:12:109:17 | *call to getenv | tests2.cpp:109:3:109:36 | *... = ... |
| tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:14:111:19 | *ptr |
| tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:17:111:19 | *ptr |
| tests2.cpp:111:17:111:19 | *ptr | tests2.cpp:111:14:111:19 | *ptr |
| tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:39:19:39:22 | *path |
| tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:43:20:43:23 | *path |
| tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:76:19:76:22 | *path |
| tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:80:20:80:23 | *path |
| tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | *pathbuf |
nodes
| tests2.cpp:50:13:50:19 | global1 indirection | semmle.label | global1 indirection |
| tests2.cpp:50:23:50:43 | call to mysql_get_client_info indirection | semmle.label | call to mysql_get_client_info indirection |
| tests2.cpp:63:13:63:26 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests2.cpp:64:13:64:26 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests2.cpp:65:13:65:30 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests2.cpp:66:13:66:34 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests2.cpp:78:18:78:38 | call to mysql_get_client_info indirection | semmle.label | call to mysql_get_client_info indirection |
| 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:91:42:91:45 | 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:109:3:109:4 | c1 indirection [post update] [ptr indirection] | semmle.label | c1 indirection [post update] [ptr indirection] |
| tests2.cpp:109:3:109:36 | ... = ... indirection | semmle.label | ... = ... indirection |
| tests2.cpp:109:12:109:17 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests2.cpp:111:14:111:15 | c1 indirection [ptr indirection] | semmle.label | c1 indirection [ptr indirection] |
| tests2.cpp:111:14:111:19 | ptr indirection | semmle.label | ptr indirection |
| tests2.cpp:111:17:111:19 | ptr indirection | semmle.label | ptr indirection |
| 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: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:80:20:80:23 | path indirection | semmle.label | path indirection |
| tests2.cpp:50:13:50:19 | **global1 | semmle.label | **global1 |
| tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | semmle.label | *call to mysql_get_client_info |
| tests2.cpp:63:13:63:26 | *call to getenv | semmle.label | *call to getenv |
| tests2.cpp:64:13:64:26 | *call to getenv | semmle.label | *call to getenv |
| tests2.cpp:65:13:65:30 | *call to getenv | semmle.label | *call to getenv |
| tests2.cpp:66:13:66:34 | *call to getenv | semmle.label | *call to getenv |
| tests2.cpp:78:18:78:38 | *call to mysql_get_client_info | semmle.label | *call to mysql_get_client_info |
| tests2.cpp:80:14:80:34 | *call to mysql_get_client_info | semmle.label | *call to mysql_get_client_info |
| tests2.cpp:81:14:81:19 | *buffer | semmle.label | *buffer |
| tests2.cpp:82:14:82:20 | *global1 | semmle.label | *global1 |
| tests2.cpp:91:42:91:45 | *str1 | semmle.label | *str1 |
| tests2.cpp:93:14:93:17 | *str1 | semmle.label | *str1 |
| tests2.cpp:101:8:101:15 | *call to getpwuid | semmle.label | *call to getpwuid |
| tests2.cpp:102:14:102:15 | *pw | semmle.label | *pw |
| tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] | semmle.label | *c1 [post update] [*ptr] |
| tests2.cpp:109:3:109:36 | *... = ... | semmle.label | *... = ... |
| tests2.cpp:109:12:109:17 | *call to getenv | semmle.label | *call to getenv |
| tests2.cpp:111:14:111:15 | *c1 [*ptr] | semmle.label | *c1 [*ptr] |
| tests2.cpp:111:14:111:19 | *ptr | semmle.label | *ptr |
| tests2.cpp:111:17:111:19 | *ptr | semmle.label | *ptr |
| tests_sockets.cpp:26:15:26:20 | *call to getenv | semmle.label | *call to getenv |
| tests_sockets.cpp:39:19:39:22 | *path | semmle.label | *path |
| tests_sockets.cpp:43:20:43:23 | *path | semmle.label | *path |
| tests_sockets.cpp:63:15:63:20 | *call to getenv | semmle.label | *call to getenv |
| tests_sockets.cpp:76:19:76:22 | *path | semmle.label | *path |
| tests_sockets.cpp:80:20:80:23 | *path | semmle.label | *path |
| 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 | semmle.label | *pathbuf |
subpaths
#select
| tests2.cpp:63:13:63:26 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | tests2.cpp:63:13:63:26 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:63:13:63:26 | call to getenv indirection | call to getenv indirection |
| tests2.cpp:64:13:64:26 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | tests2.cpp:64:13:64:26 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:64:13:64:26 | call to getenv indirection | call to getenv indirection |
| tests2.cpp:65:13:65:30 | call to getenv indirection | tests2.cpp:65:13:65:30 | call to getenv indirection | tests2.cpp:65:13:65:30 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:65:13:65:30 | call to getenv indirection | call to getenv indirection |
| tests2.cpp:66:13:66:34 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | tests2.cpp:66:13:66:34 | call to getenv indirection | This operation exposes system data from $@. | tests2.cpp:66:13:66:34 | call to getenv indirection | call to getenv 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 | 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: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: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 |
| 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: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_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 |
| tests2.cpp:63:13:63:26 | *call to getenv | tests2.cpp:63:13:63:26 | *call to getenv | tests2.cpp:63:13:63:26 | *call to getenv | This operation exposes system data from $@. | tests2.cpp:63:13:63:26 | *call to getenv | *call to getenv |
| tests2.cpp:64:13:64:26 | *call to getenv | tests2.cpp:64:13:64:26 | *call to getenv | tests2.cpp:64:13:64:26 | *call to getenv | This operation exposes system data from $@. | tests2.cpp:64:13:64:26 | *call to getenv | *call to getenv |
| tests2.cpp:65:13:65:30 | *call to getenv | tests2.cpp:65:13:65:30 | *call to getenv | tests2.cpp:65:13:65:30 | *call to getenv | This operation exposes system data from $@. | tests2.cpp:65:13:65:30 | *call to getenv | *call to getenv |
| tests2.cpp:66:13:66:34 | *call to getenv | tests2.cpp:66:13:66:34 | *call to getenv | tests2.cpp:66:13:66:34 | *call to getenv | This operation exposes system data from $@. | tests2.cpp:66:13:66:34 | *call to getenv | *call to getenv |
| tests2.cpp:80:14:80:34 | *call to mysql_get_client_info | tests2.cpp:80:14:80:34 | *call to mysql_get_client_info | tests2.cpp:80:14:80:34 | *call to mysql_get_client_info | This operation exposes system data from $@. | tests2.cpp:80:14:80:34 | *call to mysql_get_client_info | *call to mysql_get_client_info |
| tests2.cpp:81:14:81:19 | *buffer | tests2.cpp:78:18:78:38 | *call to mysql_get_client_info | tests2.cpp:81:14:81:19 | *buffer | This operation exposes system data from $@. | tests2.cpp:78:18:78:38 | *call to mysql_get_client_info | *call to mysql_get_client_info |
| tests2.cpp:82:14:82:20 | *global1 | tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | tests2.cpp:82:14:82:20 | *global1 | This operation exposes system data from $@. | tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | *call to mysql_get_client_info |
| tests2.cpp:93:14:93:17 | *str1 | tests2.cpp:91:42:91:45 | *str1 | tests2.cpp:93:14:93:17 | *str1 | This operation exposes system data from $@. | tests2.cpp:91:42:91:45 | *str1 | *str1 |
| tests2.cpp:102:14:102:15 | *pw | tests2.cpp:101:8:101:15 | *call to getpwuid | tests2.cpp:102:14:102:15 | *pw | This operation exposes system data from $@. | tests2.cpp:101:8:101:15 | *call to getpwuid | *call to getpwuid |
| tests2.cpp:111:14:111:19 | *ptr | tests2.cpp:109:12:109:17 | *call to getenv | tests2.cpp:111:14:111:19 | *ptr | This operation exposes system data from $@. | tests2.cpp:109:12:109:17 | *call to getenv | *call to getenv |
| tests_sockets.cpp:39:19:39:22 | *path | tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:39:19:39:22 | *path | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | *call to getenv | *call to getenv |
| tests_sockets.cpp:43:20:43:23 | *path | tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:43:20:43:23 | *path | This operation exposes system data from $@. | tests_sockets.cpp:26:15:26:20 | *call to getenv | *call to getenv |
| tests_sockets.cpp:76:19:76:22 | *path | tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:76:19:76:22 | *path | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | *call to getenv | *call to getenv |
| tests_sockets.cpp:80:20:80:23 | *path | tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:80:20:80:23 | *path | This operation exposes system data from $@. | tests_sockets.cpp:63:15:63:20 | *call to getenv | *call to getenv |
| tests_sysconf.cpp:39:19:39:25 | *pathbuf | tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | *pathbuf | This operation exposes system data from $@. | tests_sysconf.cpp:36:21:36:27 | confstr output argument | confstr output argument |

View File

@@ -1,64 +1,64 @@
edges
| 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: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: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: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:131:14:131:35 | call to getenv indirection | tests.cpp:107:30:107:32 | msg indirection |
| tests.cpp:132:14:132:35 | call to getenv indirection | tests.cpp:114:30:114:32 | msg indirection |
| tests.cpp:133:14:133:35 | call to getenv indirection | tests.cpp:122:30:122:32 | msg indirection |
| tests.cpp:139:17:139:22 | call to getenv indirection | tests.cpp:141:15:141:20 | secret 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.cpp:62:7:62:18 | **global_token | tests.cpp:71:27:71:38 | *global_token |
| tests.cpp:62:7:62:18 | **global_token | tests.cpp:73:27:73:31 | *maybe |
| tests.cpp:62:22:62:27 | *call to getenv | tests.cpp:62:7:62:18 | **global_token |
| tests.cpp:86:29:86:31 | *msg | tests.cpp:88:15:88:17 | *msg |
| tests.cpp:97:13:97:34 | *call to getenv | tests.cpp:86:29:86:31 | *msg |
| tests.cpp:107:30:107:32 | *msg | tests.cpp:111:15:111:17 | *tmp |
| tests.cpp:114:30:114:32 | *msg | tests.cpp:119:7:119:12 | *buffer |
| tests.cpp:122:30:122:32 | *msg | tests.cpp:124:15:124:17 | *msg |
| tests.cpp:131:14:131:35 | *call to getenv | tests.cpp:107:30:107:32 | *msg |
| tests.cpp:132:14:132:35 | *call to getenv | tests.cpp:114:30:114:32 | *msg |
| tests.cpp:133:14:133:35 | *call to getenv | tests.cpp:122:30:122:32 | *msg |
| tests.cpp:139:17:139:22 | *call to getenv | tests.cpp:141:15:141:20 | *secret |
| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:18:29:18:31 | *pwd |
| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:19:26:19:28 | *pwd |
nodes
| tests.cpp:48:15:48:36 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:49:15:49:36 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:50:15:50:36 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:57:18:57:39 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:58:41:58:62 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:59:43:59:64 | call to getenv indirection | semmle.label | call to getenv indirection |
| 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: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: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: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:131:14:131:35 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:132:14:132:35 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:133:14:133:35 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:133:14:133:35 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:139:17:139:22 | call to getenv indirection | semmle.label | call to getenv indirection |
| tests.cpp:141:15:141:20 | secret indirection | semmle.label | secret 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:19:26:19:28 | pwd indirection | semmle.label | pwd indirection |
| tests.cpp:48:15:48:36 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:49:15:49:36 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:50:15:50:36 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:57:18:57:39 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:58:41:58:62 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:59:43:59:64 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:62:7:62:18 | **global_token | semmle.label | **global_token |
| tests.cpp:62:22:62:27 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:71:27:71:38 | *global_token | semmle.label | *global_token |
| tests.cpp:73:27:73:31 | *maybe | semmle.label | *maybe |
| tests.cpp:86:29:86:31 | *msg | semmle.label | *msg |
| tests.cpp:88:15:88:17 | *msg | semmle.label | *msg |
| tests.cpp:97:13:97:34 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:97:13:97:34 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:107:30:107:32 | *msg | semmle.label | *msg |
| tests.cpp:111:15:111:17 | *tmp | semmle.label | *tmp |
| tests.cpp:114:30:114:32 | *msg | semmle.label | *msg |
| tests.cpp:119:7:119:12 | *buffer | semmle.label | *buffer |
| tests.cpp:122:30:122:32 | *msg | semmle.label | *msg |
| tests.cpp:124:15:124:17 | *msg | semmle.label | *msg |
| tests.cpp:131:14:131:35 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:132:14:132:35 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:133:14:133:35 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:133:14:133:35 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:139:17:139:22 | *call to getenv | semmle.label | *call to getenv |
| tests.cpp:141:15:141:20 | *secret | semmle.label | *secret |
| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | semmle.label | *call to getpwnam |
| tests_passwd.cpp:18:29:18:31 | *pwd | semmle.label | *pwd |
| tests_passwd.cpp:19:26:19:28 | *pwd | semmle.label | *pwd |
subpaths
#select
| tests.cpp:48:15:48:36 | call to getenv indirection | tests.cpp:48:15:48:36 | call to getenv indirection | tests.cpp:48:15:48:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:48:15:48:36 | call to getenv indirection | call to getenv indirection |
| tests.cpp:49:15:49:36 | call to getenv indirection | tests.cpp:49:15:49:36 | call to getenv indirection | tests.cpp:49:15:49:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:49:15:49:36 | call to getenv indirection | call to getenv indirection |
| tests.cpp:50:15:50:36 | call to getenv indirection | tests.cpp:50:15:50:36 | call to getenv indirection | tests.cpp:50:15:50:36 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:50:15:50:36 | call to getenv indirection | call to getenv indirection |
| tests.cpp:57:18:57:39 | call to getenv indirection | tests.cpp:57:18:57:39 | call to getenv indirection | tests.cpp:57:18:57:39 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:57:18:57:39 | call to getenv indirection | call to getenv indirection |
| tests.cpp:58:41:58:62 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | tests.cpp:58:41:58:62 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:58:41:58:62 | call to getenv indirection | call to getenv indirection |
| tests.cpp:59:43:59:64 | call to getenv indirection | tests.cpp:59:43:59:64 | 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:64 | 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:88:15:88:17 | msg indirection | tests.cpp:97:13:97:34 | 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:34 | call to getenv indirection | 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:97:13:97:34 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:34 | call to getenv indirection | call to getenv indirection |
| tests.cpp:111:15:111:17 | tmp indirection | tests.cpp:131:14:131:35 | 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:35 | call to getenv indirection | call to getenv indirection |
| tests.cpp:119:7:119:12 | buffer indirection | tests.cpp:132:14:132:35 | 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:35 | call to getenv indirection | call to getenv indirection |
| tests.cpp:124:15:124:17 | msg indirection | tests.cpp:133:14:133:35 | 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:35 | call to getenv indirection | 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:133:14:133:35 | call to getenv indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:35 | call to getenv indirection | call to getenv indirection |
| tests.cpp:141:15:141:20 | secret indirection | tests.cpp:139:17:139:22 | call to getenv indirection | tests.cpp:141:15:141:20 | secret indirection | This operation potentially exposes sensitive system data from $@. | tests.cpp:139:17:139:22 | 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: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.cpp:48:15:48:36 | *call to getenv | tests.cpp:48:15:48:36 | *call to getenv | tests.cpp:48:15:48:36 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:48:15:48:36 | *call to getenv | *call to getenv |
| tests.cpp:49:15:49:36 | *call to getenv | tests.cpp:49:15:49:36 | *call to getenv | tests.cpp:49:15:49:36 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:49:15:49:36 | *call to getenv | *call to getenv |
| tests.cpp:50:15:50:36 | *call to getenv | tests.cpp:50:15:50:36 | *call to getenv | tests.cpp:50:15:50:36 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:50:15:50:36 | *call to getenv | *call to getenv |
| tests.cpp:57:18:57:39 | *call to getenv | tests.cpp:57:18:57:39 | *call to getenv | tests.cpp:57:18:57:39 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:57:18:57:39 | *call to getenv | *call to getenv |
| tests.cpp:58:41:58:62 | *call to getenv | tests.cpp:58:41:58:62 | *call to getenv | tests.cpp:58:41:58:62 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:58:41:58:62 | *call to getenv | *call to getenv |
| tests.cpp:59:43:59:64 | *call to getenv | tests.cpp:59:43:59:64 | *call to getenv | tests.cpp:59:43:59:64 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:59:43:59:64 | *call to getenv | *call to getenv |
| tests.cpp:71:27:71:38 | *global_token | tests.cpp:62:22:62:27 | *call to getenv | tests.cpp:71:27:71:38 | *global_token | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | *call to getenv | *call to getenv |
| tests.cpp:73:27:73:31 | *maybe | tests.cpp:62:22:62:27 | *call to getenv | tests.cpp:73:27:73:31 | *maybe | This operation potentially exposes sensitive system data from $@. | tests.cpp:62:22:62:27 | *call to getenv | *call to getenv |
| tests.cpp:88:15:88:17 | *msg | tests.cpp:97:13:97:34 | *call to getenv | tests.cpp:88:15:88:17 | *msg | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:34 | *call to getenv | *call to getenv |
| tests.cpp:97:13:97:34 | *call to getenv | tests.cpp:97:13:97:34 | *call to getenv | tests.cpp:97:13:97:34 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:97:13:97:34 | *call to getenv | *call to getenv |
| tests.cpp:111:15:111:17 | *tmp | tests.cpp:131:14:131:35 | *call to getenv | tests.cpp:111:15:111:17 | *tmp | This operation potentially exposes sensitive system data from $@. | tests.cpp:131:14:131:35 | *call to getenv | *call to getenv |
| tests.cpp:119:7:119:12 | *buffer | tests.cpp:132:14:132:35 | *call to getenv | tests.cpp:119:7:119:12 | *buffer | This operation potentially exposes sensitive system data from $@. | tests.cpp:132:14:132:35 | *call to getenv | *call to getenv |
| tests.cpp:124:15:124:17 | *msg | tests.cpp:133:14:133:35 | *call to getenv | tests.cpp:124:15:124:17 | *msg | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:35 | *call to getenv | *call to getenv |
| tests.cpp:133:14:133:35 | *call to getenv | tests.cpp:133:14:133:35 | *call to getenv | tests.cpp:133:14:133:35 | *call to getenv | This operation potentially exposes sensitive system data from $@. | tests.cpp:133:14:133:35 | *call to getenv | *call to getenv |
| tests.cpp:141:15:141:20 | *secret | tests.cpp:139:17:139:22 | *call to getenv | tests.cpp:141:15:141:20 | *secret | This operation potentially exposes sensitive system data from $@. | tests.cpp:139:17:139:22 | *call to getenv | *call to getenv |
| tests_passwd.cpp:18:29:18:31 | *pwd | tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:18:29:18:31 | *pwd | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | *call to getpwnam | *call to getpwnam |
| tests_passwd.cpp:19:26:19:28 | *pwd | tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:19:26:19:28 | *pwd | This operation potentially exposes sensitive system data from $@. | tests_passwd.cpp:16:8:16:15 | *call to getpwnam | *call to getpwnam |

View File

@@ -1,157 +1,157 @@
edges
| 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: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: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: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: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: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: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: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 |
| 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:37:2:37:2 | p indirection |
| tests.cpp:37:2:37:2 | p indirection | tests.cpp:37:2:37:2 | p indirection |
| tests.cpp:37:2:37:2 | p indirection | tests.cpp:38:2:38:2 | p indirection |
| tests.cpp:38:2:38:2 | p indirection | tests.cpp:38:2:38:2 | p indirection |
| tests.cpp:38:2:38:2 | p indirection | tests.cpp:39:2:39:2 | p indirection |
| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:53:2:53:2 | p indirection |
| tests.cpp:53:2:53:2 | p indirection | tests.cpp:53:2:53:2 | p indirection |
| tests.cpp:53:2:53:2 | p indirection | tests.cpp:55:2:55:2 | p indirection |
| tests.cpp:55:2:55:2 | p indirection | tests.cpp:55:2:55:2 | p indirection |
| tests.cpp:55:2:55:2 | p indirection | tests.cpp:56:2:56:2 | p indirection |
| tests.cpp:55:2:55:2 | p indirection | tests.cpp:57:2:57:2 | p indirection |
| tests.cpp:57:2:57:2 | p indirection | tests.cpp:57:2:57:2 | p indirection |
| tests.cpp:57:2:57:2 | p indirection | tests.cpp:59:2:59:2 | p indirection |
| tests.cpp:59:2:59:2 | p indirection | tests.cpp:59:2:59:2 | p indirection |
| tests.cpp:59:2:59:2 | p indirection | tests.cpp:60:2:60:2 | p indirection |
| tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | p indirection |
| tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | p indirection |
| tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection |
| tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection |
| tests.cpp:112:39:112:39 | p indirection | tests.cpp:113:2:113:2 | p indirection |
| tests.cpp:116:39:116:39 | p indirection | tests.cpp:117:2:117:2 | p indirection |
| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:126:18:126:18 | q indirection |
| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:128:18:128:18 | q indirection |
| tests.cpp:126:18:126:18 | q indirection | tests.cpp:112:39:112:39 | p indirection |
| tests.cpp:128:18:128:18 | q indirection | tests.cpp:116:39:116:39 | p indirection |
| tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | *p |
| tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | *p |
| tests2.cpp:49:12:49:12 | call to SAXParser | tests2.cpp:51:2:51:2 | *p |
| tests3.cpp:23:21:23:53 | *call to createXMLReader | tests3.cpp:25:2:25:2 | *p |
| tests3.cpp:35:16:35:20 | **p_3_3 | tests3.cpp:38:2:38:6 | *p_3_3 |
| tests3.cpp:35:24:35:56 | *call to createXMLReader | tests3.cpp:35:16:35:20 | **p_3_3 |
| tests3.cpp:48:16:48:20 | **p_3_5 | tests3.cpp:56:2:56:6 | *p_3_5 |
| tests3.cpp:48:24:48:56 | *call to createXMLReader | tests3.cpp:48:16:48:20 | **p_3_5 |
| tests3.cpp:60:21:60:53 | *call to createXMLReader | tests3.cpp:63:2:63:2 | *p |
| tests3.cpp:67:21:67:53 | *call to createXMLReader | tests3.cpp:70:2:70:2 | *p |
| tests5.cpp:27:25:27:38 | *call to createLSParser | tests5.cpp:29:2:29:2 | *p |
| tests5.cpp:40:25:40:38 | *call to createLSParser | tests5.cpp:43:2:43:2 | *p |
| tests5.cpp:55:25:55:38 | *call to createLSParser | tests5.cpp:59:2:59:2 | *p |
| tests5.cpp:63:21:63:24 | **g_p2 | tests5.cpp:77:2:77:5 | *g_p2 |
| tests5.cpp:70:17:70:30 | *call to createLSParser | tests5.cpp:63:21:63:24 | **g_p2 |
| tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p |
| tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p |
| tests5.cpp:83:2:83:2 | *p | tests5.cpp:85:2:85:2 | *p |
| tests5.cpp:85:2:85:2 | *p | tests5.cpp:86:2:86:2 | *p |
| tests5.cpp:86:2:86:2 | *p | tests5.cpp:88:2:88:2 | *p |
| tests5.cpp:88:2:88:2 | *p | tests5.cpp:89:2:89:2 | *p |
| tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | *p |
| tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | *p |
| tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:37:2:37:2 | *p |
| tests.cpp:37:2:37:2 | *p | tests.cpp:37:2:37:2 | *p |
| tests.cpp:37:2:37:2 | *p | tests.cpp:38:2:38:2 | *p |
| tests.cpp:38:2:38:2 | *p | tests.cpp:38:2:38:2 | *p |
| tests.cpp:38:2:38:2 | *p | tests.cpp:39:2:39:2 | *p |
| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:53:2:53:2 | *p |
| tests.cpp:53:2:53:2 | *p | tests.cpp:53:2:53:2 | *p |
| tests.cpp:53:2:53:2 | *p | tests.cpp:55:2:55:2 | *p |
| tests.cpp:55:2:55:2 | *p | tests.cpp:55:2:55:2 | *p |
| tests.cpp:55:2:55:2 | *p | tests.cpp:56:2:56:2 | *p |
| tests.cpp:55:2:55:2 | *p | tests.cpp:57:2:57:2 | *p |
| tests.cpp:57:2:57:2 | *p | tests.cpp:57:2:57:2 | *p |
| tests.cpp:57:2:57:2 | *p | tests.cpp:59:2:59:2 | *p |
| tests.cpp:59:2:59:2 | *p | tests.cpp:59:2:59:2 | *p |
| tests.cpp:59:2:59:2 | *p | tests.cpp:60:2:60:2 | *p |
| tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | *p |
| tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | *p |
| tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | *q |
| tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | *q |
| tests.cpp:112:39:112:39 | *p | tests.cpp:113:2:113:2 | *p |
| tests.cpp:116:39:116:39 | *p | tests.cpp:117:2:117:2 | *p |
| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:126:18:126:18 | *q |
| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:128:18:128:18 | *q |
| tests.cpp:126:18:126:18 | *q | tests.cpp:112:39:112:39 | *p |
| tests.cpp:128:18:128:18 | *q | tests.cpp:116:39:116:39 | *p |
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 | semmle.label | *p |
| 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 | semmle.label | *p |
| 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: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: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: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: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 |
| tests2.cpp:51:2:51:2 | *p | semmle.label | *p |
| tests3.cpp:23:21:23:53 | *call to createXMLReader | semmle.label | *call to createXMLReader |
| tests3.cpp:25:2:25:2 | *p | semmle.label | *p |
| tests3.cpp:35:16:35:20 | **p_3_3 | semmle.label | **p_3_3 |
| tests3.cpp:35:24:35:56 | *call to createXMLReader | semmle.label | *call to createXMLReader |
| tests3.cpp:38:2:38:6 | *p_3_3 | semmle.label | *p_3_3 |
| tests3.cpp:48:16:48:20 | **p_3_5 | semmle.label | **p_3_5 |
| tests3.cpp:48:24:48:56 | *call to createXMLReader | semmle.label | *call to createXMLReader |
| tests3.cpp:56:2:56:6 | *p_3_5 | semmle.label | *p_3_5 |
| tests3.cpp:60:21:60:53 | *call to createXMLReader | semmle.label | *call to createXMLReader |
| tests3.cpp:63:2:63:2 | *p | semmle.label | *p |
| tests3.cpp:67:21:67:53 | *call to createXMLReader | semmle.label | *call to createXMLReader |
| tests3.cpp:70:2:70:2 | *p | semmle.label | *p |
| 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 | ... \| ... |
| tests4.cpp:77:34:77:38 | flags | semmle.label | flags |
| 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: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: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: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: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: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:27:25:27:38 | *call to createLSParser | semmle.label | *call to createLSParser |
| tests5.cpp:29:2:29:2 | *p | semmle.label | *p |
| tests5.cpp:40:25:40:38 | *call to createLSParser | semmle.label | *call to createLSParser |
| tests5.cpp:43:2:43:2 | *p | semmle.label | *p |
| tests5.cpp:55:25:55:38 | *call to createLSParser | semmle.label | *call to createLSParser |
| tests5.cpp:59:2:59:2 | *p | semmle.label | *p |
| tests5.cpp:63:21:63:24 | **g_p2 | semmle.label | **g_p2 |
| tests5.cpp:70:17:70:30 | *call to createLSParser | semmle.label | *call to createLSParser |
| tests5.cpp:77:2:77:5 | *g_p2 | semmle.label | *g_p2 |
| tests5.cpp:81:25:81:38 | *call to createLSParser | semmle.label | *call to createLSParser |
| tests5.cpp:83:2:83:2 | *p | semmle.label | *p |
| tests5.cpp:83:2:83:2 | *p | semmle.label | *p |
| tests5.cpp:85:2:85:2 | *p | semmle.label | *p |
| tests5.cpp:86:2:86:2 | *p | semmle.label | *p |
| tests5.cpp:88:2:88:2 | *p | semmle.label | *p |
| tests5.cpp:89:2:89:2 | *p | semmle.label | *p |
| 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:17:2:17:2 | *p | semmle.label | *p |
| tests.cpp:28:23:28:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:31:2:31:2 | p indirection | semmle.label | p indirection |
| tests.cpp:31:2:31:2 | *p | semmle.label | *p |
| tests.cpp:35:23:35:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:37:2:37:2 | p indirection | semmle.label | p indirection |
| tests.cpp:37:2:37:2 | p indirection | semmle.label | p indirection |
| tests.cpp:38:2:38:2 | p indirection | semmle.label | p indirection |
| tests.cpp:38:2:38:2 | p indirection | semmle.label | p indirection |
| tests.cpp:39:2:39:2 | p indirection | semmle.label | p indirection |
| tests.cpp:37:2:37:2 | *p | semmle.label | *p |
| tests.cpp:37:2:37:2 | *p | semmle.label | *p |
| tests.cpp:38:2:38:2 | *p | semmle.label | *p |
| tests.cpp:38:2:38:2 | *p | semmle.label | *p |
| tests.cpp:39:2:39:2 | *p | semmle.label | *p |
| tests.cpp:51:23:51:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:53:2:53:2 | p indirection | semmle.label | p indirection |
| tests.cpp:53:2:53:2 | p indirection | semmle.label | p indirection |
| tests.cpp:55:2:55:2 | p indirection | semmle.label | p indirection |
| tests.cpp:55:2:55:2 | p indirection | semmle.label | p indirection |
| tests.cpp:56:2:56:2 | p indirection | semmle.label | p indirection |
| tests.cpp:57:2:57:2 | p indirection | semmle.label | p indirection |
| tests.cpp:57:2:57:2 | p indirection | semmle.label | p indirection |
| tests.cpp:59:2:59:2 | p indirection | semmle.label | p indirection |
| tests.cpp:59:2:59:2 | p indirection | semmle.label | p indirection |
| tests.cpp:60:2:60:2 | p indirection | semmle.label | p indirection |
| tests.cpp:53:2:53:2 | *p | semmle.label | *p |
| tests.cpp:53:2:53:2 | *p | semmle.label | *p |
| tests.cpp:55:2:55:2 | *p | semmle.label | *p |
| tests.cpp:55:2:55:2 | *p | semmle.label | *p |
| tests.cpp:56:2:56:2 | *p | semmle.label | *p |
| tests.cpp:57:2:57:2 | *p | semmle.label | *p |
| tests.cpp:57:2:57:2 | *p | semmle.label | *p |
| tests.cpp:59:2:59:2 | *p | semmle.label | *p |
| tests.cpp:59:2:59:2 | *p | semmle.label | *p |
| tests.cpp:60:2:60:2 | *p | semmle.label | *p |
| tests.cpp:66:23:66:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:69:2:69:2 | p indirection | semmle.label | p indirection |
| tests.cpp:69:2:69:2 | *p | semmle.label | *p |
| tests.cpp:73:23:73:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:80:2:80:2 | p indirection | semmle.label | p indirection |
| tests.cpp:80:2:80:2 | *p | semmle.label | *p |
| tests.cpp:85:24:85:44 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:88:3:88:3 | q indirection | semmle.label | q indirection |
| tests.cpp:88:3:88:3 | *q | semmle.label | *q |
| tests.cpp:100:24:100:44 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:104:3:104:3 | q indirection | semmle.label | q indirection |
| tests.cpp:112:39:112:39 | p indirection | semmle.label | p indirection |
| tests.cpp:113:2:113:2 | p indirection | semmle.label | p indirection |
| tests.cpp:116:39:116:39 | p indirection | semmle.label | p indirection |
| tests.cpp:117:2:117:2 | p indirection | semmle.label | p indirection |
| tests.cpp:104:3:104:3 | *q | semmle.label | *q |
| tests.cpp:112:39:112:39 | *p | semmle.label | *p |
| tests.cpp:113:2:113:2 | *p | semmle.label | *p |
| tests.cpp:116:39:116:39 | *p | semmle.label | *p |
| tests.cpp:117:2:117:2 | *p | semmle.label | *p |
| tests.cpp:122:23:122:43 | call to XercesDOMParser | semmle.label | call to XercesDOMParser |
| tests.cpp:126:18:126:18 | q indirection | semmle.label | q indirection |
| tests.cpp:128:18:128:18 | q indirection | semmle.label | q indirection |
| tests.cpp:126:18:126:18 | *q | semmle.label | *q |
| tests.cpp:128:18:128:18 | *q | semmle.label | *q |
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: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: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: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 |
| tests2.cpp:22:2:22:2 | *p | tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | *p | 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 | tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | *p | 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 | tests2.cpp:49:12:49:12 | call to SAXParser | tests2.cpp:51:2:51:2 | *p | 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 | tests3.cpp:23:21:23:53 | *call to createXMLReader | tests3.cpp:25:2:25:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:23:21:23:53 | *call to createXMLReader | XML parser |
| tests3.cpp:38:2:38:6 | *p_3_3 | tests3.cpp:35:24:35:56 | *call to createXMLReader | tests3.cpp:38:2:38:6 | *p_3_3 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:35:24:35:56 | *call to createXMLReader | XML parser |
| tests3.cpp:56:2:56:6 | *p_3_5 | tests3.cpp:48:24:48:56 | *call to createXMLReader | tests3.cpp:56:2:56:6 | *p_3_5 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:48:24:48:56 | *call to createXMLReader | XML parser |
| tests3.cpp:63:2:63:2 | *p | tests3.cpp:60:21:60:53 | *call to createXMLReader | tests3.cpp:63:2:63:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:60:21:60:53 | *call to createXMLReader | XML parser |
| tests3.cpp:70:2:70:2 | *p | tests3.cpp:67:21:67:53 | *call to createXMLReader | tests3.cpp:70:2:70:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests3.cpp:67:21:67:53 | *call to createXMLReader | 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 |
| tests4.cpp:46:34:46:68 | ... \| ... | tests4.cpp:46:34:46:68 | ... \| ... | tests4.cpp:46:34:46:68 | ... \| ... | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests4.cpp:46:34:46:68 | ... \| ... | XML parser |
| 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: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: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: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 |
| tests.cpp:39:2:39:2 | p indirection | tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:39:2:39:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:35:23:35:43 | call to XercesDOMParser | XML parser |
| tests.cpp:56:2:56:2 | p indirection | tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:56:2:56:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:51:23:51:43 | call to XercesDOMParser | XML parser |
| tests.cpp:60:2:60:2 | p indirection | tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:60:2:60:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:51:23:51:43 | call to XercesDOMParser | XML parser |
| tests.cpp:69:2:69:2 | p indirection | tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:66:23:66:43 | call to XercesDOMParser | XML parser |
| tests.cpp:80:2:80:2 | p indirection | tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:73:23:73:43 | call to XercesDOMParser | XML parser |
| tests.cpp:88:3:88:3 | q indirection | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:85:24:85:44 | call to XercesDOMParser | XML parser |
| tests.cpp:104:3:104:3 | q indirection | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | q indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:100:24:100:44 | call to XercesDOMParser | XML parser |
| tests.cpp:113:2:113:2 | p indirection | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:113:2:113:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser |
| tests.cpp:117:2:117:2 | p indirection | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:117:2:117:2 | p indirection | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser |
| tests5.cpp:29:2:29:2 | *p | tests5.cpp:27:25:27:38 | *call to createLSParser | tests5.cpp:29:2:29:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:27:25:27:38 | *call to createLSParser | XML parser |
| tests5.cpp:43:2:43:2 | *p | tests5.cpp:40:25:40:38 | *call to createLSParser | tests5.cpp:43:2:43:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:40:25:40:38 | *call to createLSParser | XML parser |
| tests5.cpp:59:2:59:2 | *p | tests5.cpp:55:25:55:38 | *call to createLSParser | tests5.cpp:59:2:59:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:55:25:55:38 | *call to createLSParser | XML parser |
| tests5.cpp:77:2:77:5 | *g_p2 | tests5.cpp:70:17:70:30 | *call to createLSParser | tests5.cpp:77:2:77:5 | *g_p2 | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:70:17:70:30 | *call to createLSParser | XML parser |
| tests5.cpp:83:2:83:2 | *p | tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | *call to createLSParser | XML parser |
| tests5.cpp:89:2:89:2 | *p | tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:89:2:89:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests5.cpp:81:25:81:38 | *call to createLSParser | XML parser |
| tests.cpp:17:2:17:2 | *p | tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | *p | 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 | tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:28:23:28:43 | call to XercesDOMParser | XML parser |
| tests.cpp:39:2:39:2 | *p | tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:39:2:39:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:35:23:35:43 | call to XercesDOMParser | XML parser |
| tests.cpp:56:2:56:2 | *p | tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:56:2:56:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:51:23:51:43 | call to XercesDOMParser | XML parser |
| tests.cpp:60:2:60:2 | *p | tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:60:2:60:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:51:23:51:43 | call to XercesDOMParser | XML parser |
| tests.cpp:69:2:69:2 | *p | tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:66:23:66:43 | call to XercesDOMParser | XML parser |
| tests.cpp:80:2:80:2 | *p | tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:73:23:73:43 | call to XercesDOMParser | XML parser |
| tests.cpp:88:3:88:3 | *q | tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | *q | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:85:24:85:44 | call to XercesDOMParser | XML parser |
| tests.cpp:104:3:104:3 | *q | tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | *q | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:100:24:100:44 | call to XercesDOMParser | XML parser |
| tests.cpp:113:2:113:2 | *p | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:113:2:113:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser |
| tests.cpp:117:2:117:2 | *p | tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:117:2:117:2 | *p | This $@ is not configured to prevent an XML external entity (XXE) attack. | tests.cpp:122:23:122:43 | call to XercesDOMParser | XML parser |

View File

@@ -1,8 +1,8 @@
edges
| test.cpp:20:29:20:47 | call to getenv indirection | test.cpp:24:10:24:35 | ! ... |
| test.cpp:20:29:20:47 | *call to getenv | test.cpp:24:10:24:35 | ! ... |
nodes
| test.cpp:20:29:20:47 | call to getenv indirection | semmle.label | call to getenv indirection |
| test.cpp:20:29:20:47 | *call to getenv | semmle.label | *call to getenv |
| test.cpp:24:10:24:35 | ! ... | semmle.label | ! ... |
subpaths
#select
| test.cpp:24:10:24:35 | ! ... | test.cpp:20:29:20:47 | call to getenv indirection | test.cpp:24:10:24:35 | ! ... | Reliance on $@ to raise privilege at $@. | test.cpp:20:29:20:47 | call to getenv indirection | an environment variable | test.cpp:25:9:25:27 | ... = ... | ... = ... |
| test.cpp:24:10:24:35 | ! ... | test.cpp:20:29:20:47 | *call to getenv | test.cpp:24:10:24:35 | ! ... | Reliance on $@ to raise privilege at $@. | test.cpp:20:29:20:47 | *call to getenv | an environment variable | test.cpp:25:9:25:27 | ... = ... | ... = ... |

View File

@@ -590,7 +590,7 @@ namespace Semmle.Autobuild.CSharp.Tests
[Fact]
public void TestLinuxBuildlessExtractionSolution()
{
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone foo.sln"] = 0;
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
actions.FileExists["csharp.log"] = true;
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
@@ -598,7 +598,7 @@ namespace Semmle.Autobuild.CSharp.Tests
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
actions.EnumerateDirectories[@"C:\Project"] = "";
var autobuilder = CreateAutoBuilder(false, buildless: "true", solution: "foo.sln");
var autobuilder = CreateAutoBuilder(false, buildless: "true");
TestAutobuilderScript(autobuilder, 0, 1);
}
@@ -890,7 +890,7 @@ namespace Semmle.Autobuild.CSharp.Tests
[Fact]
public void TestSkipNugetBuildless()
{
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone foo.sln --skip-nuget"] = 0;
actions.RunProcess[@"C:\codeql\csharp/tools/linux64/Semmle.Extraction.CSharp.Standalone"] = 0;
actions.FileExists["csharp.log"] = true;
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_TRAP_DIR"] = "";
actions.GetEnvironmentVariable["CODEQL_EXTRACTOR_CSHARP_SOURCE_ARCHIVE_DIR"] = "";
@@ -898,7 +898,7 @@ namespace Semmle.Autobuild.CSharp.Tests
actions.EnumerateFiles[@"C:\Project"] = "foo.cs\ntest.sln";
actions.EnumerateDirectories[@"C:\Project"] = "";
var autobuilder = CreateAutoBuilder(false, buildless: "true", solution: "foo.sln", nugetRestore: "false");
var autobuilder = CreateAutoBuilder(false, buildless: "true");
TestAutobuilderScript(autobuilder, 0, 1);
}

View File

@@ -17,7 +17,7 @@ namespace Semmle.Autobuild.CSharp
public BuildScript Analyse(IAutobuilder<CSharpAutobuildOptions> builder, bool auto)
{
BuildScript GetCommand(string? solution)
BuildScript GetCommand()
{
string standalone;
if (builder.CodeQLExtractorLangRoot is not null && builder.CodeQlPlatform is not null)
@@ -32,14 +32,6 @@ namespace Semmle.Autobuild.CSharp
var cmd = new CommandBuilder(builder.Actions);
cmd.RunCommand(standalone);
if (solution is not null)
cmd.QuoteArgument(solution);
if (!builder.Options.NugetRestore)
{
cmd.Argument("--skip-nuget");
}
if (!string.IsNullOrEmpty(this.dotNetPath))
{
cmd.Argument("--dotnet");
@@ -50,16 +42,11 @@ namespace Semmle.Autobuild.CSharp
}
if (!builder.Options.Buildless)
{
return BuildScript.Failure;
}
if (!builder.Options.Solution.Any())
return GetCommand(null);
var script = BuildScript.Success;
foreach (var solution in builder.Options.Solution)
script &= GetCommand(solution);
return script;
return GetCommand();
}
}
}

View File

@@ -80,67 +80,16 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
this.nonGeneratedSources = allNonBinaryFiles.SelectFileNamesByExtension(".cs").ToList();
this.generatedSources = new();
var allProjects = allNonBinaryFiles.SelectFileNamesByExtension(".csproj");
var solutions = options.SolutionFile is not null
? new[] { options.SolutionFile }
: allNonBinaryFiles.SelectFileNamesByExtension(".sln");
var dllPaths = options.DllDirs.Count == 0
? allFiles.SelectFileNamesByExtension(".dll").ToHashSet()
: options.DllDirs.Select(Path.GetFullPath).ToHashSet();
if (options.UseNuGet)
{
try
{
var nuget = new NugetPackages(sourceDir.FullName, legacyPackageDirectory, progressMonitor);
nuget.InstallPackages();
var nugetPackageDlls = legacyPackageDirectory.DirInfo.GetFiles("*.dll", new EnumerationOptions { RecurseSubdirectories = true });
var nugetPackageDllPaths = nugetPackageDlls.Select(f => f.FullName).ToHashSet();
var excludedPaths = nugetPackageDllPaths
.Where(path => IsPathInSubfolder(path, legacyPackageDirectory.DirInfo.FullName, "tools"));
foreach (var excludedPath in excludedPaths)
{
progressMonitor.LogInfo($"Excluded Nuget DLL: {excludedPath}");
}
nugetPackageDllPaths.ExceptWith(excludedPaths);
dllPaths.UnionWith(nugetPackageDllPaths);
}
catch (FileNotFoundException)
{
progressMonitor.MissingNuGet();
}
var restoredProjects = RestoreSolutions(solutions, out var assets1);
var projects = allProjects.Except(restoredProjects);
RestoreProjects(projects, out var assets2);
var dependencies = Assets.GetCompilationDependencies(progressMonitor, assets1.Union(assets2));
var paths = dependencies
.Paths
.Select(d => Path.Combine(packageDirectory.DirInfo.FullName, d))
.ToList();
dllPaths.UnionWith(paths);
LogAllUnusedPackages(dependencies);
DownloadMissingPackages(allNonBinaryFiles, dllPaths);
}
var frameworkLocations = new HashSet<string>();
var allSolutions = allNonBinaryFiles.SelectFileNamesByExtension(".sln");
var dllPaths = allFiles.SelectFileNamesByExtension(".dll").ToHashSet();
RestoreNugetPackages(allNonBinaryFiles, allProjects, allSolutions, dllPaths);
// Find DLLs in the .Net / Asp.Net Framework
// This block needs to come after the nuget restore, because the nuget restore might fetch the .NET Core/Framework reference assemblies.
if (options.ScanNetFrameworkDlls)
{
AddNetFrameworkDlls(dllPaths, frameworkLocations);
AddAspNetCoreFrameworkDlls(dllPaths, frameworkLocations);
AddMicrosoftWindowsDesktopDlls(dllPaths, frameworkLocations);
}
// This needs to come after the nuget restore, because the nuget restore might fetch the .NET Core/Framework reference assemblies.
var frameworkLocations = AddFrameworkDlls(dllPaths);
assemblyCache = new AssemblyCache(dllPaths, frameworkLocations, progressMonitor);
AnalyseSolutions(solutions);
AnalyseSolutions(allSolutions);
foreach (var filename in assemblyCache.AllAssemblies.Select(a => a.Filename))
{
@@ -182,6 +131,58 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
DateTime.Now - startTime);
}
private HashSet<string> AddFrameworkDlls(HashSet<string> dllPaths)
{
var frameworkLocations = new HashSet<string>();
AddNetFrameworkDlls(dllPaths, frameworkLocations);
AddAspNetCoreFrameworkDlls(dllPaths, frameworkLocations);
AddMicrosoftWindowsDesktopDlls(dllPaths, frameworkLocations);
return frameworkLocations;
}
private void RestoreNugetPackages(List<FileInfo> allNonBinaryFiles, IEnumerable<string> allProjects, IEnumerable<string> allSolutions, HashSet<string> dllPaths)
{
try
{
var nuget = new NugetPackages(sourceDir.FullName, legacyPackageDirectory, progressMonitor);
nuget.InstallPackages();
var nugetPackageDlls = legacyPackageDirectory.DirInfo.GetFiles("*.dll", new EnumerationOptions { RecurseSubdirectories = true });
var nugetPackageDllPaths = nugetPackageDlls.Select(f => f.FullName).ToHashSet();
var excludedPaths = nugetPackageDllPaths
.Where(path => IsPathInSubfolder(path, legacyPackageDirectory.DirInfo.FullName, "tools"));
foreach (var excludedPath in excludedPaths)
{
progressMonitor.LogInfo($"Excluded Nuget DLL: {excludedPath}");
}
nugetPackageDllPaths.ExceptWith(excludedPaths);
dllPaths.UnionWith(nugetPackageDllPaths);
}
catch (FileNotFoundException)
{
progressMonitor.MissingNuGet();
}
var restoredProjects = RestoreSolutions(allSolutions, out var assets1);
var projects = allProjects.Except(restoredProjects);
RestoreProjects(projects, out var assets2);
var dependencies = Assets.GetCompilationDependencies(progressMonitor, assets1.Union(assets2));
var paths = dependencies
.Paths
.Select(d => Path.Combine(packageDirectory.DirInfo.FullName, d))
.ToList();
dllPaths.UnionWith(paths);
LogAllUnusedPackages(dependencies);
DownloadMissingPackages(allNonBinaryFiles, dllPaths);
}
private static bool IsPathInSubfolder(string path, string rootFolder, string subFolder)
{
return path.IndexOf(
@@ -192,11 +193,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private void RemoveNugetAnalyzerReferences()
{
if (!options.UseNuGet)
{
return;
}
var packageFolder = packageDirectory.DirInfo.FullName.ToLowerInvariant();
if (packageFolder == null)
{
@@ -279,11 +275,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
string? runtimeLocation = null;
if (options.UseSelfContainedDotnet)
{
runtimeLocation = Runtime.ExecutingRuntime;
}
else if (fileContent.IsNewProjectStructureUsed)
if (fileContent.IsNewProjectStructureUsed)
{
runtimeLocation = Runtime.NetCoreRuntime;
}
@@ -301,11 +293,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private void RemoveNugetPackageReference(string packagePrefix, ISet<string> dllPaths)
{
if (!options.UseNuGet)
{
return;
}
var packageFolder = packageDirectory.DirInfo.FullName.ToLowerInvariant();
if (packageFolder == null)
{
@@ -353,11 +340,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private string? GetPackageDirectory(string packagePrefix)
{
if (!options.UseNuGet)
{
return null;
}
return new DirectoryInfo(packageDirectory.DirInfo.FullName)
.EnumerateDirectories(packagePrefix + "*", new EnumerationOptions { MatchCasing = MatchCasing.CaseInsensitive, RecurseSubdirectories = false })
.FirstOrDefault()?
@@ -366,11 +348,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private IEnumerable<string> GetAllPackageDirectories()
{
if (!options.UseNuGet)
{
return Enumerable.Empty<string>();
}
return new DirectoryInfo(packageDirectory.DirInfo.FullName)
.EnumerateDirectories("*", new EnumerationOptions { MatchCasing = MatchCasing.CaseInsensitive, RecurseSubdirectories = false })
.Select(d => d.Name);
@@ -455,14 +432,14 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private IEnumerable<FileInfo> GetAllFiles()
{
var files = sourceDir.GetFiles("*.*", new EnumerationOptions { RecurseSubdirectories = true })
.Where(d => !options.ExcludesFile(d.FullName));
IEnumerable<FileInfo> files = sourceDir.GetFiles("*.*", new EnumerationOptions { RecurseSubdirectories = true });
if (options.DotNetPath != null)
{
files = files.Where(f => !f.FullName.StartsWith(options.DotNetPath, StringComparison.OrdinalIgnoreCase));
}
files = new FilePathFilter(sourceDir, progressMonitor).Filter(files);
return files;
}

View File

@@ -10,43 +10,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
/// </summary>
public interface IDependencyOptions
{
/// <summary>
/// Directories to search DLLs in.
/// </summary>
IList<string> DllDirs { get; }
/// <summary>
/// Files/patterns to exclude.
/// </summary>
IList<string> Excludes { get; }
/// <summary>
/// Whether to analyse NuGet packages.
/// </summary>
bool UseNuGet { get; }
/// <summary>
/// The solution file to analyse, or null if not specified.
/// </summary>
string? SolutionFile { get; }
/// <summary>
/// Whether to use the packaged dotnet runtime.
/// </summary>
bool UseSelfContainedDotnet { get; }
/// <summary>
/// Whether to search the .Net framework directory.
/// </summary>
bool ScanNetFrameworkDlls { get; }
/// <summary>
/// Determine whether the given path should be excluded.
/// </summary>
/// <param name="path">The path to query.</param>
/// <returns>True iff the path matches an exclusion.</returns>
bool ExcludesFile(string path);
/// <summary>
/// The number of threads to use.
/// </summary>
@@ -62,21 +25,6 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
{
public static IDependencyOptions Default => new DependencyOptions();
public IList<string> DllDirs { get; set; } = new List<string>();
public IList<string> Excludes { get; set; } = new List<string>();
public bool UseNuGet { get; set; } = true;
public string? SolutionFile { get; set; }
public bool UseSelfContainedDotnet { get; set; } = false;
public bool ScanNetFrameworkDlls { get; set; } = true;
public bool ExcludesFile(string path) =>
Excludes.Any(path.Contains);
public int Threads { get; set; } = EnvironmentVariables.GetDefaultNumberOfThreads();
public string? DotNetPath { get; set; } = null;

View File

@@ -0,0 +1,99 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text.RegularExpressions;
using Semmle.Util;
using Semmle.Util.Logging;
namespace Semmle.Extraction.CSharp.DependencyFetching
{
public class FilePathFilter
{
private readonly string rootFolder;
private readonly IProgressMonitor progressMonitor;
public FilePathFilter(DirectoryInfo sourceDir, IProgressMonitor progressMonitor)
{
rootFolder = FileUtils.ConvertToUnix(sourceDir.FullName.ToLowerInvariant());
this.progressMonitor = progressMonitor;
}
private class FileInclusion(string path, bool include)
{
public string Path { get; } = path;
public bool Include { get; set; } = include;
}
private record class PathFilter(Regex Regex, bool Include);
public IEnumerable<FileInfo> Filter(IEnumerable<FileInfo> files)
{
var filters = (Environment.GetEnvironmentVariable("LGTM_INDEX_FILTERS") ?? string.Empty).Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
if (filters.Length == 0)
{
return files;
}
var pathFilters = new List<PathFilter>();
foreach (var filter in filters)
{
bool include;
string filterText;
if (filter.StartsWith("include:"))
{
include = true;
filterText = filter.Substring("include:".Length);
}
else if (filter.StartsWith("exclude:"))
{
include = false;
filterText = filter.Substring("exclude:".Length);
}
else
{
progressMonitor.Log(Severity.Info, $"Invalid filter: {filter}");
continue;
}
var regex = new FilePattern(filterText).RegexPattern;
progressMonitor.Log(Severity.Info, $"Filtering {(include ? "in" : "out")} files matching '{regex}'. Original glob filter: '{filter}'");
pathFilters.Add(new PathFilter(new Regex(regex, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline), include));
}
var includeByDefault = pathFilters.All(f => !f.Include);
var unfilteredResult = files.Select(f =>
new
{
FileInfo = f,
FileInclusion = new FileInclusion(
FileUtils.ConvertToUnix(f.FullName.ToLowerInvariant()).Replace(rootFolder, string.Empty).TrimStart('/'),
includeByDefault)
});
// Move included pathfilters to the front of the list:
pathFilters.Sort((pf1, pf2) => -1 * pf1.Include.CompareTo(pf2.Include));
return unfilteredResult.Where(f =>
{
var include = f.FileInclusion.Include;
foreach (var pathFilter in pathFilters)
{
if (pathFilter.Regex.IsMatch(f.FileInclusion.Path))
{
include = pathFilter.Include;
}
}
if (!include)
{
progressMonitor.Log(Severity.Info, $"Excluding '{f.FileInfo.FullName}'");
}
return include;
}).Select(f => f.FileInfo);
}
}
}

View File

@@ -0,0 +1,9 @@
using Semmle.Util.Logging;
namespace Semmle.Extraction.CSharp.DependencyFetching
{
public interface IProgressMonitor
{
void Log(Severity severity, string message);
}
}

View File

@@ -3,7 +3,7 @@ using Semmle.Util.Logging;
namespace Semmle.Extraction.CSharp.DependencyFetching
{
internal class ProgressMonitor
internal class ProgressMonitor : IProgressMonitor
{
private readonly ILogger logger;

View File

@@ -147,8 +147,6 @@ namespace Semmle.Extraction.CSharp.Standalone
return ExitCode.Errors;
}
if (!options.SkipExtraction)
{
using var fileLogger = CSharp.Extractor.MakeLogger(options.Verbosity, false);
logger.Log(Severity.Info, "");
@@ -160,7 +158,6 @@ namespace Semmle.Extraction.CSharp.Standalone
fileLogger,
options);
logger.Log(Severity.Info, $"Extraction completed in {stopwatch.Elapsed}");
}
return ExitCode.Ok;
}

View File

@@ -21,21 +21,6 @@ namespace Semmle.Extraction.CSharp.Standalone
case "help":
Help = true;
return true;
case "dry-run":
SkipExtraction = value;
return true;
case "skip-nuget":
dependencies.UseNuGet = !value;
return true;
case "all-references":
AnalyseCsProjFiles = !value;
return true;
case "skip-dotnet":
dependencies.ScanNetFrameworkDlls = !value;
return true;
case "self-contained-dotnet":
dependencies.UseSelfContainedDotnet = value;
return true;
default:
return base.HandleFlag(key, value);
}
@@ -45,12 +30,6 @@ namespace Semmle.Extraction.CSharp.Standalone
{
switch (key)
{
case "exclude":
dependencies.Excludes.Add(value);
return true;
case "references":
dependencies.DllDirs.Add(value);
return true;
case "dotnet":
dependencies.DotNetPath = value;
return true;
@@ -61,13 +40,6 @@ namespace Semmle.Extraction.CSharp.Standalone
public override bool HandleArgument(string arg)
{
dependencies.SolutionFile = arg;
var fi = new FileInfo(dependencies.SolutionFile);
if (!fi.Exists)
{
System.Console.WriteLine($"[{Environment.CurrentManagedThreadId:D3}] Error: The solution {fi.FullName} does not exist");
Errors = true;
}
return true;
}
@@ -80,7 +52,7 @@ namespace Semmle.Extraction.CSharp.Standalone
/// <summary>
/// The directory containing the source code;
/// </summary>
public string SrcDir { get; } = System.IO.Directory.GetCurrentDirectory();
public string SrcDir { get; } = Directory.GetCurrentDirectory();
private readonly DependencyOptions dependencies = new DependencyOptions();
/// <summary>
@@ -88,16 +60,6 @@ namespace Semmle.Extraction.CSharp.Standalone
/// </summary>
public IDependencyOptions Dependencies => dependencies;
/// <summary>
/// Whether to search .csproj files.
/// </summary>
public bool AnalyseCsProjFiles { get; private set; } = true;
/// <summary>
/// Whether the extraction phase should be skipped (dry-run).
/// </summary>
public bool SkipExtraction { get; private set; } = false;
/// <summary>
/// Whether errors were encountered parsing the arguments.
/// </summary>
@@ -115,17 +77,9 @@ namespace Semmle.Extraction.CSharp.Standalone
{
output.WriteLine("C# standalone extractor\n\nExtracts a C# project in the current directory without performing a build.\n");
output.WriteLine("Additional options:\n");
output.WriteLine(" xxx.sln Restrict sources to given solution");
output.WriteLine(" --exclude:xxx Exclude a file or directory (can be specified multiple times)");
output.WriteLine(" --references:xxx Scan additional files or directories for assemblies (can be specified multiple times)");
output.WriteLine(" --skip-dotnet Do not reference the .Net Framework");
output.WriteLine(" --dry-run Stop before extraction");
output.WriteLine(" --skip-nuget Do not download nuget packages");
output.WriteLine(" --all-references Use all references (default is to only use references in .csproj files)");
output.WriteLine(" --threads:nnn Specify number of threads (default=CPU cores)");
output.WriteLine(" --verbose Produce more output");
output.WriteLine(" --pdb Cross-reference information from PDBs where available");
output.WriteLine(" --self-contained-dotnet Use the .Net Framework packaged with the extractor");
}
private Options()

View File

@@ -29,7 +29,7 @@ namespace Semmle.Extraction.CSharp.Standalone
dependencyManager = new DependencyManager(options.SrcDir, options.Dependencies, logger);
References = dependencyManager.ReferenceFiles;
Extraction = new Extraction(options.SrcDir);
Extraction.Sources.AddRange(options.Dependencies.SolutionFile is null ? dependencyManager.AllSourceFiles : dependencyManager.ProjectSourceFiles);
Extraction.Sources.AddRange(dependencyManager.AllSourceFiles);
}
public IEnumerable<string> References { get; }

View File

@@ -0,0 +1,249 @@
using Xunit;
using Semmle.Extraction.CSharp.DependencyFetching;
using Semmle.Util.Logging;
using System.Linq;
using System.Collections.Generic;
using System.IO;
using System;
namespace Semmle.Extraction.Tests
{
public class FilePathFilterTest
{
private class ProgressMonitorStub : IProgressMonitor
{
public List<string> Messages { get; } = [];
public void Log(Severity severity, string message)
{
Messages.Add(message);
}
}
private static (FilePathFilter TestSubject, ProgressMonitorStub progressMonitor, IEnumerable<FileInfo> Files) TestSetup()
{
return TestSetup("/a/b",
[
"/a/b/c/d/e/f.cs",
"/a/b/c/d/e/g.cs",
"/a/b/c/d/e/h.cs",
"/a/b/c/x/y/i.cs",
"/a/b/c/x/z/i.cs"
]);
}
private static (FilePathFilter TestSubject, ProgressMonitorStub progressMonitor, IEnumerable<FileInfo> Files) TestSetup(string root, IEnumerable<string> paths)
{
root = GetPlatformSpecifixPath(root);
paths = GetPlatformSpecifixPaths(paths);
var progressMonitor = new ProgressMonitorStub();
var filePathFilter = new FilePathFilter(new DirectoryInfo(root), progressMonitor);
return (filePathFilter, progressMonitor, paths.Select(p => new FileInfo(p)));
}
private static string GetPlatformSpecifixPath(string file)
{
return file.Replace('/', Path.DirectorySeparatorChar);
}
private static IEnumerable<string> GetPlatformSpecifixPaths(IEnumerable<string> files)
{
return files.Select(GetPlatformSpecifixPath);
}
private static IEnumerable<FileInfo> GetExpected(IEnumerable<string> files)
{
files = GetPlatformSpecifixPaths(files);
return files.Select(f => new FileInfo(f));
}
private static void AssertFileInfoEquivalence(IEnumerable<FileInfo>? expected, IEnumerable<FileInfo>? actual)
{
Assert.Equivalent(expected?.Select(f => f.FullName), actual?.Select(f => f.FullName), strict: true);
}
[Fact]
public void TestNoFilter()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", null);
var filtered = testSubject.Filter(files);
AssertFileInfoEquivalence(files, filtered);
Assert.Equivalent(Array.Empty<string>(), progressMonitor.Messages, strict: true);
}
[Fact]
public void TestFiltersWithOnlyInclude()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", """
include:c/d
include:c/x/y
""");
var filtered = testSubject.Filter(files);
var expected = GetExpected(
[
"/a/b/c/d/e/f.cs",
"/a/b/c/d/e/g.cs",
"/a/b/c/d/e/h.cs",
"/a/b/c/x/y/i.cs"
]);
AssertFileInfoEquivalence(expected, filtered);
var expectedRegexMessages = new[]
{
"Filtering in files matching '^c/d.*'. Original glob filter: 'include:c/d'",
"Filtering in files matching '^c/x/y.*'. Original glob filter: 'include:c/x/y'"
};
Assert.Equivalent(expectedRegexMessages, progressMonitor.Messages, strict: false);
}
[Fact]
public void TestFiltersWithOnlyExclude()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", """
exclude:c/d/e
""");
var filtered = testSubject.Filter(files);
var expected = GetExpected(
[
"/a/b/c/x/y/i.cs",
"/a/b/c/x/z/i.cs"
]);
AssertFileInfoEquivalence(expected, filtered);
var expectedRegexMessages = new[]
{
"Filtering out files matching '^c/d/e.*'. Original glob filter: 'exclude:c/d/e'"
};
Assert.Equivalent(expectedRegexMessages, progressMonitor.Messages, strict: false);
}
[Fact]
public void TestFiltersWithIncludeExclude()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", """
include:c/x
exclude:c/x/z
""");
var filtered = testSubject.Filter(files);
var expected = GetExpected(
[
"/a/b/c/x/y/i.cs"
]);
AssertFileInfoEquivalence(expected, filtered);
var expectedRegexMessages = new[]
{
"Filtering in files matching '^c/x.*'. Original glob filter: 'include:c/x'",
"Filtering out files matching '^c/x/z.*'. Original glob filter: 'exclude:c/x/z'"
};
Assert.Equivalent(expectedRegexMessages, progressMonitor.Messages, strict: false);
}
[Fact]
public void TestFiltersWithIncludeExcludeExcludeFirst()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", """
exclude:c/x/z
include:c/x
""");
var filtered = testSubject.Filter(files);
var expected = GetExpected(
[
"/a/b/c/x/y/i.cs"
]);
AssertFileInfoEquivalence(expected, filtered);
var expectedRegexMessages = new[]
{
"Filtering in files matching '^c/x.*'. Original glob filter: 'include:c/x'",
"Filtering out files matching '^c/x/z.*'. Original glob filter: 'exclude:c/x/z'"
};
Assert.Equivalent(expectedRegexMessages, progressMonitor.Messages, strict: false);
}
[Fact]
public void TestFiltersWithIncludeExcludeComplexPatterns1()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", """
include:c/**/i.*
include:c/d/**/*.cs
exclude:**/z/i.cs
""");
var filtered = testSubject.Filter(files);
var expected = GetExpected(
[
"/a/b/c/d/e/f.cs",
"/a/b/c/d/e/g.cs",
"/a/b/c/d/e/h.cs",
"/a/b/c/x/y/i.cs"
]);
AssertFileInfoEquivalence(expected, filtered);
var expectedRegexMessages = new[]
{
"Filtering in files matching '^c/.*/i\\.[^/]*.*'. Original glob filter: 'include:c/**/i.*'",
"Filtering in files matching '^c/d/.*/[^/]*\\.cs.*'. Original glob filter: 'include:c/d/**/*.cs'",
"Filtering out files matching '^.*/z/i\\.cs.*'. Original glob filter: 'exclude:**/z/i.cs'"
};
Assert.Equivalent(expectedRegexMessages, progressMonitor.Messages, strict: false);
}
[Fact]
public void TestFiltersWithIncludeExcludeComplexPatterns2()
{
(var testSubject, var progressMonitor, var files) = TestSetup();
Environment.SetEnvironmentVariable("LGTM_INDEX_FILTERS", """
include:**/i.*
exclude:**/z/i.cs
""");
var filtered = testSubject.Filter(files);
var expected = GetExpected(
[
"/a/b/c/x/y/i.cs"
]);
AssertFileInfoEquivalence(expected, filtered);
var expectedRegexMessages = new[]
{
"Filtering in files matching '^.*/i\\.[^/]*.*'. Original glob filter: 'include:**/i.*'",
"Filtering out files matching '^.*/z/i\\.cs.*'. Original glob filter: 'exclude:**/z/i.cs'"
};
Assert.Equivalent(expectedRegexMessages, progressMonitor.Messages, strict: false);
}
}
}

View File

@@ -135,23 +135,14 @@ namespace Semmle.Extraction.Tests
public void StandaloneDefaults()
{
standaloneOptions = CSharp.Standalone.Options.Create(Array.Empty<string>());
Assert.Empty(standaloneOptions.Dependencies.DllDirs);
Assert.True(standaloneOptions.Dependencies.UseNuGet);
Assert.False(standaloneOptions.SkipExtraction);
Assert.Null(standaloneOptions.Dependencies.SolutionFile);
Assert.True(standaloneOptions.Dependencies.ScanNetFrameworkDlls);
Assert.False(standaloneOptions.Errors);
}
[Fact]
public void StandaloneOptions()
{
standaloneOptions = CSharp.Standalone.Options.Create(new string[] { "--references:foo", "--silent", "--skip-nuget", "--skip-dotnet", "--exclude", "bar" });
Assert.Equal("foo", standaloneOptions.Dependencies.DllDirs[0]);
Assert.Equal("bar", standaloneOptions.Dependencies.Excludes[0]);
standaloneOptions = CSharp.Standalone.Options.Create(new string[] { "--silent" });
Assert.Equal(Verbosity.Off, standaloneOptions.Verbosity);
Assert.False(standaloneOptions.Dependencies.UseNuGet);
Assert.False(standaloneOptions.Dependencies.ScanNetFrameworkDlls);
Assert.False(standaloneOptions.Errors);
Assert.False(standaloneOptions.Help);
}
@@ -159,7 +150,7 @@ namespace Semmle.Extraction.Tests
[Fact]
public void InvalidOptions()
{
standaloneOptions = CSharp.Standalone.Options.Create(new string[] { "--references:foo", "--silent", "--no-such-option" });
standaloneOptions = CSharp.Standalone.Options.Create(new string[] { "--silent", "--no-such-option" });
Assert.True(standaloneOptions.Errors);
}

View File

@@ -1,199 +1,23 @@
/** Provides classes and predicates for defining flow summaries. */
import csharp
private import dotnet
private import internal.FlowSummaryImpl as Impl
private import internal.DataFlowDispatch as DataFlowDispatch
private import Impl::Public::SummaryComponent as SummaryComponentInternal
class ParameterPosition = DataFlowDispatch::ParameterPosition;
deprecated class ParameterPosition = DataFlowDispatch::ParameterPosition;
class ArgumentPosition = DataFlowDispatch::ArgumentPosition;
deprecated class ArgumentPosition = DataFlowDispatch::ArgumentPosition;
// import all instances below
private module Summaries {
private import semmle.code.csharp.frameworks.EntityFramework
}
deprecated class SummaryComponent = Impl::Private::SummaryComponent;
class SummaryComponent = Impl::Public::SummaryComponent;
deprecated module SummaryComponent = Impl::Private::SummaryComponent;
/** Provides predicates for constructing summary components. */
module SummaryComponent {
predicate content = SummaryComponentInternal::content/1;
deprecated class SummaryComponentStack = Impl::Private::SummaryComponentStack;
/** Gets a summary component for parameter `i`. */
SummaryComponent parameter(int i) {
exists(ArgumentPosition pos |
result = SummaryComponentInternal::parameter(pos) and
i = pos.getPosition()
)
}
deprecated module SummaryComponentStack = Impl::Private::SummaryComponentStack;
/** Gets a summary component for argument `i`. */
SummaryComponent argument(int i) {
exists(ParameterPosition pos |
result = SummaryComponentInternal::argument(pos) and
i = pos.getPosition()
)
}
predicate return = SummaryComponentInternal::return/1;
/** Gets a summary component that represents a qualifier. */
SummaryComponent qualifier() {
exists(ParameterPosition pos |
result = SummaryComponentInternal::argument(pos) and
pos.isThisParameter()
)
}
/** Gets a summary component that represents an element in a collection. */
SummaryComponent element() { result = content(any(DataFlow::ElementContent c)) }
/** Gets a summary component for property `p`. */
SummaryComponent property(Property p) {
result = content(any(DataFlow::PropertyContent c | c.getProperty() = p.getUnboundDeclaration()))
}
/** Gets a summary component for field `f`. */
SummaryComponent field(Field f) {
result = content(any(DataFlow::FieldContent c | c.getField() = f.getUnboundDeclaration()))
}
/** Gets a summary component that represents the return value of a call. */
SummaryComponent return() { result = return(any(DataFlowDispatch::NormalReturnKind rk)) }
predicate syntheticGlobal = SummaryComponentInternal::syntheticGlobal/1;
class SyntheticGlobal = SummaryComponentInternal::SyntheticGlobal;
}
class SummaryComponentStack = Impl::Public::SummaryComponentStack;
/** Provides predicates for constructing stacks of summary components. */
module SummaryComponentStack {
private import Impl::Public::SummaryComponentStack as SummaryComponentStackInternal
predicate singleton = SummaryComponentStackInternal::singleton/1;
predicate push = SummaryComponentStackInternal::push/2;
/** Gets a singleton stack for argument `i`. */
SummaryComponentStack argument(int i) { result = singleton(SummaryComponent::argument(i)) }
predicate return = SummaryComponentStackInternal::return/1;
/** Gets a singleton stack representing a qualifier. */
SummaryComponentStack qualifier() { result = singleton(SummaryComponent::qualifier()) }
/** Gets a stack representing an element of `container`. */
SummaryComponentStack elementOf(SummaryComponentStack container) {
result = push(SummaryComponent::element(), container)
}
/** Gets a stack representing a property `p` of `object`. */
SummaryComponentStack propertyOf(Property p, SummaryComponentStack object) {
result = push(SummaryComponent::property(p), object)
}
/** Gets a stack representing a field `f` of `object`. */
SummaryComponentStack fieldOf(Field f, SummaryComponentStack object) {
result = push(SummaryComponent::field(f), object)
}
/** Gets a singleton stack representing the return value of a call. */
SummaryComponentStack return() { result = singleton(SummaryComponent::return()) }
/** Gets a singleton stack representing a synthetic global with name `name`. */
SummaryComponentStack syntheticGlobal(string synthetic) {
result = singleton(SummaryComponent::syntheticGlobal(synthetic))
}
/**
* DEPRECATED: Use the member predicate `getMadRepresentation` instead.
*
* Gets a textual representation of this stack used for flow summaries.
*/
deprecated string getComponentStack(SummaryComponentStack s) { result = s.getMadRepresentation() }
}
deprecated class RequiredSummaryComponentStack = Impl::Private::RequiredSummaryComponentStack;
class SummarizedCallable = Impl::Public::SummarizedCallable;
private predicate recordConstructorFlow(Constructor c, int i, Property p) {
c = any(RecordType r).getAMember() and
exists(string name |
c.getParameter(i).getName() = name and
c.getDeclaringType().getAMember(name) = p
)
}
private class RecordConstructorFlow extends SummarizedCallable {
RecordConstructorFlow() { recordConstructorFlow(this, _, _) }
override predicate propagatesFlow(
SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue
) {
exists(int i, Property p |
recordConstructorFlow(this, i, p) and
input = SummaryComponentStack::argument(i) and
output = SummaryComponentStack::propertyOf(p, SummaryComponentStack::return()) and
preservesValue = true
)
}
}
class RequiredSummaryComponentStack = Impl::Public::RequiredSummaryComponentStack;
private class RecordConstructorFlowRequiredSummaryComponentStack extends RequiredSummaryComponentStack
{
override predicate required(SummaryComponent head, SummaryComponentStack tail) {
exists(Property p |
recordConstructorFlow(_, _, p) and
head = SummaryComponent::property(p) and
tail = SummaryComponentStack::return()
)
}
}
class Provenance = Impl::Public::Provenance;
private import semmle.code.csharp.frameworks.system.linq.Expressions
private SummaryComponent delegateSelf() {
exists(ArgumentPosition pos |
result = SummaryComponentInternal::parameter(pos) and
pos.isDelegateSelf()
)
}
private predicate mayInvokeCallback(Callable c, int n) {
c.getParameter(n).getType() instanceof SystemLinqExpressions::DelegateExtType and
not c.hasBody() and
(if c instanceof Accessor then not c.fromSource() else any())
}
private class SummarizedCallableWithCallback extends SummarizedCallable {
private int pos;
SummarizedCallableWithCallback() { mayInvokeCallback(this, pos) }
override predicate propagatesFlow(
SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue
) {
input = SummaryComponentStack::argument(pos) and
output = SummaryComponentStack::push(delegateSelf(), input) and
preservesValue = true
}
override predicate hasProvenance(Provenance provenance) { provenance = "hq-generated" }
}
private class RequiredComponentStackForCallback extends RequiredSummaryComponentStack {
override predicate required(SummaryComponent head, SummaryComponentStack tail) {
exists(int pos |
mayInvokeCallback(_, pos) and
head = delegateSelf() and
tail = SummaryComponentStack::argument(pos)
)
}
}

View File

@@ -1,182 +0,0 @@
/**
* Module for parsing access paths from MaD models, both the identifying access path used
* by dynamic languages, and the input/output specifications for summary steps.
*
* This file is used by the shared data flow library and by the JavaScript libraries
* (which does not use the shared data flow libraries).
*/
/**
* Convenience-predicate for extracting two capture groups at once.
*/
bindingset[input, regexp]
private predicate regexpCaptureTwo(string input, string regexp, string capture1, string capture2) {
capture1 = input.regexpCapture(regexp, 1) and
capture2 = input.regexpCapture(regexp, 2)
}
/** Companion module to the `AccessPath` class. */
module AccessPath {
/** A string that should be parsed as an access path. */
abstract class Range extends string {
bindingset[this]
Range() { any() }
}
/**
* Parses an integer constant `n` or interval `n1..n2` (inclusive) and gets the value
* of the constant or any value contained in the interval.
*/
bindingset[arg]
int parseInt(string arg) {
result = arg.toInt()
or
// Match "n1..n2"
exists(string lo, string hi |
regexpCaptureTwo(arg, "(-?\\d+)\\.\\.(-?\\d+)", lo, hi) and
result = [lo.toInt() .. hi.toInt()]
)
}
/**
* Parses a lower-bounded interval `n..` and gets the lower bound.
*/
bindingset[arg]
int parseLowerBound(string arg) { result = arg.regexpCapture("(-?\\d+)\\.\\.", 1).toInt() }
/**
* Parses an integer constant or interval (bounded or unbounded) that explicitly
* references the arity, such as `N-1` or `N-3..N-1`.
*
* Note that expressions of form `N-x` will never resolve to a negative index,
* even if `N` is zero (it will have no result in that case).
*/
bindingset[arg, arity]
private int parseIntWithExplicitArity(string arg, int arity) {
result >= 0 and // do not allow N-1 to resolve to a negative index
exists(string lo |
// N-x
lo = arg.regexpCapture("N-(\\d+)", 1) and
result = arity - lo.toInt()
or
// N-x..
lo = arg.regexpCapture("N-(\\d+)\\.\\.", 1) and
result = [arity - lo.toInt(), arity - 1]
)
or
exists(string lo, string hi |
// x..N-y
regexpCaptureTwo(arg, "(-?\\d+)\\.\\.N-(\\d+)", lo, hi) and
result = [lo.toInt() .. arity - hi.toInt()]
or
// N-x..N-y
regexpCaptureTwo(arg, "N-(\\d+)\\.\\.N-(\\d+)", lo, hi) and
result = [arity - lo.toInt() .. arity - hi.toInt()] and
result >= 0
or
// N-x..y
regexpCaptureTwo(arg, "N-(\\d+)\\.\\.(\\d+)", lo, hi) and
result = [arity - lo.toInt() .. hi.toInt()] and
result >= 0
)
}
/**
* Parses an integer constant or interval (bounded or unbounded) and gets any
* of the integers contained within (of which there may be infinitely many).
*
* Has no result for arguments involving an explicit arity, such as `N-1`.
*/
bindingset[arg, result]
int parseIntUnbounded(string arg) {
result = parseInt(arg)
or
result >= parseLowerBound(arg)
}
/**
* Parses an integer constant or interval (bounded or unbounded) that
* may reference the arity of a call, such as `N-1` or `N-3..N-1`.
*
* Note that expressions of form `N-x` will never resolve to a negative index,
* even if `N` is zero (it will have no result in that case).
*/
bindingset[arg, arity]
int parseIntWithArity(string arg, int arity) {
result = parseInt(arg)
or
result in [parseLowerBound(arg) .. arity - 1]
or
result = parseIntWithExplicitArity(arg, arity)
}
}
/** Gets the `n`th token on the access path as a string. */
private string getRawToken(AccessPath path, int n) {
// Avoid splitting by '.' since tokens may contain dots, e.g. `Field[foo.Bar.x]`.
// Instead use regexpFind to match valid tokens, and supplement with a final length
// check (in `AccessPath.hasSyntaxError`) to ensure all characters were included in a token.
result = path.regexpFind("\\w+(?:\\[[^\\]]*\\])?(?=\\.|$)", n, _)
}
/**
* A string that occurs as an access path (either identifying or input/output spec)
* which might be relevant for this database.
*/
class AccessPath extends string instanceof AccessPath::Range {
/** Holds if this string is not a syntactically valid access path. */
predicate hasSyntaxError() {
// If the lengths match, all characters must haven been included in a token
// or seen by the `.` lookahead pattern.
this != "" and
not this.length() = sum(int n | | getRawToken(this, n).length() + 1) - 1
}
/** Gets the `n`th token on the access path (if there are no syntax errors). */
AccessPathToken getToken(int n) {
result = getRawToken(this, n) and
not this.hasSyntaxError()
}
/** Gets the number of tokens on the path (if there are no syntax errors). */
int getNumToken() {
result = count(int n | exists(getRawToken(this, n))) and
not this.hasSyntaxError()
}
}
/**
* An access part token such as `Argument[1]` or `ReturnValue`, appearing in one or more access paths.
*/
class AccessPathToken extends string {
AccessPathToken() { this = getRawToken(_, _) }
private string getPart(int part) {
result = this.regexpCapture("([^\\[]+)(?:\\[([^\\]]*)\\])?", part)
}
/** Gets the name of the token, such as `Member` from `Member[x]` */
string getName() { result = this.getPart(1) }
/**
* Gets the argument list, such as `1,2` from `Member[1,2]`,
* or has no result if there are no arguments.
*/
string getArgumentList() { result = this.getPart(2) }
/** Gets the `n`th argument to this token, such as `x` or `y` from `Member[x,y]`. */
string getArgument(int n) { result = this.getArgumentList().splitAt(",", n).trim() }
/** Gets the `n`th argument to this `name` token, such as `x` or `y` from `Member[x,y]`. */
pragma[nomagic]
string getArgument(string name, int n) { name = this.getName() and result = this.getArgument(n) }
/** Gets an argument to this token, such as `x` or `y` from `Member[x,y]`. */
string getAnArgument() { result = this.getArgument(_) }
/** Gets an argument to this `name` token, such as `x` or `y` from `Member[x,y]`. */
string getAnArgument(string name) { result = this.getArgument(name, _) }
/** Gets the number of arguments to this token, such as 2 for `Member[x,y]` or zero for `ReturnValue`. */
int getNumArgument() { result = count(int n | exists(this.getArgument(n))) }
}

View File

@@ -116,9 +116,7 @@ private module Cached {
// No need to include calls that are compiled from source
not call.getImplementation().getMethod().compiledFromSource()
} or
TSummaryCall(
FlowSummaryImpl::Public::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver
) {
TSummaryCall(FlowSummary::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver) {
FlowSummaryImpl::Private::summaryCallbackRange(c, receiver)
}
@@ -446,7 +444,7 @@ class CilDataFlowCall extends DataFlowCall, TCilCall {
* the method `Select`.
*/
class SummaryCall extends DelegateDataFlowCall, TSummaryCall {
private FlowSummaryImpl::Public::SummarizedCallable c;
private FlowSummary::SummarizedCallable c;
private FlowSummaryImpl::Private::SummaryNode receiver;
SummaryCall() { this = TSummaryCall(c, receiver) }

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -10,7 +10,7 @@ private import DataFlowImplSpecific::Private
import DataFlowImplSpecific::Public
private import DataFlowImpl
import DataFlowImplCommonPublic
import FlowStateString
deprecated import FlowStateString
private import codeql.util.Unit
/**

View File

@@ -676,11 +676,11 @@ private predicate fieldOrPropertyStore(Expr e, Content c, Expr src, Expr q, bool
f instanceof InstanceFieldOrProperty
or
exists(
FlowSummaryImpl::Public::SummarizedCallable sc,
FlowSummaryImpl::Public::SummaryComponentStack input
FlowSummaryImpl::Private::SummarizedCallableImpl sc,
FlowSummaryImpl::Private::SummaryComponentStack input
|
sc.propagatesFlow(input, _, _) and
input.contains(FlowSummary::SummaryComponent::content(f.getContent()))
input.contains(FlowSummaryImpl::Private::SummaryComponent::content(f.getContent()))
)
)
|
@@ -1393,11 +1393,11 @@ private module ArgumentNodes {
}
private class SummaryArgumentNode extends FlowSummaryNode, ArgumentNodeImpl {
private DataFlowCall call_;
private SummaryCall call_;
private ArgumentPosition pos_;
SummaryArgumentNode() {
FlowSummaryImpl::Private::summaryArgumentNode(call_, this.getSummaryNode(), pos_)
FlowSummaryImpl::Private::summaryArgumentNode(call_.getReceiver(), this.getSummaryNode(), pos_)
}
override predicate argumentOf(DataFlowCall call, ArgumentPosition pos) {
@@ -1683,11 +1683,11 @@ private module OutNodes {
}
private class SummaryOutNode extends FlowSummaryNode, OutNode {
private DataFlowCall call;
private SummaryCall call;
private ReturnKind kind_;
SummaryOutNode() {
FlowSummaryImpl::Private::summaryOutNode(call, this.getSummaryNode(), kind_)
FlowSummaryImpl::Private::summaryOutNode(call.getReceiver(), this.getSummaryNode(), kind_)
}
override DataFlowCall getCall(ReturnKind kind) { result = call and kind = kind_ }
@@ -1700,7 +1700,7 @@ import OutNodes
class FlowSummaryNode extends NodeImpl, TFlowSummaryNode {
FlowSummaryImpl::Private::SummaryNode getSummaryNode() { this = TFlowSummaryNode(result) }
FlowSummaryImpl::Public::SummarizedCallable getSummarizedCallable() {
FlowSummary::SummarizedCallable getSummarizedCallable() {
result = this.getSummaryNode().getSummarizedCallable()
}
@@ -2424,7 +2424,10 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves
* by default as a heuristic.
*/
predicate allowParameterReturnInSelf(ParameterNode p) {
FlowSummaryImpl::Private::summaryAllowParameterReturnInSelf(p)
exists(DataFlowCallable c, ParameterPosition pos |
parameterNode(p, c, pos) and
FlowSummaryImpl::Private::summaryAllowParameterReturnInSelf(c.asSummarizedCallable(), pos)
)
}
/** An approximated `Content`. */

View File

@@ -88,13 +88,13 @@
import csharp
import ExternalFlowExtensions
private import AccessPathSyntax
private import DataFlowDispatch
private import DataFlowPrivate
private import DataFlowPublic
private import FlowSummaryImpl
private import FlowSummaryImpl::Public
private import FlowSummaryImpl::Private
private import FlowSummaryImpl::Private::External
private import FlowSummaryImplSpecific
private import semmle.code.csharp.commons.QualifiedName
private import codeql.mad.ModelValidation as SharedModelVal
@@ -154,6 +154,21 @@ predicate modelCoverage(string namespace, int namespaces, string kind, string pa
/** Provides a query predicate to check the MaD models for validation errors. */
module ModelValidation {
private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax
private predicate getRelevantAccessPath(string path) {
summaryModel(_, _, _, _, _, _, path, _, _, _) or
summaryModel(_, _, _, _, _, _, _, path, _, _) or
sinkModel(_, _, _, _, _, _, path, _, _) or
sourceModel(_, _, _, _, _, _, path, _, _)
}
private module MkAccessPath = AccessPathSyntax::AccessPath<getRelevantAccessPath/1>;
class AccessPath = MkAccessPath::AccessPath;
class AccessPathToken = MkAccessPath::AccessPathToken;
private string getInvalidModelInput() {
exists(string pred, AccessPath input, AccessPathToken part |
sinkModel(_, _, _, _, _, _, input, _, _) and pred = "sink"
@@ -269,7 +284,7 @@ private predicate elementSpec(
UnboundValueOrRefType t
) {
elementSpec(namespace, type, subtypes, name, signature, ext) and
QN::hasQualifiedName(t, namespace, type)
hasQualifiedTypeName(t, namespace, type)
}
private class UnboundValueOrRefType extends ValueOrRefType {
@@ -337,7 +352,7 @@ Declaration interpretBaseDeclaration(string namespace, string type, string name,
exists(UnboundValueOrRefType t | elementSpec(namespace, type, _, name, signature, _, t) |
result =
any(Declaration d |
QN::hasQualifiedName(d, namespace, type, name) and
hasQualifiedMethodName(d, namespace, type, name) and
(
signature = ""
or
@@ -380,14 +395,14 @@ Declaration interpretElement(
* A callable where there exists a MaD sink model that applies to it.
*/
class SinkCallable extends Callable {
SinkCallable() { sinkElement(this, _, _, _) }
SinkCallable() { SourceSinkInterpretationInput::sinkElement(this, _, _) }
}
/**
* A callable where there exists a MaD source model that applies to it.
*/
class SourceCallable extends Callable {
SourceCallable() { sourceElement(this, _, _, _) }
SourceCallable() { SourceSinkInterpretationInput::sourceElement(this, _, _) }
}
cached
@@ -398,7 +413,9 @@ private module Cached {
*/
cached
predicate sourceNode(Node node, string kind) {
exists(InterpretNode n | isSourceNode(n, kind) and n.asNode() = node)
exists(SourceSinkInterpretationInput::InterpretNode n |
isSourceNode(n, kind) and n.asNode() = node
)
}
/**
@@ -407,7 +424,9 @@ private module Cached {
*/
cached
predicate sinkNode(Node node, string kind) {
exists(InterpretNode n | isSinkNode(n, kind) and n.asNode() = node)
exists(SourceSinkInterpretationInput::InterpretNode n |
isSinkNode(n, kind) and n.asNode() = node
)
}
}
@@ -439,6 +458,19 @@ private module QualifiedNameInput implements QualifiedNameInputSig {
private module QN = QualifiedName<QualifiedNameInput>;
/** Holds if declaration `d` has the qualified name `qualifier`.`name`. */
predicate hasQualifiedTypeName(Type t, string namespace, string type) {
QN::hasQualifiedName(t, namespace, type)
}
/**
* Holds if declaration `d` has name `name` and is defined in type `type`
* with namespace `namespace`.
*/
predicate hasQualifiedMethodName(Declaration d, string namespace, string type, string name) {
QN::hasQualifiedName(d, namespace, type, name)
}
pragma[nomagic]
private string parameterQualifiedType(Parameter p) {
exists(string qualifier, string name |
@@ -485,3 +517,65 @@ string asPartialNeutralModel(UnboundCallable c) {
+ parameters + ";" //
)
}
private predicate interpretSummary(
UnboundCallable c, string input, string output, string kind, string provenance
) {
exists(
string namespace, string type, boolean subtypes, string name, string signature, string ext
|
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) and
c = interpretElement(namespace, type, subtypes, name, signature, ext)
)
}
// adapter class for converting Mad summaries to `SummarizedCallable`s
private class SummarizedCallableAdapter extends SummarizedCallable {
SummarizedCallableAdapter() { interpretSummary(this, _, _, _, _) }
private predicate relevantSummaryElementManual(string input, string output, string kind) {
exists(Provenance provenance |
interpretSummary(this, input, output, kind, provenance) and
provenance.isManual()
)
}
private predicate relevantSummaryElementGenerated(string input, string output, string kind) {
exists(Provenance provenance |
interpretSummary(this, input, output, kind, provenance) and
provenance.isGenerated()
)
}
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
exists(string kind |
this.relevantSummaryElementManual(input, output, kind)
or
not this.relevantSummaryElementManual(_, _, _) and
this.relevantSummaryElementGenerated(input, output, kind)
|
if kind = "value" then preservesValue = true else preservesValue = false
)
}
override predicate hasProvenance(Provenance provenance) {
interpretSummary(this, _, _, _, provenance)
}
}
// adapter class for converting Mad neutrals to `NeutralCallable`s
private class NeutralCallableAdapter extends NeutralCallable {
string kind;
string provenance_;
NeutralCallableAdapter() {
exists(string namespace, string type, string name, string signature |
neutralModel(namespace, type, name, signature, kind, provenance_) and
this = interpretElement(namespace, type, false, name, signature, "")
)
}
override string getKind() { result = kind }
override predicate hasProvenance(Provenance provenance) { provenance = provenance_ }
}

View File

@@ -1,340 +0,0 @@
/**
* Provides C# specific classes and predicates for defining flow summaries.
*/
private import csharp
private import dotnet
private import semmle.code.csharp.frameworks.system.linq.Expressions
private import DataFlowDispatch
private import DataFlowPrivate
private import DataFlowPublic
private import DataFlowImplCommon
private import FlowSummaryImpl::Private
private import FlowSummaryImpl::Public
private import semmle.code.csharp.Unification
private import ExternalFlow
private import semmle.code.csharp.dataflow.FlowSummary as FlowSummary
/**
* A class of callables that are candidates for flow summary modeling.
*/
class SummarizedCallableBase = UnboundCallable;
/**
* A class of callables that are candidates for neutral modeling.
*/
class NeutralCallableBase = UnboundCallable;
/**
* A module for importing frameworks that define synthetic globals.
*/
private module SyntheticGlobals {
private import semmle.code.csharp.frameworks.EntityFramework
}
DataFlowCallable inject(SummarizedCallable c) { result.asSummarizedCallable() = c }
/** Gets the parameter position of the instance parameter. */
ArgumentPosition callbackSelfParameterPosition() { result.isDelegateSelf() }
/** Gets the synthesized data-flow call for `receiver`. */
SummaryCall summaryDataFlowCall(SummaryNode receiver) { receiver = result.getReceiver() }
/** Gets the type of content `c`. */
DataFlowType getContentType(Content c) {
exists(Type t | result.asGvnType() = Gvn::getGlobalValueNumber(t) |
t = c.(FieldContent).getField().getType()
or
t = c.(PropertyContent).getProperty().getType()
or
t = c.(SyntheticFieldContent).getField().getType()
or
c instanceof ElementContent and
t instanceof ObjectType // we don't know what the actual element type is
)
}
/** Gets the type of the parameter at the given position. */
DataFlowType getParameterType(SummarizedCallable c, ParameterPosition pos) {
exists(Type t | result.asGvnType() = Gvn::getGlobalValueNumber(t) |
exists(int i |
pos.getPosition() = i and
t = c.getParameter(i).getType()
)
or
pos.isThisParameter() and
t = c.getDeclaringType()
)
}
/** Gets the return type of kind `rk` for callable `c`. */
DataFlowType getReturnType(DotNet::Callable c, ReturnKind rk) {
exists(Type t | result.asGvnType() = Gvn::getGlobalValueNumber(t) |
rk instanceof NormalReturnKind and
(
t = c.(Constructor).getDeclaringType()
or
not c instanceof Constructor and
t = c.getReturnType()
)
or
t = c.getParameter(rk.(OutRefReturnKind).getPosition()).getType()
)
}
/**
* Gets the type of the parameter matching arguments at position `pos` in a
* synthesized call that targets a callback of type `t`.
*/
DataFlowType getCallbackParameterType(DataFlowType t, ArgumentPosition pos) {
exists(SystemLinqExpressions::DelegateExtType dt |
t.asGvnType() = Gvn::getGlobalValueNumber(dt) and
result.asGvnType() =
Gvn::getGlobalValueNumber(dt.getDelegateType().getParameter(pos.getPosition()).getType())
)
or
pos.isDelegateSelf() and
result = t
}
/**
* Gets the return type of kind `rk` in a synthesized call that targets a
* callback of type `t`.
*/
DataFlowType getCallbackReturnType(DataFlowType t, ReturnKind rk) {
rk instanceof NormalReturnKind and
exists(SystemLinqExpressions::DelegateExtType dt |
t.asGvnType() = Gvn::getGlobalValueNumber(dt) and
result.asGvnType() = Gvn::getGlobalValueNumber(dt.getDelegateType().getReturnType())
)
}
/** Gets the type of synthetic global `sg`. */
DataFlowType getSyntheticGlobalType(SummaryComponent::SyntheticGlobal sg) {
exists(sg) and
result.asGvnType() = Gvn::getGlobalValueNumber(any(ObjectType t))
}
/**
* Holds if an external flow summary exists for `c` with input specification
* `input`, output specification `output`, kind `kind`, and provenance `provenance`.
*/
predicate summaryElement(Callable c, string input, string output, string kind, string provenance) {
exists(
string namespace, string type, boolean subtypes, string name, string signature, string ext
|
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) and
c = interpretElement(namespace, type, subtypes, name, signature, ext)
)
}
/**
* Holds if a neutral model exists for `c` of kind `kind`
* and with provenance `provenance`.
*/
predicate neutralElement(Callable c, string kind, string provenance) {
exists(string namespace, string type, string name, string signature |
neutralModel(namespace, type, name, signature, kind, provenance) and
c = interpretElement(namespace, type, false, name, signature, "")
)
}
/**
* Holds if an external source specification exists for `e` with output specification
* `output`, kind `kind`, and provenance `provenance`.
*/
predicate sourceElement(Element e, string output, string kind, string provenance) {
exists(
string namespace, string type, boolean subtypes, string name, string signature, string ext
|
sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance) and
e = interpretElement(namespace, type, subtypes, name, signature, ext)
)
}
/**
* Holds if an external sink specification exists for `e` with input specification
* `input`, kind `kind` and provenance `provenance`.
*/
predicate sinkElement(Element e, string input, string kind, string provenance) {
exists(
string namespace, string type, boolean subtypes, string name, string signature, string ext
|
sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance) and
e = interpretElement(namespace, type, subtypes, name, signature, ext)
)
}
/** Gets the summary component for specification component `c`, if any. */
bindingset[c]
SummaryComponent interpretComponentSpecific(AccessPathToken c) {
c = "Element" and result = SummaryComponent::content(any(ElementContent ec))
or
c = "WithoutElement" and result = SummaryComponent::withoutContent(any(ElementContent ec))
or
c = "WithElement" and result = SummaryComponent::withContent(any(ElementContent ec))
or
// Qualified names may contain commas,such as in `Tuple<,>`, so get the entire argument list
// rather than an individual argument.
exists(Field f |
c.getName() = "Field" and
c.getArgumentList() = f.getFullyQualifiedName() and
result = SummaryComponent::content(any(FieldContent fc | fc.getField() = f))
)
or
exists(Property p |
c.getName() = "Property" and
c.getArgumentList() = p.getFullyQualifiedName() and
result = SummaryComponent::content(any(PropertyContent pc | pc.getProperty() = p))
)
or
exists(SyntheticField f |
c.getAnArgument("SyntheticField") = f and
result = SummaryComponent::content(any(SyntheticFieldContent sfc | sfc.getField() = f))
)
}
/** Gets the textual representation of the content in the format used for MaD models. */
private string getContentSpecific(Content c) {
c = TElementContent() and result = "Element"
or
exists(Field f | c = TFieldContent(f) and result = "Field[" + f.getFullyQualifiedName() + "]")
or
exists(Property p |
c = TPropertyContent(p) and result = "Property[" + p.getFullyQualifiedName() + "]"
)
or
exists(SyntheticField f | c = TSyntheticFieldContent(f) and result = "SyntheticField[" + f + "]")
}
/** Gets the textual representation of a summary component in the format used for MaD models. */
string getMadRepresentationSpecific(SummaryComponent sc) {
exists(Content c | sc = TContentSummaryComponent(c) and result = getContentSpecific(c))
or
sc = TWithoutContentSummaryComponent(_) and result = "WithoutElement"
or
sc = TWithContentSummaryComponent(_) and result = "WithElement"
or
exists(OutRefReturnKind rk |
sc = TReturnSummaryComponent(rk) and
result = "Argument[" + rk.getPosition() + "]"
)
}
/** Gets the textual representation of a parameter position in the format used for flow summaries. */
string getParameterPosition(ParameterPosition pos) {
result = pos.getPosition().toString()
or
pos.isThisParameter() and
result = "this"
or
pos.isDelegateSelf() and
result = "delegate-self"
}
/** Gets the textual representation of an argument position in the format used for flow summaries. */
string getArgumentPosition(ArgumentPosition pos) {
result = pos.getPosition().toString()
or
pos.isQualifier() and
result = "this"
or
pos.isDelegateSelf() and
result = "delegate-self"
}
/** Holds if input specification component `c` needs a reference. */
predicate inputNeedsReferenceSpecific(string c) { none() }
/** Holds if output specification component `c` needs a reference. */
predicate outputNeedsReferenceSpecific(string c) { none() }
class SourceOrSinkElement = Element;
/** Gets the return kind corresponding to specification `"ReturnValue"`. */
NormalReturnKind getReturnValueKind() { any() }
private newtype TInterpretNode =
TElement_(Element n) or
TNode_(Node n) or
TDataFlowCall_(DataFlowCall c)
/** An entity used to interpret a source/sink specification. */
class InterpretNode extends TInterpretNode {
/** Gets the element that this node corresponds to, if any. */
SourceOrSinkElement asElement() { this = TElement_(result) }
/** Gets the data-flow node that this node corresponds to, if any. */
Node asNode() { this = TNode_(result) }
/** Gets the call that this node corresponds to, if any. */
DataFlowCall asCall() { this = TDataFlowCall_(result) }
/** Gets the callable that this node corresponds to, if any. */
DataFlowCallable asCallable() { result.getUnderlyingCallable() = this.asElement() }
/** Gets the target of this call, if any. */
Callable getCallTarget() { result = this.asCall().(NonDelegateDataFlowCall).getATarget(_) }
/** Gets a textual representation of this node. */
string toString() {
result = this.asElement().toString()
or
result = this.asNode().toString()
or
result = this.asCall().toString()
}
/** Gets the location of this node. */
Location getLocation() {
result = this.asElement().getLocation()
or
result = this.asNode().getLocation()
or
result = this.asCall().getLocation()
}
}
/** Provides additional sink specification logic required for attributes. */
predicate interpretOutputSpecific(string c, InterpretNode mid, InterpretNode node) {
exists(Node n | n = node.asNode() |
(c = "Parameter" or c = "") and
n.asParameter() = mid.asElement()
or
c = "" and
n.asExpr().(AssignableRead).getTarget().getUnboundDeclaration() = mid.asElement()
)
}
/** Provides additional sink specification logic required for attributes. */
predicate interpretInputSpecific(string c, InterpretNode mid, InterpretNode n) {
c = "" and
exists(Assignable a |
n.asNode().asExpr() = a.getAnAssignedValue() and
a.getUnboundDeclaration() = mid.asElement()
)
}
/** Gets the argument position obtained by parsing `X` in `Parameter[X]`. */
bindingset[s]
ArgumentPosition parseParamBody(string s) {
result.getPosition() = AccessPath::parseInt(s)
or
s = "this" and
result.isQualifier()
or
s = "delegate-self" and
result.isDelegateSelf()
}
/** Gets the parameter position obtained by parsing `X` in `Argument[X]`. */
bindingset[s]
ParameterPosition parseArgBody(string s) {
result.getPosition() = AccessPath::parseInt(s)
or
s = "this" and
result.isThisParameter()
or
s = "delegate-self" and
result.isDelegateSelf()
}

View File

@@ -9,7 +9,8 @@ private import semmle.code.csharp.frameworks.System
private import semmle.code.csharp.frameworks.system.data.Entity
private import semmle.code.csharp.frameworks.system.collections.Generic
private import semmle.code.csharp.frameworks.Sql
private import semmle.code.csharp.dataflow.FlowSummary
private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Public
private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl::Private
private import semmle.code.csharp.dataflow.internal.DataFlowPrivate as DataFlowPrivate
/**
@@ -85,9 +86,23 @@ module EntityFramework {
}
/** A flow summary for EntityFramework. */
abstract class EFSummarizedCallable extends SummarizedCallable {
abstract class EFSummarizedCallable extends SummarizedCallableImpl {
bindingset[this]
EFSummarizedCallable() { any() }
override predicate hasProvenance(Provenance provenance) { provenance = "manual" }
}
// see `SummarizedCallableImpl` qldoc
private class EFSummarizedCallableAdapter extends SummarizedCallable instanceof EFSummarizedCallable
{
override predicate propagatesFlow(string input, string output, boolean preservesValue) {
none()
}
override predicate hasProvenance(Provenance provenance) {
EFSummarizedCallable.super.hasProvenance(provenance)
}
}
/** The class ``Microsoft.EntityFrameworkCore.DbQuery`1`` or ``System.Data.Entity.DbQuery`1``. */

View File

@@ -18,6 +18,6 @@ where
usage = aUsage(endpoint) and
type = supportedType(endpoint) and
classification = methodClassification(usage)
select usage, endpoint.getNamespace(), endpoint.getTypeName(), endpoint.getName(),
select usage, endpoint.getNamespace(), endpoint.getTypeName(), endpoint.getEndpointName(),
endpoint.getParameterTypes(), supported, endpoint.dllName(), endpoint.dllVersion(), type,
classification

View File

@@ -14,5 +14,5 @@ from PublicEndpointFromSource endpoint, boolean supported, string type
where
supported = isSupported(endpoint) and
type = supportedType(endpoint)
select endpoint, endpoint.getNamespace(), endpoint.getTypeName(), endpoint.getName(),
select endpoint, endpoint.getNamespace(), endpoint.getTypeName(), endpoint.getEndpointName(),
endpoint.getParameterTypes(), supported, endpoint.getFile().getBaseName(), type

View File

@@ -34,7 +34,17 @@ class Endpoint extends Callable {
* Gets the unbound type name of this endpoint.
*/
bindingset[this]
string getTypeName() { result = nestedName(this.getDeclaringType().getUnboundDeclaration()) }
string getTypeName() {
result = qualifiedTypeName(this.getNamespace(), this.getDeclaringType().getUnboundDeclaration())
}
/**
* Gets the qualified name of this endpoint.
*/
bindingset[this]
string getEndpointName() {
result = qualifiedCallableName(this.getNamespace(), this.getTypeName(), this)
}
/**
* Gets the parameter types of this endpoint.
@@ -107,15 +117,15 @@ string methodClassification(Call method) {
}
/**
* Gets the nested name of the type `t`.
*
* If the type is not a nested type, the result is the same as `getName()`.
* Otherwise the name of the nested type is prefixed with a `+` and appended to
* the name of the enclosing type, which might be a nested type as well.
* Gets the fully qualified name of the type `t`.
*/
private string nestedName(Type t) {
not exists(t.getDeclaringType().getUnboundDeclaration()) and
result = t.getName()
or
nestedName(t.getDeclaringType().getUnboundDeclaration()) + "+" + t.getName() = result
private string qualifiedTypeName(string namespace, Type t) {
exists(string type | hasQualifiedTypeName(t, namespace, type) | result = type)
}
/**
* Gets the fully qualified name of the callable `c`.
*/
private string qualifiedCallableName(string namespace, string type, Callable c) {
exists(string name | hasQualifiedMethodName(c, namespace, type, name) | result = name)
}

View File

@@ -1,15 +1,2 @@
import csharp
import semmle.code.csharp.dataflow.internal.ExternalFlow
import semmle.code.csharp.dataflow.internal.AccessPathSyntax
import ModelValidation
private predicate getRelevantAccessPath(string path) {
summaryModel(_, _, _, _, _, _, path, _, _, _) or
summaryModel(_, _, _, _, _, _, _, path, _, _) or
sinkModel(_, _, _, _, _, _, path, _, _) or
sourceModel(_, _, _, _, _, _, path, _, _)
}
private class AccessPathsExternal extends AccessPath::Range {
AccessPathsExternal() { getRelevantAccessPath(this) }
}
import semmle.code.csharp.dataflow.internal.ExternalFlow::ModelValidation

View File

@@ -1,13 +1,11 @@
private import semmle.code.csharp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl
private import semmle.code.csharp.dataflow.internal.ExternalFlow
import shared.FlowSummaries
import semmle.code.csharp.dataflow.internal.ExternalFlow
private class IncludeAllSummarizedCallable extends IncludeSummarizedCallable {
IncludeAllSummarizedCallable() { exists(this) }
}
private class IncludeNeutralSummarizedCallable extends RelevantNeutralCallable instanceof FlowSummaryImpl::Public::NeutralSummaryCallable
{
private class IncludeNeutralSummarizedCallable extends RelevantNeutralCallable {
/** Gets a string representing the callable in semi-colon separated format for use in flow summaries. */
final override string getCallableCsv() { result = asPartialNeutralModel(this) }
}

View File

@@ -1,6 +1,7 @@
summary
| Dapper;CustomPropertyTypeMap;false;CustomPropertyTypeMap;(System.Type,System.Func<System.Type,System.String,System.Reflection.PropertyInfo>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Dapper;DynamicParameters;false;Output<T>;(T,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.Nullable<System.Data.DbType>,System.Nullable<System.Int32>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Dapper;SqlMapper+GridReader;false;GridReader;(System.Data.IDbCommand,System.Data.Common.DbDataReader,Dapper.SqlMapper+Identity,System.Action<System.Object>,System.Object,System.Boolean,System.Threading.CancellationToken);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Dapper;SqlMapper+GridReader;false;Read<TFirst,TSecond,TReturn>;(System.Func<TFirst,TSecond,TReturn>,System.String,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Dapper;SqlMapper+GridReader;false;Read<TFirst,TSecond,TThird,TFourth,TFifth,TReturn>;(System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TReturn>,System.String,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Dapper;SqlMapper+GridReader;false;Read<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TReturn>;(System.Func<TFirst,TSecond,TThird,TFourth,TFifth,TSixth,TReturn>,System.String,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -49,6 +50,7 @@ summary
| Funq;Func<T1,T2,T3,T4,T5,T6,TResult>;false;BeginInvoke;(T1,T2,T3,T4,T5,T6,System.AsyncCallback,System.Object);;Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated |
| Funq;Func<T1,T2,T3,T4,T5,TResult>;false;BeginInvoke;(T1,T2,T3,T4,T5,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| Funq;IInitializable<TService>;true;InitializedBy;(System.Action<Funq.Container,TService>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authentication.BearerToken;BearerTokenEvents;false;set_OnMessageReceived;(System.Func<Microsoft.AspNetCore.Authentication.BearerToken.MessageReceivedContext,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnCheckSlidingExpiration;(System.Func<Microsoft.AspNetCore.Authentication.Cookies.CookieSlidingExpirationContext,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToAccessDenied;(System.Func<Microsoft.AspNetCore.Authentication.RedirectContext<Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions>,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authentication.Cookies;CookieAuthenticationEvents;false;set_OnRedirectToLogin;(System.Func<Microsoft.AspNetCore.Authentication.RedirectContext<Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions>,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -80,6 +82,7 @@ summary
| Microsoft.AspNetCore.Authorization;AuthorizationBuilder;false;AddPolicy;(System.String,System.Action<Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider,System.IServiceProvider);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authorization;AuthorizationMiddleware;false;AuthorizationMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Authorization.IAuthorizationPolicyProvider,System.IServiceProvider,Microsoft.Extensions.Logging.ILogger<Microsoft.AspNetCore.Authorization.AuthorizationMiddleware>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authorization;AuthorizationOptions;false;AddPolicy;(System.String,System.Action<Microsoft.AspNetCore.Authorization.AuthorizationPolicyBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authorization;AuthorizationPolicyBuilder;false;RequireAssertion;(System.Func<Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Authorization;AuthorizationPolicyBuilder;false;RequireAssertion;(System.Func<Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,System.Threading.Tasks.Task<System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -136,6 +139,7 @@ summary
| Microsoft.AspNetCore.Builder;RoutingEndpointConventionBuilderExtensions;false;WithDisplayName<TBuilder>;(TBuilder,System.Func<Microsoft.AspNetCore.Builder.EndpointBuilder,System.String>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Builder;RunExtensions;false;Run;(Microsoft.AspNetCore.Builder.IApplicationBuilder,Microsoft.AspNetCore.Http.RequestDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Builder;StaticFileOptions;false;set_OnPrepareResponse;(System.Action<Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Builder;StaticFileOptions;false;set_OnPrepareResponseAsync;(System.Func<Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Builder;StatusCodePagesExtensions;false;UseStatusCodePages;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Action<Microsoft.AspNetCore.Builder.IApplicationBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Builder;StatusCodePagesExtensions;false;UseStatusCodePages;(Microsoft.AspNetCore.Builder.IApplicationBuilder,System.Func<Microsoft.AspNetCore.Diagnostics.StatusCodeContext,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Builder;StatusCodePagesOptions;false;set_HandleAsync;(System.Func<Microsoft.AspNetCore.Diagnostics.StatusCodeContext,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -160,8 +164,11 @@ summary
| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeAsynchronousDelegate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeAsynchronousDelegate;(System.Func<System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.CompilerServices;RuntimeHelpers;false;InvokeSynchronousDelegate;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms.Mapping;FormValueMappingContext;false;set_MapErrorToContainer;(System.Action<System.String,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms.Mapping;FormValueMappingContext;false;set_OnError;(System.Action<System.String,System.FormattableString,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContext;false;GetValidationMessages;(System.Linq.Expressions.Expression<System.Func<System.Object>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContext;false;IsModified;(System.Linq.Expressions.Expression<System.Func<System.Object>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContext;false;IsValid;(System.Linq.Expressions.Expression<System.Func<System.Object>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnFieldChanged;(System.EventHandler<Microsoft.AspNetCore.Components.Forms.FieldChangedEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnValidationRequested;(System.EventHandler<Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContext;false;add_OnValidationStateChanged;(System.EventHandler<Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -170,7 +177,9 @@ summary
| Microsoft.AspNetCore.Components.Forms;EditContext;false;remove_OnValidationStateChanged;(System.EventHandler<Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditContextFieldClassExtensions;false;FieldCssClass<TField>;(Microsoft.AspNetCore.Components.Forms.EditContext,System.Linq.Expressions.Expression<System.Func<TField>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;EditForm;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.Forms.EditContext>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;Editor<T>;false;set_ValueExpression;(System.Linq.Expressions.Expression<System.Func<T>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;FieldIdentifier;false;Create<TField>;(System.Linq.Expressions.Expression<System.Func<TField>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;FormMappingScope;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.Forms.FormMappingContext>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;InputBase<TValue>;false;set_ValueExpression;(System.Linq.Expressions.Expression<System.Func<TValue>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;InputRadioGroup<TValue>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Forms;InputSelect<TValue>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -189,8 +198,11 @@ summary
| Microsoft.AspNetCore.Components.Routing;Router;false;set_Found;(Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.RouteData>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Routing;Router;false;set_Navigating;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Routing;Router;false;set_NotFound;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Sections;SectionContent;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Server.Circuits;CircuitHandler;true;CreateInboundActivityHandler;(System.Func<Microsoft.AspNetCore.Components.Server.Circuits.CircuitInboundActivityContext,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web.Virtualization;ItemsProviderDelegate<TItem>;false;BeginInvoke;(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<TItem>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment<TItem>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<TItem>;false;set_EmptyContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<TItem>;false;set_ItemContent;(Microsoft.AspNetCore.Components.RenderFragment<TItem>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<TItem>;false;set_ItemsProvider;(Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate<TItem>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web.Virtualization;Virtualize<TItem>;false;set_Placeholder;(Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -217,6 +229,8 @@ summary
| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func<Microsoft.AspNetCore.Components.Web.TouchEventArgs,System.Threading.Tasks.Task>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components.Web;WebEventCallbackFactoryEventArgsExtensions;false;Create;(Microsoft.AspNetCore.Components.EventCallbackFactory,System.Object,System.Func<Microsoft.AspNetCore.Components.Web.WheelEventArgs,System.Threading.Tasks.Task>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;CascadingValue<TValue>;false;set_ChildContent;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;CascadingValueSource<TValue>;false;CascadingValueSource;(System.Func<TValue>,System.Boolean);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;CascadingValueSource<TValue>;false;CascadingValueSource;(System.String,System.Func<TValue>,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;ComponentBase;false;InvokeAsync;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;ComponentBase;false;InvokeAsync;(System.Func<System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;Dispatcher;true;InvokeAsync;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -309,13 +323,16 @@ summary
| Microsoft.AspNetCore.Components;NavigationManager;false;add_LocationChanged;(System.EventHandler<Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;NavigationManager;false;remove_LocationChanged;(System.EventHandler<Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;PersistentComponentState;false;RegisterOnPersisting;(System.Func<System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;PersistentComponentState;false;RegisterOnPersisting;(System.Func<System.Threading.Tasks.Task>,Microsoft.AspNetCore.Components.IComponentRenderMode);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;RenderFragment;false;BeginInvoke;(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;RenderFragment<TValue>;false;BeginInvoke;(TValue,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Components;RenderHandle;false;Render;(Microsoft.AspNetCore.Components.RenderFragment);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections.Abstractions;IStatefulReconnectFeature;true;OnReconnected;(System.Func<System.IO.Pipelines.PipeWriter,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections.Features;IConnectionCompleteFeature;true;OnCompleted;(System.Func<System.Object,System.Threading.Tasks.Task>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections.Features;IConnectionHeartbeatFeature;true;OnHeartbeat;(System.Action<System.Object>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections.Features;IStreamClosedFeature;true;OnClosed;(System.Action<System.Object>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Run;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func<Microsoft.AspNetCore.Connections.ConnectionContext,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Use;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func<Microsoft.AspNetCore.Connections.ConnectionContext,Microsoft.AspNetCore.Connections.ConnectionDelegate,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections;ConnectionBuilderExtensions;false;Use;(Microsoft.AspNetCore.Connections.IConnectionBuilder,System.Func<Microsoft.AspNetCore.Connections.ConnectionContext,System.Func<System.Threading.Tasks.Task>,System.Threading.Tasks.Task>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections;ConnectionDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Connections.ConnectionContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Connections;IConnectionBuilder;true;Use;(System.Func<Microsoft.AspNetCore.Connections.ConnectionDelegate,Microsoft.AspNetCore.Connections.ConnectionDelegate>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -377,6 +394,7 @@ summary
| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;ConfigureKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;UseKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.WebHostBuilderContext,Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Hosting;WebHostBuilderKestrelExtensions;false;UseKestrel;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Hosting;WebHostBuilderNamedPipeExtensions;false;UseNamedPipes;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Hosting;WebHostBuilderQuicExtensions;false;UseQuic;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.QuicTransportOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Hosting;WebHostBuilderSocketExtensions;false;UseSockets;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http.Connections;WebSocketOptions;false;set_SubProtocolSelector;(System.Func<System.Collections.Generic.IList<System.String>,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -384,6 +402,7 @@ summary
| Microsoft.AspNetCore.Http.Features;FeatureReferences<TCache>;false;Fetch<TFeature>;(TFeature,System.Func<Microsoft.AspNetCore.Http.Features.IFeatureCollection,TFeature>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http.Features;IHttpResponseFeature;true;OnCompleted;(System.Func<System.Object,System.Threading.Tasks.Task>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http.Features;IHttpResponseFeature;true;OnStarting;(System.Func<System.Object,System.Threading.Tasks.Task>,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http.Timeouts;RequestTimeoutPolicy;false;set_WriteTimeoutResponse;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http;Endpoint;false;Endpoint;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Http.EndpointMetadataCollection,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http;EndpointFilterDelegate;false;BeginInvoke;(Microsoft.AspNetCore.Http.EndpointFilterInvocationContext,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Http;EndpointFilterExtensions;false;AddEndpointFilter<TBuilder>;(TBuilder,System.Func<Microsoft.AspNetCore.Http.EndpointFilterInvocationContext,Microsoft.AspNetCore.Http.EndpointFilterDelegate,System.Threading.Tasks.ValueTask<System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -586,6 +605,8 @@ summary
| Microsoft.AspNetCore.Routing;RouteEndpoint;false;RouteEndpoint;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,System.Int32,Microsoft.AspNetCore.Http.EndpointMetadataCollection,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Routing;RouteEndpointBuilder;false;RouteEndpointBuilder;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.AspNetCore.Routing.Patterns.RoutePattern,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Routing;RouteHandler;false;RouteHandler;(Microsoft.AspNetCore.Http.RequestDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Routing;RouteHandlerServices;false;Map;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Delegate,System.Collections.Generic.IEnumerable<System.String>,System.Func<System.Reflection.MethodInfo,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions,Microsoft.AspNetCore.Http.RequestDelegateMetadataResult>,System.Func<System.Delegate,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions,Microsoft.AspNetCore.Http.RequestDelegateMetadataResult,Microsoft.AspNetCore.Http.RequestDelegateResult>);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Routing;RouteHandlerServices;false;Map;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Delegate,System.Collections.Generic.IEnumerable<System.String>,System.Func<System.Reflection.MethodInfo,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions,Microsoft.AspNetCore.Http.RequestDelegateMetadataResult>,System.Func<System.Delegate,Microsoft.AspNetCore.Http.RequestDelegateFactoryOptions,Microsoft.AspNetCore.Http.RequestDelegateMetadataResult,Microsoft.AspNetCore.Http.RequestDelegateResult>);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.IISIntegration;IISMiddleware;false;IISMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Builder.IISOptions>,System.String,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider,Microsoft.Extensions.Hosting.IHostApplicationLifetime);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.IISIntegration;IISMiddleware;false;IISMiddleware;(Microsoft.AspNetCore.Http.RequestDelegate,Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Options.IOptions<Microsoft.AspNetCore.Builder.IISOptions>,System.String,System.Boolean,Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider,Microsoft.Extensions.Hosting.IHostApplicationLifetime);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ConfigureEndpointDefaults;(System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -596,6 +617,7 @@ summary
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenAnyIP;(System.Int32,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenHandle;(System.UInt64,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenLocalhost;(System.Int32,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenNamedPipe;(System.String,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;ListenUnixSocket;(System.String,System.Action<Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;set_RequestHeaderEncodingSelector;(System.Func<System.String,System.Text.Encoding>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.AspNetCore.Server.Kestrel.Core;KestrelServerOptions;false;set_ResponseHeaderEncodingSelector;(System.Func<System.String,System.Text.Encoding>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -832,6 +854,12 @@ summary
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAdd;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable<Microsoft.Extensions.DependencyInjection.ServiceDescriptor>);;Argument[1].Element;Argument[0].Element;taint;df-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.DependencyInjection.ServiceDescriptor);;Argument[1];Argument[0].Element;taint;df-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddEnumerable;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Collections.Generic.IEnumerable<Microsoft.Extensions.DependencyInjection.ServiceDescriptor>);;Argument[1].Element;Argument[0].Element;taint;df-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddKeyedScoped<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddKeyedSingleton<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddKeyedTransient<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func<System.IServiceProvider,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddScoped<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection.Extensions;ServiceCollectionDescriptorExtensions;false;TryAddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func<System.IServiceProvider,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
@@ -846,6 +874,14 @@ summary
| Microsoft.Extensions.DependencyInjection;AuthenticationCoreServiceCollectionExtensions;false;AddAuthenticationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Authentication.AuthenticationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;AuthenticationServiceCollectionExtensions;false;AddAuthentication;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Authentication.AuthenticationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;AuthorizationServiceCollectionExtensions;false;AddAuthorizationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Authorization.AuthorizationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;BearerTokenExtensions;false;AddBearerToken;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.Action<Microsoft.AspNetCore.Authentication.BearerToken.BearerTokenOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;BearerTokenExtensions;false;AddBearerToken;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action<Microsoft.AspNetCore.Authentication.BearerToken.BearerTokenOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CascadingValueServiceCollectionExtensions;false;AddCascadingValue<TValue>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,Microsoft.AspNetCore.Components.CascadingValueSource<TValue>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CascadingValueServiceCollectionExtensions;false;AddCascadingValue<TValue>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,TValue>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CascadingValueServiceCollectionExtensions;false;AddCascadingValue<TValue>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Func<System.IServiceProvider,TValue>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CascadingValueServiceCollectionExtensions;false;TryAddCascadingValue<TValue>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,Microsoft.AspNetCore.Components.CascadingValueSource<TValue>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CascadingValueServiceCollectionExtensions;false;TryAddCascadingValue<TValue>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,TValue>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CascadingValueServiceCollectionExtensions;false;TryAddCascadingValue<TValue>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Func<System.IServiceProvider,TValue>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;CertificateForwardingServiceExtensions;false;AddCertificateForwarding;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ComponentServiceCollectionExtensions;false;AddServerSideBlazor;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Components.Server.CircuitOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ConnectionsDependencyInjectionExtensions;false;AddConnections;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Http.Connections.ConnectionOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -872,19 +908,24 @@ summary
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.IServiceProvider,System.Net.Http.DelegatingHandler>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.Net.Http.DelegatingHandler>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddHttpMessageHandler<THandler>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.IServiceProvider,Microsoft.Extensions.Http.Logging.IHttpClientLogger>,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<TClient,TImplementation>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<TClient>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<TClient>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.Net.Http.HttpClient,System.IServiceProvider,TClient>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;AddTypedClient<TClient>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.Net.Http.HttpClient,TClient>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<System.Collections.Generic.IList<System.Net.Http.DelegatingHandler>,System.IServiceProvider>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<System.IServiceProvider,System.Net.Http.HttpClient>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<System.Net.Http.HttpClient>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<Microsoft.Extensions.Http.HttpMessageHandlerBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<System.Net.Http.HttpMessageHandler,System.IServiceProvider>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.IServiceProvider,System.Net.Http.HttpMessageHandler>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.Net.Http.HttpMessageHandler>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;ConfigurePrimaryHttpMessageHandler<THandler>;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable<System.String>);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func<System.String,System.Boolean>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;false;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action<System.Net.Http.SocketsHttpHandler,System.IServiceProvider>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action<System.IServiceProvider,System.Net.Http.HttpClient>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action<System.Net.Http.HttpClient>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
@@ -900,10 +941,12 @@ summary
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<TClient>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<System.Net.Http.HttpClient>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<TClient>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action<System.IServiceProvider,System.Net.Http.HttpClient>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;AddHttpClient<TClient>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action<System.Net.Http.HttpClient>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;false;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.Extensions.DependencyInjection.IHttpClientBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpJsonServiceExtensions;false;ConfigureHttpJsonOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Http.Json.JsonOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;false;AddHttpLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.HttpLogging.HttpLoggingOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;false;AddW3CLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.HttpLogging.W3CLoggerOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentity<TUser,TRole>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Identity.IdentityOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentityApiEndpoints<TUser>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Identity.IdentityOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;AddIdentityCore<TUser>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Identity.IdentityOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;ConfigureApplicationCookie;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;IdentityServiceCollectionExtensions;false;ConfigureExternalCookie;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -915,6 +958,7 @@ summary
| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.Extensions.Caching.Memory.MemoryDistributedCacheOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;false;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.Extensions.Caching.Memory.MemoryCacheOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;false;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.Extensions.Diagnostics.Metrics.IMetricsBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action<Microsoft.AspNetCore.Mvc.Formatters.FormatterMappings>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action<Microsoft.AspNetCore.Mvc.JsonOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;false;AddMvcOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action<Microsoft.AspNetCore.Mvc.MvcOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -977,6 +1021,7 @@ summary
| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth<TOptions,THandler>;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.Action<TOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;OAuthExtensions;false;AddOAuth<TOptions,THandler>;(Microsoft.AspNetCore.Authentication.AuthenticationBuilder,System.String,System.String,System.Action<TOptions>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ObjectFactory;false;BeginInvoke;(System.IServiceProvider,System.Object[],System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ObjectFactory<T>;false;BeginInvoke;(System.IServiceProvider,System.Object[],System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<TOptions>;(Microsoft.Extensions.Options.OptionsBuilder<TOptions>,Microsoft.Extensions.Configuration.IConfiguration);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;Bind<TOptions>;(Microsoft.Extensions.Options.OptionsBuilder<TOptions>,Microsoft.Extensions.Configuration.IConfiguration,System.Action<Microsoft.Extensions.Configuration.BinderOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;false;BindConfiguration<TOptions>;(Microsoft.Extensions.Options.OptionsBuilder<TOptions>,System.String,System.Action<Microsoft.Extensions.Configuration.BinderOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
@@ -1002,15 +1047,27 @@ summary
| Microsoft.Extensions.DependencyInjection;PageConventionCollectionExtensions;false;ConfigureFilter;(Microsoft.AspNetCore.Mvc.ApplicationModels.PageConventionCollection,System.Func<Microsoft.AspNetCore.Mvc.ApplicationModels.PageApplicationModel,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;PolicyServiceCollectionExtensions;false;AddAuthorization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Authorization.AuthorizationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ProblemDetailsServiceCollectionExtensions;false;AddProblemDetails;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Http.ProblemDetailsOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;RazorComponentsServiceCollectionExtensions;false;AddRazorComponents;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Components.Endpoints.RazorComponentsServiceOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;RequestDecompressionServiceExtensions;false;AddRequestDecompression;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.RequestDecompression.RequestDecompressionOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;RequestLocalizationServiceCollectionExtensions;false;AddRequestLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Builder.RequestLocalizationOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;RequestLocalizationServiceCollectionExtensions;false;AddRequestLocalization<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Builder.RequestLocalizationOptions,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;RequestTimeoutsIServiceCollectionExtensions;false;AddRequestTimeouts;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ResponseCachingServicesExtensions;false;AddResponseCaching;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;RoutingServiceCollectionExtensions;false;AddRouting;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Routing.RouteOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServerRazorComponentsBuilderExtensions;false;AddInteractiveServerComponents;(Microsoft.Extensions.DependencyInjection.IRazorComponentsBuilder,System.Action<Microsoft.AspNetCore.Components.Server.CircuitOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServerSideBlazorBuilderExtensions;false;AddCircuitOptions;(Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder,System.Action<Microsoft.AspNetCore.Components.Server.CircuitOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServerSideBlazorBuilderExtensions;false;AddHubOptions;(Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder,System.Action<Microsoft.AspNetCore.SignalR.HubOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<THostedService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;false;AddHostedService<THostedService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,THostedService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedScoped<TService,TImplementation>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TImplementation>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedScoped<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedSingleton<TService,TImplementation>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TImplementation>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedSingleton<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedTransient<TService,TImplementation>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TImplementation>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddKeyedTransient<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func<System.IServiceProvider,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);;Argument[0].Element;ReturnValue;taint;df-generated |
@@ -1035,10 +1092,21 @@ summary
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection);;Argument[0].Element;ReturnValue;taint;df-generated |
| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;false;AddTransient<TService>;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func<System.IServiceProvider,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Describe;(System.Type,System.Func<System.IServiceProvider,System.Object>,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;DescribeKeyed;(System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedScoped;(System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedScoped<TService,TImplementation>;(System.Object,System.Func<System.IServiceProvider,System.Object,TImplementation>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedScoped<TService>;(System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedSingleton;(System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedSingleton<TService,TImplementation>;(System.Object,System.Func<System.IServiceProvider,System.Object,TImplementation>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedSingleton<TService>;(System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedTransient;(System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedTransient<TService,TImplementation>;(System.Object,System.Func<System.IServiceProvider,System.Object,TImplementation>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;KeyedTransient<TService>;(System.Object,System.Func<System.IServiceProvider,System.Object,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped;(System.Type,System.Func<System.IServiceProvider,System.Object>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped<TService,TImplementation>;(System.Func<System.IServiceProvider,TImplementation>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Scoped<TService>;(System.Func<System.IServiceProvider,TService>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;ServiceDescriptor;(System.Type,System.Func<System.IServiceProvider,System.Object>,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;ServiceDescriptor;(System.Type,System.Object,System.Func<System.IServiceProvider,System.Object,System.Object>,Microsoft.Extensions.DependencyInjection.ServiceLifetime);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton;(System.Type,System.Func<System.IServiceProvider,System.Object>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton<TService,TImplementation>;(System.Func<System.IServiceProvider,TImplementation>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;ServiceDescriptor;false;Singleton<TService>;(System.Func<System.IServiceProvider,TService>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1051,6 +1119,7 @@ summary
| Microsoft.Extensions.DependencyInjection;SessionServiceCollectionExtensions;false;AddSession;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.Builder.SessionOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;false;AddHubOptions<THub>;(Microsoft.AspNetCore.SignalR.ISignalRServerBuilder,System.Action<Microsoft.AspNetCore.SignalR.HubOptions<THub>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;false;AddSignalR;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action<Microsoft.AspNetCore.SignalR.HubOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;false;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action<System.Net.Http.SocketsHttpHandler,System.IServiceProvider>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;false;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action<Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;false;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action<Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelperOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckPublisherOptions;false;set_Predicate;(System.Func<Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1058,6 +1127,13 @@ summary
| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;HealthCheckRegistration;(System.String,System.Func<System.IServiceProvider,Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck>,System.Nullable<Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus>,System.Collections.Generic.IEnumerable<System.String>,System.Nullable<System.TimeSpan>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckRegistration;false;set_Factory;(System.Func<System.IServiceProvider,Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.HealthChecks;HealthCheckService;true;CheckHealthAsync;(System.Func<Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckRegistration,System.Boolean>,System.Threading.CancellationToken);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_ByteHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Byte>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_DecimalHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Decimal>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_DoubleHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Double>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_FloatHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Single>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_IntHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Int32>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_LongHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Int64>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Diagnostics.Metrics;MeasurementHandlers;false;set_ShortHandler;(System.Diagnostics.Metrics.MeasurementCallback<System.Int16>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList<Microsoft.Extensions.FileProviders.IFileProvider>,System.String);;Argument[0].Element;Argument[this];taint;df-generated |
| Microsoft.Extensions.FileProviders.Composite;CompositeDirectoryContents;false;CompositeDirectoryContents;(System.Collections.Generic.IList<Microsoft.Extensions.FileProviders.IFileProvider>,System.String);;Argument[1];Argument[this];taint;df-generated |
| Microsoft.Extensions.FileProviders.Internal;PhysicalDirectoryContents;false;PhysicalDirectoryContents;(System.String,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);;Argument[0];Argument[this];taint;df-generated |
@@ -1101,10 +1177,11 @@ summary
| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>,System.Action<Microsoft.Extensions.Hosting.WebHostBuilderOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostBuilderExtensions;false;ConfigureWebHostDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>,System.Action<Microsoft.Extensions.Hosting.WebHostBuilderOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureSlimWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>,System.Action<Microsoft.Extensions.Hosting.WebHostBuilderOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureSlimWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>,System.Action<Microsoft.Extensions.Hosting.WebHostBuilderOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>,System.Action<Microsoft.Extensions.Hosting.WebHostBuilderOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;GenericHostWebHostBuilderExtensions;false;ConfigureWebHost;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.AspNetCore.Hosting.IWebHostBuilder>,System.Action<Microsoft.Extensions.Hosting.WebHostBuilderOptions>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostApplicationBuilder;false;ConfigureContainer<TContainerBuilder>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder>,System.Action<TContainerBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostApplicationBuilder;false;get_Services;();;Argument[this];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<TContainerBuilder>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder>);;Argument[0];Argument[this];taint;df-generated |
| Microsoft.Extensions.Hosting;HostBuilder;false;UseServiceProviderFactory<TContainerBuilder>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder>);;Argument[this];ReturnValue;value;df-generated |
@@ -1115,6 +1192,8 @@ summary
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Hosting.HostOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Hosting.HostBuilderContext,Microsoft.Extensions.Logging.ILoggingBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Logging.ILoggingBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Diagnostics.Metrics.IMetricsBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Hosting.HostBuilderContext,Microsoft.Extensions.Diagnostics.Metrics.IMetricsBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.DependencyInjection.IServiceCollection>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;RunConsoleAsync;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Hosting.ConsoleLifetimeOptions>,System.Threading.CancellationToken);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);;Argument[0];ReturnValue;taint;df-generated |
@@ -1123,6 +1202,7 @@ summary
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.DependencyInjection.ServiceProviderOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action<Microsoft.Extensions.Hosting.HostBuilderContext,Microsoft.Extensions.DependencyInjection.ServiceProviderOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;false;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Hosting;IHostApplicationBuilder;true;ConfigureContainer<TContainerBuilder>;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory<TContainerBuilder>,System.Action<TContainerBuilder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureAppConfiguration;(System.Action<Microsoft.Extensions.Hosting.HostBuilderContext,Microsoft.Extensions.Configuration.IConfigurationBuilder>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureContainer<TContainerBuilder>;(System.Action<Microsoft.Extensions.Hosting.HostBuilderContext,TContainerBuilder>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Hosting;IHostBuilder;true;ConfigureHostConfiguration;(System.Action<Microsoft.Extensions.Configuration.IConfigurationBuilder>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1157,6 +1237,8 @@ summary
| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;CreateLogger;(System.String);;Argument[this];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[0];Argument[this];taint;df-generated |
| Microsoft.Extensions.Logging.TraceSource;TraceSourceLoggerProvider;false;TraceSourceLoggerProvider;(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener);;Argument[1];Argument[this];taint;df-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func<System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func<System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean>,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action<Microsoft.Extensions.Logging.Console.ConsoleLoggerOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddConsoleFormatter<TFormatter,TOptions>;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated |
@@ -1167,6 +1249,7 @@ summary
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action<Microsoft.Extensions.Logging.Console.SimpleConsoleFormatterOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;false;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action<Microsoft.Extensions.Logging.Console.ConsoleFormatterOptions>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;false;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func<System.String,Microsoft.Extensions.Logging.LogLevel,System.Boolean>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;false;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);;Argument[0];ReturnValue;taint;df-generated |
| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;false;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);;Argument[0];ReturnValue;taint;df-generated |
@@ -1460,6 +1543,8 @@ summary
| Newtonsoft.Json;JsonSerializerSettings;false;set_ReferenceResolverProvider;(System.Func<Newtonsoft.Json.Serialization.IReferenceResolver>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Newtonsoft.Json;JsonValidatingReader;false;add_ValidationEventHandler;(Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| Newtonsoft.Json;JsonValidatingReader;false;remove_ValidationEventHandler;(Newtonsoft.Json.Schema.ValidationEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.AI;SpeechToTextFactory;false;set_Resolve;(System.Func<System.String,ServiceStack.AI.ISpeechToText>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.AI;TypeChatFactory;false;set_Resolve;(System.Func<System.String,ServiceStack.AI.ITypeChat>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Admin;AdminUsersFeature;false;RemoveFromUserForm;(System.Predicate<ServiceStack.InputInfo>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Admin;AdminUsersFeature;false;set_OnAfterCreateUser;(System.Func<ServiceStack.Auth.IUserAuth,ServiceStack.Service,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Admin;AdminUsersFeature;false;set_OnAfterDeleteUser;(System.Func<System.String,ServiceStack.Service,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1479,7 +1564,6 @@ summary
| ServiceStack.Auth;AuthProviderSync;false;set_CustomValidationFilter;(System.Func<ServiceStack.Auth.AuthContext,ServiceStack.Web.IHttpResult>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;AuthProviderSync;false;set_LoadUserAuthFilter;(System.Action<ServiceStack.AuthUserSession,ServiceStack.Auth.IAuthTokens,System.Collections.Generic.Dictionary<System.String,System.String>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;AuthenticateService;false;Init;(System.Func<ServiceStack.Auth.IAuthSession>,ServiceStack.Auth.IAuthProvider[]);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;AuthenticateService;false;set_AuthResponseDecorator;(System.Func<ServiceStack.Auth.AuthFilterContext,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;AuthenticateService;false;set_CurrentSessionFactory;(System.Func<ServiceStack.Auth.IAuthSession>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;AuthenticateService;false;set_ValidateFn;(ServiceStack.Auth.ValidateFn);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;CreateApiKeyDelegate;false;BeginInvoke;(System.String,System.String,System.Int32,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
@@ -1487,6 +1571,7 @@ summary
| ServiceStack.Auth;JwtAuthProviderReader;false;set_CreateHeaderFilter;(System.Action<ServiceStack.Text.JsonObject,ServiceStack.Auth.IAuthSession>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;JwtAuthProviderReader;false;set_CreatePayloadFilter;(System.Action<ServiceStack.Text.JsonObject,ServiceStack.Auth.IAuthSession>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;JwtAuthProviderReader;false;set_PopulateSessionFilter;(System.Action<ServiceStack.Auth.IAuthSession,ServiceStack.Text.JsonObject,ServiceStack.Web.IRequest>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;JwtAuthProviderReader;false;set_PopulateSessionFilterAsync;(System.Func<ServiceStack.Auth.IAuthSession,ServiceStack.Text.JsonObject,ServiceStack.Web.IRequest,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;JwtAuthProviderReader;false;set_PreValidateJwtPayloadFilter;(System.Func<System.Collections.Generic.Dictionary<System.String,System.String>,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;JwtAuthProviderReader;false;set_ResolveJwtId;(System.Func<ServiceStack.Web.IRequest,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;JwtAuthProviderReader;false;set_ResolveRefreshJwtId;(System.Func<ServiceStack.Web.IRequest,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1497,6 +1582,7 @@ summary
| ServiceStack.Auth;NetCoreIdentityAuthProvider;false;set_AutoSignInSessionsMatching;(System.Func<ServiceStack.Web.IRequest,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;NetCoreIdentityAuthProvider;false;set_CreateClaimsPrincipal;(System.Func<System.Collections.Generic.List<System.Security.Claims.Claim>,ServiceStack.Auth.IAuthSession,ServiceStack.Web.IRequest,System.Security.Claims.ClaimsPrincipal>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;NetCoreIdentityAuthProvider;false;set_PopulateSessionFilter;(System.Action<ServiceStack.Auth.IAuthSession,System.Security.Claims.ClaimsPrincipal,ServiceStack.Web.IRequest>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;NetCoreIdentityAuthProvider;false;set_PopulateSessionFilterAsync;(System.Func<ServiceStack.Auth.IAuthSession,System.Security.Claims.ClaimsPrincipal,ServiceStack.Web.IRequest,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;OAuth2Provider;false;set_ResolveUnknownDisplayName;(System.Func<ServiceStack.Auth.IAuthSession,ServiceStack.Auth.IAuthTokens,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;OAuthProvider;false;set_VerifyAccessTokenAsync;(System.Func<System.String,ServiceStack.Auth.AuthContext,System.Threading.Tasks.Task<System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Auth;OAuthProviderSync;false;set_VerifyAccessToken;(System.Func<System.String,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1697,8 +1783,6 @@ summary
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;ApplyAsyncCondition;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,System.Threading.CancellationToken,System.Threading.Tasks.Task<System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;ApplyCondition;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;SetErrorMessage;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;set_AsyncCondition;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,System.Threading.CancellationToken,System.Threading.Tasks.Task<System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;set_Condition;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;set_CustomStateProvider;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;PropertyValidatorOptions;false;set_SeverityProvider;(System.Func<ServiceStack.FluentValidation.Validators.PropertyValidatorContext,ServiceStack.FluentValidation.Severity>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.FluentValidation;ValidationContext<T>;false;CreateWithOptions;(T,System.Action<ServiceStack.FluentValidation.Internal.ValidationStrategy<T>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -1723,6 +1807,7 @@ summary
| ServiceStack.Host.Handlers;CustomResponseHandler;false;set_Action;(System.Func<ServiceStack.Web.IRequest,ServiceStack.Web.IResponse,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Host.Handlers;CustomResponseHandlerAsync;false;CustomResponseHandlerAsync;(System.Func<ServiceStack.Web.IRequest,ServiceStack.Web.IResponse,System.Threading.Tasks.Task<System.Object>>,System.String);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Host.Handlers;CustomResponseHandlerAsync;false;set_Action;(System.Func<ServiceStack.Web.IRequest,ServiceStack.Web.IResponse,System.Threading.Tasks.Task<System.Object>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Host.Handlers;StaticFileHandler;false;set_Filter;(System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IResponse,ServiceStack.IO.IVirtualFile>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Host.Handlers;StaticFileHandler;false;set_ResponseFilter;(System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IResponse,ServiceStack.IO.IVirtualFile>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Host;ActionContext;false;set_ServiceAction;(ServiceStack.Host.ActionInvokerFn);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Host;ActionInvokerFn;false;BeginInvoke;(System.Object,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
@@ -1759,15 +1844,21 @@ summary
| ServiceStack.Html;MediaRuleCreator;false;Show<T>;(System.Linq.Expressions.Expression<System.Func<T,System.Object>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;ApplyToLineContaining;false;ApplyToLineContaining;(System.String,System.Func<System.ReadOnlyMemory<System.Char>,System.ReadOnlyMemory<System.Char>>,ServiceStack.Run);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FileHandler;false;set_VirtualFilesResolver;(System.Func<ServiceStack.HtmlModuleContext,ServiceStack.IO.IVirtualPathProvider>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesHandler;false;set_Footer;(System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesHandler;false;set_Header;(System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesHandler;false;set_NormalizeVirtualPath;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesHandler;false;set_VirtualFilesResolver;(System.Func<ServiceStack.HtmlModuleContext,ServiceStack.IO.IVirtualPathProvider>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesTransformer;false;Clone;(System.Action<ServiceStack.HtmlModules.FilesTransformer>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesTransformer;false;CopyAll;(ServiceStack.IO.IVirtualFiles,ServiceStack.IO.IVirtualFiles,System.Boolean,System.Func<ServiceStack.IO.IVirtualFile,System.Boolean>,System.Action<ServiceStack.IO.IVirtualFile,System.String>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesTransformer;false;CopyAll;(ServiceStack.IO.IVirtualFiles,ServiceStack.IO.IVirtualFiles,System.Boolean,System.Func<ServiceStack.IO.IVirtualFile,System.Boolean>,System.Action<ServiceStack.IO.IVirtualFile,System.String>);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesTransformer;false;Defaults;(System.Nullable<System.Boolean>,System.Action<ServiceStack.HtmlModules.FilesTransformer>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;FilesTransformerUtils;false;Defaults;(System.Action<ServiceStack.HtmlModules.FilesTransformer>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;GatewayHandler;false;set_ServiceGatewayFactory;(System.Func<ServiceStack.Web.IRequest,ServiceStack.IServiceGateway>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;HtmlHandlerFragment;false;HtmlHandlerFragment;(System.String,System.String,System.Func<ServiceStack.HtmlModuleContext,System.String,System.ReadOnlyMemory<System.Byte>>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;HtmlTokenFragment;false;HtmlTokenFragment;(System.String,System.Func<ServiceStack.HtmlModuleContext,System.ReadOnlyMemory<System.Byte>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;MinifyBlock;false;set_Convert;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;SharedFolder;false;set_Footer;(System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.HtmlModules;SharedFolder;false;set_Header;(System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.IO;IVirtualFiles;true;WriteFiles;(System.Collections.Generic.IEnumerable<ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.IO;IVirtualFilesAsync;true;WriteFilesAsync;(System.Collections.Generic.IEnumerable<ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.IO;VirtualFilesExtensions;false;CopyFrom;(ServiceStack.IO.IVirtualPathProvider,System.Collections.Generic.IEnumerable<ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.IO.IVirtualFile,System.String>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
@@ -1846,6 +1937,21 @@ summary
| ServiceStack.NativeTypes.Kotlin;KotlinGenerator;false;set_PreTypeFilter;(System.Action<ServiceStack.NativeTypes.StringBuilderWrapper,ServiceStack.MetadataType>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Kotlin;KotlinGenerator;false;set_PropertyTypeFilter;(System.Func<ServiceStack.NativeTypes.Kotlin.KotlinGenerator,ServiceStack.MetadataType,ServiceStack.MetadataPropertyType,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Kotlin;KotlinGenerator;false;set_TypeFilter;(ServiceStack.NativeTypes.TypeFilterDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_AddCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_CookedDeclarationTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_CookedTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_DeclarationTypeFilter;(ServiceStack.NativeTypes.TypeFilterDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_FilterTypes;(System.Func<System.Collections.Generic.List<ServiceStack.MetadataType>,System.Collections.Generic.List<ServiceStack.MetadataType>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_InnerTypeFilter;(System.Action<ServiceStack.NativeTypes.StringBuilderWrapper,ServiceStack.MetadataType>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_InsertCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_IsPropertyOptional;(System.Func<ServiceStack.NativeTypes.Php.PhpGenerator,ServiceStack.MetadataType,ServiceStack.MetadataPropertyType,System.Nullable<System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_PostPropertyFilter;(System.Action<ServiceStack.NativeTypes.StringBuilderWrapper,ServiceStack.MetadataPropertyType,ServiceStack.MetadataType>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_PostTypeFilter;(System.Action<ServiceStack.NativeTypes.StringBuilderWrapper,ServiceStack.MetadataType>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_PrePropertyFilter;(System.Action<ServiceStack.NativeTypes.StringBuilderWrapper,ServiceStack.MetadataPropertyType,ServiceStack.MetadataType>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_PreTypeFilter;(System.Action<ServiceStack.NativeTypes.StringBuilderWrapper,ServiceStack.MetadataType>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_PropertyTypeFilter;(System.Func<ServiceStack.NativeTypes.Php.PhpGenerator,ServiceStack.MetadataType,ServiceStack.MetadataPropertyType,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_ReturnMarkerFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Php;PhpGenerator;false;set_TypeFilter;(ServiceStack.NativeTypes.TypeFilterDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Python;PythonGenerator;false;set_AddCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Python;PythonGenerator;false;set_CookedDeclarationTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Python;PythonGenerator;false;set_CookedTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -1872,9 +1978,11 @@ summary
| ServiceStack.NativeTypes.Swift;SwiftGenerator;false;set_PropertyTypeFilter;(System.Func<ServiceStack.NativeTypes.Swift.SwiftGenerator,ServiceStack.MetadataType,ServiceStack.MetadataPropertyType,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.Swift;SwiftGenerator;false;set_TypeFilter;(ServiceStack.NativeTypes.TypeFilterDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;CommonJsGenerator;false;set_AddCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;CommonJsGenerator;false;set_FilterTypes;(System.Func<System.Collections.Generic.List<ServiceStack.MetadataType>,System.Collections.Generic.List<ServiceStack.MetadataType>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;CommonJsGenerator;false;set_InsertCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;CommonJsGenerator;false;set_ReturnTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;MjsGenerator;false;set_AddCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;MjsGenerator;false;set_InsertCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;MjsGenerator;false;set_ReturnTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;TypeScriptGenerator;false;set_AddCodeFilter;(ServiceStack.NativeTypes.AddCodeDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;TypeScriptGenerator;false;set_CookedDeclarationTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.NativeTypes.TypeScript;TypeScriptGenerator;false;set_CookedTypeFilter;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -2006,6 +2114,8 @@ summary
| ServiceStack.OrmLite;IUntypedSqlExpression;true;Where<Source,Target>;(System.Linq.Expressions.Expression<System.Func<Source,Target,System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;IUntypedSqlExpression;true;Where<Target>;(System.Linq.Expressions.Expression<System.Func<Target,System.Boolean>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;JoinFormatDelegate;false;BeginInvoke;(ServiceStack.OrmLite.IOrmLiteDialectProvider,ServiceStack.OrmLite.ModelDefinition,System.String,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;Migrator;false;Run;(ServiceStack.Data.IDbConnectionFactory,System.Type,System.Action<ServiceStack.OrmLite.MigrationBase>,System.String);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;Migrator;false;RunAll;(ServiceStack.Data.IDbConnectionFactory,System.Collections.Generic.IEnumerable<System.Type>,System.Action<ServiceStack.OrmLite.MigrationBase>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;ModelDefinition;false;AssertFieldDefinition;(System.String,System.Func<System.String,System.String>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;ModelDefinition;false;GetFieldDefinition;(System.Func<System.String,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;ModelDefinition;false;GetFieldDefinition;(System.String,System.Func<System.String,System.String>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -2092,6 +2202,7 @@ summary
| ServiceStack.OrmLite;OrmLiteSchemaModifyApi;false;ChangeColumnName<T>;(System.Data.IDbConnection,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;OrmLiteSchemaModifyApi;false;CreateIndex<T>;(System.Data.IDbConnection,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.String,System.Boolean);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;OrmLiteSchemaModifyApi;false;DropColumn<T>;(System.Data.IDbConnection,System.Linq.Expressions.Expression<System.Func<T,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;OrmLiteSchemaModifyApi;false;RenameColumn<T>;(System.Data.IDbConnection,System.Linq.Expressions.Expression<System.Func<T,System.Object>>,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;OrmLiteUtils;false;EvalFactoryFn<T>;(System.Linq.Expressions.Expression<System.Func<T>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;OrmLiteUtils;false;set_SqlVerifyFragmentFn;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.OrmLite;OrmLiteWriteApi;false;Delete<T>;(System.Data.IDbConnection,System.Object,System.Action<System.Data.IDbCommand>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
@@ -2692,6 +2803,7 @@ summary
| ServiceStack.Text.Common;ToStringDictionaryMethods<TKey,TValue,TSerializer>;false;WriteIDictionary;(System.IO.TextWriter,System.Object,ServiceStack.Text.Common.WriteObjectDelegate,ServiceStack.Text.Common.WriteObjectDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text.Common;ToStringDictionaryMethods<TKey,TValue,TSerializer>;false;WriteIDictionary;(System.IO.TextWriter,System.Object,ServiceStack.Text.Common.WriteObjectDelegate,ServiceStack.Text.Common.WriteObjectDelegate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text.Common;WriteObjectDelegate;false;BeginInvoke;(System.IO.TextWriter,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text.Json;JsonlSerializer;false;set_OnSerialize;(System.Action<System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text.Pools;ObjectPool<T>+Factory;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text.Pools;ObjectPool<T>;false;ObjectPool;(ServiceStack.Text.Pools.ObjectPool<T>+Factory);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text.Pools;ObjectPool<T>;false;ObjectPool;(ServiceStack.Text.Pools.ObjectPool<T>+Factory,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -2750,6 +2862,7 @@ summary
| ServiceStack.Text;RecyclableMemoryStreamManager;false;remove_StreamFinalized;(ServiceStack.Text.RecyclableMemoryStreamManager+EventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text;RecyclableMemoryStreamManager;false;remove_StreamLength;(ServiceStack.Text.RecyclableMemoryStreamManager+StreamLengthReportHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text;RecyclableMemoryStreamManager;false;remove_UsageReport;(ServiceStack.Text.RecyclableMemoryStreamManager+UsageReportEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text;TextConfig;false;set_CreateSha;(System.Func<System.Security.Cryptography.SHA1>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text;TypeConfig<T>;false;set_OnDeserializing;(System.Func<System.Object,System.String,System.Object,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Text;TypeSerializer;false;set_OnSerialize;(System.Action<System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack.Validation;ValidationFeature;false;set_ErrorResponseFilter;(System.Func<ServiceStack.Web.IRequest,ServiceStack.FluentValidation.Results.ValidationResult,System.Object,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -2799,6 +2912,9 @@ summary
| ServiceStack;AppMetadataUtils;false;Property;(ServiceStack.MetadataType,System.String,System.Action<ServiceStack.MetadataPropertyType>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppMetadataUtils;false;RemoveProperty;(ServiceStack.MetadataType,System.Predicate<ServiceStack.MetadataPropertyType>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppMetadataUtils;false;ToInput;(ServiceStack.InputAttributeBase,System.Action<ServiceStack.InputInfo>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppMetadataUtils;false;ToProperties;(System.Type,System.Func<System.Reflection.PropertyInfo,ServiceStack.MetadataPropertyType>,System.Collections.Generic.HashSet<System.Type>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppTasks;false;Register;(System.String,System.Action<System.String[]>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppTasks;false;Run;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppUtils;false;DbContextExec<TApplicationDbContext,T>;(System.IServiceProvider,System.Func<TApplicationDbContext,System.Data.IDbConnection>,System.Func<System.Data.IDbConnection,T>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppUtils;false;DbContextExec<TApplicationDbContext,T>;(System.IServiceProvider,System.Func<TApplicationDbContext,System.Data.IDbConnection>,System.Func<System.Data.IDbConnection,T>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AppUtils;false;NewScope<T>;(System.IServiceProvider,System.Func<Microsoft.Extensions.DependencyInjection.IServiceScope,T>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -2842,12 +2958,14 @@ summary
| ServiceStack;AutoQueryDataFeature;false;set_GenerateServiceFilter;(System.Action<System.Reflection.Emit.TypeBuilder,System.Reflection.Emit.MethodBuilder,System.Type>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AutoQueryDataFeature;false;set_GlobalQueryFilter;(ServiceStack.QueryDataFilterDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;AutoQueryMetadataFeature;false;set_MetadataFilter;(System.Action<ServiceStack.AutoQueryMetadataResponse>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;BlazorServerUtils;false;AddBlazorServerApiClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action<System.Net.Http.HttpClient>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CacheClientExtensions;false;GetOrCreate<T>;(ServiceStack.Caching.ICacheClient,System.String,System.Func<T>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CacheClientExtensions;false;GetOrCreate<T>;(ServiceStack.Caching.ICacheClient,System.String,System.TimeSpan,System.Func<T>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CacheClientExtensions;false;GetOrCreateAsync<T>;(ServiceStack.Caching.ICacheClientAsync,System.String,System.Func<System.Threading.Tasks.Task<T>>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CacheClientExtensions;false;GetOrCreateAsync<T>;(ServiceStack.Caching.ICacheClientAsync,System.String,System.TimeSpan,System.Func<System.Threading.Tasks.Task<T>>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CachedExpressionCompiler;false;Compile<TModel,TValue>;(System.Linq.Expressions.Expression<System.Func<TModel,TValue>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ClientConfig;false;set_EncodeDispositionFileName;(System.Func<System.String,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ClientConfig;false;set_EvalExpression;(System.Func<System.String,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CompareTypeUtils;false;Aggregate;(System.Collections.IEnumerable,System.Func<System.Object,System.Object,System.Object>,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ContainerExtensions;false;AddSingleton<TService>;(ServiceStack.IContainer,System.Func<TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ContainerExtensions;false;AddTransient<TService>;(ServiceStack.IContainer,System.Func<TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -2857,6 +2975,7 @@ summary
| ServiceStack;ContainerNetCoreExtensions;false;AddSingleton<TService>;(Funq.Container,System.Func<Funq.Container,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ContainerNetCoreExtensions;false;AddTransient<TService,TImplementation>;(Funq.Container,System.Func<Funq.Container,TImplementation>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ContainerNetCoreExtensions;false;AddTransient<TService>;(Funq.Container,System.Func<Funq.Container,TService>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CookieHandler;false;set_Filter;(System.Func<System.Net.Http.DelegatingHandler,System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CsvRequestLogger;false;set_OnReadLastEntryError;(System.Action<System.String,System.Exception>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CsvRequestLogger;false;set_OnWriteLogsError;(System.Action<System.Collections.Generic.List<ServiceStack.RequestLogEntry>,System.Exception>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;CustomPlugin;false;CustomPlugin;(System.Action<ServiceStack.IAppHost>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -2918,7 +3037,6 @@ summary
| ServiceStack;FieldAccessor;false;FieldAccessor;(System.Reflection.FieldInfo,ServiceStack.GetMemberDelegate,ServiceStack.SetMemberDelegate,ServiceStack.SetMemberRefDelegate);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;FieldAccessor;false;FieldAccessor;(System.Reflection.FieldInfo,ServiceStack.GetMemberDelegate,ServiceStack.SetMemberDelegate,ServiceStack.SetMemberRefDelegate);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;FieldAccessor;false;FieldAccessor;(System.Reflection.FieldInfo,ServiceStack.GetMemberDelegate,ServiceStack.SetMemberDelegate,ServiceStack.SetMemberRefDelegate);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;FilesUploadFeature;false;set_FileResult;(System.Func<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;FuncUtils;false;TryExec;(System.Action);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;FuncUtils;false;TryExec<T>;(System.Func<T>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;FuncUtils;false;TryExec<T>;(System.Func<T>,T);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -3166,12 +3284,14 @@ summary
| ServiceStack;JsonApiClient;false;set_GlobalHttpMessageHandlerFactory;(System.Func<System.Net.Http.HttpMessageHandler>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_GlobalRequestFilter;(System.Action<System.Net.Http.HttpRequestMessage>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_GlobalResponseFilter;(System.Action<System.Net.Http.HttpResponseMessage>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_HttpMessageHandlerFilter;(System.Action<ServiceStack.JsonApiClient,System.Net.Http.HttpMessageHandler>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_RequestFilter;(System.Action<System.Net.Http.HttpRequestMessage>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_ResponseFilter;(System.Action<System.Net.Http.HttpResponseMessage>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_ResultsFilter;(ServiceStack.ResultsFilterHttpDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_ResultsFilterResponse;(ServiceStack.ResultsFilterHttpResponseDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_TypedUrlResolver;(ServiceStack.TypedUrlResolverDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClient;false;set_UrlResolver;(ServiceStack.UrlResolverDelegate);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;JsonApiClientUtils;false;AddJsonApiClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action<System.Net.Http.HttpClient>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ListExtensions;false;SafeWhere<TFrom>;(System.Collections.Generic.List<TFrom>,System.Func<TFrom,System.Boolean>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;MemoryServerEvents;false;set_NotifyHeartbeatAsync;(System.Func<ServiceStack.IEventSubscription,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;MemoryServerEvents;false;set_NotifyJoinAsync;(System.Func<ServiceStack.IEventSubscription,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -3192,6 +3312,7 @@ summary
| ServiceStack;ModularStartup;false;ModularStartup;(Microsoft.Extensions.Configuration.IConfiguration,System.Func<System.Collections.Generic.IEnumerable<System.Type>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;NativeTypesFeature;false;ExportAttribute;(System.Type,System.Func<System.Attribute,ServiceStack.MetadataAttribute>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;NativeTypesFeature;false;ExportAttribute<T>;(System.Func<System.Attribute,ServiceStack.MetadataAttribute>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;NativeTypesFeature;false;set_ShouldInitializeCollection;(System.Func<ServiceStack.MetadataType,System.Boolean>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;NetCoreAppHostExtensions;false;ConfigureAppHost;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;NetCoreAppHostExtensions;false;ConfigureAppHost;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;NetCoreAppHostExtensions;false;ConfigureAppHost;(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>,System.Action<ServiceStack.ServiceStackHost>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
@@ -3207,13 +3328,16 @@ summary
| ServiceStack;PerfUtils;false;Measure;(System.Action,System.Int32,System.Int32,System.Action,System.Action,System.Action);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PerfUtils;false;Measure;(System.Action,System.Int32,System.Int32,System.Action,System.Action,System.Action);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PerfUtils;false;MeasureFor;(System.Action,System.Int32);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PlatformExtensions;false;AnyValues;(System.Collections.IDictionary,System.Func<System.String,System.Object,System.Boolean>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PlatformExtensions;false;ToObjectDictionary;(System.Object,System.Func<System.String,System.Object,System.Object>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PlatformExtensions;false;WithValues;(System.Collections.IDictionary,System.Func<System.String,System.Object,System.Boolean>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;Plugins;false;AddToAppMetadata;(ServiceStack.IAppHost,System.Action<ServiceStack.AppMetadata>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;Plugins;false;ModifyAppMetadata;(ServiceStack.IAppHost,System.Action<ServiceStack.Web.IRequest,ServiceStack.AppMetadata>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PocoDataSource;false;Create<T>;(System.Collections.Generic.ICollection<T>,System.Func<System.Collections.Generic.IEnumerable<T>,System.Int64>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PocoDataSource;false;Create<T>;(System.Collections.Generic.IEnumerable<T>,System.Func<System.Collections.Generic.IEnumerable<T>,System.Int64>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PopulateMemberDelegate;false;BeginInvoke;(System.Object,System.Object,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PreProcessRequest;false;set_HandleUploadFileAsync;(System.Func<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile,System.Threading.CancellationToken,System.Threading.Tasks.Task<System.String>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;PredefinedRoutesFeature;false;set_ApiIndex;(System.Func<ServiceStack.Web.IRequest,System.Collections.Generic.Dictionary<System.String,System.Collections.Generic.List<ServiceStack.ApiDescription>>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ProcessUtils;false;RunAsync;(System.Diagnostics.ProcessStartInfo,System.Nullable<System.Int32>,System.Action<System.String>,System.Action<System.String>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ProcessUtils;false;RunAsync;(System.Diagnostics.ProcessStartInfo,System.Nullable<System.Int32>,System.Action<System.String>,System.Action<System.String>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ProcessUtils;false;RunShellAsync;(System.String,System.String,System.Nullable<System.Int32>,System.Action<System.String>,System.Action<System.String>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
@@ -3281,8 +3405,6 @@ summary
| ServiceStack;ServerEventsFeature;false;set_OnUnsubscribeAsync;(System.Func<ServiceStack.IEventSubscription,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServerEventsFeature;false;set_OnUpdateAsync;(System.Func<ServiceStack.IEventSubscription,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServerEventsFeature;false;set_Serialize;(System.Func<System.Object,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServerEventsFeature;false;set_WriteEvent;(System.Action<ServiceStack.Web.IResponse,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServerEventsFeature;false;set_WriteEventAsync;(System.Func<ServiceStack.Web.IResponse,System.String,System.Threading.CancellationToken,System.Threading.Tasks.Task>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServiceClientBase;false;CaptureHttp;(System.Action<System.Text.StringBuilder>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServiceClientBase;false;PrepareWebRequest;(System.String,System.String,System.Object,System.Action<System.Net.HttpWebRequest>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;ServiceClientBase;false;SendStringToUrl;(System.Net.HttpWebRequest,System.String,System.String,System.String,System.String,System.Action<System.Net.HttpWebRequest>,System.Action<System.Net.HttpWebResponse>);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
@@ -3333,12 +3455,13 @@ summary
| ServiceStack;TopLevelAppModularStartup;false;TopLevelAppModularStartup;(System.Type,ServiceStack.AppHostBase,Microsoft.Extensions.Configuration.IConfiguration,System.Func<System.Collections.Generic.IEnumerable<System.Type>>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;TypedUrlResolverDelegate;false;BeginInvoke;(ServiceStack.IServiceClientMeta,System.String,System.Object,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UiFeature;false;set_Configure;(System.Action<ServiceStack.IAppHost>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile,System.Object>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile,System.Object>);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile,System.Object>);;Argument[11];Argument[11].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile,System.Object>);;Argument[12];Argument[12].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile,System.Object>);;Argument[13];Argument[13].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.FilesUploadContext,System.Threading.Tasks.Task<ServiceStack.Web.IHttpFile>>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.FilesUploadContext,System.Threading.Tasks.Task<ServiceStack.Web.IHttpFile>>);;Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.FilesUploadContext,System.Threading.Tasks.Task<ServiceStack.Web.IHttpFile>>);;Argument[11];Argument[11].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.FilesUploadContext,System.Threading.Tasks.Task<ServiceStack.Web.IHttpFile>>);;Argument[12];Argument[12].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;UploadLocation;(System.String,ServiceStack.IO.IVirtualFiles,System.Func<ServiceStack.FilesUploadContext,System.String>,System.String,System.String,System.String[],ServiceStack.FilesUploadOperation,System.Nullable<System.Int32>,System.Nullable<System.Int64>,System.Nullable<System.Int64>,System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>,System.Func<ServiceStack.FilesUploadContext,System.Threading.Tasks.Task<ServiceStack.Web.IHttpFile>>);;Argument[13];Argument[13].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;set_ResolvePath;(System.Func<ServiceStack.FilesUploadContext,System.String>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;set_TransformFileAsync;(System.Func<ServiceStack.FilesUploadContext,System.Threading.Tasks.Task<ServiceStack.Web.IHttpFile>>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;set_ValidateDelete;(System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;set_ValidateDownload;(System.Action<ServiceStack.Web.IRequest,ServiceStack.IO.IVirtualFile>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| ServiceStack;UploadLocation;false;set_ValidateUpload;(System.Action<ServiceStack.Web.IRequest,ServiceStack.Web.IHttpFile>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -3456,6 +3579,15 @@ summary
| System.Collections.Concurrent;Partitioner;false;Create<TSource>;(System.Collections.Generic.IEnumerable<TSource>,System.Collections.Concurrent.EnumerablePartitionerOptions);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Concurrent;Partitioner;false;Create<TSource>;(System.Collections.Generic.IList<TSource>,System.Boolean);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Concurrent;Partitioner;false;Create<TSource>;(TSource[],System.Boolean);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Frozen;FrozenDictionary;false;ToFrozenDictionary<TKey,TValue>;(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey,TValue>>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Frozen;FrozenDictionary;false;ToFrozenDictionary<TSource,TKey,TElement>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>,System.Func<TSource,TElement>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Collections.Frozen;FrozenDictionary;false;ToFrozenDictionary<TSource,TKey,TElement>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>,System.Func<TSource,TElement>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Collections.Frozen;FrozenDictionary;false;ToFrozenDictionary<TSource,TKey>;(System.Collections.Generic.IEnumerable<TSource>,System.Func<TSource,TKey>,System.Collections.Generic.IEqualityComparer<TKey>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Collections.Frozen;FrozenDictionary<TKey,TValue>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Frozen;FrozenDictionary<TKey,TValue>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated |
| System.Collections.Frozen;FrozenSet;false;ToFrozenSet<T>;(System.Collections.Generic.IEnumerable<T>,System.Collections.Generic.IEqualityComparer<T>);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Frozen;FrozenSet<T>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Frozen;FrozenSet<T>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated |
| System.Collections.Generic;CollectionExtensions;false;AsReadOnly<T>;(System.Collections.Generic.IList<T>);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Generic;CollectionExtensions;false;AsReadOnly<TKey,TValue>;(System.Collections.Generic.IDictionary<TKey,TValue>);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Collections.Generic;CollectionExtensions;false;GetValueOrDefault<TKey,TValue>;(System.Collections.Generic.IReadOnlyDictionary<TKey,TValue>,TKey,TValue);;Argument[2];ReturnValue;taint;df-generated |
@@ -3493,6 +3625,8 @@ summary
| System.Collections.Generic;Dictionary<TKey,TValue>;false;get_Keys;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual |
| System.Collections.Generic;Dictionary<TKey,TValue>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated |
| System.Collections.Generic;Dictionary<TKey,TValue>;false;get_Values;();;Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual |
| System.Collections.Generic;EqualityComparer<T>;false;Create;(System.Func<T,T,System.Boolean>,System.Func<T,System.Int32>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Collections.Generic;EqualityComparer<T>;false;Create;(System.Func<T,T,System.Boolean>,System.Func<T,System.Int32>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Collections.Generic;HashSet<T>+Enumerator;false;get_Current;();;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Generic;HashSet<T>;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.HashSet`1+Enumerator.Current];value;manual |
| System.Collections.Generic;HashSet<T>;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated |
@@ -3592,6 +3726,7 @@ summary
| System.Collections.Generic;List<T>;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this].Element;value;manual |
| System.Collections.Generic;List<T>;false;List;(System.Collections.Generic.IEnumerable<T>);;Argument[0].Element;Argument[this];taint;df-generated |
| System.Collections.Generic;List<T>;false;RemoveAll;(System.Predicate<T>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Collections.Generic;List<T>;false;Slice;(System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Generic;List<T>;false;Sort;(System.Comparison<T>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Collections.Generic;List<T>;false;TrueForAll;(System.Predicate<T>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Collections.Generic;List<T>;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated |
@@ -3599,6 +3734,7 @@ summary
| System.Collections.Generic;PriorityQueue<TElement,TPriority>+UnorderedItemsCollection;false;GetEnumerator;();;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Generic;PriorityQueue<TElement,TPriority>+UnorderedItemsCollection;false;get_SyncRoot;();;Argument[this];ReturnValue;value;df-generated |
| System.Collections.Generic;PriorityQueue<TElement,TPriority>;false;Dequeue;();;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Generic;PriorityQueue<TElement,TPriority>;false;DequeueEnqueue;(TElement,TPriority);;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Generic;PriorityQueue<TElement,TPriority>;false;EnqueueDequeue;(TElement,TPriority);;Argument[0];ReturnValue;taint;df-generated |
| System.Collections.Generic;PriorityQueue<TElement,TPriority>;false;EnqueueDequeue;(TElement,TPriority);;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Generic;PriorityQueue<TElement,TPriority>;false;EnqueueRange;(System.Collections.Generic.IEnumerable<System.ValueTuple<TElement,TPriority>>);;Argument[0].Element;Argument[this];taint;df-generated |
@@ -3714,6 +3850,7 @@ summary
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;AddRange<TDerived>;(System.Collections.Immutable.ImmutableArray<TDerived>);;Argument[0].Element;Argument[this].Element;value;manual |
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;AddRange<TDerived>;(System.Collections.Immutable.ImmutableArray<TDerived>+Builder);;Argument[0].Element;Argument[this].Element;value;manual |
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;AddRange<TDerived>;(TDerived[]);;Argument[0].Element;Argument[this].Element;value;manual |
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;DrainToImmutable;();;Argument[this];ReturnValue;taint;df-generated |
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;GetEnumerator;();;Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual |
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable<T>);;Argument[1].Element;Argument[this];taint;df-generated |
| System.Collections.Immutable;ImmutableArray<T>+Builder;false;MoveToImmutable;();;Argument[this];ReturnValue;taint;df-generated |
@@ -5416,14 +5553,23 @@ summary
| System.Diagnostics.Metrics;Measurement<T>;false;Measurement;(T,System.Collections.Generic.KeyValuePair<System.String,System.Object>[]);;Argument[1].Element;Argument[this];taint;df-generated |
| System.Diagnostics.Metrics;MeasurementCallback<T>;false;BeginInvoke;(System.Diagnostics.Metrics.Instrument,T,System.ReadOnlySpan<System.Collections.Generic.KeyValuePair<System.String,System.Object>>,System.Object,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<T>;(System.String,System.Func<System.Collections.Generic.IEnumerable<System.Diagnostics.Metrics.Measurement<T>>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<T>;(System.String,System.Func<System.Collections.Generic.IEnumerable<System.Diagnostics.Metrics.Measurement<T>>>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<T>;(System.String,System.Func<System.Diagnostics.Metrics.Measurement<T>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<T>;(System.String,System.Func<System.Diagnostics.Metrics.Measurement<T>>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<T>;(System.String,System.Func<T>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableCounter<T>;(System.String,System.Func<T>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<T>;(System.String,System.Func<System.Collections.Generic.IEnumerable<System.Diagnostics.Metrics.Measurement<T>>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<T>;(System.String,System.Func<System.Collections.Generic.IEnumerable<System.Diagnostics.Metrics.Measurement<T>>>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<T>;(System.String,System.Func<System.Diagnostics.Metrics.Measurement<T>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<T>;(System.String,System.Func<System.Diagnostics.Metrics.Measurement<T>>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<T>;(System.String,System.Func<T>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableGauge<T>;(System.String,System.Func<T>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<T>;(System.String,System.Func<System.Collections.Generic.IEnumerable<System.Diagnostics.Metrics.Measurement<T>>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<T>;(System.String,System.Func<System.Collections.Generic.IEnumerable<System.Diagnostics.Metrics.Measurement<T>>>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<T>;(System.String,System.Func<System.Diagnostics.Metrics.Measurement<T>>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<T>;(System.String,System.Func<System.Diagnostics.Metrics.Measurement<T>>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<T>;(System.String,System.Func<T>,System.String,System.String);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;Meter;false;CreateObservableUpDownCounter<T>;(System.String,System.Func<T>,System.String,System.String,System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.String,System.Object>>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;MeterListener;false;SetMeasurementEventCallback<T>;(System.Diagnostics.Metrics.MeasurementCallback<T>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;MeterListener;false;set_InstrumentPublished;(System.Action<System.Diagnostics.Metrics.Instrument,System.Diagnostics.Metrics.MeterListener>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics.Metrics;MeterListener;false;set_MeasurementsCompleted;(System.Action<System.Diagnostics.Metrics.Instrument,System.Object>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -5541,6 +5687,7 @@ summary
| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver<System.Collections.Generic.KeyValuePair<System.String,System.Object>>,System.Func<System.String,System.Object,System.Object,System.Boolean>,System.Action<System.Diagnostics.Activity,System.Object>,System.Action<System.Diagnostics.Activity,System.Object>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics;DiagnosticListener;false;Subscribe;(System.IObserver<System.Collections.Generic.KeyValuePair<System.String,System.Object>>,System.Predicate<System.String>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics;DiagnosticSource;false;StartActivity;(System.Diagnostics.Activity,System.Object);;Argument[0];ReturnValue;taint;df-generated |
| System.Diagnostics;DiagnosticSource;false;StartActivity<T>;(System.Diagnostics.Activity,T);;Argument[0];ReturnValue;taint;df-generated |
| System.Diagnostics;DistributedContextPropagator+PropagatorGetterCallback;false;BeginInvoke;(System.Object,System.String,System.String,System.Collections.Generic.IEnumerable<System.String>,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics;DistributedContextPropagator+PropagatorSetterCallback;false;BeginInvoke;(System.Object,System.String,System.String,System.AsyncCallback,System.Object);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics;DistributedContextPropagator;true;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
@@ -5674,18 +5821,6 @@ summary
| System.Diagnostics;TraceSource;false;get_Switch;();;Argument[this];ReturnValue;taint;df-generated |
| System.Diagnostics;TraceSource;false;remove_Initializing;(System.EventHandler<System.Diagnostics.InitializingTraceSourceEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Diagnostics;TraceSource;false;set_Switch;(System.Diagnostics.SourceSwitch);;Argument[0];Argument[this];taint;df-generated |
| System.Drawing.Imaging;PlayRecordCallback;false;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;add_BeginPrint;(System.Drawing.Printing.PrintEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;add_EndPrint;(System.Drawing.Printing.PrintEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;add_PrintPage;(System.Drawing.Printing.PrintPageEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;add_QueryPageSettings;(System.Drawing.Printing.QueryPageSettingsEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;remove_BeginPrint;(System.Drawing.Printing.PrintEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;remove_EndPrint;(System.Drawing.Printing.PrintEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;remove_PrintPage;(System.Drawing.Printing.PrintPageEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintDocument;false;remove_QueryPageSettings;(System.Drawing.Printing.QueryPageSettingsEventHandler);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintEventHandler;false;BeginInvoke;(System.Object,System.Drawing.Printing.PrintEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;PrintPageEventHandler;false;BeginInvoke;(System.Object,System.Drawing.Printing.PrintPageEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing.Printing;QueryPageSettingsEventHandler;false;BeginInvoke;(System.Object,System.Drawing.Printing.QueryPageSettingsEventArgs,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Color;false;FromName;(System.String);;Argument[0];ReturnValue;taint;df-generated |
| System.Drawing;Color;false;ToString;();;Argument[this];ReturnValue;taint;df-generated |
| System.Drawing;Color;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated |
@@ -5693,58 +5828,6 @@ summary
| System.Drawing;ColorConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated |
| System.Drawing;ColorTranslator;false;FromHtml;(System.String);;Argument[0];ReturnValue;taint;df-generated |
| System.Drawing;ColorTranslator;false;ToHtml;(System.Drawing.Color);;Argument[0];ReturnValue;taint;df-generated |
| System.Drawing;Graphics+DrawImageAbort;false;BeginInvoke;(System.IntPtr,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics+EnumerateMetafileProc;false;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback,System.AsyncCallback,System.Object);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics+EnumerateMetafileProc;false;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback,System.AsyncCallback,System.Object);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics+EnumerateMetafileProc;false;Invoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.PointF[],System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.PointF[],System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort,System.Int32);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.Point[],System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.Point[],System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort,System.Int32);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.Rectangle,System.Int32,System.Int32,System.Int32,System.Int32,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.Rectangle,System.Int32,System.Int32,System.Int32,System.Int32,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort,System.IntPtr);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.Rectangle,System.Single,System.Single,System.Single,System.Single,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;DrawImage;(System.Drawing.Image,System.Drawing.Rectangle,System.Single,System.Single,System.Single,System.Single,System.Drawing.GraphicsUnit,System.Drawing.Imaging.ImageAttributes,System.Drawing.Graphics+DrawImageAbort,System.IntPtr);;Argument[8];Argument[8].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point,System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point,System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point,System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF,System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF,System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF,System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF[],System.Drawing.Graphics+EnumerateMetafileProc);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF[],System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF[],System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF[],System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF[],System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.PointF[],System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point[],System.Drawing.Graphics+EnumerateMetafileProc);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point[],System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point[],System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point[],System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point[],System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Point[],System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Rectangle,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Rectangle,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Rectangle,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Rectangle,System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Rectangle,System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.Rectangle,System.Drawing.Rectangle,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.RectangleF,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.RectangleF,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.RectangleF,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.RectangleF,System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.RectangleF,System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Graphics;false;EnumerateMetafile;(System.Drawing.Imaging.Metafile,System.Drawing.RectangleF,System.Drawing.RectangleF,System.Drawing.GraphicsUnit,System.Drawing.Graphics+EnumerateMetafileProc,System.IntPtr,System.Drawing.Imaging.ImageAttributes);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Image+GetThumbnailImageAbort;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Drawing;Image;false;GetThumbnailImage;(System.Int32,System.Int32,System.Drawing.Image+GetThumbnailImageAbort,System.IntPtr);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Drawing;ImageAnimator;false;Animate;(System.Drawing.Image,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Drawing;ImageAnimator;false;StopAnimate;(System.Drawing.Image,System.EventHandler);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Drawing;PointConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated |
| System.Drawing;Rectangle;false;Inflate;(System.Drawing.Rectangle,System.Int32,System.Int32);;Argument[0];ReturnValue;taint;df-generated |
| System.Drawing;RectangleConverter;false;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);;Argument[2];ReturnValue;taint;df-generated |
@@ -7916,6 +7999,7 @@ summary
| System.Net.Http.Headers;WarningHeaderValue;false;get_Text;();;Argument[this];ReturnValue;taint;df-generated |
| System.Net.Http.Json;JsonContent;false;Create;(System.Object,System.Type,System.Net.Http.Headers.MediaTypeHeaderValue,System.Text.Json.JsonSerializerOptions);;Argument[3];ReturnValue;taint;df-generated |
| System.Net.Http.Json;JsonContent;false;Create<T>;(T,System.Net.Http.Headers.MediaTypeHeaderValue,System.Text.Json.JsonSerializerOptions);;Argument[2];ReturnValue;taint;df-generated |
| System.Net.Http.Metrics;HttpMetricsEnrichmentContext;false;AddCallback;(System.Net.Http.HttpRequestMessage,System.Action<System.Net.Http.Metrics.HttpMetricsEnrichmentContext>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[]);;Argument[0].Element;Argument[this];taint;df-generated |
| System.Net.Http;ByteArrayContent;false;ByteArrayContent;(System.Byte[],System.Int32,System.Int32);;Argument[0].Element;Argument[this];taint;df-generated |
| System.Net.Http;ByteArrayContent;false;CreateContentReadStreamAsync;();;Argument[this];ReturnValue;taint;df-generated |
@@ -8971,6 +9055,8 @@ summary
| System.Numerics;Vector3;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;df-generated |
| System.Numerics;Vector4;false;ToString;(System.String,System.IFormatProvider);;Argument[1];ReturnValue;taint;df-generated |
| System.Numerics;Vector;false;Abs<T>;(System.Numerics.Vector<T>);;Argument[0];ReturnValue;taint;df-generated |
| System.Numerics;Vector;false;WithElement<T>;(System.Numerics.Vector<T>,System.Int32,T);;Argument[0];ReturnValue;taint;df-generated |
| System.Numerics;Vector<T>;false;op_UnaryPlus;(System.Numerics.Vector<T>);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;AssemblyBuilder;false;DefineDynamicAssembly;(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;AssemblyBuilder;false;DefineDynamicAssembly;(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder>);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;AssemblyBuilder;false;DefineDynamicAssembly;(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.Collections.Generic.IEnumerable<System.Reflection.Emit.CustomAttributeBuilder>);;Argument[2].Element;ReturnValue;taint;df-generated |
@@ -9085,10 +9171,10 @@ summary
| System.Reflection.Emit;GenericTypeParameterBuilder;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;GenericTypeParameterBuilder;false;get_ReflectedType;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;GenericTypeParameterBuilder;false;get_UnderlyingSystemType;();;Argument[this];ReturnValue;value;df-generated |
| System.Reflection.Emit;ILGenerator;false;DeclareLocal;(System.Type);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;false;DeclareLocal;(System.Type);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;false;DeclareLocal;(System.Type,System.Boolean);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;false;DeclareLocal;(System.Type,System.Boolean);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;true;DeclareLocal;(System.Type);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;true;DeclareLocal;(System.Type);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;true;DeclareLocal;(System.Type,System.Boolean);;Argument[0];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ILGenerator;true;DeclareLocal;(System.Type,System.Boolean);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;LocalBuilder;false;get_LocalType;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;MethodBuilder;false;DefineGenericParameters;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated |
| System.Reflection.Emit;MethodBuilder;false;DefineGenericParameters;(System.String[]);;Argument[this];ReturnValue;taint;df-generated |
@@ -9171,10 +9257,10 @@ summary
| System.Reflection.Emit;ModuleBuilder;false;get_FullyQualifiedName;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ModuleBuilder;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ModuleBuilder;false;get_ScopeName;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ParameterBuilder;false;SetConstant;(System.Object);;Argument[0];Argument[this];taint;df-generated |
| System.Reflection.Emit;ParameterBuilder;false;SetCustomAttribute;(System.Reflection.ConstructorInfo,System.Byte[]);;Argument[1].Element;Argument[this];taint;df-generated |
| System.Reflection.Emit;ParameterBuilder;false;SetCustomAttribute;(System.Reflection.Emit.CustomAttributeBuilder);;Argument[0];Argument[this];taint;df-generated |
| System.Reflection.Emit;ParameterBuilder;false;get_Name;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;ParameterBuilder;true;SetConstant;(System.Object);;Argument[0];Argument[this];taint;df-generated |
| System.Reflection.Emit;ParameterBuilder;true;get_Name;();;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;PropertyBuilder;false;GetGetMethod;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;PropertyBuilder;false;GetSetMethod;(System.Boolean);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Emit;PropertyBuilder;false;SetConstant;(System.Object);;Argument[0];Argument[this];taint;df-generated |
@@ -9320,6 +9406,7 @@ summary
| System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFault;(System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFilter;(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Metadata.Ecma335;ExceptionRegionEncoder;false;AddFinally;(System.Int32,System.Int32,System.Int32,System.Int32);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Metadata.Ecma335;InstructionEncoder;false;Switch;(System.Int32);;Argument[this];ReturnValue;taint;df-generated |
| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedScalar;(System.Action<System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder>,System.Action<System.Reflection.Metadata.Ecma335.ScalarEncoder>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedScalar;(System.Action<System.Reflection.Metadata.Ecma335.CustomAttributeElementTypeEncoder>,System.Action<System.Reflection.Metadata.Ecma335.ScalarEncoder>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Reflection.Metadata.Ecma335;LiteralEncoder;false;TaggedVector;(System.Action<System.Reflection.Metadata.Ecma335.CustomAttributeArrayTypeEncoder>,System.Action<System.Reflection.Metadata.Ecma335.VectorEncoder>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -10658,6 +10745,7 @@ summary
| System.Text.Json.Serialization.Metadata;JsonTypeInfo<T>;false;get_CreateObject;();;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json.Serialization.Metadata;JsonTypeInfo<T>;false;get_SerializeHandler;();;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json.Serialization.Metadata;JsonTypeInfo<T>;false;set_CreateObject;(System.Func<T>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Text.Json.Serialization.Metadata;JsonTypeInfoResolver;false;WithAddedModifier;(System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver,System.Action<System.Text.Json.Serialization.Metadata.JsonTypeInfo>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[0];Argument[this];taint;df-generated |
| System.Text.Json.Serialization;JsonSerializerContext;false;JsonSerializerContext;(System.Text.Json.JsonSerializerOptions);;Argument[this];Argument[0];taint;df-generated |
| System.Text.Json.Serialization;JsonSerializerContext;false;get_Options;();;Argument[this];ReturnValue;taint;df-generated |
@@ -10684,6 +10772,7 @@ summary
| System.Text.Json;JsonElement;false;TryParseValue;(System.Text.Json.Utf8JsonReader,System.Nullable<System.Text.Json.JsonElement>);;Argument[0];ReturnValue;taint;df-generated |
| System.Text.Json;JsonElement;false;get_Item;(System.Int32);;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json;JsonEncodedText;false;ToString;();;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json;JsonEncodedText;false;get_Value;();;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json;JsonException;false;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[this];Argument[0];taint;df-generated |
| System.Text.Json;JsonException;false;JsonException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);;Argument[0];Argument[this];taint;df-generated |
| System.Text.Json;JsonException;false;JsonException;(System.String);;Argument[0];Argument[this];taint;df-generated |
@@ -10693,6 +10782,7 @@ summary
| System.Text.Json;JsonException;false;get_Message;();;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json;JsonReaderState;false;JsonReaderState;(System.Text.Json.JsonReaderOptions);;Argument[0];Argument[this];taint;df-generated |
| System.Text.Json;JsonReaderState;false;get_Options;();;Argument[this];ReturnValue;taint;df-generated |
| System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Text.Json.Serialization.Metadata.JsonTypeInfo);;Argument[0];ReturnValue;taint;df-generated |
| System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Type,System.Text.Json.JsonSerializerOptions);;Argument[0];ReturnValue;taint;df-generated |
| System.Text.Json;JsonSerializer;false;Deserialize;(System.Text.Json.Utf8JsonReader,System.Type,System.Text.Json.Serialization.JsonSerializerContext);;Argument[0];ReturnValue;taint;df-generated |
| System.Text.Json;JsonSerializer;false;Deserialize<TValue>;(System.Text.Json.Utf8JsonReader,System.Text.Json.JsonSerializerOptions);;Argument[0];ReturnValue;taint;df-generated |
@@ -11161,6 +11251,9 @@ summary
| System.Threading.Tasks;Parallel;false;For<TLocal>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func<TLocal>,System.Func<System.Int64,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal>,System.Action<TLocal>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;For<TLocal>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func<TLocal>,System.Func<System.Int64,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal>,System.Action<TLocal>);;Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;For<TLocal>;(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func<TLocal>,System.Func<System.Int64,System.Threading.Tasks.ParallelLoopState,TLocal,TLocal>,System.Action<TLocal>);;Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;ForAsync<T>;(T,T,System.Func<T,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;ForAsync<T>;(T,T,System.Threading.CancellationToken,System.Func<T,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;ForAsync<T>;(T,T,System.Threading.Tasks.ParallelOptions,System.Func<T,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;ForEach<TSource,TLocal>;(System.Collections.Concurrent.OrderablePartitioner<TSource>,System.Func<TLocal>,System.Func<TSource,System.Threading.Tasks.ParallelLoopState,System.Int64,TLocal,TLocal>,System.Action<TLocal>);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;ForEach<TSource,TLocal>;(System.Collections.Concurrent.OrderablePartitioner<TSource>,System.Func<TLocal>,System.Func<TSource,System.Threading.Tasks.ParallelLoopState,System.Int64,TLocal,TLocal>,System.Action<TLocal>);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;Parallel;false;ForEach<TSource,TLocal>;(System.Collections.Concurrent.OrderablePartitioner<TSource>,System.Func<TLocal>,System.Func<TSource,System.Threading.Tasks.ParallelLoopState,System.Int64,TLocal,TLocal>,System.Action<TLocal>);;Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
@@ -11622,6 +11715,7 @@ summary
| System.Threading.Tasks;TaskFactory<TResult>;false;get_Scheduler;();;Argument[this];ReturnValue;taint;df-generated |
| System.Threading.Tasks;TaskScheduler;false;add_UnobservedTaskException;(System.EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;TaskScheduler;false;remove_UnobservedTaskException;(System.EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs>);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;TaskToAsyncResult;false;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System.Threading.Tasks;UnobservedTaskExceptionEventArgs;false;UnobservedTaskExceptionEventArgs;(System.AggregateException);;Argument[0];Argument[this];taint;df-generated |
| System.Threading.Tasks;UnobservedTaskExceptionEventArgs;false;get_Exception;();;Argument[this];ReturnValue;taint;df-generated |
| System.Threading.Tasks;ValueTask;false;AsTask;();;Argument[this];ReturnValue;taint;df-generated |
@@ -13867,6 +13961,7 @@ summary
| System;Func<T1,T2,TResult>;false;BeginInvoke;(T1,T2,System.AsyncCallback,System.Object);;Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System;Func<T,TResult>;false;BeginInvoke;(T,System.AsyncCallback,System.Object);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System;Func<TResult>;false;BeginInvoke;(System.AsyncCallback,System.Object);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System;GC;false;RegisterNoGCRegionCallback;(System.Int64,System.Action);;Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated |
| System;Half;false;BitDecrement;(System.Half);;Argument[0];ReturnValue;taint;df-generated |
| System;Half;false;BitIncrement;(System.Half);;Argument[0];ReturnValue;taint;df-generated |
| System;Half;false;MaxMagnitudeNumber;(System.Half,System.Half);;Argument[0];ReturnValue;taint;df-generated |
@@ -14180,6 +14275,7 @@ summary
| System;String;false;TrimStart;(System.Char[]);;Argument[this];ReturnValue;taint;manual |
| System;StringNormalizationExtensions;false;Normalize;(System.String);;Argument[0];ReturnValue;taint;df-generated |
| System;StringNormalizationExtensions;false;Normalize;(System.String,System.Text.NormalizationForm);;Argument[0];ReturnValue;taint;df-generated |
| System;TimeProvider;true;CreateTimer;(System.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan);;Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System;TimeSpan;false;op_UnaryPlus;(System.TimeSpan);;Argument[0];ReturnValue;taint;df-generated |
| System;TimeZone;true;ToLocalTime;(System.DateTime);;Argument[0];ReturnValue;taint;df-generated |
| System;TimeZone;true;ToUniversalTime;(System.DateTime);;Argument[0];ReturnValue;taint;df-generated |

View File

@@ -1,8 +1,9 @@
import shared.FlowSummaries
private import semmle.code.csharp.dataflow.internal.ExternalFlow
class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable instanceof SummarizedCallable
{
class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable {
IncludeFilteredSummarizedCallable() { exists(this) }
/**
* Holds if flow is propagated between `input` and `output` and
* if there is no summary for a callable in a `base` class or interface
@@ -14,7 +15,7 @@ class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable instan
super.propagatesFlow(input, output, preservesValue) and
not exists(IncludeSummarizedCallable rsc |
isBaseCallableOrPrototype(rsc) and
rsc.(SummarizedCallable).propagatesFlow(input, output, preservesValue) and
rsc.propagatesFlow(input, output, preservesValue) and
this.(UnboundCallable).overridesOrImplementsUnbound(rsc)
)
}

View File

@@ -1,8 +1,8 @@
semmle-extractor-options: /nostdlib /noconfig
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Dapper/2.0.90/Dapper.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Dapper/2.1.24/Dapper.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/ServiceStack/8.0.0/ServiceStack.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/ServiceStack.OrmLite.SqlServer/8.0.0/ServiceStack.OrmLite.SqlServer.csproj
semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs
semmle-extractor-options: ${testdir}/../../../resources/stubs/EntityFramework.cs

View File

@@ -1,5 +1,6 @@
import semmle.code.csharp.frameworks.EntityFramework::EntityFramework
import csharp
import shared.FlowSummaries
import semmle.code.csharp.frameworks.EntityFramework::EntityFramework
import semmle.code.csharp.dataflow.internal.ExternalFlow as ExternalFlow
private class IncludeEFSummarizedCallable extends IncludeSummarizedCallable instanceof EFSummarizedCallable

View File

@@ -1 +1 @@
semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:../../../resources/stubs/NHibernate/5.4.6/NHibernate.csproj
semmle-extractor-options: /nostdlib /noconfig --load-sources-from-project:../../../resources/stubs/NHibernate/5.4.7/NHibernate.csproj

View File

@@ -1,3 +1,3 @@
semmle-extractor-options: /nostdlib /noconfig
semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack/6.2.0/ServiceStack.csproj
semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack.OrmLite.SqlServer/6.2.0/ServiceStack.OrmLite.SqlServer.csproj
semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack/8.0.0/ServiceStack.csproj
semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/ServiceStack.OrmLite.SqlServer/8.0.0/ServiceStack.OrmLite.SqlServer.csproj

View File

@@ -1,2 +1,2 @@
semmle-extractor-options: /nostdlib /noconfig
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.8.5/System.Data.SqlClient.csproj

View File

@@ -1,2 +1,2 @@
semmle-extractor-options: /nostdlib /noconfig
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.8.5/System.Data.SqlClient.csproj

View File

@@ -1,3 +1,3 @@
semmle-extractor-options: /nostdlib /noconfig
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/System.Data.SqlClient/4.8.3/System.Data.SqlClient.csproj
semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/System.Data.SqlClient/4.8.5/System.Data.SqlClient.csproj
semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs

Some files were not shown because too many files have changed in this diff Show More