Skip to content

Commit d4f7f2b

Browse files
committed
Ruby: Add test for AR PersistentWriteAccesses
1 parent 7ed81db commit d4f7f2b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.ql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import codeql.ruby.controlflow.CfgNodes
22
import codeql.ruby.frameworks.ActiveRecord
3+
import codeql.ruby.Concepts
4+
import codeql.ruby.DataFlow
35

46
query predicate activeRecordModelClasses(ActiveRecordModelClass cls) { any() }
57

@@ -18,3 +20,7 @@ query predicate activeRecordModelInstantiations(
1820
) {
1921
i.getClass() = cls
2022
}
23+
24+
query predicate persistentWriteAccesses(PersistentWriteAccess w, DataFlow::Node value) {
25+
w.getValue() = value
26+
}

ruby/ql/test/library-tests/frameworks/active_record/ActiveRecord.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,22 @@ class BazController < BarController
6767
def yet_another_handler
6868
Admin.delete_by(params[:admin_condition])
6969
end
70+
71+
def create1
72+
Admin.create(params)
73+
end
74+
75+
def create2
76+
Admin.create(name: params[:name])
77+
end
78+
79+
def update1
80+
Admin.update(params)
81+
end
82+
83+
def update2
84+
Admin.update(name: params[:name])
85+
end
7086
end
7187

7288
class AnnotatedController < ActionController::Base

0 commit comments

Comments
 (0)