Skip to content

Commit dab7970

Browse files
committed
Ruby: Model JSON.pretty_generate
1 parent 14a19d2 commit dab7970

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

ruby/ql/lib/codeql/ruby/frameworks/Json.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module Json {
1515
row =
1616
[
1717
"json;;Member[JSON].Method[parse,parse!,load,restore];Argument[0];ReturnValue;taint",
18-
"json;;Member[JSON].Method[generate,fast_generate,dump,unparse,fast_unparse];Argument[0];ReturnValue;taint",
18+
"json;;Member[JSON].Method[generate,fast_generate,pretty_generate,dump,unparse,fast_unparse];Argument[0];ReturnValue;taint",
1919
]
2020
}
2121
}

ruby/ql/test/library-tests/frameworks/json/JsonDataFlow.expected

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ edges
66
| json.rb:4:19:4:28 | call to source : | json.rb:4:6:4:29 | call to restore |
77
| json.rb:6:20:6:29 | call to source : | json.rb:6:6:6:30 | call to generate |
88
| json.rb:7:25:7:34 | call to source : | json.rb:7:6:7:35 | call to fast_generate |
9-
| json.rb:8:16:8:25 | call to source : | json.rb:8:6:8:26 | call to dump |
10-
| json.rb:9:19:9:28 | call to source : | json.rb:9:6:9:29 | call to unparse |
11-
| json.rb:10:24:10:33 | call to source : | json.rb:10:6:10:34 | call to fast_unparse |
9+
| json.rb:8:27:8:36 | call to source : | json.rb:8:6:8:37 | call to pretty_generate |
10+
| json.rb:9:16:9:25 | call to source : | json.rb:9:6:9:26 | call to dump |
11+
| json.rb:10:19:10:28 | call to source : | json.rb:10:6:10:29 | call to unparse |
12+
| json.rb:11:24:11:33 | call to source : | json.rb:11:6:11:34 | call to fast_unparse |
1213
nodes
1314
| json.rb:1:6:1:27 | call to parse | semmle.label | call to parse |
1415
| json.rb:1:17:1:26 | call to source : | semmle.label | call to source : |
@@ -22,10 +23,12 @@ nodes
2223
| json.rb:6:20:6:29 | call to source : | semmle.label | call to source : |
2324
| json.rb:7:6:7:35 | call to fast_generate | semmle.label | call to fast_generate |
2425
| json.rb:7:25:7:34 | call to source : | semmle.label | call to source : |
25-
| json.rb:8:6:8:26 | call to dump | semmle.label | call to dump |
26-
| json.rb:8:16:8:25 | call to source : | semmle.label | call to source : |
27-
| json.rb:9:6:9:29 | call to unparse | semmle.label | call to unparse |
28-
| json.rb:9:19:9:28 | call to source : | semmle.label | call to source : |
29-
| json.rb:10:6:10:34 | call to fast_unparse | semmle.label | call to fast_unparse |
30-
| json.rb:10:24:10:33 | call to source : | semmle.label | call to source : |
26+
| json.rb:8:6:8:37 | call to pretty_generate | semmle.label | call to pretty_generate |
27+
| json.rb:8:27:8:36 | call to source : | semmle.label | call to source : |
28+
| json.rb:9:6:9:26 | call to dump | semmle.label | call to dump |
29+
| json.rb:9:16:9:25 | call to source : | semmle.label | call to source : |
30+
| json.rb:10:6:10:29 | call to unparse | semmle.label | call to unparse |
31+
| json.rb:10:19:10:28 | call to source : | semmle.label | call to source : |
32+
| json.rb:11:6:11:34 | call to fast_unparse | semmle.label | call to fast_unparse |
33+
| json.rb:11:24:11:33 | call to source : | semmle.label | call to source : |
3134
subpaths

ruby/ql/test/library-tests/frameworks/json/json.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
sink JSON.generate(source "a") # $hasTaintFlow=a
77
sink JSON.fast_generate(source "a") # $hasTaintFlow=a
8+
sink JSON.pretty_generate(source "a") # $hasTaintFlow=a
89
sink JSON.dump(source "a") # $hasTaintFlow=a
910
sink JSON.unparse(source "a") # $hasTaintFlow=a
1011
sink JSON.fast_unparse(source "a") # $hasTaintFlow=a

0 commit comments

Comments
 (0)