mirror of
https://github.com/github/codeql.git
synced 2025-12-21 19:26:31 +01:00
C#: Implement new data flow interface
This commit is contained in:
@@ -4,7 +4,7 @@ private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
|
||||
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
|
||||
private import codeql.dataflow.internal.DataFlowImplConsistency
|
||||
|
||||
private module Input implements InputSig<CsharpDataFlow> {
|
||||
private module Input implements InputSig<Location, CsharpDataFlow> {
|
||||
private import CsharpDataFlow
|
||||
|
||||
private predicate isStaticAssignable(Assignable a) { a.(Modifiable).isStatic() }
|
||||
@@ -99,4 +99,4 @@ private module Input implements InputSig<CsharpDataFlow> {
|
||||
}
|
||||
}
|
||||
|
||||
import MakeConsistency<CsharpDataFlow, CsharpTaintTracking, Input>
|
||||
import MakeConsistency<Location, CsharpDataFlow, CsharpTaintTracking, Input>
|
||||
|
||||
@@ -8,6 +8,6 @@ import csharp
|
||||
module DataFlow {
|
||||
private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
|
||||
private import codeql.dataflow.DataFlow
|
||||
import DataFlowMake<CsharpDataFlow>
|
||||
import DataFlowMake<Location, CsharpDataFlow>
|
||||
import semmle.code.csharp.dataflow.internal.DataFlowImpl1
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ module TaintTracking {
|
||||
private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
|
||||
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
|
||||
private import codeql.dataflow.TaintTracking
|
||||
import TaintFlowMake<CsharpDataFlow, CsharpTaintTracking>
|
||||
import TaintFlowMake<Location, CsharpDataFlow, CsharpTaintTracking>
|
||||
import semmle.code.csharp.dataflow.internal.tainttracking1.TaintTrackingImpl
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
private import semmle.code.csharp.Location
|
||||
private import DataFlowImplSpecific
|
||||
private import codeql.dataflow.internal.DataFlowImpl
|
||||
import MakeImpl<CsharpDataFlow>
|
||||
import MakeImpl<Location, CsharpDataFlow>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
private import semmle.code.csharp.Location
|
||||
private import DataFlowImplSpecific
|
||||
private import codeql.dataflow.internal.DataFlowImplCommon
|
||||
import MakeImplCommon<CsharpDataFlow>
|
||||
import MakeImplCommon<Location, CsharpDataFlow>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
* Provides C#-specific definitions for use in the data flow library.
|
||||
*/
|
||||
|
||||
private import semmle.code.csharp.Location
|
||||
private import codeql.dataflow.DataFlow
|
||||
|
||||
module Private {
|
||||
@@ -13,7 +14,7 @@ module Public {
|
||||
import DataFlowPublic
|
||||
}
|
||||
|
||||
module CsharpDataFlow implements InputSig {
|
||||
module CsharpDataFlow implements InputSig<Location> {
|
||||
import Private
|
||||
import Public
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ class Node extends TNode {
|
||||
* For more information, see
|
||||
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
|
||||
*/
|
||||
predicate hasLocationInfo(
|
||||
deprecated predicate hasLocationInfo(
|
||||
string filepath, int startline, int startcolumn, int endline, int endcolumn
|
||||
) {
|
||||
this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
|
||||
|
||||
@@ -12,7 +12,7 @@ private import DataFlowImplSpecific::Public
|
||||
private import semmle.code.csharp.Unification
|
||||
private import semmle.code.csharp.dataflow.internal.ExternalFlow
|
||||
|
||||
module Input implements InputSig<DataFlowImplSpecific::CsharpDataFlow> {
|
||||
module Input implements InputSig<Location, DataFlowImplSpecific::CsharpDataFlow> {
|
||||
class SummarizedCallableBase = UnboundCallable;
|
||||
|
||||
ArgumentPosition callbackSelfParameterPosition() { result.isDelegateSelf() }
|
||||
@@ -80,7 +80,7 @@ module Input implements InputSig<DataFlowImplSpecific::CsharpDataFlow> {
|
||||
}
|
||||
}
|
||||
|
||||
private import Make<DataFlowImplSpecific::CsharpDataFlow, Input> as Impl
|
||||
private import Make<Location, DataFlowImplSpecific::CsharpDataFlow, Input> as Impl
|
||||
|
||||
private module TypesInput implements Impl::Private::TypesInputSig {
|
||||
DataFlowType getSyntheticGlobalType(Impl::Private::SyntheticGlobal sg) {
|
||||
@@ -154,7 +154,7 @@ private module StepsInput implements Impl::Private::StepsInputSig {
|
||||
}
|
||||
|
||||
module SourceSinkInterpretationInput implements
|
||||
Impl::Private::External::SourceSinkInterpretationInputSig<Location>
|
||||
Impl::Private::External::SourceSinkInterpretationInputSig
|
||||
{
|
||||
private import csharp as Cs
|
||||
|
||||
@@ -252,7 +252,7 @@ module Private {
|
||||
|
||||
module External {
|
||||
import Impl::Private::External
|
||||
import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput>
|
||||
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
|
||||
}
|
||||
|
||||
private module SummaryComponentInternal = Impl::Private::SummaryComponent;
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
* Provides C#-specific definitions for use in the taint tracking library.
|
||||
*/
|
||||
|
||||
private import semmle.code.csharp.Location
|
||||
private import codeql.dataflow.TaintTracking
|
||||
private import DataFlowImplSpecific
|
||||
|
||||
module CsharpTaintTracking implements InputSig<CsharpDataFlow> {
|
||||
module CsharpTaintTracking implements InputSig<Location, CsharpDataFlow> {
|
||||
import TaintTrackingPrivate
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ private import semmle.code.csharp.dataflow.internal.DataFlowImplSpecific
|
||||
private import semmle.code.csharp.dataflow.internal.TaintTrackingImplSpecific
|
||||
private import internal.InlineExpectationsTestImpl
|
||||
|
||||
private module FlowTestImpl implements InputSig<CsharpDataFlow> {
|
||||
private module FlowTestImpl implements InputSig<Location, CsharpDataFlow> {
|
||||
predicate defaultSource(DataFlow::Node source) {
|
||||
source.asExpr().(MethodCall).getTarget().getUndecoratedName() = ["Source", "Taint"]
|
||||
}
|
||||
@@ -35,4 +35,4 @@ private module FlowTestImpl implements InputSig<CsharpDataFlow> {
|
||||
}
|
||||
}
|
||||
|
||||
import InlineFlowTestMake<CsharpDataFlow, CsharpTaintTracking, Impl, FlowTestImpl>
|
||||
import InlineFlowTestMake<Location, CsharpDataFlow, CsharpTaintTracking, Impl, FlowTestImpl>
|
||||
|
||||
Reference in New Issue
Block a user