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
1111 * Classes and predicates for modeling the RubyZip library
1212 */
1313module 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+
1423 /**
1524 * A call to `Zip::File.open`, considered as a `FileSystemAccess`.
1625 */
Original file line number Diff line number Diff line change 1+ rubyZipFileOpens
12| 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
22private import codeql.ruby.frameworks.Archive
33
44query 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 11# `foo_file` is a RubyZip `Zip::File.open` instance
22foo_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