File tree Expand file tree Collapse file tree 4 files changed +17
-0
lines changed
lib/codeql/ruby/frameworks
test/library-tests/frameworks/archive Expand file tree Collapse file tree 4 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,15 @@ private import codeql.ruby.ApiGraphs
11
11
* Classes and predicates for modeling the RubyZip library
12
12
*/
13
13
module RubyZip {
14
+ /**
15
+ * A call to `Zip::File.new`, considered as a `FileSystemAccess`
16
+ */
17
+ class RubyZipFileNew extends DataFlow:: CallNode , FileSystemAccess:: Range {
18
+ RubyZipFileNew ( ) { this = API:: getTopLevelMember ( "Zip" ) .getMember ( "File" ) .getAnInstantiation ( ) }
19
+
20
+ override DataFlow:: Node getAPathArgument ( ) { result = this .getArgument ( 0 ) }
21
+ }
22
+
14
23
/**
15
24
* A call to `Zip::File.open`, considered as a `FileSystemAccess`.
16
25
*/
Original file line number Diff line number Diff line change
1
+ rubyZipFileOpens
1
2
| Archive.rb:2:12:2:35 | call to open |
3
+ rubyZipFileNew
4
+ | Archive.rb:5:12:5:34 | call to new |
Original file line number Diff line number Diff line change @@ -2,3 +2,5 @@ private import ruby
2
2
private import codeql.ruby.frameworks.Archive
3
3
4
4
query predicate rubyZipFileOpens ( RubyZip:: RubyZipFileOpen f ) { any ( ) }
5
+
6
+ query predicate rubyZipFileNew ( RubyZip:: RubyZipFileNew f ) { any ( ) }
Original file line number Diff line number Diff line change 1
1
# `foo_file` is a RubyZip `Zip::File.open` instance
2
2
foo_file = Zip ::File . open ( filename )
3
+
4
+ # `new_file` is a RubyZip `Zip::File.new` instance
5
+ new_file = Zip ::File . new ( filename )
You can’t perform that action at this time.
0 commit comments