specialize module.createRequire support to ES2015 modules

This commit is contained in:
Erik Krogh Kristensen
2020-08-21 14:14:05 +02:00
parent 1e65ed2228
commit bbbb0a2c5e

View File

@@ -163,7 +163,16 @@ private predicate isRequire(DataFlow::Node nd) {
or
isRequire(nd.getAPredecessor())
or
nd = DataFlow::moduleMember("module", "createRequire").getACall()
// `import { createRequire } from 'module';` support.
// specialized to ES2015 modules to avoid recursion in the `DataFlow::moduleImport()` predicate.
exists(ImportDeclaration imp | imp.getImportedPath().getValue() = "module" |
nd =
imp
.getImportedModuleNode()
.(DataFlow::SourceNode)
.getAPropertyRead("createRequire")
.getACall()
)
}
/**