Skip to content

Commit d966ca8

Browse files
committed
Ruby: recognise additional form for OpenURI
1 parent f302222 commit d966ca8

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

ruby/ql/lib/codeql/ruby/frameworks/http_clients/OpenURI.qll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ class OpenUriRequest extends HTTP::Client::Request::Range {
1919

2020
OpenUriRequest() {
2121
requestNode =
22-
[API::getTopLevelMember("URI"), API::getTopLevelMember("URI").getReturn("parse")]
23-
.getReturn("open") and
22+
[
23+
[API::getTopLevelMember("URI"), API::getTopLevelMember("URI").getReturn("parse")]
24+
.getReturn("open"), API::getTopLevelMember("OpenURI").getReturn("open_uri")
25+
] and
2426
requestUse = requestNode.getAnImmediateUse() and
2527
this = requestUse.asExpr().getExpr()
2628
}

ruby/ql/test/library-tests/frameworks/http_clients/HttpClients.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
| OpenURI.rb:3:9:3:41 | call to open | OpenURI | OpenURI.rb:3:21:3:40 | "http://example.com" | OpenURI.rb:4:1:4:10 | call to read |
5656
| OpenURI.rb:6:9:6:34 | call to open | OpenURI | OpenURI.rb:6:14:6:33 | "http://example.com" | OpenURI.rb:7:1:7:15 | call to readlines |
5757
| OpenURI.rb:9:9:9:38 | call to open | OpenURI | OpenURI.rb:9:18:9:37 | "http://example.com" | OpenURI.rb:10:1:10:10 | call to read |
58+
| OpenURI.rb:15:9:15:47 | call to open_uri | OpenURI | OpenURI.rb:15:26:15:46 | "https://example.com" | OpenURI.rb:16:1:16:10 | call to read |
5859
| RestClient.rb:3:9:3:45 | call to get | RestClient | RestClient.rb:3:24:3:44 | "http://example.com/" | RestClient.rb:4:1:4:10 | call to body |
5960
| RestClient.rb:6:9:6:59 | call to post | RestClient | RestClient.rb:6:25:6:44 | "http://example.com" | RestClient.rb:7:1:7:10 | call to body |
6061
| RestClient.rb:9:9:9:58 | call to put | RestClient | RestClient.rb:9:24:9:43 | "http://example.com" | RestClient.rb:10:1:10:10 | call to body |

ruby/ql/test/library-tests/frameworks/http_clients/OpenURI.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@
1010
resp3.read
1111

1212
resp4 = URI.parse("https://example.com").open
13-
resp4.read
13+
resp4.read
14+
15+
resp5 = OpenURI.open_uri("https://example.com")
16+
resp5.read

0 commit comments

Comments
 (0)