diff --git a/ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll b/ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll index 083e401f635..d1396f86f81 100644 --- a/ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll +++ b/ql/src/semmle/go/dataflow/internal/DataFlowUtil.qll @@ -368,8 +368,10 @@ class ParameterNode extends SsaNode { class ReceiverNode extends ParameterNode { override ReceiverVariable parm; + /** Gets the receiver variable this node initializes. */ ReceiverVariable asReceiverVariable() { result = parm } + /** Holds if this node initializes the receiver variable of `m`. */ predicate isReceiverOf(MethodDecl m) { parm.isReceiverOf(m) } } diff --git a/ql/src/semmle/go/dataflow/internal/TaintTrackingUtil.qll b/ql/src/semmle/go/dataflow/internal/TaintTrackingUtil.qll index b4dd0a007ec..e1ad7eaacb5 100644 --- a/ql/src/semmle/go/dataflow/internal/TaintTrackingUtil.qll +++ b/ql/src/semmle/go/dataflow/internal/TaintTrackingUtil.qll @@ -1,3 +1,7 @@ +/** + * Provides Go-specific definitions for use in the taint-tracking library. + */ + private import go /** diff --git a/ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll b/ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll index c05de75bfab..e8b828f5b3e 100644 --- a/ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll +++ b/ql/src/semmle/go/dataflow/internal/tainttracking1/TaintTrackingImpl.qll @@ -1,3 +1,13 @@ +/** + * Provides an implementation of global (interprocedural) taint tracking. + * This file re-exports the local (intraprocedural) taint-tracking analysis + * from `TaintTrackingParameter::Public` and adds a global analysis, mainly + * exposed through the `Configuration` class. For some languages, this file + * exists in several identical copies, allowing queries to use multiple + * `Configuration` classes that depend on each other without introducing + * mutual recursion among those configurations. + */ + import TaintTrackingParameter::Public private import TaintTrackingParameter::Private