Skip to content

Commit c40ef05

Browse files
author
Max Schaefer
committed
JavaScript: Broaden scope of imports considered relevant to portals.
Previously, we only considered an import relevant to portals if the path it imported was declared as a dependency. This falls down for deep imports where a specific module inside the package is imported rather than the default entry point, for imports of built-in modules like `fs`, and in cases where a developer simply forgets to declare a dependency. So instead we now consider all imports relevant whose path does not start with a dot or a slash.
1 parent 8b4b578 commit c40ef05

File tree

1 file changed

+2
-2
lines changed
  • javascript/ql/src/semmle/javascript/dataflow

1 file changed

+2
-2
lines changed

javascript/ql/src/semmle/javascript/dataflow/Portals.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,15 @@ private module NpmPackagePortal {
181181
predicate imports(DataFlow::SourceNode imp, string pkgName) {
182182
exists(NPMPackage pkg |
183183
imp = getAModuleImport(pkg, pkgName) and
184-
pkg.declaresDependency(pkgName, _)
184+
pkgName.regexpMatch("[^./].*")
185185
)
186186
}
187187

188188
/** Holds if `imp` imports `member` from package `pkgName`. */
189189
predicate imports(DataFlow::SourceNode imp, string pkgName, string member) {
190190
exists(NPMPackage pkg |
191191
imp = getAModuleMemberImport(pkg, pkgName, member) and
192-
pkg.declaresDependency(pkgName, _)
192+
pkgName.regexpMatch("[^./].*")
193193
)
194194
}
195195

0 commit comments

Comments
 (0)