File tree Expand file tree Collapse file tree 4 files changed +14
-6
lines changed
src/semmle/javascript/frameworks
test/library-tests/ModuleImportNodes Expand file tree Collapse file tree 4 files changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -13,7 +13,10 @@ module NodeJSLib {
1313 */
1414 private class ImplicitProcessImport extends DataFlow:: ModuleImportNode:: Range {
1515 ImplicitProcessImport ( ) {
16- this = DataFlow:: globalVarRef ( "process" ) and
16+ exists ( GlobalVariable process |
17+ process .getName ( ) = "process" and
18+ this = DataFlow:: exprNode ( process .getAnAccess ( ) )
19+ ) and
1720 getTopLevel ( ) instanceof NodeModule
1821 }
1922
@@ -24,9 +27,17 @@ module NodeJSLib {
2427 * Gets a reference to the 'process' object.
2528 */
2629 DataFlow:: SourceNode process ( ) {
30+ result = DataFlow:: globalVarRef ( "process" ) or
2731 result = DataFlow:: moduleImport ( "process" )
2832 }
2933
34+ /**
35+ * Gets a reference to a member of the 'process' object.
36+ */
37+ private DataFlow:: SourceNode processMember ( string member ) {
38+ result = process ( ) .getAPropertyRead ( member )
39+ }
40+
3041 /**
3142 * Holds if `call` is an invocation of `http.createServer` or `https.createServer`.
3243 */
@@ -365,7 +376,7 @@ module NodeJSLib {
365376 ProcessTermination ( ) {
366377 this = DataFlow:: moduleImport ( "exit" ) .getAnInvocation ( )
367378 or
368- this = DataFlow :: moduleMember ( "process" , "exit" ) .getACall ( )
379+ this = processMember ( "exit" ) .getACall ( )
369380 }
370381 }
371382
Original file line number Diff line number Diff line change 1616| process2.js:1:1:1:13 | require('fs') | fs |
1717| process2.js:2:10:2:16 | process | process |
1818| process.js:1:10:1:27 | require('process') | process |
19- | process.js:2:10:2:23 | global.process | process |
Original file line number Diff line number Diff line change 11var p1 = require ( 'process' ) ;
2- var p2 = global . process ;
2+ var p2 = global . process ; // not detected yet
Original file line number Diff line number Diff line change @@ -44,7 +44,6 @@ test_moduleImport
4444| net | client1.ts:6:9:6:11 | net |
4545| process | process2.js:2:10:2:16 | process |
4646| process | process.js:1:10:1:27 | require('process') |
47- | process | process.js:2:10:2:23 | global.process |
4847test_moduleMember
4948| electron | BrowserWindow | destructuringES6.js:1:10:1:22 | BrowserWindow |
5049| electron | BrowserWindow | destructuringRequire.js:1:9:1:21 | BrowserWindow |
@@ -78,7 +77,6 @@ test_ModuleImportNode_getPath
7877| process2.js:1:1:1:13 | require('fs') | fs |
7978| process2.js:2:10:2:16 | process | process |
8079| process.js:1:10:1:27 | require('process') | process |
81- | process.js:2:10:2:23 | global.process | process |
8280test_ModuleImportNode_getAMethodCall
8381| amd1.js:1:25:1:26 | fs | amd1.js:2:3:2:29 | fs.read ... a.txt") |
8482| amd2.js:2:12:2:24 | require('fs') | amd2.js:3:3:3:29 | fs.read ... a.txt") |
You can’t perform that action at this time.
0 commit comments