qtil
advanced-security/qtil-ruby 0.0.2
Search

Module ApiGraphModelsSpecific

Contains the language-specific part of the models-as-data implementation found in ApiGraphModels.qll.

It must export the following members:

class Unit // a unit type
module AccessPathSyntax // a re-export of the AccessPathSyntax module
class InvokeNode // a type representing an invocation connected to the API graph
module API // the API graph module
predicate isPackageUsed(string package)
API::Node getExtraNodeFromPath(string package, string type, string path, int n)
API::Node getExtraSuccessorFromNode(API::Node node, AccessPathToken token)
API::Node getExtraSuccessorFromInvoke(InvokeNode node, AccessPathToken token)
predicate invocationMatchesExtraCallSiteFilter(InvokeNode invoke, AccessPathToken token)
InvokeNode getAnInvocationOf(API::Node node)
predicate isExtraValidTokenNameInIdentifyingAccessPath(string name)
predicate isExtraValidNoArgumentTokenInIdentifyingAccessPath(string name)
predicate isExtraValidTokenArgumentInIdentifyingAccessPath(string name, string argument)

Import path

import codeql.ruby.frameworks.data.internal.ApiGraphModelsSpecific

Imports

ApiGraphs

Provides an implementation of API graphs, which are an abstract representation of the API surface used and/or defined by a code base.

Predicates

getAnInvocationOf

Gets the InvokeNode corresponding to a specific invocation of node.

getExtraNodeFromPath

Gets a Ruby-specific interpretation of the (type, path) tuple after resolving the first n access path tokens.

getExtraNodeFromType

Gets a Ruby-specific interpretation of the given type.

getExtraSuccessorFromInvoke

Gets a Ruby-specific API graph successor of node reachable by resolving token.

getExtraSuccessorFromNode

Gets a Ruby-specific API graph successor of node reachable by resolving token.

hasImplicitTypeModel

Holds if type can be obtained from an instance of otherType due to language semantics modeled by getExtraNodeFromType.

invocationMatchesExtraCallSiteFilter

Holds if invoke matches the Ruby-specific call site filter in token.

isExtraValidNoArgumentTokenInIdentifyingAccessPath

Holds if name is a valid name for an access path token with no arguments, occurring in an identifying access path.

isExtraValidTokenArgumentInIdentifyingAccessPath

Holds if argument is a valid argument to an access path token with the given name, occurring in an identifying access path.

isExtraValidTokenNameInIdentifyingAccessPath

Holds if name is a valid name for an access path token in the identifying access path.

isTypeUsed

Classes

InvokeNode

An API graph node representing a method call.

Modules

Aliases

AccessPathSyntax

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.

DataFlow

Provides classes for performing local (intra-procedural) and global (inter-procedural) data flow analyses.

Unit

The trivial type with a single element.