Merge pull request #15853 from hvitved/dataflow/get-location

Data flow: Replace `hasLocationInfo` with `getLocation`
This commit is contained in:
Tom Hvitved
2024-03-18 20:21:46 +01:00
committed by GitHub
96 changed files with 419 additions and 277 deletions

View File

@@ -8,6 +8,6 @@ import java
module DataFlow {
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
private import codeql.dataflow.DataFlow
import DataFlowMake<JavaDataFlow>
import DataFlowMake<Location, JavaDataFlow>
import semmle.code.java.dataflow.internal.DataFlowImpl1
}

View File

@@ -12,6 +12,6 @@ module TaintTracking {
private import semmle.code.java.dataflow.internal.DataFlowImplSpecific
private import semmle.code.java.dataflow.internal.TaintTrackingImplSpecific
private import codeql.dataflow.TaintTracking
import TaintFlowMake<JavaDataFlow, JavaTaintTracking>
import TaintFlowMake<Location, JavaDataFlow, JavaTaintTracking>
import semmle.code.java.dataflow.internal.tainttracking1.TaintTrackingImpl
}

View File

@@ -1,3 +1,4 @@
private import DataFlowImplSpecific
private import codeql.dataflow.internal.DataFlowImpl
import MakeImpl<JavaDataFlow>
private import semmle.code.Location
import MakeImpl<Location, JavaDataFlow>

View File

@@ -1,3 +1,4 @@
private import DataFlowImplSpecific
private import semmle.code.Location
private import codeql.dataflow.internal.DataFlowImplCommon
import MakeImplCommon<JavaDataFlow>
import MakeImplCommon<Location, JavaDataFlow>

View File

@@ -8,10 +8,10 @@ private import DataFlowImplSpecific
private import TaintTrackingImplSpecific
private import codeql.dataflow.internal.DataFlowImplConsistency
private module Input implements InputSig<JavaDataFlow> {
private module Input implements InputSig<Location, JavaDataFlow> {
predicate argHasPostUpdateExclude(JavaDataFlow::ArgumentNode n) {
n.getType() instanceof ImmutableType or n instanceof Public::ImplicitVarargsArray
}
}
module Consistency = MakeConsistency<JavaDataFlow, JavaTaintTracking, Input>;
module Consistency = MakeConsistency<Location, JavaDataFlow, JavaTaintTracking, Input>;

View File

@@ -2,6 +2,7 @@
* Provides Java-specific definitions for use in the data flow library.
*/
private import semmle.code.Location
private import codeql.dataflow.DataFlow
module Private {
@@ -13,7 +14,7 @@ module Public {
import DataFlowUtil
}
module JavaDataFlow implements InputSig {
module JavaDataFlow implements InputSig<Location> {
import Private
import Public

View File

@@ -163,7 +163,7 @@ module Public {
* 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)

View File

@@ -26,7 +26,7 @@ private string positionToString(int pos) {
if pos = -1 then result = "this" else result = pos.toString()
}
module Input implements InputSig<DataFlowImplSpecific::JavaDataFlow> {
module Input implements InputSig<Location, DataFlowImplSpecific::JavaDataFlow> {
class SummarizedCallableBase = FlowSummary::SummarizedCallableBase;
ArgumentPosition callbackSelfParameterPosition() { result = -1 }
@@ -85,7 +85,7 @@ module Input implements InputSig<DataFlowImplSpecific::JavaDataFlow> {
}
}
private import Make<DataFlowImplSpecific::JavaDataFlow, Input> as Impl
private import Make<Location, DataFlowImplSpecific::JavaDataFlow, Input> as Impl
private module TypesInput implements Impl::Private::TypesInputSig {
DataFlowType getSyntheticGlobalType(Impl::Private::SyntheticGlobal sg) {
@@ -186,7 +186,7 @@ private predicate correspondingKotlinParameterDefaultsArgSpec(
}
module SourceSinkInterpretationInput implements
Impl::Private::External::SourceSinkInterpretationInputSig<Location>
Impl::Private::External::SourceSinkInterpretationInputSig
{
private import java as J
@@ -294,7 +294,7 @@ module Private {
module External {
import Impl::Private::External
import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput>
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
/**
* Holds if an external flow summary exists for `c` with input specification

View File

@@ -4,7 +4,8 @@
private import codeql.dataflow.TaintTracking
private import DataFlowImplSpecific
private import semmle.code.Location
module JavaTaintTracking implements InputSig<JavaDataFlow> {
module JavaTaintTracking implements InputSig<Location, JavaDataFlow> {
import TaintTrackingUtil
}