Skip to content

Commit 0ce14fc

Browse files
committed
Ruby: Recognise ActionCable logger class
1 parent 4ecd595 commit 0ce14fc

File tree

5 files changed

+36
-0
lines changed

5 files changed

+36
-0
lines changed

ruby/ql/lib/codeql/ruby/Frameworks.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
private import codeql.ruby.frameworks.Core
6+
private import codeql.ruby.frameworks.ActionCable
67
private import codeql.ruby.frameworks.ActionController
78
private import codeql.ruby.frameworks.ActiveRecord
89
private import codeql.ruby.frameworks.ActiveStorage
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Modeling for `ActionCable`, which is a websocket gem that ships with Rails.
3+
* https://rubygems.org/gems/actioncable
4+
*/
5+
6+
private import ruby
7+
private import codeql.ruby.Concepts
8+
private import codeql.ruby.ApiGraphs
9+
private import codeql.ruby.frameworks.stdlib.Logger::Logger as StdlibLogger
10+
11+
/**
12+
* Modeling for `ActionCable`.
13+
*/
14+
module ActionCable {
15+
/**
16+
* `ActionCable::Connection::TaggedLoggerProxy`
17+
*/
18+
module Logger {
19+
private class ActionCableLoggerInstantiation extends StdlibLogger::LoggerInstantiation {
20+
ActionCableLoggerInstantiation() {
21+
this =
22+
API::getTopLevelMember("ActionCable")
23+
.getMember("Connection")
24+
.getMember("TaggedLoggerProxy")
25+
.getAnInstantiation()
26+
}
27+
}
28+
}
29+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
| action_cable.rb:1:1:1:54 | call to new |
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import codeql.ruby.frameworks.ActionCable
2+
import codeql.ruby.frameworks.stdlib.Logger
3+
4+
query predicate loggerInstantiations(Logger::LoggerInstantiation l) { any() }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ActionCable::Connection::TaggedLoggerProxy.new(logger)

0 commit comments

Comments
 (0)