Skip to content

Commit f1b67ad

Browse files
committed
Ruby: Include name of variable in UninitializedDefinition.toString
1 parent 28a5a1d commit f1b67ad

File tree

4 files changed

+19
-17
lines changed

4 files changed

+19
-17
lines changed

ruby/ql/lib/codeql/ruby/dataflow/SSA.qll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,14 +256,16 @@ module Ssa {
256256
* `x` is inserted at the start of `m`.
257257
*/
258258
class UninitializedDefinition extends Definition, SsaImpl::WriteDefinition {
259+
private Variable v;
260+
259261
UninitializedDefinition() {
260-
exists(BasicBlock bb, int i, Variable v |
262+
exists(BasicBlock bb, int i |
261263
this.definesAt(v, bb, i) and
262264
SsaImpl::uninitializedWrite(bb, i, v)
263265
)
264266
}
265267

266-
final override string toString() { result = "<uninitialized>" }
268+
final override string toString() { result = "<uninitialized> " + v }
267269

268270
final override Location getLocation() { result = this.getBasicBlock().getLocation() }
269271
}

ruby/ql/test/library-tests/dataflow/local/DataflowStep.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2399,7 +2399,7 @@
23992399
| UseUseExplosion.rb:24:5:25:7 | use | UseUseExplosion.rb:1:1:26:3 | C |
24002400
| local_dataflow.rb:1:1:7:3 | self (foo) | local_dataflow.rb:3:8:3:10 | self |
24012401
| local_dataflow.rb:1:1:7:3 | self in foo | local_dataflow.rb:1:1:7:3 | self (foo) |
2402-
| local_dataflow.rb:1:1:150:3 | <uninitialized> | local_dataflow.rb:10:9:10:9 | x |
2402+
| local_dataflow.rb:1:1:150:3 | <uninitialized> x | local_dataflow.rb:10:9:10:9 | x |
24032403
| local_dataflow.rb:1:1:150:3 | self (local_dataflow.rb) | local_dataflow.rb:49:1:53:3 | self |
24042404
| local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:1:9:1:9 | a |
24052405
| local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:2:7:2:7 | a |

ruby/ql/test/library-tests/dataflow/local/TaintStep.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2842,7 +2842,7 @@
28422842
| local_dataflow.rb:1:1:7:3 | self (foo) | local_dataflow.rb:3:8:3:10 | self |
28432843
| local_dataflow.rb:1:1:7:3 | self in foo | local_dataflow.rb:1:1:7:3 | self (foo) |
28442844
| local_dataflow.rb:1:1:7:3 | synthetic splat parameter | local_dataflow.rb:1:9:1:9 | a |
2845-
| local_dataflow.rb:1:1:150:3 | <uninitialized> | local_dataflow.rb:10:9:10:9 | x |
2845+
| local_dataflow.rb:1:1:150:3 | <uninitialized> x | local_dataflow.rb:10:9:10:9 | x |
28462846
| local_dataflow.rb:1:1:150:3 | self (local_dataflow.rb) | local_dataflow.rb:49:1:53:3 | self |
28472847
| local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:1:9:1:9 | a |
28482848
| local_dataflow.rb:1:9:1:9 | a | local_dataflow.rb:2:7:2:7 | a |

ruby/ql/test/library-tests/variables/ssa.expected

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@ definition
6161
| parameters.rb:30:15:30:19 | first | parameters.rb:30:15:30:19 | first |
6262
| parameters.rb:30:24:30:29 | middle | parameters.rb:30:24:30:29 | middle |
6363
| parameters.rb:30:36:30:39 | last | parameters.rb:30:36:30:39 | last |
64-
| parameters.rb:35:1:38:3 | <uninitialized> | parameters.rb:35:16:35:16 | b |
64+
| parameters.rb:35:1:38:3 | <uninitialized> b | parameters.rb:35:16:35:16 | b |
6565
| parameters.rb:35:1:38:3 | self (multi) | parameters.rb:35:1:38:3 | self |
6666
| parameters.rb:35:11:35:11 | a | parameters.rb:35:11:35:11 | a |
6767
| parameters.rb:35:16:35:16 | b | parameters.rb:35:16:35:16 | b |
6868
| parameters.rb:37:3:37:18 | phi | parameters.rb:35:16:35:16 | b |
69-
| parameters.rb:40:1:43:3 | <uninitialized> | parameters.rb:40:15:40:15 | e |
69+
| parameters.rb:40:1:43:3 | <uninitialized> e | parameters.rb:40:15:40:15 | e |
7070
| parameters.rb:40:1:43:3 | self (multi2) | parameters.rb:40:1:43:3 | self |
7171
| parameters.rb:40:12:40:12 | d | parameters.rb:40:12:40:12 | d |
7272
| parameters.rb:40:15:40:15 | e | parameters.rb:40:15:40:15 | e |
@@ -117,7 +117,7 @@ definition
117117
| ssa.rb:18:8:18:8 | x | ssa.rb:18:8:18:8 | x |
118118
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x |
119119
| ssa.rb:21:5:21:5 | x | ssa.rb:18:8:18:8 | x |
120-
| ssa.rb:25:1:30:3 | <uninitialized> | ssa.rb:26:7:26:10 | elem |
120+
| ssa.rb:25:1:30:3 | <uninitialized> elem | ssa.rb:26:7:26:10 | elem |
121121
| ssa.rb:25:1:30:3 | self (m2) | ssa.rb:25:1:30:3 | self |
122122
| ssa.rb:25:8:25:15 | elements | ssa.rb:25:8:25:15 | elements |
123123
| ssa.rb:26:3:28:5 | <captured entry> self | ssa.rb:25:1:30:3 | self |
@@ -131,12 +131,12 @@ definition
131131
| ssa.rb:33:20:33:20 | x | ssa.rb:33:20:33:20 | x |
132132
| ssa.rb:38:1:42:3 | self (m4) | ssa.rb:38:1:42:3 | self |
133133
| ssa.rb:40:3:40:4 | m3 | ssa.rb:40:3:40:4 | m3 |
134-
| ssa.rb:44:1:47:3 | <uninitialized> | ssa.rb:45:3:45:3 | x |
134+
| ssa.rb:44:1:47:3 | <uninitialized> x | ssa.rb:45:3:45:3 | x |
135135
| ssa.rb:44:1:47:3 | self (m5) | ssa.rb:44:1:47:3 | self |
136136
| ssa.rb:44:8:44:8 | b | ssa.rb:44:8:44:8 | b |
137137
| ssa.rb:45:3:45:3 | x | ssa.rb:45:3:45:3 | x |
138138
| ssa.rb:45:3:45:12 | phi | ssa.rb:45:3:45:3 | x |
139-
| ssa.rb:49:1:51:3 | <uninitialized> | ssa.rb:49:14:49:14 | y |
139+
| ssa.rb:49:1:51:3 | <uninitialized> y | ssa.rb:49:14:49:14 | y |
140140
| ssa.rb:49:1:51:3 | self (m6) | ssa.rb:49:1:51:3 | self |
141141
| ssa.rb:49:14:49:14 | y | ssa.rb:49:14:49:14 | y |
142142
| ssa.rb:50:3:50:8 | phi | ssa.rb:49:14:49:14 | y |
@@ -314,7 +314,7 @@ read
314314
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:19:9:19:9 | x |
315315
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:20:10:20:10 | x |
316316
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:21:5:21:5 | x |
317-
| ssa.rb:25:1:30:3 | <uninitialized> | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
317+
| ssa.rb:25:1:30:3 | <uninitialized> elem | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
318318
| ssa.rb:25:1:30:3 | self (m2) | ssa.rb:25:1:30:3 | self | ssa.rb:29:3:29:11 | self |
319319
| ssa.rb:25:8:25:15 | elements | ssa.rb:25:8:25:15 | elements | ssa.rb:26:15:26:22 | elements |
320320
| ssa.rb:26:3:28:5 | <captured entry> self | ssa.rb:25:1:30:3 | self | ssa.rb:27:5:27:13 | self |
@@ -469,7 +469,7 @@ firstRead
469469
| ssa.rb:10:5:10:5 | i | ssa.rb:2:3:2:3 | i | ssa.rb:11:10:11:10 | i |
470470
| ssa.rb:18:1:23:3 | self (m1) | ssa.rb:18:1:23:3 | self | ssa.rb:20:5:20:10 | self |
471471
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:19:9:19:9 | x |
472-
| ssa.rb:25:1:30:3 | <uninitialized> | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
472+
| ssa.rb:25:1:30:3 | <uninitialized> elem | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
473473
| ssa.rb:25:1:30:3 | self (m2) | ssa.rb:25:1:30:3 | self | ssa.rb:29:3:29:11 | self |
474474
| ssa.rb:25:8:25:15 | elements | ssa.rb:25:8:25:15 | elements | ssa.rb:26:15:26:22 | elements |
475475
| ssa.rb:26:3:28:5 | <captured entry> self | ssa.rb:25:1:30:3 | self | ssa.rb:27:5:27:13 | self |
@@ -621,7 +621,7 @@ lastRead
621621
| ssa.rb:18:1:23:3 | self (m1) | ssa.rb:18:1:23:3 | self | ssa.rb:20:5:20:10 | self |
622622
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:19:9:19:9 | x |
623623
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:21:5:21:5 | x |
624-
| ssa.rb:25:1:30:3 | <uninitialized> | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
624+
| ssa.rb:25:1:30:3 | <uninitialized> elem | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
625625
| ssa.rb:25:1:30:3 | self (m2) | ssa.rb:25:1:30:3 | self | ssa.rb:29:3:29:11 | self |
626626
| ssa.rb:25:8:25:15 | elements | ssa.rb:25:8:25:15 | elements | ssa.rb:26:15:26:22 | elements |
627627
| ssa.rb:26:3:28:5 | <captured entry> self | ssa.rb:25:1:30:3 | self | ssa.rb:27:5:27:13 | self |
@@ -727,21 +727,21 @@ adjacentReads
727727
| ssa.rb:91:3:91:3 | x | ssa.rb:91:3:91:3 | x | ssa.rb:95:10:95:10 | x | ssa.rb:99:10:99:10 | x |
728728
| ssa.rb:91:3:91:3 | x | ssa.rb:91:3:91:3 | x | ssa.rb:95:10:95:10 | x | ssa.rb:101:10:101:10 | x |
729729
phi
730-
| parameters.rb:37:3:37:18 | phi | parameters.rb:35:16:35:16 | b | parameters.rb:35:1:38:3 | <uninitialized> |
730+
| parameters.rb:37:3:37:18 | phi | parameters.rb:35:16:35:16 | b | parameters.rb:35:1:38:3 | <uninitialized> b |
731731
| parameters.rb:37:3:37:18 | phi | parameters.rb:35:16:35:16 | b | parameters.rb:35:16:35:16 | b |
732-
| parameters.rb:42:3:42:18 | phi | parameters.rb:40:15:40:15 | e | parameters.rb:40:1:43:3 | <uninitialized> |
732+
| parameters.rb:42:3:42:18 | phi | parameters.rb:40:15:40:15 | e | parameters.rb:40:1:43:3 | <uninitialized> e |
733733
| parameters.rb:42:3:42:18 | phi | parameters.rb:40:15:40:15 | e | parameters.rb:40:15:40:15 | e |
734734
| parameters.rb:55:4:55:9 | phi | parameters.rb:53:1:53:1 | x | parameters.rb:54:9:57:3 | <captured entry> x |
735735
| parameters.rb:55:4:55:9 | phi | parameters.rb:53:1:53:1 | x | parameters.rb:54:19:54:19 | x |
736736
| ssa.rb:5:3:13:5 | phi | ssa.rb:2:3:2:3 | i | ssa.rb:6:5:6:5 | i |
737737
| ssa.rb:5:3:13:5 | phi | ssa.rb:2:3:2:3 | i | ssa.rb:10:5:10:5 | i |
738738
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:18:8:18:8 | x |
739739
| ssa.rb:19:9:19:9 | phi | ssa.rb:18:8:18:8 | x | ssa.rb:21:5:21:5 | x |
740-
| ssa.rb:26:7:26:10 | phi | ssa.rb:26:7:26:10 | elem | ssa.rb:25:1:30:3 | <uninitialized> |
740+
| ssa.rb:26:7:26:10 | phi | ssa.rb:26:7:26:10 | elem | ssa.rb:25:1:30:3 | <uninitialized> elem |
741741
| ssa.rb:26:7:26:10 | phi | ssa.rb:26:7:26:10 | elem | ssa.rb:26:7:26:10 | elem |
742-
| ssa.rb:45:3:45:12 | phi | ssa.rb:45:3:45:3 | x | ssa.rb:44:1:47:3 | <uninitialized> |
742+
| ssa.rb:45:3:45:12 | phi | ssa.rb:45:3:45:3 | x | ssa.rb:44:1:47:3 | <uninitialized> x |
743743
| ssa.rb:45:3:45:12 | phi | ssa.rb:45:3:45:3 | x | ssa.rb:45:3:45:3 | x |
744-
| ssa.rb:50:3:50:8 | phi | ssa.rb:49:14:49:14 | y | ssa.rb:49:1:51:3 | <uninitialized> |
744+
| ssa.rb:50:3:50:8 | phi | ssa.rb:49:14:49:14 | y | ssa.rb:49:1:51:3 | <uninitialized> y |
745745
| ssa.rb:50:3:50:8 | phi | ssa.rb:49:14:49:14 | y | ssa.rb:49:14:49:14 | y |
746746
phiReadNode
747747
| parameters.rb:26:3:26:11 | SSA phi read(name) | parameters.rb:25:15:25:18 | name |

0 commit comments

Comments
 (0)