Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4100ab2

Browse files
author
Max Schaefer
committed
JavaScript: Add another test to show that flow through functions still works.
1 parent 1c04c07 commit 4100ab2

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

javascript/ql/test/query-tests/Security/CWE-078/UnsafeShellCommandConstruction.expected

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,12 @@ nodes
185185
| lib/lib.js:330:9:330:9 | x |
186186
| lib/lib.js:336:22:336:31 | id("test") |
187187
| lib/lib.js:336:22:336:31 | id("test") |
188+
| lib/lib.js:339:39:339:39 | n |
189+
| lib/lib.js:339:39:339:39 | n |
190+
| lib/lib.js:340:22:340:26 | id(n) |
191+
| lib/lib.js:340:22:340:26 | id(n) |
192+
| lib/lib.js:340:22:340:26 | id(n) |
193+
| lib/lib.js:340:25:340:25 | n |
188194
edges
189195
| lib/lib2.js:3:28:3:31 | name | lib/lib2.js:4:22:4:25 | name |
190196
| lib/lib2.js:3:28:3:31 | name | lib/lib2.js:4:22:4:25 | name |
@@ -405,6 +411,12 @@ edges
405411
| lib/lib.js:329:13:329:13 | x | lib/lib.js:330:9:330:9 | x |
406412
| lib/lib.js:330:9:330:9 | x | lib/lib.js:336:22:336:31 | id("test") |
407413
| lib/lib.js:330:9:330:9 | x | lib/lib.js:336:22:336:31 | id("test") |
414+
| lib/lib.js:330:9:330:9 | x | lib/lib.js:340:22:340:26 | id(n) |
415+
| lib/lib.js:330:9:330:9 | x | lib/lib.js:340:22:340:26 | id(n) |
416+
| lib/lib.js:339:39:339:39 | n | lib/lib.js:340:25:340:25 | n |
417+
| lib/lib.js:339:39:339:39 | n | lib/lib.js:340:25:340:25 | n |
418+
| lib/lib.js:340:25:340:25 | n | lib/lib.js:340:22:340:26 | id(n) |
419+
| lib/lib.js:340:25:340:25 | n | lib/lib.js:340:22:340:26 | id(n) |
408420
#select
409421
| lib/lib2.js:4:10:4:25 | "rm -rf " + name | lib/lib2.js:3:28:3:31 | name | lib/lib2.js:4:22:4:25 | name | $@ based on library input is later used in $@. | lib/lib2.js:4:10:4:25 | "rm -rf " + name | String concatenation | lib/lib2.js:4:2:4:26 | cp.exec ... + name) | shell command |
410422
| lib/lib2.js:8:10:8:25 | "rm -rf " + name | lib/lib2.js:7:32:7:35 | name | lib/lib2.js:8:22:8:25 | name | $@ based on library input is later used in $@. | lib/lib2.js:8:10:8:25 | "rm -rf " + name | String concatenation | lib/lib2.js:8:2:8:26 | cp.exec ... + name) | shell command |
@@ -459,3 +471,4 @@ edges
459471
| lib/lib.js:315:10:315:25 | "rm -rf " + name | lib/lib.js:314:40:314:43 | name | lib/lib.js:315:22:315:25 | name | $@ based on library input is later used in $@. | lib/lib.js:315:10:315:25 | "rm -rf " + name | String concatenation | lib/lib.js:315:2:315:26 | cp.exec ... + name) | shell command |
460472
| lib/lib.js:320:11:320:26 | "rm -rf " + name | lib/lib.js:314:40:314:43 | name | lib/lib.js:320:23:320:26 | name | $@ based on library input is later used in $@. | lib/lib.js:320:11:320:26 | "rm -rf " + name | String concatenation | lib/lib.js:320:3:320:27 | cp.exec ... + name) | shell command |
461473
| lib/lib.js:325:12:325:51 | "MyWind ... " + arg | lib/lib.js:324:40:324:42 | arg | lib/lib.js:325:49:325:51 | arg | $@ based on library input is later used in $@. | lib/lib.js:325:12:325:51 | "MyWind ... " + arg | String concatenation | lib/lib.js:326:2:326:13 | cp.exec(cmd) | shell command |
474+
| lib/lib.js:340:10:340:26 | "rm -rf " + id(n) | lib/lib.js:339:39:339:39 | n | lib/lib.js:340:22:340:26 | id(n) | $@ based on library input is later used in $@. | lib/lib.js:340:10:340:26 | "rm -rf " + id(n) | String concatenation | lib/lib.js:340:2:340:27 | cp.exec ... id(n)) | shell command |

javascript/ql/test/query-tests/Security/CWE-078/lib/lib.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,3 +335,7 @@ module.exports.id = id;
335335
module.exports.unproblematic = function() {
336336
cp.exec("rm -rf " + id("test")); // OK
337337
};
338+
339+
module.exports.problematic = function(n) {
340+
cp.exec("rm -rf " + id(n)); // NOT OK
341+
};

0 commit comments

Comments
 (0)