mirror of
https://github.com/github/codeql.git
synced 2026-04-28 02:05:14 +02:00
Ruby: Recognise ActionCable logger class
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
*/
|
||||
|
||||
private import codeql.ruby.frameworks.Core
|
||||
private import codeql.ruby.frameworks.ActionCable
|
||||
private import codeql.ruby.frameworks.ActionController
|
||||
private import codeql.ruby.frameworks.ActiveRecord
|
||||
private import codeql.ruby.frameworks.ActiveStorage
|
||||
|
||||
29
ruby/ql/lib/codeql/ruby/frameworks/ActionCable.qll
Normal file
29
ruby/ql/lib/codeql/ruby/frameworks/ActionCable.qll
Normal file
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
* Modeling for `ActionCable`, which is a websocket gem that ships with Rails.
|
||||
* https://rubygems.org/gems/actioncable
|
||||
*/
|
||||
|
||||
private import ruby
|
||||
private import codeql.ruby.Concepts
|
||||
private import codeql.ruby.ApiGraphs
|
||||
private import codeql.ruby.frameworks.stdlib.Logger::Logger as StdlibLogger
|
||||
|
||||
/**
|
||||
* Modeling for `ActionCable`.
|
||||
*/
|
||||
module ActionCable {
|
||||
/**
|
||||
* `ActionCable::Connection::TaggedLoggerProxy`
|
||||
*/
|
||||
module Logger {
|
||||
private class ActionCableLoggerInstantiation extends StdlibLogger::LoggerInstantiation {
|
||||
ActionCableLoggerInstantiation() {
|
||||
this =
|
||||
API::getTopLevelMember("ActionCable")
|
||||
.getMember("Connection")
|
||||
.getMember("TaggedLoggerProxy")
|
||||
.getAnInstantiation()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
| action_cable.rb:1:1:1:54 | call to new |
|
||||
@@ -0,0 +1,4 @@
|
||||
import codeql.ruby.frameworks.ActionCable
|
||||
import codeql.ruby.frameworks.stdlib.Logger
|
||||
|
||||
query predicate loggerInstantiations(Logger::LoggerInstantiation l) { any() }
|
||||
@@ -0,0 +1 @@
|
||||
ActionCable::Connection::TaggedLoggerProxy.new(logger)
|
||||
Reference in New Issue
Block a user