Skip to content

Commit 2e1734e

Browse files
committed
Added support for del function in superagent
1 parent e5c179d commit 2e1734e

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,13 @@ module ClientRequest {
513513
}
514514
}
515515

516+
/**
517+
* Gets the name of a superagent request method.
518+
*/
519+
private string getSuperagentRequestMethodName() {
520+
result = [httpMethodName(), any(Http::RequestMethodName m), "del", "DEL"]
521+
}
522+
516523
/**
517524
* A model of a URL request made using the `superagent` library.
518525
*/
@@ -522,7 +529,7 @@ module ClientRequest {
522529
SuperAgentUrlRequest() {
523530
exists(string moduleName, DataFlow::SourceNode callee | this = callee.getACall() |
524531
moduleName = "superagent" and
525-
callee = DataFlow::moduleMember(moduleName, httpMethodName()) and
532+
callee = DataFlow::moduleMember(moduleName, getSuperagentRequestMethodName()) and
526533
url = this.getArgument(0)
527534
)
528535
}

javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ test_ClientRequest
9191
| tst.js:286:20:286:55 | new Web ... :8080') |
9292
| tst.js:296:5:299:6 | axios({ ... \\n }) |
9393
| tst.js:312:12:312:36 | fetchPo ... o/bar') |
94+
| tst.js:320:5:320:23 | superagent.del(url) |
9495
test_getADataNode
9596
| axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:15:18:15:55 | { 'Cont ... json' } |
9697
| axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:16:15:16:35 | {x: 'te ... 'test'} |
@@ -240,6 +241,7 @@ test_getUrl
240241
| tst.js:296:5:299:6 | axios({ ... \\n }) | tst.js:296:11:299:5 | {\\n ... ,\\n } |
241242
| tst.js:296:5:299:6 | axios({ ... \\n }) | tst.js:298:14:298:44 | "http:/ ... -axios" |
242243
| tst.js:312:12:312:36 | fetchPo ... o/bar') | tst.js:312:26:312:35 | '/foo/bar' |
244+
| tst.js:320:5:320:23 | superagent.del(url) | tst.js:320:20:320:22 | url |
243245
test_getAResponseDataNode
244246
| axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | json | true |
245247
| axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | json | true |
@@ -314,3 +316,4 @@ test_getAResponseDataNode
314316
| tst.js:296:5:299:6 | axios({ ... \\n }) | tst.js:303:26:303:37 | err.response | json | false |
315317
| tst.js:296:5:299:6 | axios({ ... \\n }) | tst.js:304:27:304:38 | err.response | json | false |
316318
| tst.js:312:12:312:36 | fetchPo ... o/bar') | tst.js:312:12:312:36 | fetchPo ... o/bar') | fetch.response | true |
319+
| tst.js:320:5:320:23 | superagent.del(url) | tst.js:320:5:320:23 | superagent.del(url) | stream | true |

javascript/ql/test/library-tests/frameworks/ClientRequests/tst.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,6 @@ function usePolyfill() {
317317

318318
function useSuperagent(url){
319319
superagent('GET', url); // Not flagged
320-
superagent.del(url); // Not flagged
320+
superagent.del(url);
321321
superagent.agent().post(url).send(data); // Not flagged
322322
}

0 commit comments

Comments
 (0)