qtil
advanced-security/qtil-ruby 0.0.2
Search

Module DataFlowPrivate

Import path

import codeql.ruby.dataflow.internal.DataFlowPrivate

Imports

ArgumentNodes
Cached

A collection of cached types and predicates to be evaluated in the same stage.

OutNodes
ParameterNodes
ReturnNodes

Predicates

accessPathLimit
additionalLambdaFlowStep

Extra data-flow steps needed for lambda flow analysis.

allowParameterReturnInSelf

Holds if flow is allowed to pass from parameter p and back to itself as a side-effect, resulting in a summary from p to itself.

clearsContent

Holds if values stored inside content c are cleared at node n. For example, any value stored inside f is cleared at the pre-update node associated with x in x.f = newValue.

compatibleTypes

Holds if t1 and t2 are compatible, that is, whether data can flow from a node of type t1 to a node of type t2.

expectsContent

Holds if the value that is being tracked is expected to be stored inside content c at node n.

forceHighPrecision

Holds if access paths with c at their head always should be tracked at high precision. This disables adaptive access path precision for such access paths.

getAPostUpdateNodeForArg

Gets a node for which to construct a post-update node for argument arg.

getContentApprox

Gets an approximated value for content c.

getNodeType

Gets the type of n used for type pruning.

isArgumentNode

Holds if arg is an ArgumentNode of c with position pos.

isNonConstantExpr

Holds if n is not a constant expression.

isParameterNode

Holds if p is a ParameterNode of c with position pos.

isUnreachableInCall

Holds if the node n is unreachable when the call context is call.

jumpStep
lambdaCall

Holds if call is a lambda call of kind kind where receiver is the lambda expression.

lambdaCreation

Holds if creation is an expression that creates a lambda of kind kind for c.

nodeGetEnclosingCallable

Gets the callable in which this node occurs.

nodeIsHidden

Holds if n should be hidden from path explanations.

ppReprType

Gets a string representation of a DataFlowType.

readStep

Holds if there is a read step of content c from node1 to node2.

storeStep

Holds if data can flow from node1 to node2 via an assignment to content c.

storeStepCommon

Subset of storeStep that should be shared with type-tracking.

Classes

ArgumentNode

A data-flow node that represents a call argument.

CastNode

A node that performs a type cast.

ContentApprox

An approximated Content.

DataFlowType
NodeImpl
OutNode

A data-flow node that represents the output of a call.

PostUpdateNodeImpl
ReturnNode

A data-flow node that represents a value returned by a callable.

ReturningNode

A data-flow node that represents a value syntactically returned by a callable.

ReturningStatementNode

A value returning statement, viewed as a node in a data flow graph.

SsaDefinitionExtNode

An SSA definition, viewed as a node in a data flow graph.

SsaSelfDefinitionNode

An SSA definition for a self variable.

SummaryNode

A data-flow node used to model flow summaries.

Unit

The trivial type with a single element.

Datatypes

Modules

LocalFlow

Provides predicates related to local data flow.

Aliases

DataFlowExpr

A control-flow node that wraps an AST expression.