Ruby: Use proper PathGraph module in inline flow tests

Gets rid of
```
PathNode is incompatible with PathNode (the type of the edge relation).
```
warnings.
This commit is contained in:
Tom Hvitved
2023-09-04 15:47:00 +02:00
parent 4a1163b38c
commit a2912cd72b
24 changed files with 24 additions and 6788 deletions

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -1,335 +1,170 @@
testFailures
edges
| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) |
| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) |
| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x |
| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x |
| call_sensitivity.rb:12:11:12:11 | x | call_sensitivity.rb:19:22:19:22 | x |
| call_sensitivity.rb:12:11:12:11 | x | call_sensitivity.rb:19:22:19:22 | x |
| call_sensitivity.rb:19:9:19:17 | ( ... ) | call_sensitivity.rb:11:13:11:13 | x |
| call_sensitivity.rb:19:9:19:17 | ( ... ) | call_sensitivity.rb:11:13:11:13 | x |
| call_sensitivity.rb:19:10:19:16 | call to taint | call_sensitivity.rb:19:9:19:17 | ( ... ) |
| call_sensitivity.rb:19:10:19:16 | call to taint | call_sensitivity.rb:19:9:19:17 | ( ... ) |
| call_sensitivity.rb:19:22:19:22 | x | call_sensitivity.rb:19:30:19:30 | x |
| call_sensitivity.rb:19:22:19:22 | x | call_sensitivity.rb:19:30:19:30 | x |
| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x |
| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x |
| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x |
| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x |
| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x |
| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x |
| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:31:17:31:17 | x |
| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:31:17:31:17 | x |
| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:40:23:40:23 | x |
| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:40:23:40:23 | x |
| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:43:24:43:24 | x |
| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:43:24:43:24 | x |
| call_sensitivity.rb:31:17:31:17 | x | call_sensitivity.rb:31:27:31:27 | x |
| call_sensitivity.rb:31:17:31:17 | x | call_sensitivity.rb:31:27:31:27 | x |
| call_sensitivity.rb:32:25:32:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x |
| call_sensitivity.rb:32:25:32:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x |
| call_sensitivity.rb:40:23:40:23 | x | call_sensitivity.rb:40:31:40:31 | x |
| call_sensitivity.rb:40:23:40:23 | x | call_sensitivity.rb:40:31:40:31 | x |
| call_sensitivity.rb:41:25:41:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x |
| call_sensitivity.rb:41:25:41:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x |
| call_sensitivity.rb:43:24:43:24 | x | call_sensitivity.rb:43:32:43:32 | x |
| call_sensitivity.rb:43:24:43:24 | x | call_sensitivity.rb:43:32:43:32 | x |
| call_sensitivity.rb:44:26:44:33 | call to taint | call_sensitivity.rb:21:27:21:27 | x |
| call_sensitivity.rb:44:26:44:33 | call to taint | call_sensitivity.rb:21:27:21:27 | x |
| call_sensitivity.rb:50:15:50:15 | x | call_sensitivity.rb:51:10:51:10 | x |
| call_sensitivity.rb:50:15:50:15 | x | call_sensitivity.rb:51:10:51:10 | x |
| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x |
| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x |
| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x |
| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x |
| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:58:20:58:20 | x | call_sensitivity.rb:59:18:59:18 | x |
| call_sensitivity.rb:58:20:58:20 | x | call_sensitivity.rb:59:18:59:18 | x |
| call_sensitivity.rb:59:18:59:18 | x | call_sensitivity.rb:54:15:54:15 | x |
| call_sensitivity.rb:59:18:59:18 | x | call_sensitivity.rb:54:15:54:15 | x |
| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y |
| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y |
| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y |
| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y |
| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x |
| call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x |
| call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y |
| call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y |
| call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x |
| call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x |
| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:76:17:76:17 | y |
| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:76:17:76:17 | y |
| call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x |
| call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x |
| call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:85:18:85:27 | ( ... ) | call_sensitivity.rb:80:15:80:15 | x |
| call_sensitivity.rb:85:18:85:27 | ( ... ) | call_sensitivity.rb:80:15:80:15 | x |
| call_sensitivity.rb:85:19:85:26 | call to taint | call_sensitivity.rb:85:18:85:27 | ( ... ) |
| call_sensitivity.rb:85:19:85:26 | call to taint | call_sensitivity.rb:85:18:85:27 | ( ... ) |
| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x |
| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x |
| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x |
| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x |
| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:92:35:92:35 | x | call_sensitivity.rb:93:28:93:28 | x |
| call_sensitivity.rb:92:35:92:35 | x | call_sensitivity.rb:93:28:93:28 | x |
| call_sensitivity.rb:93:28:93:28 | x | call_sensitivity.rb:88:30:88:30 | x |
| call_sensitivity.rb:93:28:93:28 | x | call_sensitivity.rb:88:30:88:30 | x |
| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y |
| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y |
| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y |
| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y |
| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x |
| call_sensitivity.rb:100:35:100:35 | x | call_sensitivity.rb:101:34:101:34 | x |
| call_sensitivity.rb:100:35:100:35 | x | call_sensitivity.rb:101:34:101:34 | x |
| call_sensitivity.rb:101:34:101:34 | x | call_sensitivity.rb:96:33:96:33 | y |
| call_sensitivity.rb:101:34:101:34 | x | call_sensitivity.rb:96:33:96:33 | y |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x |
| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x |
| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x |
| call_sensitivity.rb:109:21:109:21 | x | call_sensitivity.rb:110:9:110:9 | x |
| call_sensitivity.rb:109:21:109:21 | x | call_sensitivity.rb:110:9:110:9 | x |
| call_sensitivity.rb:110:9:110:9 | x | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:110:9:110:9 | x | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:114:11:114:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:114:11:114:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:114:12:114:19 | call to taint | call_sensitivity.rb:114:11:114:20 | ( ... ) |
| call_sensitivity.rb:114:12:114:19 | call to taint | call_sensitivity.rb:114:11:114:20 | ( ... ) |
| call_sensitivity.rb:115:11:115:18 | call to taint | call_sensitivity.rb:54:15:54:15 | x |
| call_sensitivity.rb:115:11:115:18 | call to taint | call_sensitivity.rb:54:15:54:15 | x |
| call_sensitivity.rb:116:16:116:23 | call to taint | call_sensitivity.rb:58:20:58:20 | x |
| call_sensitivity.rb:116:16:116:23 | call to taint | call_sensitivity.rb:58:20:58:20 | x |
| call_sensitivity.rb:117:14:117:22 | call to taint | call_sensitivity.rb:62:18:62:18 | y |
| call_sensitivity.rb:117:14:117:22 | call to taint | call_sensitivity.rb:62:18:62:18 | y |
| call_sensitivity.rb:118:16:118:24 | call to taint | call_sensitivity.rb:66:20:66:20 | x |
| call_sensitivity.rb:118:16:118:24 | call to taint | call_sensitivity.rb:66:20:66:20 | x |
| call_sensitivity.rb:119:14:119:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y |
| call_sensitivity.rb:119:14:119:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y |
| call_sensitivity.rb:121:21:121:28 | call to taint | call_sensitivity.rb:88:30:88:30 | x |
| call_sensitivity.rb:121:21:121:28 | call to taint | call_sensitivity.rb:88:30:88:30 | x |
| call_sensitivity.rb:122:26:122:33 | call to taint | call_sensitivity.rb:92:35:92:35 | x |
| call_sensitivity.rb:122:26:122:33 | call to taint | call_sensitivity.rb:92:35:92:35 | x |
| call_sensitivity.rb:123:24:123:32 | call to taint | call_sensitivity.rb:96:33:96:33 | y |
| call_sensitivity.rb:123:24:123:32 | call to taint | call_sensitivity.rb:96:33:96:33 | y |
| call_sensitivity.rb:124:26:124:33 | call to taint | call_sensitivity.rb:100:35:100:35 | x |
| call_sensitivity.rb:124:26:124:33 | call to taint | call_sensitivity.rb:100:35:100:35 | x |
| call_sensitivity.rb:125:12:125:19 | call to taint | call_sensitivity.rb:109:21:109:21 | x |
| call_sensitivity.rb:125:12:125:19 | call to taint | call_sensitivity.rb:109:21:109:21 | x |
| call_sensitivity.rb:166:14:166:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y |
| call_sensitivity.rb:166:14:166:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y |
| call_sensitivity.rb:174:19:174:19 | x | call_sensitivity.rb:175:12:175:12 | x |
| call_sensitivity.rb:174:19:174:19 | x | call_sensitivity.rb:175:12:175:12 | x |
| call_sensitivity.rb:175:12:175:12 | x | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:175:12:175:12 | x | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:178:11:178:19 | call to taint | call_sensitivity.rb:174:19:174:19 | x |
| call_sensitivity.rb:178:11:178:19 | call to taint | call_sensitivity.rb:174:19:174:19 | x |
| call_sensitivity.rb:187:11:187:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:187:11:187:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x |
| call_sensitivity.rb:187:12:187:19 | call to taint | call_sensitivity.rb:187:11:187:20 | ( ... ) |
| call_sensitivity.rb:187:12:187:19 | call to taint | call_sensitivity.rb:187:11:187:20 | ( ... ) |
nodes
| call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:9:7:9:13 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:9:7:9:13 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:11:13:11:13 | x | semmle.label | x |
| call_sensitivity.rb:11:13:11:13 | x | semmle.label | x |
| call_sensitivity.rb:12:11:12:11 | x | semmle.label | x |
| call_sensitivity.rb:12:11:12:11 | x | semmle.label | x |
| call_sensitivity.rb:19:9:19:17 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:19:9:19:17 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:19:10:19:16 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:19:10:19:16 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:19:22:19:22 | x | semmle.label | x |
| call_sensitivity.rb:19:22:19:22 | x | semmle.label | x |
| call_sensitivity.rb:19:30:19:30 | x | semmle.label | x |
| call_sensitivity.rb:19:30:19:30 | x | semmle.label | x |
| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x |
| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x |
| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x |
| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x |
| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x |
| call_sensitivity.rb:21:27:21:27 | x | semmle.label | x |
| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x |
| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x |
| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x |
| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x |
| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x |
| call_sensitivity.rb:22:17:22:17 | x | semmle.label | x |
| call_sensitivity.rb:31:17:31:17 | x | semmle.label | x |
| call_sensitivity.rb:31:17:31:17 | x | semmle.label | x |
| call_sensitivity.rb:31:27:31:27 | x | semmle.label | x |
| call_sensitivity.rb:31:27:31:27 | x | semmle.label | x |
| call_sensitivity.rb:32:25:32:32 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:32:25:32:32 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:40:23:40:23 | x | semmle.label | x |
| call_sensitivity.rb:40:23:40:23 | x | semmle.label | x |
| call_sensitivity.rb:40:31:40:31 | x | semmle.label | x |
| call_sensitivity.rb:40:31:40:31 | x | semmle.label | x |
| call_sensitivity.rb:41:25:41:32 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:41:25:41:32 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:43:24:43:24 | x | semmle.label | x |
| call_sensitivity.rb:43:24:43:24 | x | semmle.label | x |
| call_sensitivity.rb:43:32:43:32 | x | semmle.label | x |
| call_sensitivity.rb:43:32:43:32 | x | semmle.label | x |
| call_sensitivity.rb:44:26:44:33 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:44:26:44:33 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:50:15:50:15 | x | semmle.label | x |
| call_sensitivity.rb:50:15:50:15 | x | semmle.label | x |
| call_sensitivity.rb:51:10:51:10 | x | semmle.label | x |
| call_sensitivity.rb:51:10:51:10 | x | semmle.label | x |
| call_sensitivity.rb:54:15:54:15 | x | semmle.label | x |
| call_sensitivity.rb:54:15:54:15 | x | semmle.label | x |
| call_sensitivity.rb:54:15:54:15 | x | semmle.label | x |
| call_sensitivity.rb:54:15:54:15 | x | semmle.label | x |
| call_sensitivity.rb:55:13:55:13 | x | semmle.label | x |
| call_sensitivity.rb:55:13:55:13 | x | semmle.label | x |
| call_sensitivity.rb:55:13:55:13 | x | semmle.label | x |
| call_sensitivity.rb:55:13:55:13 | x | semmle.label | x |
| call_sensitivity.rb:58:20:58:20 | x | semmle.label | x |
| call_sensitivity.rb:58:20:58:20 | x | semmle.label | x |
| call_sensitivity.rb:59:18:59:18 | x | semmle.label | x |
| call_sensitivity.rb:59:18:59:18 | x | semmle.label | x |
| call_sensitivity.rb:62:18:62:18 | y | semmle.label | y |
| call_sensitivity.rb:62:18:62:18 | y | semmle.label | y |
| call_sensitivity.rb:62:18:62:18 | y | semmle.label | y |
| call_sensitivity.rb:62:18:62:18 | y | semmle.label | y |
| call_sensitivity.rb:63:15:63:15 | y | semmle.label | y |
| call_sensitivity.rb:63:15:63:15 | y | semmle.label | y |
| call_sensitivity.rb:63:15:63:15 | y | semmle.label | y |
| call_sensitivity.rb:63:15:63:15 | y | semmle.label | y |
| call_sensitivity.rb:66:20:66:20 | x | semmle.label | x |
| call_sensitivity.rb:66:20:66:20 | x | semmle.label | x |
| call_sensitivity.rb:67:24:67:24 | x | semmle.label | x |
| call_sensitivity.rb:67:24:67:24 | x | semmle.label | x |
| call_sensitivity.rb:70:30:70:30 | x | semmle.label | x |
| call_sensitivity.rb:70:30:70:30 | x | semmle.label | x |
| call_sensitivity.rb:71:10:71:10 | x | semmle.label | x |
| call_sensitivity.rb:71:10:71:10 | x | semmle.label | x |
| call_sensitivity.rb:74:18:74:18 | y | semmle.label | y |
| call_sensitivity.rb:74:18:74:18 | y | semmle.label | y |
| call_sensitivity.rb:76:17:76:17 | y | semmle.label | y |
| call_sensitivity.rb:76:17:76:17 | y | semmle.label | y |
| call_sensitivity.rb:80:15:80:15 | x | semmle.label | x |
| call_sensitivity.rb:80:15:80:15 | x | semmle.label | x |
| call_sensitivity.rb:81:18:81:18 | x | semmle.label | x |
| call_sensitivity.rb:81:18:81:18 | x | semmle.label | x |
| call_sensitivity.rb:85:18:85:27 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:85:18:85:27 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:85:19:85:26 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:85:19:85:26 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:88:30:88:30 | x | semmle.label | x |
| call_sensitivity.rb:88:30:88:30 | x | semmle.label | x |
| call_sensitivity.rb:88:30:88:30 | x | semmle.label | x |
| call_sensitivity.rb:88:30:88:30 | x | semmle.label | x |
| call_sensitivity.rb:89:23:89:23 | x | semmle.label | x |
| call_sensitivity.rb:89:23:89:23 | x | semmle.label | x |
| call_sensitivity.rb:89:23:89:23 | x | semmle.label | x |
| call_sensitivity.rb:89:23:89:23 | x | semmle.label | x |
| call_sensitivity.rb:92:35:92:35 | x | semmle.label | x |
| call_sensitivity.rb:92:35:92:35 | x | semmle.label | x |
| call_sensitivity.rb:93:28:93:28 | x | semmle.label | x |
| call_sensitivity.rb:93:28:93:28 | x | semmle.label | x |
| call_sensitivity.rb:96:33:96:33 | y | semmle.label | y |
| call_sensitivity.rb:96:33:96:33 | y | semmle.label | y |
| call_sensitivity.rb:96:33:96:33 | y | semmle.label | y |
| call_sensitivity.rb:96:33:96:33 | y | semmle.label | y |
| call_sensitivity.rb:97:25:97:25 | y | semmle.label | y |
| call_sensitivity.rb:97:25:97:25 | y | semmle.label | y |
| call_sensitivity.rb:97:25:97:25 | y | semmle.label | y |
| call_sensitivity.rb:97:25:97:25 | y | semmle.label | y |
| call_sensitivity.rb:100:35:100:35 | x | semmle.label | x |
| call_sensitivity.rb:100:35:100:35 | x | semmle.label | x |
| call_sensitivity.rb:101:34:101:34 | x | semmle.label | x |
| call_sensitivity.rb:101:34:101:34 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:104:18:104:18 | x | semmle.label | x |
| call_sensitivity.rb:105:10:105:10 | x | semmle.label | x |
| call_sensitivity.rb:105:10:105:10 | x | semmle.label | x |
| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x |
| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x |
| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x |
| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x |
| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x |
| call_sensitivity.rb:106:13:106:13 | x | semmle.label | x |
| call_sensitivity.rb:109:21:109:21 | x | semmle.label | x |
| call_sensitivity.rb:109:21:109:21 | x | semmle.label | x |
| call_sensitivity.rb:110:9:110:9 | x | semmle.label | x |
| call_sensitivity.rb:110:9:110:9 | x | semmle.label | x |
| call_sensitivity.rb:114:11:114:20 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:114:11:114:20 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:114:12:114:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:114:12:114:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:115:11:115:18 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:115:11:115:18 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:116:16:116:23 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:116:16:116:23 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:117:14:117:22 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:117:14:117:22 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:118:16:118:24 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:118:16:118:24 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:119:14:119:22 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:119:14:119:22 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:121:21:121:28 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:121:21:121:28 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:122:26:122:33 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:122:26:122:33 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:123:24:123:32 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:123:24:123:32 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:124:26:124:33 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:124:26:124:33 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:125:12:125:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:125:12:125:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:166:14:166:22 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:166:14:166:22 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:174:19:174:19 | x | semmle.label | x |
| call_sensitivity.rb:174:19:174:19 | x | semmle.label | x |
| call_sensitivity.rb:175:12:175:12 | x | semmle.label | x |
| call_sensitivity.rb:175:12:175:12 | x | semmle.label | x |
| call_sensitivity.rb:178:11:178:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:178:11:178:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:187:11:187:20 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:187:11:187:20 | ( ... ) | semmle.label | ( ... ) |
| call_sensitivity.rb:187:12:187:19 | call to taint | semmle.label | call to taint |
| call_sensitivity.rb:187:12:187:19 | call to taint | semmle.label | call to taint |
subpaths
#select

View File

@@ -6,7 +6,7 @@ import codeql.ruby.AST
import codeql.ruby.DataFlow
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import TaintFlow::PathGraph
import codeql.ruby.dataflow.internal.DataFlowDispatch as DataFlowDispatch
query predicate mayBenefitFromCallContext = DataFlowDispatch::mayBenefitFromCallContext/2;

View File

@@ -1,88 +1,47 @@
testFailures
edges
| captured_variables.rb:1:24:1:24 | x | captured_variables.rb:2:20:2:20 | x |
| captured_variables.rb:1:24:1:24 | x | captured_variables.rb:2:20:2:20 | x |
| captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:1:24:1:24 | x |
| captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:1:24:1:24 | x |
| captured_variables.rb:21:33:21:33 | x | captured_variables.rb:23:14:23:14 | x |
| captured_variables.rb:21:33:21:33 | x | captured_variables.rb:23:14:23:14 | x |
| captured_variables.rb:27:29:27:39 | call to source | captured_variables.rb:21:33:21:33 | x |
| captured_variables.rb:27:29:27:39 | call to source | captured_variables.rb:21:33:21:33 | x |
| captured_variables.rb:32:31:32:31 | x | captured_variables.rb:34:14:34:14 | x |
| captured_variables.rb:32:31:32:31 | x | captured_variables.rb:34:14:34:14 | x |
| captured_variables.rb:38:27:38:37 | call to source | captured_variables.rb:32:31:32:31 | x |
| captured_variables.rb:38:27:38:37 | call to source | captured_variables.rb:32:31:32:31 | x |
| instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x |
| instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x |
| instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] |
| instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] |
| instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] |
| instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] |
| instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return |
| instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return |
| instance_variables.rb:14:16:14:21 | self [@field] | instance_variables.rb:14:16:14:21 | @field |
| instance_variables.rb:14:16:14:21 | self [@field] | instance_variables.rb:14:16:14:21 | @field |
| instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] |
| instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] |
| instance_variables.rb:19:5:19:8 | [post] self [@foo] | instance_variables.rb:20:10:20:13 | self [@foo] |
| instance_variables.rb:19:5:19:8 | [post] self [@foo] | instance_variables.rb:20:10:20:13 | self [@foo] |
| instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] |
| instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] |
| instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo |
| instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo |
| instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field |
| instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field |
| instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] |
| instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] |
| instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize |
| instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize |
| instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field |
| instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field |
| instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize |
| instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize |
| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] |
| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] |
| instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:13:33:13 | x |
| instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:13:33:13 | x |
| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x |
| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x |
| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] |
| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] |
| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field |
| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field |
| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] |
| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field |
| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x |
| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x |
| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:23 | call to bar [@field] |
| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:23 | call to bar [@field] |
| instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new |
| instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new |
| instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x |
| instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x |
| instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] |
| instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] |
| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] |
| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] |
| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field |
| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field |
| instance_variables.rb:58:1:58:3 | [post] bar [@field] | instance_variables.rb:59:6:59:8 | bar [@field] |
| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x |
@@ -90,437 +49,226 @@ edges
| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] |
| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:59:6:59:18 | call to inc_field |
| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | instance_variables.rb:63:6:63:9 | foo1 [@field] |
| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | instance_variables.rb:63:6:63:9 | foo1 [@field] |
| instance_variables.rb:62:14:62:22 | call to taint | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] |
| instance_variables.rb:62:14:62:22 | call to taint | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] |
| instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field |
| instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field |
| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] |
| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] |
| instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] |
| instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field |
| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] |
| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] |
| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] |
| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] |
| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] |
| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] |
| instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field |
| instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field |
| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] |
| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] |
| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] |
| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] |
| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] |
| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field |
| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] |
| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] |
| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] |
| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field |
| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] |
| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] |
| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] |
| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field |
| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] |
| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] |
| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] |
| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] |
| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x |
| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] |
| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] |
| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] |
| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field |
| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] |
| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field |
| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] |
| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field |
| instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] |
| instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] |
| instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] |
| instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] |
| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field |
| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] |
| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field |
| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] |
| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] |
| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field |
| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field |
| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] |
| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field |
| instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar |
| instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar |
| instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar |
| instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar |
nodes
| captured_variables.rb:1:24:1:24 | x | semmle.label | x |
| captured_variables.rb:1:24:1:24 | x | semmle.label | x |
| captured_variables.rb:2:20:2:20 | x | semmle.label | x |
| captured_variables.rb:2:20:2:20 | x | semmle.label | x |
| captured_variables.rb:5:20:5:30 | call to source | semmle.label | call to source |
| captured_variables.rb:5:20:5:30 | call to source | semmle.label | call to source |
| captured_variables.rb:21:33:21:33 | x | semmle.label | x |
| captured_variables.rb:21:33:21:33 | x | semmle.label | x |
| captured_variables.rb:23:14:23:14 | x | semmle.label | x |
| captured_variables.rb:23:14:23:14 | x | semmle.label | x |
| captured_variables.rb:27:29:27:39 | call to source | semmle.label | call to source |
| captured_variables.rb:27:29:27:39 | call to source | semmle.label | call to source |
| captured_variables.rb:32:31:32:31 | x | semmle.label | x |
| captured_variables.rb:32:31:32:31 | x | semmle.label | x |
| captured_variables.rb:34:14:34:14 | x | semmle.label | x |
| captured_variables.rb:34:14:34:14 | x | semmle.label | x |
| captured_variables.rb:38:27:38:37 | call to source | semmle.label | call to source |
| captured_variables.rb:38:27:38:37 | call to source | semmle.label | call to source |
| instance_variables.rb:10:19:10:19 | x | semmle.label | x |
| instance_variables.rb:10:19:10:19 | x | semmle.label | x |
| instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:11:18:11:18 | x | semmle.label | x |
| instance_variables.rb:11:18:11:18 | x | semmle.label | x |
| instance_variables.rb:13:5:15:7 | self in get_field [@field] | semmle.label | self in get_field [@field] |
| instance_variables.rb:13:5:15:7 | self in get_field [@field] | semmle.label | self in get_field [@field] |
| instance_variables.rb:14:9:14:21 | return | semmle.label | return |
| instance_variables.rb:14:9:14:21 | return | semmle.label | return |
| instance_variables.rb:14:16:14:21 | @field | semmle.label | @field |
| instance_variables.rb:14:16:14:21 | @field | semmle.label | @field |
| instance_variables.rb:14:16:14:21 | self [@field] | semmle.label | self [@field] |
| instance_variables.rb:14:16:14:21 | self [@field] | semmle.label | self [@field] |
| instance_variables.rb:16:5:18:7 | self in inc_field [@field] | semmle.label | self in inc_field [@field] |
| instance_variables.rb:17:9:17:14 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:19:5:19:8 | [post] self [@foo] | semmle.label | [post] self [@foo] |
| instance_variables.rb:19:5:19:8 | [post] self [@foo] | semmle.label | [post] self [@foo] |
| instance_variables.rb:19:12:19:21 | call to taint | semmle.label | call to taint |
| instance_variables.rb:19:12:19:21 | call to taint | semmle.label | call to taint |
| instance_variables.rb:20:10:20:13 | @foo | semmle.label | @foo |
| instance_variables.rb:20:10:20:13 | @foo | semmle.label | @foo |
| instance_variables.rb:20:10:20:13 | self [@foo] | semmle.label | self [@foo] |
| instance_variables.rb:20:10:20:13 | self [@foo] | semmle.label | self [@foo] |
| instance_variables.rb:22:20:22:24 | field | semmle.label | field |
| instance_variables.rb:22:20:22:24 | field | semmle.label | field |
| instance_variables.rb:23:9:23:14 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:23:9:23:14 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:23:18:23:22 | field | semmle.label | field |
| instance_variables.rb:23:18:23:22 | field | semmle.label | field |
| instance_variables.rb:24:9:24:17 | call to taint | semmle.label | call to taint |
| instance_variables.rb:24:9:24:17 | call to taint | semmle.label | call to taint |
| instance_variables.rb:27:25:27:29 | field | semmle.label | field |
| instance_variables.rb:27:25:27:29 | field | semmle.label | field |
| instance_variables.rb:28:9:28:25 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:28:9:28:25 | [post] self [@field] | semmle.label | [post] self [@field] |
| instance_variables.rb:28:9:28:25 | call to initialize | semmle.label | call to initialize |
| instance_variables.rb:28:9:28:25 | call to initialize | semmle.label | call to initialize |
| instance_variables.rb:28:20:28:24 | field | semmle.label | field |
| instance_variables.rb:28:20:28:24 | field | semmle.label | field |
| instance_variables.rb:31:18:31:18 | x | semmle.label | x |
| instance_variables.rb:31:18:31:18 | x | semmle.label | x |
| instance_variables.rb:32:13:32:21 | call to taint | semmle.label | call to taint |
| instance_variables.rb:32:13:32:21 | call to taint | semmle.label | call to taint |
| instance_variables.rb:33:9:33:14 | call to new [@field] | semmle.label | call to new [@field] |
| instance_variables.rb:33:9:33:14 | call to new [@field] | semmle.label | call to new [@field] |
| instance_variables.rb:33:13:33:13 | x | semmle.label | x |
| instance_variables.rb:33:13:33:13 | x | semmle.label | x |
| instance_variables.rb:36:10:36:23 | call to new [@field] | semmle.label | call to new [@field] |
| instance_variables.rb:36:10:36:23 | call to new [@field] | semmle.label | call to new [@field] |
| instance_variables.rb:36:10:36:33 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:36:10:36:33 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:36:14:36:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:36:14:36:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | semmle.label | call to bar [@field] |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | semmle.label | call to bar [@field] |
| instance_variables.rb:39:6:39:33 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:39:6:39:33 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:39:14:39:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:39:14:39:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:43:9:43:17 | call to taint | semmle.label | call to taint |
| instance_variables.rb:43:9:43:17 | call to taint | semmle.label | call to taint |
| instance_variables.rb:48:20:48:20 | x | semmle.label | x |
| instance_variables.rb:48:20:48:20 | x | semmle.label | x |
| instance_variables.rb:49:14:49:14 | x | semmle.label | x |
| instance_variables.rb:49:14:49:14 | x | semmle.label | x |
| instance_variables.rb:54:1:54:3 | [post] foo [@field] | semmle.label | [post] foo [@field] |
| instance_variables.rb:54:1:54:3 | [post] foo [@field] | semmle.label | [post] foo [@field] |
| instance_variables.rb:54:15:54:23 | call to taint | semmle.label | call to taint |
| instance_variables.rb:54:15:54:23 | call to taint | semmle.label | call to taint |
| instance_variables.rb:55:6:55:8 | foo [@field] | semmle.label | foo [@field] |
| instance_variables.rb:55:6:55:8 | foo [@field] | semmle.label | foo [@field] |
| instance_variables.rb:55:6:55:18 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:55:6:55:18 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:58:1:58:3 | [post] bar [@field] | semmle.label | [post] bar [@field] |
| instance_variables.rb:58:15:58:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:59:6:59:8 | bar [@field] | semmle.label | bar [@field] |
| instance_variables.rb:59:6:59:18 | call to inc_field | semmle.label | call to inc_field |
| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | semmle.label | [post] foo1 [@field] |
| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | semmle.label | [post] foo1 [@field] |
| instance_variables.rb:62:14:62:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:62:14:62:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:63:6:63:9 | foo1 [@field] | semmle.label | foo1 [@field] |
| instance_variables.rb:63:6:63:9 | foo1 [@field] | semmle.label | foo1 [@field] |
| instance_variables.rb:63:6:63:15 | call to field | semmle.label | call to field |
| instance_variables.rb:63:6:63:15 | call to field | semmle.label | call to field |
| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | semmle.label | [post] foo2 [@field] |
| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | semmle.label | [post] foo2 [@field] |
| instance_variables.rb:66:14:66:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:66:14:66:22 | call to taint | semmle.label | call to taint |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | semmle.label | foo2 [@field] |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | semmle.label | foo2 [@field] |
| instance_variables.rb:67:6:67:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:67:6:67:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | semmle.label | [post] foo3 [@field] |
| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | semmle.label | [post] foo3 [@field] |
| instance_variables.rb:70:16:70:24 | call to taint | semmle.label | call to taint |
| instance_variables.rb:70:16:70:24 | call to taint | semmle.label | call to taint |
| instance_variables.rb:71:6:71:9 | foo3 [@field] | semmle.label | foo3 [@field] |
| instance_variables.rb:71:6:71:9 | foo3 [@field] | semmle.label | foo3 [@field] |
| instance_variables.rb:71:6:71:15 | call to field | semmle.label | call to field |
| instance_variables.rb:71:6:71:15 | call to field | semmle.label | call to field |
| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | semmle.label | [post] foo5 [@field] |
| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | semmle.label | [post] foo5 [@field] |
| instance_variables.rb:78:18:78:26 | call to taint | semmle.label | call to taint |
| instance_variables.rb:78:18:78:26 | call to taint | semmle.label | call to taint |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | semmle.label | foo5 [@field] |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | semmle.label | foo5 [@field] |
| instance_variables.rb:79:6:79:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:79:6:79:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | semmle.label | [post] foo6 [@field] |
| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | semmle.label | [post] foo6 [@field] |
| instance_variables.rb:82:32:82:40 | call to taint | semmle.label | call to taint |
| instance_variables.rb:82:32:82:40 | call to taint | semmle.label | call to taint |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | semmle.label | foo3 [@field] |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | semmle.label | foo3 [@field] |
| instance_variables.rb:83:6:83:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:83:6:83:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | semmle.label | foo5 [@field] |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | semmle.label | foo5 [@field] |
| instance_variables.rb:84:6:84:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:84:6:84:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | semmle.label | foo6 [@field] |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | semmle.label | foo6 [@field] |
| instance_variables.rb:85:6:85:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:85:6:85:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | semmle.label | [post] foo7 [@field] |
| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | semmle.label | [post] foo7 [@field] |
| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | semmle.label | [post] foo8 [@field] |
| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | semmle.label | [post] foo8 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | semmle.label | call to taint |
| instance_variables.rb:89:45:89:53 | call to taint | semmle.label | call to taint |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | semmle.label | foo7 [@field] |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | semmle.label | foo7 [@field] |
| instance_variables.rb:90:6:90:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:90:6:90:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | semmle.label | foo8 [@field] |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | semmle.label | foo8 [@field] |
| instance_variables.rb:91:6:91:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:91:6:91:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | semmle.label | [post] foo9 [@field] |
| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | semmle.label | [post] foo9 [@field] |
| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | semmle.label | [post] foo10 [@field] |
| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | semmle.label | [post] foo10 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | semmle.label | call to taint |
| instance_variables.rb:95:53:95:61 | call to taint | semmle.label | call to taint |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | semmle.label | foo9 [@field] |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | semmle.label | foo9 [@field] |
| instance_variables.rb:96:6:96:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:96:6:96:19 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | semmle.label | foo10 [@field] |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | semmle.label | foo10 [@field] |
| instance_variables.rb:97:6:97:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:97:6:97:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | semmle.label | [post] x [@field] |
| instance_variables.rb:100:5:100:5 | [post] x [@field] | semmle.label | [post] x [@field] |
| instance_variables.rb:100:17:100:25 | call to taint | semmle.label | call to taint |
| instance_variables.rb:100:17:100:25 | call to taint | semmle.label | call to taint |
| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | semmle.label | [post] foo11 [@field] |
| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | semmle.label | [post] foo11 [@field] |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | semmle.label | foo11 [@field] |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | semmle.label | foo11 [@field] |
| instance_variables.rb:105:6:105:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:105:6:105:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | semmle.label | [post] foo12 [@field] |
| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | semmle.label | [post] foo12 [@field] |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | semmle.label | foo12 [@field] |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | semmle.label | foo12 [@field] |
| instance_variables.rb:109:6:109:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:109:6:109:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | semmle.label | [post] foo13 [@field] |
| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | semmle.label | [post] foo13 [@field] |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | semmle.label | foo13 [@field] |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | semmle.label | foo13 [@field] |
| instance_variables.rb:114:6:114:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:114:6:114:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:116:1:116:5 | foo15 [@field] | semmle.label | foo15 [@field] |
| instance_variables.rb:116:1:116:5 | foo15 [@field] | semmle.label | foo15 [@field] |
| instance_variables.rb:116:9:116:26 | call to new [@field] | semmle.label | call to new [@field] |
| instance_variables.rb:116:9:116:26 | call to new [@field] | semmle.label | call to new [@field] |
| instance_variables.rb:116:17:116:25 | call to taint | semmle.label | call to taint |
| instance_variables.rb:116:17:116:25 | call to taint | semmle.label | call to taint |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | semmle.label | foo15 [@field] |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | semmle.label | foo15 [@field] |
| instance_variables.rb:117:6:117:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:117:6:117:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | semmle.label | [post] foo16 [@field] |
| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | semmle.label | [post] foo16 [@field] |
| instance_variables.rb:119:6:119:37 | call to call_initialize | semmle.label | call to call_initialize |
| instance_variables.rb:119:6:119:37 | call to call_initialize | semmle.label | call to call_initialize |
| instance_variables.rb:119:28:119:36 | call to taint | semmle.label | call to taint |
| instance_variables.rb:119:28:119:36 | call to taint | semmle.label | call to taint |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | semmle.label | foo16 [@field] |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | semmle.label | foo16 [@field] |
| instance_variables.rb:120:6:120:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:120:6:120:20 | call to get_field | semmle.label | call to get_field |
| instance_variables.rb:121:1:121:3 | bar | semmle.label | bar |
| instance_variables.rb:121:1:121:3 | bar | semmle.label | bar |
| instance_variables.rb:121:7:121:24 | call to new | semmle.label | call to new |
| instance_variables.rb:121:7:121:24 | call to new | semmle.label | call to new |
| instance_variables.rb:122:6:122:8 | bar | semmle.label | bar |
| instance_variables.rb:122:6:122:8 | bar | semmle.label | bar |
subpaths
| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] |
| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] |
| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] |
| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] |
| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:36:10:36:33 | call to get_field |
| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:36:10:36:33 | call to get_field |
| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:36:10:36:23 | call to new [@field] |
| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:36:10:36:23 | call to new [@field] |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:39:6:39:33 | call to get_field |
| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:39:6:39:33 | call to get_field |
| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | instance_variables.rb:39:6:39:23 | call to bar [@field] |
| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | instance_variables.rb:39:6:39:23 | call to bar [@field] |
| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] |
| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] |
| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:55:6:55:18 | call to get_field |
| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:55:6:55:18 | call to get_field |
| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] |
| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:59:6:59:18 | call to inc_field |
| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:59:6:59:18 | call to inc_field |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:67:6:67:19 | call to get_field |
| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:67:6:67:19 | call to get_field |
| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] |
| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] |
| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] |
| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:79:6:79:19 | call to get_field |
| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:79:6:79:19 | call to get_field |
| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] |
| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:83:6:83:19 | call to get_field |
| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:83:6:83:19 | call to get_field |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:84:6:84:19 | call to get_field |
| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:84:6:84:19 | call to get_field |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:85:6:85:19 | call to get_field |
| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:85:6:85:19 | call to get_field |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] |
| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:90:6:90:19 | call to get_field |
| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:90:6:90:19 | call to get_field |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:91:6:91:19 | call to get_field |
| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:91:6:91:19 | call to get_field |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] |
| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:96:6:96:19 | call to get_field |
| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:96:6:96:19 | call to get_field |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:97:6:97:20 | call to get_field |
| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:97:6:97:20 | call to get_field |
| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] |
| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:105:6:105:20 | call to get_field |
| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:105:6:105:20 | call to get_field |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:109:6:109:20 | call to get_field |
| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:109:6:109:20 | call to get_field |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:114:6:114:20 | call to get_field |
| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:114:6:114:20 | call to get_field |
| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:116:9:116:26 | call to new [@field] |
| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:116:9:116:26 | call to new [@field] |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:117:6:117:20 | call to get_field |
| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:117:6:117:20 | call to get_field |
| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] |
| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field |
| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field |
#select
| captured_variables.rb:2:20:2:20 | x | captured_variables.rb:5:20:5:30 | call to source | captured_variables.rb:2:20:2:20 | x | $@ | captured_variables.rb:5:20:5:30 | call to source | call to source |

View File

@@ -6,7 +6,7 @@ import codeql.ruby.AST
import codeql.ruby.DataFlow
private import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import TaintFlow::PathGraph
from TaintFlow::PathNode source, TaintFlow::PathNode sink
where TaintFlow::flowPath(source, sink)

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import ValueFlowTest<DefaultFlowConfig>
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -19,66 +19,35 @@ edges
| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:78:3:78:3 | z |
| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:87:25:87:25 | x |
| local_dataflow.rb:93:3:93:3 | a | local_dataflow.rb:94:8:94:8 | a |
| local_dataflow.rb:93:3:93:3 | a | local_dataflow.rb:94:8:94:8 | a |
| local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:3:93:3 | a |
| local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:3:93:3 | a |
| local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:3:93:3 | a |
| local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:3:93:3 | a |
| local_dataflow.rb:95:3:95:3 | b | local_dataflow.rb:96:8:96:8 | b |
| local_dataflow.rb:95:3:95:3 | b | local_dataflow.rb:96:8:96:8 | b |
| local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:3:95:3 | b |
| local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:3:95:3 | b |
| local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:3:95:3 | b |
| local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:3:95:3 | b |
| local_dataflow.rb:98:3:98:3 | a | local_dataflow.rb:99:8:99:8 | a |
| local_dataflow.rb:98:3:98:3 | a | local_dataflow.rb:99:8:99:8 | a |
| local_dataflow.rb:98:7:98:15 | call to source | local_dataflow.rb:98:3:98:3 | a |
| local_dataflow.rb:98:7:98:15 | call to source | local_dataflow.rb:98:3:98:3 | a |
| local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:3:98:3 | a |
| local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:3:98:3 | a |
| local_dataflow.rb:100:3:100:3 | b | local_dataflow.rb:101:8:101:8 | b |
| local_dataflow.rb:100:3:100:3 | b | local_dataflow.rb:101:8:101:8 | b |
| local_dataflow.rb:100:8:100:16 | call to source | local_dataflow.rb:100:3:100:3 | b |
| local_dataflow.rb:100:8:100:16 | call to source | local_dataflow.rb:100:3:100:3 | b |
| local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:3:100:3 | b |
| local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:3:100:3 | b |
| local_dataflow.rb:103:3:103:3 | a | local_dataflow.rb:104:3:104:3 | a |
| local_dataflow.rb:103:3:103:3 | a | local_dataflow.rb:104:3:104:3 | a |
| local_dataflow.rb:103:7:103:15 | call to source | local_dataflow.rb:103:3:103:3 | a |
| local_dataflow.rb:103:7:103:15 | call to source | local_dataflow.rb:103:3:103:3 | a |
| local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:105:8:105:8 | a |
| local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:105:8:105:8 | a |
| local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:3:104:3 | a |
| local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:3:104:3 | a |
| local_dataflow.rb:106:3:106:3 | b | local_dataflow.rb:107:3:107:3 | b |
| local_dataflow.rb:106:3:106:3 | b | local_dataflow.rb:107:3:107:3 | b |
| local_dataflow.rb:106:7:106:15 | call to source | local_dataflow.rb:106:3:106:3 | b |
| local_dataflow.rb:106:7:106:15 | call to source | local_dataflow.rb:106:3:106:3 | b |
| local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:108:8:108:8 | b |
| local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:108:8:108:8 | b |
| local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:3:107:3 | b |
| local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:3:107:3 | b |
| local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup |
| local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup |
| local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup |
| local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup |
| local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup |
| local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup |
| local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap |
| local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap |
| local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:20:118:20 | x |
| local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:20:118:20 | x |
| local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x |
| local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x |
| local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap |
| local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap |
| local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap |
| local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap |
| local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup |
| local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup |
| local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap |
| local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap |
| local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup |
| local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup |
nodes
| local_dataflow.rb:78:3:78:3 | z | semmle.label | z |
@@ -101,90 +70,47 @@ nodes
| local_dataflow.rb:87:25:87:25 | x | semmle.label | x |
| local_dataflow.rb:89:8:89:8 | z | semmle.label | z |
| local_dataflow.rb:93:3:93:3 | a | semmle.label | a |
| local_dataflow.rb:93:3:93:3 | a | semmle.label | a |
| local_dataflow.rb:93:7:93:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:93:7:93:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:93:20:93:28 | call to source | semmle.label | call to source |
| local_dataflow.rb:93:20:93:28 | call to source | semmle.label | call to source |
| local_dataflow.rb:94:8:94:8 | a | semmle.label | a |
| local_dataflow.rb:94:8:94:8 | a | semmle.label | a |
| local_dataflow.rb:95:3:95:3 | b | semmle.label | b |
| local_dataflow.rb:95:3:95:3 | b | semmle.label | b |
| local_dataflow.rb:95:8:95:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:95:8:95:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:95:21:95:29 | call to source | semmle.label | call to source |
| local_dataflow.rb:95:21:95:29 | call to source | semmle.label | call to source |
| local_dataflow.rb:96:8:96:8 | b | semmle.label | b |
| local_dataflow.rb:96:8:96:8 | b | semmle.label | b |
| local_dataflow.rb:98:3:98:3 | a | semmle.label | a |
| local_dataflow.rb:98:3:98:3 | a | semmle.label | a |
| local_dataflow.rb:98:7:98:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:98:7:98:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:98:20:98:28 | call to source | semmle.label | call to source |
| local_dataflow.rb:98:20:98:28 | call to source | semmle.label | call to source |
| local_dataflow.rb:99:8:99:8 | a | semmle.label | a |
| local_dataflow.rb:99:8:99:8 | a | semmle.label | a |
| local_dataflow.rb:100:3:100:3 | b | semmle.label | b |
| local_dataflow.rb:100:3:100:3 | b | semmle.label | b |
| local_dataflow.rb:100:8:100:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:100:8:100:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:100:22:100:30 | call to source | semmle.label | call to source |
| local_dataflow.rb:100:22:100:30 | call to source | semmle.label | call to source |
| local_dataflow.rb:101:8:101:8 | b | semmle.label | b |
| local_dataflow.rb:101:8:101:8 | b | semmle.label | b |
| local_dataflow.rb:103:3:103:3 | a | semmle.label | a |
| local_dataflow.rb:103:3:103:3 | a | semmle.label | a |
| local_dataflow.rb:103:7:103:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:103:7:103:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:104:3:104:3 | a | semmle.label | a |
| local_dataflow.rb:104:3:104:3 | a | semmle.label | a |
| local_dataflow.rb:104:9:104:17 | call to source | semmle.label | call to source |
| local_dataflow.rb:104:9:104:17 | call to source | semmle.label | call to source |
| local_dataflow.rb:105:8:105:8 | a | semmle.label | a |
| local_dataflow.rb:105:8:105:8 | a | semmle.label | a |
| local_dataflow.rb:106:3:106:3 | b | semmle.label | b |
| local_dataflow.rb:106:3:106:3 | b | semmle.label | b |
| local_dataflow.rb:106:7:106:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:106:7:106:15 | call to source | semmle.label | call to source |
| local_dataflow.rb:107:3:107:3 | b | semmle.label | b |
| local_dataflow.rb:107:3:107:3 | b | semmle.label | b |
| local_dataflow.rb:107:9:107:17 | call to source | semmle.label | call to source |
| local_dataflow.rb:107:9:107:17 | call to source | semmle.label | call to source |
| local_dataflow.rb:108:8:108:8 | b | semmle.label | b |
| local_dataflow.rb:108:8:108:8 | b | semmle.label | b |
| local_dataflow.rb:112:8:112:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:112:8:112:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:112:8:112:20 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:112:8:112:20 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:113:8:113:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:113:8:113:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:113:8:113:20 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:113:8:113:20 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:113:8:113:24 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:113:8:113:24 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:117:8:117:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:117:8:117:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:117:8:117:23 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:117:8:117:23 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:118:3:118:11 | call to source | semmle.label | call to source |
| local_dataflow.rb:118:3:118:11 | call to source | semmle.label | call to source |
| local_dataflow.rb:118:20:118:20 | x | semmle.label | x |
| local_dataflow.rb:118:20:118:20 | x | semmle.label | x |
| local_dataflow.rb:118:28:118:28 | x | semmle.label | x |
| local_dataflow.rb:118:28:118:28 | x | semmle.label | x |
| local_dataflow.rb:119:8:119:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:119:8:119:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:119:8:119:23 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:119:8:119:23 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:119:8:119:30 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:119:8:119:30 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:123:8:123:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:123:8:123:16 | call to source | semmle.label | call to source |
| local_dataflow.rb:123:8:123:20 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:123:8:123:20 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:123:8:123:45 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:123:8:123:45 | call to tap | semmle.label | call to tap |
| local_dataflow.rb:123:8:123:49 | call to dup | semmle.label | call to dup |
| local_dataflow.rb:123:8:123:49 | call to dup | semmle.label | call to dup |
subpaths
#select

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import TaintFlow::PathGraph
from TaintFlow::PathNode source, TaintFlow::PathNode sink
where TaintFlow::flowPath(source, sink)

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import ValueFlowTest<DefaultFlowConfig>
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -1,293 +1,5 @@
testFailures
edges
| pathname_flow.rb:4:5:4:6 | pn | pathname_flow.rb:5:10:5:11 | pn |
| pathname_flow.rb:4:10:4:33 | call to new | pathname_flow.rb:4:5:4:6 | pn |
| pathname_flow.rb:4:23:4:32 | call to source | pathname_flow.rb:4:10:4:33 | call to new |
| pathname_flow.rb:9:3:9:3 | a | pathname_flow.rb:11:8:11:12 | ... + ... |
| pathname_flow.rb:9:7:9:30 | call to new | pathname_flow.rb:9:3:9:3 | a |
| pathname_flow.rb:9:20:9:29 | call to source | pathname_flow.rb:9:7:9:30 | call to new |
| pathname_flow.rb:10:3:10:3 | b | pathname_flow.rb:11:8:11:12 | ... + ... |
| pathname_flow.rb:10:7:10:30 | call to new | pathname_flow.rb:10:3:10:3 | b |
| pathname_flow.rb:10:20:10:29 | call to source | pathname_flow.rb:10:7:10:30 | call to new |
| pathname_flow.rb:15:3:15:4 | pn | pathname_flow.rb:16:8:16:9 | pn |
| pathname_flow.rb:15:8:15:31 | call to new | pathname_flow.rb:15:3:15:4 | pn |
| pathname_flow.rb:15:21:15:30 | call to source | pathname_flow.rb:15:8:15:31 | call to new |
| pathname_flow.rb:16:8:16:9 | pn | pathname_flow.rb:16:8:16:17 | call to dirname |
| pathname_flow.rb:20:3:20:3 | a | pathname_flow.rb:21:3:21:3 | a |
| pathname_flow.rb:20:7:20:30 | call to new | pathname_flow.rb:20:3:20:3 | a |
| pathname_flow.rb:20:20:20:29 | call to source | pathname_flow.rb:20:7:20:30 | call to new |
| pathname_flow.rb:21:3:21:3 | a | pathname_flow.rb:21:23:21:23 | x |
| pathname_flow.rb:21:23:21:23 | x | pathname_flow.rb:22:10:22:10 | x |
| pathname_flow.rb:27:3:27:3 | a | pathname_flow.rb:28:8:28:8 | a |
| pathname_flow.rb:27:7:27:30 | call to new | pathname_flow.rb:27:3:27:3 | a |
| pathname_flow.rb:27:20:27:29 | call to source | pathname_flow.rb:27:7:27:30 | call to new |
| pathname_flow.rb:28:8:28:8 | a | pathname_flow.rb:28:8:28:22 | call to expand_path |
| pathname_flow.rb:32:3:32:3 | a | pathname_flow.rb:35:8:35:8 | a |
| pathname_flow.rb:32:7:32:30 | call to new | pathname_flow.rb:32:3:32:3 | a |
| pathname_flow.rb:32:20:32:29 | call to source | pathname_flow.rb:32:7:32:30 | call to new |
| pathname_flow.rb:34:3:34:3 | c | pathname_flow.rb:35:18:35:18 | c |
| pathname_flow.rb:34:7:34:30 | call to new | pathname_flow.rb:34:3:34:3 | c |
| pathname_flow.rb:34:20:34:29 | call to source | pathname_flow.rb:34:7:34:30 | call to new |
| pathname_flow.rb:35:8:35:8 | a | pathname_flow.rb:35:8:35:19 | call to join |
| pathname_flow.rb:35:18:35:18 | c | pathname_flow.rb:35:8:35:19 | call to join |
| pathname_flow.rb:39:3:39:3 | a | pathname_flow.rb:40:8:40:8 | a |
| pathname_flow.rb:39:7:39:30 | call to new | pathname_flow.rb:39:3:39:3 | a |
| pathname_flow.rb:39:20:39:29 | call to source | pathname_flow.rb:39:7:39:30 | call to new |
| pathname_flow.rb:40:8:40:8 | a | pathname_flow.rb:40:8:40:17 | call to parent |
| pathname_flow.rb:44:3:44:3 | a | pathname_flow.rb:45:8:45:8 | a |
| pathname_flow.rb:44:7:44:30 | call to new | pathname_flow.rb:44:3:44:3 | a |
| pathname_flow.rb:44:20:44:29 | call to source | pathname_flow.rb:44:7:44:30 | call to new |
| pathname_flow.rb:45:8:45:8 | a | pathname_flow.rb:45:8:45:19 | call to realpath |
| pathname_flow.rb:49:3:49:3 | a | pathname_flow.rb:50:8:50:8 | a |
| pathname_flow.rb:49:7:49:30 | call to new | pathname_flow.rb:49:3:49:3 | a |
| pathname_flow.rb:49:20:49:29 | call to source | pathname_flow.rb:49:7:49:30 | call to new |
| pathname_flow.rb:50:8:50:8 | a | pathname_flow.rb:50:8:50:39 | call to relative_path_from |
| pathname_flow.rb:54:3:54:3 | a | pathname_flow.rb:55:8:55:8 | a |
| pathname_flow.rb:54:7:54:30 | call to new | pathname_flow.rb:54:3:54:3 | a |
| pathname_flow.rb:54:20:54:29 | call to source | pathname_flow.rb:54:7:54:30 | call to new |
| pathname_flow.rb:55:8:55:8 | a | pathname_flow.rb:55:8:55:16 | call to to_path |
| pathname_flow.rb:59:3:59:3 | a | pathname_flow.rb:60:8:60:8 | a |
| pathname_flow.rb:59:7:59:30 | call to new | pathname_flow.rb:59:3:59:3 | a |
| pathname_flow.rb:59:20:59:29 | call to source | pathname_flow.rb:59:7:59:30 | call to new |
| pathname_flow.rb:60:8:60:8 | a | pathname_flow.rb:60:8:60:13 | call to to_s |
| pathname_flow.rb:64:3:64:3 | a | pathname_flow.rb:65:3:65:3 | b |
| pathname_flow.rb:64:7:64:30 | call to new | pathname_flow.rb:64:3:64:3 | a |
| pathname_flow.rb:64:20:64:29 | call to source | pathname_flow.rb:64:7:64:30 | call to new |
| pathname_flow.rb:65:3:65:3 | b | pathname_flow.rb:66:8:66:8 | b |
| pathname_flow.rb:70:3:70:3 | a | pathname_flow.rb:71:3:71:3 | b |
| pathname_flow.rb:70:7:70:30 | call to new | pathname_flow.rb:70:3:70:3 | a |
| pathname_flow.rb:70:20:70:29 | call to source | pathname_flow.rb:70:7:70:30 | call to new |
| pathname_flow.rb:71:3:71:3 | b | pathname_flow.rb:72:8:72:8 | b |
| pathname_flow.rb:76:3:76:3 | a | pathname_flow.rb:77:7:77:7 | a |
| pathname_flow.rb:76:7:76:30 | call to new | pathname_flow.rb:76:3:76:3 | a |
| pathname_flow.rb:76:20:76:29 | call to source | pathname_flow.rb:76:7:76:30 | call to new |
| pathname_flow.rb:77:3:77:3 | b | pathname_flow.rb:78:8:78:8 | b |
| pathname_flow.rb:77:7:77:7 | a | pathname_flow.rb:77:7:77:16 | call to basename |
| pathname_flow.rb:77:7:77:16 | call to basename | pathname_flow.rb:77:3:77:3 | b |
| pathname_flow.rb:82:3:82:3 | a | pathname_flow.rb:83:7:83:7 | a |
| pathname_flow.rb:82:7:82:30 | call to new | pathname_flow.rb:82:3:82:3 | a |
| pathname_flow.rb:82:20:82:29 | call to source | pathname_flow.rb:82:7:82:30 | call to new |
| pathname_flow.rb:83:3:83:3 | b | pathname_flow.rb:84:8:84:8 | b |
| pathname_flow.rb:83:7:83:7 | a | pathname_flow.rb:83:7:83:17 | call to cleanpath |
| pathname_flow.rb:83:7:83:17 | call to cleanpath | pathname_flow.rb:83:3:83:3 | b |
| pathname_flow.rb:88:3:88:3 | a | pathname_flow.rb:89:7:89:7 | a |
| pathname_flow.rb:88:7:88:30 | call to new | pathname_flow.rb:88:3:88:3 | a |
| pathname_flow.rb:88:20:88:29 | call to source | pathname_flow.rb:88:7:88:30 | call to new |
| pathname_flow.rb:89:3:89:3 | b | pathname_flow.rb:90:8:90:8 | b |
| pathname_flow.rb:89:7:89:7 | a | pathname_flow.rb:89:7:89:25 | call to sub |
| pathname_flow.rb:89:7:89:25 | call to sub | pathname_flow.rb:89:3:89:3 | b |
| pathname_flow.rb:94:3:94:3 | a | pathname_flow.rb:95:7:95:7 | a |
| pathname_flow.rb:94:7:94:30 | call to new | pathname_flow.rb:94:3:94:3 | a |
| pathname_flow.rb:94:20:94:29 | call to source | pathname_flow.rb:94:7:94:30 | call to new |
| pathname_flow.rb:95:3:95:3 | b | pathname_flow.rb:96:8:96:8 | b |
| pathname_flow.rb:95:7:95:7 | a | pathname_flow.rb:95:7:95:23 | call to sub_ext |
| pathname_flow.rb:95:7:95:23 | call to sub_ext | pathname_flow.rb:95:3:95:3 | b |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:103:3:103:3 | b |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:106:3:106:3 | c |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:109:7:109:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:112:7:112:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:115:7:115:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:118:7:118:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:121:7:121:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:124:7:124:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:127:7:127:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:130:7:130:7 | a |
| pathname_flow.rb:101:3:101:3 | a | pathname_flow.rb:133:7:133:7 | a |
| pathname_flow.rb:101:7:101:30 | call to new | pathname_flow.rb:101:3:101:3 | a |
| pathname_flow.rb:101:20:101:29 | call to source | pathname_flow.rb:101:7:101:30 | call to new |
| pathname_flow.rb:103:3:103:3 | b | pathname_flow.rb:104:8:104:8 | b |
| pathname_flow.rb:104:8:104:8 | b | pathname_flow.rb:104:8:104:17 | call to realpath |
| pathname_flow.rb:106:3:106:3 | c | pathname_flow.rb:107:8:107:8 | c |
| pathname_flow.rb:107:8:107:8 | c | pathname_flow.rb:107:8:107:17 | call to realpath |
| pathname_flow.rb:109:3:109:3 | d | pathname_flow.rb:110:8:110:8 | d |
| pathname_flow.rb:109:7:109:7 | a | pathname_flow.rb:109:7:109:16 | call to basename |
| pathname_flow.rb:109:7:109:16 | call to basename | pathname_flow.rb:109:3:109:3 | d |
| pathname_flow.rb:110:8:110:8 | d | pathname_flow.rb:110:8:110:17 | call to realpath |
| pathname_flow.rb:112:3:112:3 | e | pathname_flow.rb:113:8:113:8 | e |
| pathname_flow.rb:112:7:112:7 | a | pathname_flow.rb:112:7:112:17 | call to cleanpath |
| pathname_flow.rb:112:7:112:17 | call to cleanpath | pathname_flow.rb:112:3:112:3 | e |
| pathname_flow.rb:113:8:113:8 | e | pathname_flow.rb:113:8:113:17 | call to realpath |
| pathname_flow.rb:115:3:115:3 | f | pathname_flow.rb:116:8:116:8 | f |
| pathname_flow.rb:115:7:115:7 | a | pathname_flow.rb:115:7:115:19 | call to expand_path |
| pathname_flow.rb:115:7:115:19 | call to expand_path | pathname_flow.rb:115:3:115:3 | f |
| pathname_flow.rb:116:8:116:8 | f | pathname_flow.rb:116:8:116:17 | call to realpath |
| pathname_flow.rb:118:3:118:3 | g | pathname_flow.rb:119:8:119:8 | g |
| pathname_flow.rb:118:7:118:7 | a | pathname_flow.rb:118:7:118:19 | call to join |
| pathname_flow.rb:118:7:118:19 | call to join | pathname_flow.rb:118:3:118:3 | g |
| pathname_flow.rb:119:8:119:8 | g | pathname_flow.rb:119:8:119:17 | call to realpath |
| pathname_flow.rb:121:3:121:3 | h | pathname_flow.rb:122:8:122:8 | h |
| pathname_flow.rb:121:7:121:7 | a | pathname_flow.rb:121:7:121:16 | call to realpath |
| pathname_flow.rb:121:7:121:16 | call to realpath | pathname_flow.rb:121:3:121:3 | h |
| pathname_flow.rb:122:8:122:8 | h | pathname_flow.rb:122:8:122:17 | call to realpath |
| pathname_flow.rb:124:3:124:3 | i | pathname_flow.rb:125:8:125:8 | i |
| pathname_flow.rb:124:7:124:7 | a | pathname_flow.rb:124:7:124:38 | call to relative_path_from |
| pathname_flow.rb:124:7:124:38 | call to relative_path_from | pathname_flow.rb:124:3:124:3 | i |
| pathname_flow.rb:125:8:125:8 | i | pathname_flow.rb:125:8:125:17 | call to realpath |
| pathname_flow.rb:127:3:127:3 | j | pathname_flow.rb:128:8:128:8 | j |
| pathname_flow.rb:127:7:127:7 | a | pathname_flow.rb:127:7:127:25 | call to sub |
| pathname_flow.rb:127:7:127:25 | call to sub | pathname_flow.rb:127:3:127:3 | j |
| pathname_flow.rb:128:8:128:8 | j | pathname_flow.rb:128:8:128:17 | call to realpath |
| pathname_flow.rb:130:3:130:3 | k | pathname_flow.rb:131:8:131:8 | k |
| pathname_flow.rb:130:7:130:7 | a | pathname_flow.rb:130:7:130:23 | call to sub_ext |
| pathname_flow.rb:130:7:130:23 | call to sub_ext | pathname_flow.rb:130:3:130:3 | k |
| pathname_flow.rb:131:8:131:8 | k | pathname_flow.rb:131:8:131:17 | call to realpath |
| pathname_flow.rb:133:3:133:3 | l | pathname_flow.rb:134:8:134:8 | l |
| pathname_flow.rb:133:7:133:7 | a | pathname_flow.rb:133:7:133:15 | call to to_path |
| pathname_flow.rb:133:7:133:15 | call to to_path | pathname_flow.rb:133:3:133:3 | l |
| pathname_flow.rb:134:8:134:8 | l | pathname_flow.rb:134:8:134:17 | call to realpath |
nodes
| pathname_flow.rb:4:5:4:6 | pn | semmle.label | pn |
| pathname_flow.rb:4:10:4:33 | call to new | semmle.label | call to new |
| pathname_flow.rb:4:23:4:32 | call to source | semmle.label | call to source |
| pathname_flow.rb:5:10:5:11 | pn | semmle.label | pn |
| pathname_flow.rb:9:3:9:3 | a | semmle.label | a |
| pathname_flow.rb:9:7:9:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:9:20:9:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:10:3:10:3 | b | semmle.label | b |
| pathname_flow.rb:10:7:10:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:10:20:10:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:11:8:11:12 | ... + ... | semmle.label | ... + ... |
| pathname_flow.rb:15:3:15:4 | pn | semmle.label | pn |
| pathname_flow.rb:15:8:15:31 | call to new | semmle.label | call to new |
| pathname_flow.rb:15:21:15:30 | call to source | semmle.label | call to source |
| pathname_flow.rb:16:8:16:9 | pn | semmle.label | pn |
| pathname_flow.rb:16:8:16:17 | call to dirname | semmle.label | call to dirname |
| pathname_flow.rb:20:3:20:3 | a | semmle.label | a |
| pathname_flow.rb:20:7:20:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:20:20:20:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:21:3:21:3 | a | semmle.label | a |
| pathname_flow.rb:21:23:21:23 | x | semmle.label | x |
| pathname_flow.rb:22:10:22:10 | x | semmle.label | x |
| pathname_flow.rb:27:3:27:3 | a | semmle.label | a |
| pathname_flow.rb:27:7:27:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:27:20:27:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:28:8:28:8 | a | semmle.label | a |
| pathname_flow.rb:28:8:28:22 | call to expand_path | semmle.label | call to expand_path |
| pathname_flow.rb:32:3:32:3 | a | semmle.label | a |
| pathname_flow.rb:32:7:32:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:32:20:32:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:34:3:34:3 | c | semmle.label | c |
| pathname_flow.rb:34:7:34:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:34:20:34:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:35:8:35:8 | a | semmle.label | a |
| pathname_flow.rb:35:8:35:19 | call to join | semmle.label | call to join |
| pathname_flow.rb:35:18:35:18 | c | semmle.label | c |
| pathname_flow.rb:39:3:39:3 | a | semmle.label | a |
| pathname_flow.rb:39:7:39:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:39:20:39:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:40:8:40:8 | a | semmle.label | a |
| pathname_flow.rb:40:8:40:17 | call to parent | semmle.label | call to parent |
| pathname_flow.rb:44:3:44:3 | a | semmle.label | a |
| pathname_flow.rb:44:7:44:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:44:20:44:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:45:8:45:8 | a | semmle.label | a |
| pathname_flow.rb:45:8:45:19 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:49:3:49:3 | a | semmle.label | a |
| pathname_flow.rb:49:7:49:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:49:20:49:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:50:8:50:8 | a | semmle.label | a |
| pathname_flow.rb:50:8:50:39 | call to relative_path_from | semmle.label | call to relative_path_from |
| pathname_flow.rb:54:3:54:3 | a | semmle.label | a |
| pathname_flow.rb:54:7:54:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:54:20:54:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:55:8:55:8 | a | semmle.label | a |
| pathname_flow.rb:55:8:55:16 | call to to_path | semmle.label | call to to_path |
| pathname_flow.rb:59:3:59:3 | a | semmle.label | a |
| pathname_flow.rb:59:7:59:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:59:20:59:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:60:8:60:8 | a | semmle.label | a |
| pathname_flow.rb:60:8:60:13 | call to to_s | semmle.label | call to to_s |
| pathname_flow.rb:64:3:64:3 | a | semmle.label | a |
| pathname_flow.rb:64:7:64:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:64:20:64:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:65:3:65:3 | b | semmle.label | b |
| pathname_flow.rb:66:8:66:8 | b | semmle.label | b |
| pathname_flow.rb:70:3:70:3 | a | semmle.label | a |
| pathname_flow.rb:70:7:70:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:70:20:70:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:71:3:71:3 | b | semmle.label | b |
| pathname_flow.rb:72:8:72:8 | b | semmle.label | b |
| pathname_flow.rb:76:3:76:3 | a | semmle.label | a |
| pathname_flow.rb:76:7:76:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:76:20:76:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:77:3:77:3 | b | semmle.label | b |
| pathname_flow.rb:77:7:77:7 | a | semmle.label | a |
| pathname_flow.rb:77:7:77:16 | call to basename | semmle.label | call to basename |
| pathname_flow.rb:78:8:78:8 | b | semmle.label | b |
| pathname_flow.rb:82:3:82:3 | a | semmle.label | a |
| pathname_flow.rb:82:7:82:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:82:20:82:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:83:3:83:3 | b | semmle.label | b |
| pathname_flow.rb:83:7:83:7 | a | semmle.label | a |
| pathname_flow.rb:83:7:83:17 | call to cleanpath | semmle.label | call to cleanpath |
| pathname_flow.rb:84:8:84:8 | b | semmle.label | b |
| pathname_flow.rb:88:3:88:3 | a | semmle.label | a |
| pathname_flow.rb:88:7:88:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:88:20:88:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:89:3:89:3 | b | semmle.label | b |
| pathname_flow.rb:89:7:89:7 | a | semmle.label | a |
| pathname_flow.rb:89:7:89:25 | call to sub | semmle.label | call to sub |
| pathname_flow.rb:90:8:90:8 | b | semmle.label | b |
| pathname_flow.rb:94:3:94:3 | a | semmle.label | a |
| pathname_flow.rb:94:7:94:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:94:20:94:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:95:3:95:3 | b | semmle.label | b |
| pathname_flow.rb:95:7:95:7 | a | semmle.label | a |
| pathname_flow.rb:95:7:95:23 | call to sub_ext | semmle.label | call to sub_ext |
| pathname_flow.rb:96:8:96:8 | b | semmle.label | b |
| pathname_flow.rb:101:3:101:3 | a | semmle.label | a |
| pathname_flow.rb:101:7:101:30 | call to new | semmle.label | call to new |
| pathname_flow.rb:101:20:101:29 | call to source | semmle.label | call to source |
| pathname_flow.rb:103:3:103:3 | b | semmle.label | b |
| pathname_flow.rb:104:8:104:8 | b | semmle.label | b |
| pathname_flow.rb:104:8:104:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:106:3:106:3 | c | semmle.label | c |
| pathname_flow.rb:107:8:107:8 | c | semmle.label | c |
| pathname_flow.rb:107:8:107:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:109:3:109:3 | d | semmle.label | d |
| pathname_flow.rb:109:7:109:7 | a | semmle.label | a |
| pathname_flow.rb:109:7:109:16 | call to basename | semmle.label | call to basename |
| pathname_flow.rb:110:8:110:8 | d | semmle.label | d |
| pathname_flow.rb:110:8:110:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:112:3:112:3 | e | semmle.label | e |
| pathname_flow.rb:112:7:112:7 | a | semmle.label | a |
| pathname_flow.rb:112:7:112:17 | call to cleanpath | semmle.label | call to cleanpath |
| pathname_flow.rb:113:8:113:8 | e | semmle.label | e |
| pathname_flow.rb:113:8:113:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:115:3:115:3 | f | semmle.label | f |
| pathname_flow.rb:115:7:115:7 | a | semmle.label | a |
| pathname_flow.rb:115:7:115:19 | call to expand_path | semmle.label | call to expand_path |
| pathname_flow.rb:116:8:116:8 | f | semmle.label | f |
| pathname_flow.rb:116:8:116:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:118:3:118:3 | g | semmle.label | g |
| pathname_flow.rb:118:7:118:7 | a | semmle.label | a |
| pathname_flow.rb:118:7:118:19 | call to join | semmle.label | call to join |
| pathname_flow.rb:119:8:119:8 | g | semmle.label | g |
| pathname_flow.rb:119:8:119:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:121:3:121:3 | h | semmle.label | h |
| pathname_flow.rb:121:7:121:7 | a | semmle.label | a |
| pathname_flow.rb:121:7:121:16 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:122:8:122:8 | h | semmle.label | h |
| pathname_flow.rb:122:8:122:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:124:3:124:3 | i | semmle.label | i |
| pathname_flow.rb:124:7:124:7 | a | semmle.label | a |
| pathname_flow.rb:124:7:124:38 | call to relative_path_from | semmle.label | call to relative_path_from |
| pathname_flow.rb:125:8:125:8 | i | semmle.label | i |
| pathname_flow.rb:125:8:125:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:127:3:127:3 | j | semmle.label | j |
| pathname_flow.rb:127:7:127:7 | a | semmle.label | a |
| pathname_flow.rb:127:7:127:25 | call to sub | semmle.label | call to sub |
| pathname_flow.rb:128:8:128:8 | j | semmle.label | j |
| pathname_flow.rb:128:8:128:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:130:3:130:3 | k | semmle.label | k |
| pathname_flow.rb:130:7:130:7 | a | semmle.label | a |
| pathname_flow.rb:130:7:130:23 | call to sub_ext | semmle.label | call to sub_ext |
| pathname_flow.rb:131:8:131:8 | k | semmle.label | k |
| pathname_flow.rb:131:8:131:17 | call to realpath | semmle.label | call to realpath |
| pathname_flow.rb:133:3:133:3 | l | semmle.label | l |
| pathname_flow.rb:133:7:133:7 | a | semmle.label | a |
| pathname_flow.rb:133:7:133:15 | call to to_path | semmle.label | call to to_path |
| pathname_flow.rb:134:8:134:8 | l | semmle.label | l |
| pathname_flow.rb:134:8:134:17 | call to realpath | semmle.label | call to realpath |
subpaths
#select

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -1,19 +1,12 @@
testFailures
edges
| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | ssa_flow.rb:16:10:16:10 | a [element 0] |
| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | ssa_flow.rb:16:10:16:10 | a [element 0] |
| ssa_flow.rb:12:16:12:23 | call to taint | ssa_flow.rb:12:9:12:9 | [post] a [element 0] |
| ssa_flow.rb:12:16:12:23 | call to taint | ssa_flow.rb:12:9:12:9 | [post] a [element 0] |
| ssa_flow.rb:16:10:16:10 | a [element 0] | ssa_flow.rb:16:10:16:13 | ...[...] |
| ssa_flow.rb:16:10:16:10 | a [element 0] | ssa_flow.rb:16:10:16:13 | ...[...] |
nodes
| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | semmle.label | [post] a [element 0] |
| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | semmle.label | [post] a [element 0] |
| ssa_flow.rb:12:16:12:23 | call to taint | semmle.label | call to taint |
| ssa_flow.rb:12:16:12:23 | call to taint | semmle.label | call to taint |
| ssa_flow.rb:16:10:16:10 | a [element 0] | semmle.label | a [element 0] |
| ssa_flow.rb:16:10:16:10 | a [element 0] | semmle.label | a [element 0] |
| ssa_flow.rb:16:10:16:13 | ...[...] | semmle.label | ...[...] |
| ssa_flow.rb:16:10:16:13 | ...[...] | semmle.label | ...[...] |
subpaths
#select

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -3,763 +3,31 @@ testFailures
| string_flow.rb:227:10:227:10 | a | Unexpected result: hasValueFlow=a |
edges
| string_flow.rb:2:5:2:5 | a | string_flow.rb:3:21:3:21 | a |
| string_flow.rb:2:5:2:5 | a | string_flow.rb:3:21:3:21 | a |
| string_flow.rb:2:9:2:18 | call to source | string_flow.rb:2:5:2:5 | a |
| string_flow.rb:2:9:2:18 | call to source | string_flow.rb:2:5:2:5 | a |
| string_flow.rb:3:21:3:21 | a | string_flow.rb:3:10:3:22 | call to new |
| string_flow.rb:3:21:3:21 | a | string_flow.rb:3:10:3:22 | call to new |
| string_flow.rb:7:5:7:5 | a | string_flow.rb:9:29:9:29 | a |
| string_flow.rb:7:9:7:18 | call to source | string_flow.rb:7:5:7:5 | a |
| string_flow.rb:8:5:8:5 | b | string_flow.rb:10:29:10:29 | b |
| string_flow.rb:8:9:8:16 | call to source | string_flow.rb:8:5:8:5 | b |
| string_flow.rb:9:29:9:29 | a | string_flow.rb:9:10:9:30 | call to try_convert |
| string_flow.rb:10:29:10:29 | b | string_flow.rb:10:10:10:30 | call to try_convert |
| string_flow.rb:14:5:14:5 | a | string_flow.rb:15:10:15:17 | ... % ... |
| string_flow.rb:14:5:14:5 | a | string_flow.rb:15:17:15:17 | a |
| string_flow.rb:14:5:14:5 | a | string_flow.rb:16:10:16:29 | ... % ... |
| string_flow.rb:14:5:14:5 | a | string_flow.rb:16:28:16:28 | a |
| string_flow.rb:14:5:14:5 | a | string_flow.rb:17:10:17:10 | a |
| string_flow.rb:14:5:14:5 | a | string_flow.rb:17:10:17:18 | ... % ... |
| string_flow.rb:14:9:14:18 | call to source | string_flow.rb:14:5:14:5 | a |
| string_flow.rb:15:17:15:17 | a | string_flow.rb:15:10:15:17 | ... % ... |
| string_flow.rb:16:28:16:28 | a | string_flow.rb:16:10:16:29 | ... % ... |
| string_flow.rb:17:10:17:10 | a | string_flow.rb:17:10:17:18 | ... % ... |
| string_flow.rb:21:5:21:5 | a | string_flow.rb:22:5:22:5 | b |
| string_flow.rb:21:9:21:18 | call to source | string_flow.rb:21:5:21:5 | a |
| string_flow.rb:22:5:22:5 | b | string_flow.rb:23:10:23:10 | b |
| string_flow.rb:27:5:27:5 | a | string_flow.rb:28:5:28:5 | b |
| string_flow.rb:27:9:27:18 | call to source | string_flow.rb:27:5:27:5 | a |
| string_flow.rb:28:5:28:5 | b | string_flow.rb:29:10:29:10 | b |
| string_flow.rb:33:5:33:5 | a | string_flow.rb:34:5:34:5 | b |
| string_flow.rb:33:5:33:5 | a | string_flow.rb:36:5:36:5 | c |
| string_flow.rb:33:9:33:18 | call to source | string_flow.rb:33:5:33:5 | a |
| string_flow.rb:34:5:34:5 | b | string_flow.rb:35:10:35:10 | b |
| string_flow.rb:36:5:36:5 | c | string_flow.rb:37:10:37:10 | c |
| string_flow.rb:41:5:41:5 | a | string_flow.rb:42:10:42:10 | a |
| string_flow.rb:41:9:41:18 | call to source | string_flow.rb:41:5:41:5 | a |
| string_flow.rb:42:10:42:10 | a | string_flow.rb:42:10:42:12 | call to b |
| string_flow.rb:46:5:46:5 | a | string_flow.rb:47:10:47:10 | a |
| string_flow.rb:46:5:46:5 | a | string_flow.rb:48:10:48:10 | a |
| string_flow.rb:46:5:46:5 | a | string_flow.rb:49:10:49:10 | a |
| string_flow.rb:46:9:46:18 | call to source | string_flow.rb:46:5:46:5 | a |
| string_flow.rb:47:10:47:10 | a | string_flow.rb:47:10:47:23 | call to byteslice |
| string_flow.rb:48:10:48:10 | a | string_flow.rb:48:10:48:26 | call to byteslice |
| string_flow.rb:49:10:49:10 | a | string_flow.rb:49:10:49:26 | call to byteslice |
| string_flow.rb:53:5:53:5 | a | string_flow.rb:54:10:54:10 | a |
| string_flow.rb:53:5:53:5 | a | string_flow.rb:55:10:55:10 | a |
| string_flow.rb:53:9:53:18 | call to source | string_flow.rb:53:5:53:5 | a |
| string_flow.rb:54:10:54:10 | a | string_flow.rb:54:10:54:21 | call to capitalize |
| string_flow.rb:55:10:55:10 | a | string_flow.rb:55:10:55:22 | call to capitalize! |
| string_flow.rb:59:5:59:5 | a | string_flow.rb:60:10:60:10 | a |
| string_flow.rb:59:5:59:5 | a | string_flow.rb:61:27:61:27 | a |
| string_flow.rb:59:5:59:5 | a | string_flow.rb:62:10:62:10 | a |
| string_flow.rb:59:5:59:5 | a | string_flow.rb:63:26:63:26 | a |
| string_flow.rb:59:5:59:5 | a | string_flow.rb:64:10:64:10 | a |
| string_flow.rb:59:5:59:5 | a | string_flow.rb:65:26:65:26 | a |
| string_flow.rb:59:9:59:18 | call to source | string_flow.rb:59:5:59:5 | a |
| string_flow.rb:60:10:60:10 | a | string_flow.rb:60:10:60:21 | call to center |
| string_flow.rb:61:27:61:27 | a | string_flow.rb:61:10:61:28 | call to center |
| string_flow.rb:62:10:62:10 | a | string_flow.rb:62:10:62:20 | call to ljust |
| string_flow.rb:63:26:63:26 | a | string_flow.rb:63:10:63:27 | call to ljust |
| string_flow.rb:64:10:64:10 | a | string_flow.rb:64:10:64:20 | call to rjust |
| string_flow.rb:65:26:65:26 | a | string_flow.rb:65:10:65:27 | call to rjust |
| string_flow.rb:69:5:69:5 | a | string_flow.rb:70:10:70:10 | a |
| string_flow.rb:69:5:69:5 | a | string_flow.rb:71:10:71:10 | a |
| string_flow.rb:69:9:69:18 | call to source | string_flow.rb:69:5:69:5 | a |
| string_flow.rb:70:10:70:10 | a | string_flow.rb:70:10:70:16 | call to chomp |
| string_flow.rb:71:10:71:10 | a | string_flow.rb:71:10:71:17 | call to chomp! |
| string_flow.rb:75:5:75:5 | a | string_flow.rb:76:10:76:10 | a |
| string_flow.rb:75:5:75:5 | a | string_flow.rb:77:10:77:10 | a |
| string_flow.rb:75:9:75:18 | call to source | string_flow.rb:75:5:75:5 | a |
| string_flow.rb:76:10:76:10 | a | string_flow.rb:76:10:76:15 | call to chop |
| string_flow.rb:77:10:77:10 | a | string_flow.rb:77:10:77:16 | call to chop! |
| string_flow.rb:83:5:83:5 | a | string_flow.rb:84:5:84:5 | a |
| string_flow.rb:83:5:83:5 | a | string_flow.rb:84:5:84:5 | a |
| string_flow.rb:83:9:83:18 | call to source | string_flow.rb:83:5:83:5 | a |
| string_flow.rb:83:9:83:18 | call to source | string_flow.rb:83:5:83:5 | a |
| string_flow.rb:84:5:84:5 | [post] a | string_flow.rb:85:10:85:10 | a |
| string_flow.rb:84:5:84:5 | [post] a | string_flow.rb:85:10:85:10 | a |
| string_flow.rb:84:5:84:5 | a | string_flow.rb:84:5:84:5 | [post] a |
| string_flow.rb:84:5:84:5 | a | string_flow.rb:84:5:84:5 | [post] a |
| string_flow.rb:108:5:108:5 | a | string_flow.rb:109:10:109:10 | a |
| string_flow.rb:108:9:108:18 | call to source | string_flow.rb:108:5:108:5 | a |
| string_flow.rb:109:10:109:10 | [post] a | string_flow.rb:110:10:110:10 | a |
| string_flow.rb:109:10:109:10 | [post] a | string_flow.rb:111:10:111:10 | a |
| string_flow.rb:109:10:109:10 | a | string_flow.rb:109:10:109:10 | [post] a |
| string_flow.rb:109:10:109:10 | a | string_flow.rb:109:10:109:22 | call to delete |
| string_flow.rb:110:10:110:10 | a | string_flow.rb:110:10:110:29 | call to delete_prefix |
| string_flow.rb:111:10:111:10 | a | string_flow.rb:111:10:111:29 | call to delete_suffix |
| string_flow.rb:115:5:115:5 | a | string_flow.rb:116:10:116:10 | a |
| string_flow.rb:115:5:115:5 | a | string_flow.rb:117:10:117:10 | a |
| string_flow.rb:115:5:115:5 | a | string_flow.rb:118:10:118:10 | a |
| string_flow.rb:115:5:115:5 | a | string_flow.rb:119:10:119:10 | a |
| string_flow.rb:115:5:115:5 | a | string_flow.rb:120:10:120:10 | a |
| string_flow.rb:115:5:115:5 | a | string_flow.rb:121:10:121:10 | a |
| string_flow.rb:115:9:115:18 | call to source | string_flow.rb:115:5:115:5 | a |
| string_flow.rb:116:10:116:10 | a | string_flow.rb:116:10:116:19 | call to downcase |
| string_flow.rb:117:10:117:10 | a | string_flow.rb:117:10:117:20 | call to downcase! |
| string_flow.rb:118:10:118:10 | a | string_flow.rb:118:10:118:19 | call to swapcase |
| string_flow.rb:119:10:119:10 | a | string_flow.rb:119:10:119:20 | call to swapcase! |
| string_flow.rb:120:10:120:10 | a | string_flow.rb:120:10:120:17 | call to upcase |
| string_flow.rb:121:10:121:10 | a | string_flow.rb:121:10:121:18 | call to upcase! |
| string_flow.rb:125:5:125:5 | a | string_flow.rb:126:9:126:9 | a |
| string_flow.rb:125:9:125:18 | call to source | string_flow.rb:125:5:125:5 | a |
| string_flow.rb:126:5:126:5 | b | string_flow.rb:127:10:127:10 | b |
| string_flow.rb:126:5:126:5 | b | string_flow.rb:128:10:128:10 | b |
| string_flow.rb:126:9:126:9 | a | string_flow.rb:126:9:126:14 | call to dump |
| string_flow.rb:126:9:126:14 | call to dump | string_flow.rb:126:5:126:5 | b |
| string_flow.rb:128:10:128:10 | b | string_flow.rb:128:10:128:17 | call to undump |
| string_flow.rb:132:5:132:5 | a | string_flow.rb:133:9:133:9 | a |
| string_flow.rb:132:5:132:5 | a | string_flow.rb:135:9:135:9 | a |
| string_flow.rb:132:9:132:18 | call to source | string_flow.rb:132:5:132:5 | a |
| string_flow.rb:133:5:133:5 | b | string_flow.rb:134:10:134:10 | b |
| string_flow.rb:133:9:133:9 | a | string_flow.rb:133:9:133:40 | call to each_line |
| string_flow.rb:133:9:133:9 | a | string_flow.rb:133:24:133:27 | line |
| string_flow.rb:133:9:133:40 | call to each_line | string_flow.rb:133:5:133:5 | b |
| string_flow.rb:133:24:133:27 | line | string_flow.rb:133:35:133:38 | line |
| string_flow.rb:135:5:135:5 | c [element] | string_flow.rb:136:10:136:10 | c [element] |
| string_flow.rb:135:9:135:9 | a | string_flow.rb:135:9:135:19 | call to each_line [element] |
| string_flow.rb:135:9:135:19 | call to each_line [element] | string_flow.rb:135:5:135:5 | c [element] |
| string_flow.rb:136:10:136:10 | c [element] | string_flow.rb:136:10:136:15 | call to to_a [element] |
| string_flow.rb:136:10:136:15 | call to to_a [element] | string_flow.rb:136:10:136:18 | ...[...] |
| string_flow.rb:140:5:140:5 | a | string_flow.rb:141:9:141:9 | a |
| string_flow.rb:140:5:140:5 | a | string_flow.rb:143:9:143:9 | a |
| string_flow.rb:140:9:140:18 | call to source | string_flow.rb:140:5:140:5 | a |
| string_flow.rb:141:5:141:5 | b | string_flow.rb:142:10:142:10 | b |
| string_flow.rb:141:9:141:9 | a | string_flow.rb:141:9:141:36 | call to lines |
| string_flow.rb:141:9:141:9 | a | string_flow.rb:141:20:141:23 | line |
| string_flow.rb:141:9:141:36 | call to lines | string_flow.rb:141:5:141:5 | b |
| string_flow.rb:141:20:141:23 | line | string_flow.rb:141:31:141:34 | line |
| string_flow.rb:143:5:143:5 | c [element] | string_flow.rb:144:10:144:10 | c [element] |
| string_flow.rb:143:9:143:9 | a | string_flow.rb:143:9:143:15 | call to lines [element] |
| string_flow.rb:143:9:143:15 | call to lines [element] | string_flow.rb:143:5:143:5 | c [element] |
| string_flow.rb:144:10:144:10 | c [element] | string_flow.rb:144:10:144:13 | ...[...] |
| string_flow.rb:148:5:148:5 | a | string_flow.rb:149:10:149:10 | a |
| string_flow.rb:148:5:148:5 | a | string_flow.rb:150:10:150:10 | a |
| string_flow.rb:148:5:148:5 | a | string_flow.rb:151:10:151:10 | a |
| string_flow.rb:148:5:148:5 | a | string_flow.rb:152:10:152:10 | a |
| string_flow.rb:148:9:148:18 | call to source | string_flow.rb:148:5:148:5 | a |
| string_flow.rb:149:10:149:10 | a | string_flow.rb:149:10:149:26 | call to encode |
| string_flow.rb:150:10:150:10 | a | string_flow.rb:150:10:150:27 | call to encode! |
| string_flow.rb:151:10:151:10 | a | string_flow.rb:151:10:151:28 | call to unicode_normalize |
| string_flow.rb:152:10:152:10 | a | string_flow.rb:152:10:152:29 | call to unicode_normalize! |
| string_flow.rb:156:5:156:5 | a | string_flow.rb:157:10:157:10 | a |
| string_flow.rb:156:9:156:18 | call to source | string_flow.rb:156:5:156:5 | a |
| string_flow.rb:157:10:157:10 | a | string_flow.rb:157:10:157:34 | call to force_encoding |
| string_flow.rb:161:5:161:5 | a | string_flow.rb:162:10:162:10 | a |
| string_flow.rb:161:9:161:18 | call to source | string_flow.rb:161:5:161:5 | a |
| string_flow.rb:162:10:162:10 | a | string_flow.rb:162:10:162:17 | call to freeze |
| string_flow.rb:166:5:166:5 | a | string_flow.rb:168:10:168:10 | a |
| string_flow.rb:166:5:166:5 | a | string_flow.rb:169:10:169:10 | a |
| string_flow.rb:166:5:166:5 | a | string_flow.rb:170:10:170:10 | a |
| string_flow.rb:166:5:166:5 | a | string_flow.rb:171:10:171:10 | a |
| string_flow.rb:166:9:166:18 | call to source | string_flow.rb:166:5:166:5 | a |
| string_flow.rb:167:5:167:5 | c | string_flow.rb:168:22:168:22 | c |
| string_flow.rb:167:5:167:5 | c | string_flow.rb:169:23:169:23 | c |
| string_flow.rb:167:9:167:18 | call to source | string_flow.rb:167:5:167:5 | c |
| string_flow.rb:168:10:168:10 | a | string_flow.rb:168:10:168:23 | call to gsub |
| string_flow.rb:168:22:168:22 | c | string_flow.rb:168:10:168:23 | call to gsub |
| string_flow.rb:169:10:169:10 | a | string_flow.rb:169:10:169:24 | call to gsub! |
| string_flow.rb:169:23:169:23 | c | string_flow.rb:169:10:169:24 | call to gsub! |
| string_flow.rb:170:10:170:10 | a | string_flow.rb:170:10:170:43 | call to gsub |
| string_flow.rb:170:32:170:41 | call to source | string_flow.rb:170:10:170:43 | call to gsub |
| string_flow.rb:171:10:171:10 | a | string_flow.rb:171:10:171:44 | call to gsub! |
| string_flow.rb:171:33:171:42 | call to source | string_flow.rb:171:10:171:44 | call to gsub! |
| string_flow.rb:175:5:175:5 | a | string_flow.rb:177:10:177:10 | a |
| string_flow.rb:175:5:175:5 | a | string_flow.rb:178:10:178:10 | a |
| string_flow.rb:175:5:175:5 | a | string_flow.rb:179:10:179:10 | a |
| string_flow.rb:175:5:175:5 | a | string_flow.rb:180:10:180:10 | a |
| string_flow.rb:175:9:175:18 | call to source | string_flow.rb:175:5:175:5 | a |
| string_flow.rb:176:5:176:5 | c | string_flow.rb:177:21:177:21 | c |
| string_flow.rb:176:5:176:5 | c | string_flow.rb:178:22:178:22 | c |
| string_flow.rb:176:9:176:18 | call to source | string_flow.rb:176:5:176:5 | c |
| string_flow.rb:177:10:177:10 | a | string_flow.rb:177:10:177:22 | call to sub |
| string_flow.rb:177:21:177:21 | c | string_flow.rb:177:10:177:22 | call to sub |
| string_flow.rb:178:10:178:10 | a | string_flow.rb:178:10:178:23 | call to sub! |
| string_flow.rb:178:22:178:22 | c | string_flow.rb:178:10:178:23 | call to sub! |
| string_flow.rb:179:10:179:10 | a | string_flow.rb:179:10:179:42 | call to sub |
| string_flow.rb:179:31:179:40 | call to source | string_flow.rb:179:10:179:42 | call to sub |
| string_flow.rb:180:10:180:10 | a | string_flow.rb:180:10:180:43 | call to sub! |
| string_flow.rb:180:32:180:41 | call to source | string_flow.rb:180:10:180:43 | call to sub! |
| string_flow.rb:191:5:191:5 | a | string_flow.rb:192:10:192:10 | a |
| string_flow.rb:191:9:191:18 | call to source | string_flow.rb:191:5:191:5 | a |
| string_flow.rb:192:10:192:10 | a | string_flow.rb:192:10:192:18 | call to inspect |
| string_flow.rb:196:5:196:5 | a | string_flow.rb:197:10:197:10 | a |
| string_flow.rb:196:5:196:5 | a | string_flow.rb:198:10:198:10 | a |
| string_flow.rb:196:5:196:5 | a | string_flow.rb:199:10:199:10 | a |
| string_flow.rb:196:5:196:5 | a | string_flow.rb:200:10:200:10 | a |
| string_flow.rb:196:5:196:5 | a | string_flow.rb:201:10:201:10 | a |
| string_flow.rb:196:5:196:5 | a | string_flow.rb:202:10:202:10 | a |
| string_flow.rb:196:9:196:18 | call to source | string_flow.rb:196:5:196:5 | a |
| string_flow.rb:197:10:197:10 | a | string_flow.rb:197:10:197:16 | call to strip |
| string_flow.rb:198:10:198:10 | a | string_flow.rb:198:10:198:17 | call to strip! |
| string_flow.rb:199:10:199:10 | a | string_flow.rb:199:10:199:17 | call to lstrip |
| string_flow.rb:200:10:200:10 | a | string_flow.rb:200:10:200:18 | call to lstrip! |
| string_flow.rb:201:10:201:10 | a | string_flow.rb:201:10:201:17 | call to rstrip |
| string_flow.rb:202:10:202:10 | a | string_flow.rb:202:10:202:18 | call to rstrip! |
| string_flow.rb:206:5:206:5 | a | string_flow.rb:207:10:207:10 | a |
| string_flow.rb:206:5:206:5 | a | string_flow.rb:208:10:208:10 | a |
| string_flow.rb:206:5:206:5 | a | string_flow.rb:209:10:209:10 | a |
| string_flow.rb:206:5:206:5 | a | string_flow.rb:210:10:210:10 | a |
| string_flow.rb:206:9:206:18 | call to source | string_flow.rb:206:5:206:5 | a |
| string_flow.rb:207:10:207:10 | a | string_flow.rb:207:10:207:15 | call to next |
| string_flow.rb:208:10:208:10 | a | string_flow.rb:208:10:208:16 | call to next! |
| string_flow.rb:209:10:209:10 | a | string_flow.rb:209:10:209:15 | call to succ |
| string_flow.rb:210:10:210:10 | a | string_flow.rb:210:10:210:16 | call to succ! |
| string_flow.rb:214:5:214:5 | a | string_flow.rb:215:9:215:9 | a |
| string_flow.rb:214:9:214:18 | call to source | string_flow.rb:214:5:214:5 | a |
| string_flow.rb:215:5:215:5 | b [element 0] | string_flow.rb:216:10:216:10 | b [element 0] |
| string_flow.rb:215:5:215:5 | b [element 1] | string_flow.rb:217:10:217:10 | b [element 1] |
| string_flow.rb:215:5:215:5 | b [element 2] | string_flow.rb:218:10:218:10 | b [element 2] |
| string_flow.rb:215:9:215:9 | a | string_flow.rb:215:9:215:24 | call to partition [element 0] |
| string_flow.rb:215:9:215:9 | a | string_flow.rb:215:9:215:24 | call to partition [element 1] |
| string_flow.rb:215:9:215:9 | a | string_flow.rb:215:9:215:24 | call to partition [element 2] |
| string_flow.rb:215:9:215:24 | call to partition [element 0] | string_flow.rb:215:5:215:5 | b [element 0] |
| string_flow.rb:215:9:215:24 | call to partition [element 1] | string_flow.rb:215:5:215:5 | b [element 1] |
| string_flow.rb:215:9:215:24 | call to partition [element 2] | string_flow.rb:215:5:215:5 | b [element 2] |
| string_flow.rb:216:10:216:10 | b [element 0] | string_flow.rb:216:10:216:13 | ...[...] |
| string_flow.rb:217:10:217:10 | b [element 1] | string_flow.rb:217:10:217:13 | ...[...] |
| string_flow.rb:218:10:218:10 | b [element 2] | string_flow.rb:218:10:218:13 | ...[...] |
| string_flow.rb:223:5:223:5 | a | string_flow.rb:225:10:225:10 | a |
| string_flow.rb:223:5:223:5 | a | string_flow.rb:225:10:225:10 | a |
| string_flow.rb:223:9:223:18 | call to source | string_flow.rb:223:5:223:5 | a |
| string_flow.rb:223:9:223:18 | call to source | string_flow.rb:223:5:223:5 | a |
| string_flow.rb:224:5:224:5 | b | string_flow.rb:225:20:225:20 | b |
| string_flow.rb:224:9:224:18 | call to source | string_flow.rb:224:5:224:5 | b |
| string_flow.rb:225:10:225:10 | [post] a | string_flow.rb:227:10:227:10 | a |
| string_flow.rb:225:10:225:10 | [post] a | string_flow.rb:227:10:227:10 | a |
| string_flow.rb:225:10:225:10 | a | string_flow.rb:225:10:225:10 | [post] a |
| string_flow.rb:225:10:225:10 | a | string_flow.rb:225:10:225:10 | [post] a |
| string_flow.rb:225:20:225:20 | b | string_flow.rb:225:10:225:10 | [post] a |
| string_flow.rb:225:20:225:20 | b | string_flow.rb:225:10:225:21 | call to replace |
| string_flow.rb:231:5:231:5 | a | string_flow.rb:232:10:232:10 | a |
| string_flow.rb:231:9:231:18 | call to source | string_flow.rb:231:5:231:5 | a |
| string_flow.rb:232:10:232:10 | a | string_flow.rb:232:10:232:18 | call to reverse |
| string_flow.rb:236:5:236:5 | a | string_flow.rb:237:9:237:9 | a |
| string_flow.rb:236:5:236:5 | a | string_flow.rb:238:9:238:9 | a |
| string_flow.rb:236:5:236:5 | a | string_flow.rb:240:9:240:9 | a |
| string_flow.rb:236:9:236:18 | call to source | string_flow.rb:236:5:236:5 | a |
| string_flow.rb:237:9:237:9 | a | string_flow.rb:237:24:237:24 | x |
| string_flow.rb:237:24:237:24 | x | string_flow.rb:237:35:237:35 | x |
| string_flow.rb:238:5:238:5 | b | string_flow.rb:239:10:239:10 | b |
| string_flow.rb:238:9:238:9 | a | string_flow.rb:238:9:238:37 | call to scan |
| string_flow.rb:238:9:238:9 | a | string_flow.rb:238:27:238:27 | y |
| string_flow.rb:238:9:238:37 | call to scan | string_flow.rb:238:5:238:5 | b |
| string_flow.rb:238:27:238:27 | y | string_flow.rb:238:35:238:35 | y |
| string_flow.rb:240:5:240:5 | b [element] | string_flow.rb:241:10:241:10 | b [element] |
| string_flow.rb:240:5:240:5 | b [element] | string_flow.rb:242:10:242:10 | b [element] |
| string_flow.rb:240:9:240:9 | a | string_flow.rb:240:9:240:19 | call to scan [element] |
| string_flow.rb:240:9:240:19 | call to scan [element] | string_flow.rb:240:5:240:5 | b [element] |
| string_flow.rb:241:10:241:10 | b [element] | string_flow.rb:241:10:241:13 | ...[...] |
| string_flow.rb:242:10:242:10 | b [element] | string_flow.rb:242:10:242:13 | ...[...] |
| string_flow.rb:246:5:246:5 | a | string_flow.rb:247:10:247:10 | a |
| string_flow.rb:246:5:246:5 | a | string_flow.rb:248:20:248:20 | a |
| string_flow.rb:246:5:246:5 | a | string_flow.rb:249:5:249:5 | a |
| string_flow.rb:246:5:246:5 | a | string_flow.rb:250:26:250:26 | a |
| string_flow.rb:246:5:246:5 | a | string_flow.rb:252:10:252:10 | a |
| string_flow.rb:246:5:246:5 | a | string_flow.rb:253:21:253:21 | a |
| string_flow.rb:246:9:246:18 | call to source | string_flow.rb:246:5:246:5 | a |
| string_flow.rb:247:10:247:10 | a | string_flow.rb:247:10:247:21 | call to scrub |
| string_flow.rb:248:20:248:20 | a | string_flow.rb:248:10:248:21 | call to scrub |
| string_flow.rb:249:5:249:5 | a | string_flow.rb:249:16:249:16 | x |
| string_flow.rb:249:16:249:16 | x | string_flow.rb:249:24:249:24 | x |
| string_flow.rb:250:26:250:26 | a | string_flow.rb:250:10:250:28 | call to scrub |
| string_flow.rb:252:10:252:10 | a | string_flow.rb:252:10:252:22 | call to scrub! |
| string_flow.rb:253:21:253:21 | a | string_flow.rb:253:10:253:22 | call to scrub! |
| string_flow.rb:255:5:255:5 | a | string_flow.rb:256:5:256:5 | a |
| string_flow.rb:255:5:255:5 | a | string_flow.rb:258:27:258:27 | a |
| string_flow.rb:255:9:255:18 | call to source | string_flow.rb:255:5:255:5 | a |
| string_flow.rb:256:5:256:5 | a | string_flow.rb:256:17:256:17 | x |
| string_flow.rb:256:17:256:17 | x | string_flow.rb:256:25:256:25 | x |
| string_flow.rb:258:27:258:27 | a | string_flow.rb:258:10:258:29 | call to scrub! |
| string_flow.rb:262:5:262:5 | a | string_flow.rb:263:10:263:10 | a |
| string_flow.rb:262:9:262:18 | call to source | string_flow.rb:262:5:262:5 | a |
| string_flow.rb:263:10:263:10 | a | string_flow.rb:263:10:263:22 | call to shellescape |
| string_flow.rb:267:5:267:5 | a | string_flow.rb:268:9:268:9 | a |
| string_flow.rb:267:9:267:18 | call to source | string_flow.rb:267:5:267:5 | a |
| string_flow.rb:268:5:268:5 | b [element] | string_flow.rb:269:10:269:10 | b [element] |
| string_flow.rb:268:9:268:9 | a | string_flow.rb:268:9:268:20 | call to shellsplit [element] |
| string_flow.rb:268:9:268:20 | call to shellsplit [element] | string_flow.rb:268:5:268:5 | b [element] |
| string_flow.rb:269:10:269:10 | b [element] | string_flow.rb:269:10:269:13 | ...[...] |
| string_flow.rb:273:5:273:5 | a | string_flow.rb:274:9:274:9 | a |
| string_flow.rb:273:5:273:5 | a | string_flow.rb:277:9:277:9 | a |
| string_flow.rb:273:9:273:18 | call to source | string_flow.rb:273:5:273:5 | a |
| string_flow.rb:274:5:274:5 | b | string_flow.rb:275:10:275:10 | b |
| string_flow.rb:274:9:274:9 | a | string_flow.rb:274:9:274:18 | call to slice |
| string_flow.rb:274:9:274:18 | call to slice | string_flow.rb:274:5:274:5 | b |
| string_flow.rb:275:10:275:10 | b | string_flow.rb:275:10:275:13 | ...[...] |
| string_flow.rb:277:5:277:5 | b | string_flow.rb:278:10:278:10 | b |
| string_flow.rb:277:9:277:9 | [post] a | string_flow.rb:280:9:280:9 | a |
| string_flow.rb:277:9:277:9 | [post] a | string_flow.rb:283:9:283:9 | a |
| string_flow.rb:277:9:277:9 | [post] a [element 1] | string_flow.rb:283:9:283:9 | a [element 1] |
| string_flow.rb:277:9:277:9 | [post] a [element 2] | string_flow.rb:283:9:283:9 | a [element 2] |
| string_flow.rb:277:9:277:9 | [post] a [element] | string_flow.rb:283:9:283:9 | a [element] |
| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a |
| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a [element 1] |
| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a [element 2] |
| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:9 | [post] a [element] |
| string_flow.rb:277:9:277:9 | a | string_flow.rb:277:9:277:19 | call to slice! |
| string_flow.rb:277:9:277:19 | call to slice! | string_flow.rb:277:5:277:5 | b |
| string_flow.rb:278:10:278:10 | b | string_flow.rb:278:10:278:13 | ...[...] |
| string_flow.rb:280:5:280:5 | b | string_flow.rb:281:10:281:10 | b |
| string_flow.rb:280:9:280:9 | a | string_flow.rb:280:9:280:20 | call to split |
| string_flow.rb:280:9:280:20 | call to split | string_flow.rb:280:5:280:5 | b |
| string_flow.rb:281:10:281:10 | b | string_flow.rb:281:10:281:13 | ...[...] |
| string_flow.rb:283:5:283:5 | b | string_flow.rb:284:10:284:10 | b |
| string_flow.rb:283:5:283:5 | b [element 0] | string_flow.rb:284:10:284:10 | b [element 0] |
| string_flow.rb:283:5:283:5 | b [element 1] | string_flow.rb:284:10:284:10 | b [element 1] |
| string_flow.rb:283:5:283:5 | b [element] | string_flow.rb:284:10:284:10 | b [element] |
| string_flow.rb:283:9:283:9 | a | string_flow.rb:283:9:283:14 | ...[...] |
| string_flow.rb:283:9:283:9 | a | string_flow.rb:283:9:283:14 | ...[...] [element 0] |
| string_flow.rb:283:9:283:9 | a | string_flow.rb:283:9:283:14 | ...[...] [element 1] |
| string_flow.rb:283:9:283:9 | a [element 1] | string_flow.rb:283:9:283:14 | ...[...] [element 0] |
| string_flow.rb:283:9:283:9 | a [element 2] | string_flow.rb:283:9:283:14 | ...[...] [element 1] |
| string_flow.rb:283:9:283:9 | a [element] | string_flow.rb:283:9:283:14 | ...[...] [element] |
| string_flow.rb:283:9:283:14 | ...[...] | string_flow.rb:283:5:283:5 | b |
| string_flow.rb:283:9:283:14 | ...[...] [element 0] | string_flow.rb:283:5:283:5 | b [element 0] |
| string_flow.rb:283:9:283:14 | ...[...] [element 1] | string_flow.rb:283:5:283:5 | b [element 1] |
| string_flow.rb:283:9:283:14 | ...[...] [element] | string_flow.rb:283:5:283:5 | b [element] |
| string_flow.rb:284:10:284:10 | b | string_flow.rb:284:10:284:13 | ...[...] |
| string_flow.rb:284:10:284:10 | b [element 0] | string_flow.rb:284:10:284:13 | ...[...] |
| string_flow.rb:284:10:284:10 | b [element 1] | string_flow.rb:284:10:284:13 | ...[...] |
| string_flow.rb:284:10:284:10 | b [element] | string_flow.rb:284:10:284:13 | ...[...] |
| string_flow.rb:288:5:288:5 | a | string_flow.rb:289:10:289:10 | a |
| string_flow.rb:288:5:288:5 | a | string_flow.rb:290:10:290:10 | a |
| string_flow.rb:288:5:288:5 | a | string_flow.rb:291:10:291:10 | a |
| string_flow.rb:288:5:288:5 | a | string_flow.rb:292:10:292:10 | a |
| string_flow.rb:288:9:288:18 | call to source | string_flow.rb:288:5:288:5 | a |
| string_flow.rb:289:10:289:10 | a | string_flow.rb:289:10:289:18 | call to squeeze |
| string_flow.rb:290:10:290:10 | a | string_flow.rb:290:10:290:23 | call to squeeze |
| string_flow.rb:291:10:291:10 | a | string_flow.rb:291:10:291:19 | call to squeeze! |
| string_flow.rb:292:10:292:10 | a | string_flow.rb:292:10:292:24 | call to squeeze! |
| string_flow.rb:296:5:296:5 | a | string_flow.rb:297:10:297:10 | a |
| string_flow.rb:296:5:296:5 | a | string_flow.rb:298:10:298:10 | a |
| string_flow.rb:296:9:296:18 | call to source | string_flow.rb:296:5:296:5 | a |
| string_flow.rb:297:10:297:10 | a | string_flow.rb:297:10:297:17 | call to to_str |
| string_flow.rb:298:10:298:10 | a | string_flow.rb:298:10:298:15 | call to to_s |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:303:10:303:10 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:304:22:304:22 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:305:10:305:10 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:306:23:306:23 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:307:10:307:10 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:308:24:308:24 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:309:10:309:10 | a |
| string_flow.rb:302:5:302:5 | a | string_flow.rb:310:25:310:25 | a |
| string_flow.rb:302:9:302:18 | call to source | string_flow.rb:302:5:302:5 | a |
| string_flow.rb:303:10:303:10 | a | string_flow.rb:303:10:303:23 | call to tr |
| string_flow.rb:304:22:304:22 | a | string_flow.rb:304:10:304:23 | call to tr |
| string_flow.rb:305:10:305:10 | a | string_flow.rb:305:10:305:24 | call to tr! |
| string_flow.rb:306:23:306:23 | a | string_flow.rb:306:10:306:24 | call to tr! |
| string_flow.rb:307:10:307:10 | a | string_flow.rb:307:10:307:25 | call to tr_s |
| string_flow.rb:308:24:308:24 | a | string_flow.rb:308:10:308:25 | call to tr_s |
| string_flow.rb:309:10:309:10 | a | string_flow.rb:309:10:309:26 | call to tr_s! |
| string_flow.rb:310:25:310:25 | a | string_flow.rb:310:10:310:26 | call to tr_s! |
| string_flow.rb:314:5:314:5 | a | string_flow.rb:315:5:315:5 | a |
| string_flow.rb:314:5:314:5 | a | string_flow.rb:316:5:316:5 | a |
| string_flow.rb:314:5:314:5 | a | string_flow.rb:317:14:317:14 | a |
| string_flow.rb:314:9:314:18 | call to source | string_flow.rb:314:5:314:5 | a |
| string_flow.rb:315:5:315:5 | a | string_flow.rb:315:20:315:20 | x |
| string_flow.rb:315:20:315:20 | x | string_flow.rb:315:28:315:28 | x |
| string_flow.rb:316:5:316:5 | a | string_flow.rb:316:26:316:26 | x |
| string_flow.rb:316:26:316:26 | x | string_flow.rb:316:34:316:34 | x |
| string_flow.rb:317:14:317:14 | a | string_flow.rb:317:20:317:20 | x |
| string_flow.rb:317:20:317:20 | x | string_flow.rb:317:28:317:28 | x |
nodes
| string_flow.rb:2:5:2:5 | a | semmle.label | a |
| string_flow.rb:2:5:2:5 | a | semmle.label | a |
| string_flow.rb:2:9:2:18 | call to source | semmle.label | call to source |
| string_flow.rb:2:9:2:18 | call to source | semmle.label | call to source |
| string_flow.rb:3:10:3:22 | call to new | semmle.label | call to new |
| string_flow.rb:3:10:3:22 | call to new | semmle.label | call to new |
| string_flow.rb:3:21:3:21 | a | semmle.label | a |
| string_flow.rb:3:21:3:21 | a | semmle.label | a |
| string_flow.rb:7:5:7:5 | a | semmle.label | a |
| string_flow.rb:7:9:7:18 | call to source | semmle.label | call to source |
| string_flow.rb:8:5:8:5 | b | semmle.label | b |
| string_flow.rb:8:9:8:16 | call to source | semmle.label | call to source |
| string_flow.rb:9:10:9:30 | call to try_convert | semmle.label | call to try_convert |
| string_flow.rb:9:29:9:29 | a | semmle.label | a |
| string_flow.rb:10:10:10:30 | call to try_convert | semmle.label | call to try_convert |
| string_flow.rb:10:29:10:29 | b | semmle.label | b |
| string_flow.rb:14:5:14:5 | a | semmle.label | a |
| string_flow.rb:14:9:14:18 | call to source | semmle.label | call to source |
| string_flow.rb:15:10:15:17 | ... % ... | semmle.label | ... % ... |
| string_flow.rb:15:17:15:17 | a | semmle.label | a |
| string_flow.rb:16:10:16:29 | ... % ... | semmle.label | ... % ... |
| string_flow.rb:16:28:16:28 | a | semmle.label | a |
| string_flow.rb:17:10:17:10 | a | semmle.label | a |
| string_flow.rb:17:10:17:18 | ... % ... | semmle.label | ... % ... |
| string_flow.rb:21:5:21:5 | a | semmle.label | a |
| string_flow.rb:21:9:21:18 | call to source | semmle.label | call to source |
| string_flow.rb:22:5:22:5 | b | semmle.label | b |
| string_flow.rb:23:10:23:10 | b | semmle.label | b |
| string_flow.rb:27:5:27:5 | a | semmle.label | a |
| string_flow.rb:27:9:27:18 | call to source | semmle.label | call to source |
| string_flow.rb:28:5:28:5 | b | semmle.label | b |
| string_flow.rb:29:10:29:10 | b | semmle.label | b |
| string_flow.rb:33:5:33:5 | a | semmle.label | a |
| string_flow.rb:33:9:33:18 | call to source | semmle.label | call to source |
| string_flow.rb:34:5:34:5 | b | semmle.label | b |
| string_flow.rb:35:10:35:10 | b | semmle.label | b |
| string_flow.rb:36:5:36:5 | c | semmle.label | c |
| string_flow.rb:37:10:37:10 | c | semmle.label | c |
| string_flow.rb:41:5:41:5 | a | semmle.label | a |
| string_flow.rb:41:9:41:18 | call to source | semmle.label | call to source |
| string_flow.rb:42:10:42:10 | a | semmle.label | a |
| string_flow.rb:42:10:42:12 | call to b | semmle.label | call to b |
| string_flow.rb:46:5:46:5 | a | semmle.label | a |
| string_flow.rb:46:9:46:18 | call to source | semmle.label | call to source |
| string_flow.rb:47:10:47:10 | a | semmle.label | a |
| string_flow.rb:47:10:47:23 | call to byteslice | semmle.label | call to byteslice |
| string_flow.rb:48:10:48:10 | a | semmle.label | a |
| string_flow.rb:48:10:48:26 | call to byteslice | semmle.label | call to byteslice |
| string_flow.rb:49:10:49:10 | a | semmle.label | a |
| string_flow.rb:49:10:49:26 | call to byteslice | semmle.label | call to byteslice |
| string_flow.rb:53:5:53:5 | a | semmle.label | a |
| string_flow.rb:53:9:53:18 | call to source | semmle.label | call to source |
| string_flow.rb:54:10:54:10 | a | semmle.label | a |
| string_flow.rb:54:10:54:21 | call to capitalize | semmle.label | call to capitalize |
| string_flow.rb:55:10:55:10 | a | semmle.label | a |
| string_flow.rb:55:10:55:22 | call to capitalize! | semmle.label | call to capitalize! |
| string_flow.rb:59:5:59:5 | a | semmle.label | a |
| string_flow.rb:59:9:59:18 | call to source | semmle.label | call to source |
| string_flow.rb:60:10:60:10 | a | semmle.label | a |
| string_flow.rb:60:10:60:21 | call to center | semmle.label | call to center |
| string_flow.rb:61:10:61:28 | call to center | semmle.label | call to center |
| string_flow.rb:61:27:61:27 | a | semmle.label | a |
| string_flow.rb:62:10:62:10 | a | semmle.label | a |
| string_flow.rb:62:10:62:20 | call to ljust | semmle.label | call to ljust |
| string_flow.rb:63:10:63:27 | call to ljust | semmle.label | call to ljust |
| string_flow.rb:63:26:63:26 | a | semmle.label | a |
| string_flow.rb:64:10:64:10 | a | semmle.label | a |
| string_flow.rb:64:10:64:20 | call to rjust | semmle.label | call to rjust |
| string_flow.rb:65:10:65:27 | call to rjust | semmle.label | call to rjust |
| string_flow.rb:65:26:65:26 | a | semmle.label | a |
| string_flow.rb:69:5:69:5 | a | semmle.label | a |
| string_flow.rb:69:9:69:18 | call to source | semmle.label | call to source |
| string_flow.rb:70:10:70:10 | a | semmle.label | a |
| string_flow.rb:70:10:70:16 | call to chomp | semmle.label | call to chomp |
| string_flow.rb:71:10:71:10 | a | semmle.label | a |
| string_flow.rb:71:10:71:17 | call to chomp! | semmle.label | call to chomp! |
| string_flow.rb:75:5:75:5 | a | semmle.label | a |
| string_flow.rb:75:9:75:18 | call to source | semmle.label | call to source |
| string_flow.rb:76:10:76:10 | a | semmle.label | a |
| string_flow.rb:76:10:76:15 | call to chop | semmle.label | call to chop |
| string_flow.rb:77:10:77:10 | a | semmle.label | a |
| string_flow.rb:77:10:77:16 | call to chop! | semmle.label | call to chop! |
| string_flow.rb:83:5:83:5 | a | semmle.label | a |
| string_flow.rb:83:5:83:5 | a | semmle.label | a |
| string_flow.rb:83:9:83:18 | call to source | semmle.label | call to source |
| string_flow.rb:83:9:83:18 | call to source | semmle.label | call to source |
| string_flow.rb:84:5:84:5 | [post] a | semmle.label | [post] a |
| string_flow.rb:84:5:84:5 | [post] a | semmle.label | [post] a |
| string_flow.rb:84:5:84:5 | a | semmle.label | a |
| string_flow.rb:84:5:84:5 | a | semmle.label | a |
| string_flow.rb:85:10:85:10 | a | semmle.label | a |
| string_flow.rb:85:10:85:10 | a | semmle.label | a |
| string_flow.rb:108:5:108:5 | a | semmle.label | a |
| string_flow.rb:108:9:108:18 | call to source | semmle.label | call to source |
| string_flow.rb:109:10:109:10 | [post] a | semmle.label | [post] a |
| string_flow.rb:109:10:109:10 | a | semmle.label | a |
| string_flow.rb:109:10:109:22 | call to delete | semmle.label | call to delete |
| string_flow.rb:110:10:110:10 | a | semmle.label | a |
| string_flow.rb:110:10:110:29 | call to delete_prefix | semmle.label | call to delete_prefix |
| string_flow.rb:111:10:111:10 | a | semmle.label | a |
| string_flow.rb:111:10:111:29 | call to delete_suffix | semmle.label | call to delete_suffix |
| string_flow.rb:115:5:115:5 | a | semmle.label | a |
| string_flow.rb:115:9:115:18 | call to source | semmle.label | call to source |
| string_flow.rb:116:10:116:10 | a | semmle.label | a |
| string_flow.rb:116:10:116:19 | call to downcase | semmle.label | call to downcase |
| string_flow.rb:117:10:117:10 | a | semmle.label | a |
| string_flow.rb:117:10:117:20 | call to downcase! | semmle.label | call to downcase! |
| string_flow.rb:118:10:118:10 | a | semmle.label | a |
| string_flow.rb:118:10:118:19 | call to swapcase | semmle.label | call to swapcase |
| string_flow.rb:119:10:119:10 | a | semmle.label | a |
| string_flow.rb:119:10:119:20 | call to swapcase! | semmle.label | call to swapcase! |
| string_flow.rb:120:10:120:10 | a | semmle.label | a |
| string_flow.rb:120:10:120:17 | call to upcase | semmle.label | call to upcase |
| string_flow.rb:121:10:121:10 | a | semmle.label | a |
| string_flow.rb:121:10:121:18 | call to upcase! | semmle.label | call to upcase! |
| string_flow.rb:125:5:125:5 | a | semmle.label | a |
| string_flow.rb:125:9:125:18 | call to source | semmle.label | call to source |
| string_flow.rb:126:5:126:5 | b | semmle.label | b |
| string_flow.rb:126:9:126:9 | a | semmle.label | a |
| string_flow.rb:126:9:126:14 | call to dump | semmle.label | call to dump |
| string_flow.rb:127:10:127:10 | b | semmle.label | b |
| string_flow.rb:128:10:128:10 | b | semmle.label | b |
| string_flow.rb:128:10:128:17 | call to undump | semmle.label | call to undump |
| string_flow.rb:132:5:132:5 | a | semmle.label | a |
| string_flow.rb:132:9:132:18 | call to source | semmle.label | call to source |
| string_flow.rb:133:5:133:5 | b | semmle.label | b |
| string_flow.rb:133:9:133:9 | a | semmle.label | a |
| string_flow.rb:133:9:133:40 | call to each_line | semmle.label | call to each_line |
| string_flow.rb:133:24:133:27 | line | semmle.label | line |
| string_flow.rb:133:35:133:38 | line | semmle.label | line |
| string_flow.rb:134:10:134:10 | b | semmle.label | b |
| string_flow.rb:135:5:135:5 | c [element] | semmle.label | c [element] |
| string_flow.rb:135:9:135:9 | a | semmle.label | a |
| string_flow.rb:135:9:135:19 | call to each_line [element] | semmle.label | call to each_line [element] |
| string_flow.rb:136:10:136:10 | c [element] | semmle.label | c [element] |
| string_flow.rb:136:10:136:15 | call to to_a [element] | semmle.label | call to to_a [element] |
| string_flow.rb:136:10:136:18 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:140:5:140:5 | a | semmle.label | a |
| string_flow.rb:140:9:140:18 | call to source | semmle.label | call to source |
| string_flow.rb:141:5:141:5 | b | semmle.label | b |
| string_flow.rb:141:9:141:9 | a | semmle.label | a |
| string_flow.rb:141:9:141:36 | call to lines | semmle.label | call to lines |
| string_flow.rb:141:20:141:23 | line | semmle.label | line |
| string_flow.rb:141:31:141:34 | line | semmle.label | line |
| string_flow.rb:142:10:142:10 | b | semmle.label | b |
| string_flow.rb:143:5:143:5 | c [element] | semmle.label | c [element] |
| string_flow.rb:143:9:143:9 | a | semmle.label | a |
| string_flow.rb:143:9:143:15 | call to lines [element] | semmle.label | call to lines [element] |
| string_flow.rb:144:10:144:10 | c [element] | semmle.label | c [element] |
| string_flow.rb:144:10:144:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:148:5:148:5 | a | semmle.label | a |
| string_flow.rb:148:9:148:18 | call to source | semmle.label | call to source |
| string_flow.rb:149:10:149:10 | a | semmle.label | a |
| string_flow.rb:149:10:149:26 | call to encode | semmle.label | call to encode |
| string_flow.rb:150:10:150:10 | a | semmle.label | a |
| string_flow.rb:150:10:150:27 | call to encode! | semmle.label | call to encode! |
| string_flow.rb:151:10:151:10 | a | semmle.label | a |
| string_flow.rb:151:10:151:28 | call to unicode_normalize | semmle.label | call to unicode_normalize |
| string_flow.rb:152:10:152:10 | a | semmle.label | a |
| string_flow.rb:152:10:152:29 | call to unicode_normalize! | semmle.label | call to unicode_normalize! |
| string_flow.rb:156:5:156:5 | a | semmle.label | a |
| string_flow.rb:156:9:156:18 | call to source | semmle.label | call to source |
| string_flow.rb:157:10:157:10 | a | semmle.label | a |
| string_flow.rb:157:10:157:34 | call to force_encoding | semmle.label | call to force_encoding |
| string_flow.rb:161:5:161:5 | a | semmle.label | a |
| string_flow.rb:161:9:161:18 | call to source | semmle.label | call to source |
| string_flow.rb:162:10:162:10 | a | semmle.label | a |
| string_flow.rb:162:10:162:17 | call to freeze | semmle.label | call to freeze |
| string_flow.rb:166:5:166:5 | a | semmle.label | a |
| string_flow.rb:166:9:166:18 | call to source | semmle.label | call to source |
| string_flow.rb:167:5:167:5 | c | semmle.label | c |
| string_flow.rb:167:9:167:18 | call to source | semmle.label | call to source |
| string_flow.rb:168:10:168:10 | a | semmle.label | a |
| string_flow.rb:168:10:168:23 | call to gsub | semmle.label | call to gsub |
| string_flow.rb:168:22:168:22 | c | semmle.label | c |
| string_flow.rb:169:10:169:10 | a | semmle.label | a |
| string_flow.rb:169:10:169:24 | call to gsub! | semmle.label | call to gsub! |
| string_flow.rb:169:23:169:23 | c | semmle.label | c |
| string_flow.rb:170:10:170:10 | a | semmle.label | a |
| string_flow.rb:170:10:170:43 | call to gsub | semmle.label | call to gsub |
| string_flow.rb:170:32:170:41 | call to source | semmle.label | call to source |
| string_flow.rb:171:10:171:10 | a | semmle.label | a |
| string_flow.rb:171:10:171:44 | call to gsub! | semmle.label | call to gsub! |
| string_flow.rb:171:33:171:42 | call to source | semmle.label | call to source |
| string_flow.rb:175:5:175:5 | a | semmle.label | a |
| string_flow.rb:175:9:175:18 | call to source | semmle.label | call to source |
| string_flow.rb:176:5:176:5 | c | semmle.label | c |
| string_flow.rb:176:9:176:18 | call to source | semmle.label | call to source |
| string_flow.rb:177:10:177:10 | a | semmle.label | a |
| string_flow.rb:177:10:177:22 | call to sub | semmle.label | call to sub |
| string_flow.rb:177:21:177:21 | c | semmle.label | c |
| string_flow.rb:178:10:178:10 | a | semmle.label | a |
| string_flow.rb:178:10:178:23 | call to sub! | semmle.label | call to sub! |
| string_flow.rb:178:22:178:22 | c | semmle.label | c |
| string_flow.rb:179:10:179:10 | a | semmle.label | a |
| string_flow.rb:179:10:179:42 | call to sub | semmle.label | call to sub |
| string_flow.rb:179:31:179:40 | call to source | semmle.label | call to source |
| string_flow.rb:180:10:180:10 | a | semmle.label | a |
| string_flow.rb:180:10:180:43 | call to sub! | semmle.label | call to sub! |
| string_flow.rb:180:32:180:41 | call to source | semmle.label | call to source |
| string_flow.rb:191:5:191:5 | a | semmle.label | a |
| string_flow.rb:191:9:191:18 | call to source | semmle.label | call to source |
| string_flow.rb:192:10:192:10 | a | semmle.label | a |
| string_flow.rb:192:10:192:18 | call to inspect | semmle.label | call to inspect |
| string_flow.rb:196:5:196:5 | a | semmle.label | a |
| string_flow.rb:196:9:196:18 | call to source | semmle.label | call to source |
| string_flow.rb:197:10:197:10 | a | semmle.label | a |
| string_flow.rb:197:10:197:16 | call to strip | semmle.label | call to strip |
| string_flow.rb:198:10:198:10 | a | semmle.label | a |
| string_flow.rb:198:10:198:17 | call to strip! | semmle.label | call to strip! |
| string_flow.rb:199:10:199:10 | a | semmle.label | a |
| string_flow.rb:199:10:199:17 | call to lstrip | semmle.label | call to lstrip |
| string_flow.rb:200:10:200:10 | a | semmle.label | a |
| string_flow.rb:200:10:200:18 | call to lstrip! | semmle.label | call to lstrip! |
| string_flow.rb:201:10:201:10 | a | semmle.label | a |
| string_flow.rb:201:10:201:17 | call to rstrip | semmle.label | call to rstrip |
| string_flow.rb:202:10:202:10 | a | semmle.label | a |
| string_flow.rb:202:10:202:18 | call to rstrip! | semmle.label | call to rstrip! |
| string_flow.rb:206:5:206:5 | a | semmle.label | a |
| string_flow.rb:206:9:206:18 | call to source | semmle.label | call to source |
| string_flow.rb:207:10:207:10 | a | semmle.label | a |
| string_flow.rb:207:10:207:15 | call to next | semmle.label | call to next |
| string_flow.rb:208:10:208:10 | a | semmle.label | a |
| string_flow.rb:208:10:208:16 | call to next! | semmle.label | call to next! |
| string_flow.rb:209:10:209:10 | a | semmle.label | a |
| string_flow.rb:209:10:209:15 | call to succ | semmle.label | call to succ |
| string_flow.rb:210:10:210:10 | a | semmle.label | a |
| string_flow.rb:210:10:210:16 | call to succ! | semmle.label | call to succ! |
| string_flow.rb:214:5:214:5 | a | semmle.label | a |
| string_flow.rb:214:9:214:18 | call to source | semmle.label | call to source |
| string_flow.rb:215:5:215:5 | b [element 0] | semmle.label | b [element 0] |
| string_flow.rb:215:5:215:5 | b [element 1] | semmle.label | b [element 1] |
| string_flow.rb:215:5:215:5 | b [element 2] | semmle.label | b [element 2] |
| string_flow.rb:215:9:215:9 | a | semmle.label | a |
| string_flow.rb:215:9:215:24 | call to partition [element 0] | semmle.label | call to partition [element 0] |
| string_flow.rb:215:9:215:24 | call to partition [element 1] | semmle.label | call to partition [element 1] |
| string_flow.rb:215:9:215:24 | call to partition [element 2] | semmle.label | call to partition [element 2] |
| string_flow.rb:216:10:216:10 | b [element 0] | semmle.label | b [element 0] |
| string_flow.rb:216:10:216:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:217:10:217:10 | b [element 1] | semmle.label | b [element 1] |
| string_flow.rb:217:10:217:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:218:10:218:10 | b [element 2] | semmle.label | b [element 2] |
| string_flow.rb:218:10:218:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:223:5:223:5 | a | semmle.label | a |
| string_flow.rb:223:5:223:5 | a | semmle.label | a |
| string_flow.rb:223:9:223:18 | call to source | semmle.label | call to source |
| string_flow.rb:223:9:223:18 | call to source | semmle.label | call to source |
| string_flow.rb:224:5:224:5 | b | semmle.label | b |
| string_flow.rb:224:9:224:18 | call to source | semmle.label | call to source |
| string_flow.rb:225:10:225:10 | [post] a | semmle.label | [post] a |
| string_flow.rb:225:10:225:10 | [post] a | semmle.label | [post] a |
| string_flow.rb:225:10:225:10 | a | semmle.label | a |
| string_flow.rb:225:10:225:10 | a | semmle.label | a |
| string_flow.rb:225:10:225:21 | call to replace | semmle.label | call to replace |
| string_flow.rb:225:20:225:20 | b | semmle.label | b |
| string_flow.rb:227:10:227:10 | a | semmle.label | a |
| string_flow.rb:227:10:227:10 | a | semmle.label | a |
| string_flow.rb:231:5:231:5 | a | semmle.label | a |
| string_flow.rb:231:9:231:18 | call to source | semmle.label | call to source |
| string_flow.rb:232:10:232:10 | a | semmle.label | a |
| string_flow.rb:232:10:232:18 | call to reverse | semmle.label | call to reverse |
| string_flow.rb:236:5:236:5 | a | semmle.label | a |
| string_flow.rb:236:9:236:18 | call to source | semmle.label | call to source |
| string_flow.rb:237:9:237:9 | a | semmle.label | a |
| string_flow.rb:237:24:237:24 | x | semmle.label | x |
| string_flow.rb:237:35:237:35 | x | semmle.label | x |
| string_flow.rb:238:5:238:5 | b | semmle.label | b |
| string_flow.rb:238:9:238:9 | a | semmle.label | a |
| string_flow.rb:238:9:238:37 | call to scan | semmle.label | call to scan |
| string_flow.rb:238:27:238:27 | y | semmle.label | y |
| string_flow.rb:238:35:238:35 | y | semmle.label | y |
| string_flow.rb:239:10:239:10 | b | semmle.label | b |
| string_flow.rb:240:5:240:5 | b [element] | semmle.label | b [element] |
| string_flow.rb:240:9:240:9 | a | semmle.label | a |
| string_flow.rb:240:9:240:19 | call to scan [element] | semmle.label | call to scan [element] |
| string_flow.rb:241:10:241:10 | b [element] | semmle.label | b [element] |
| string_flow.rb:241:10:241:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:242:10:242:10 | b [element] | semmle.label | b [element] |
| string_flow.rb:242:10:242:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:246:5:246:5 | a | semmle.label | a |
| string_flow.rb:246:9:246:18 | call to source | semmle.label | call to source |
| string_flow.rb:247:10:247:10 | a | semmle.label | a |
| string_flow.rb:247:10:247:21 | call to scrub | semmle.label | call to scrub |
| string_flow.rb:248:10:248:21 | call to scrub | semmle.label | call to scrub |
| string_flow.rb:248:20:248:20 | a | semmle.label | a |
| string_flow.rb:249:5:249:5 | a | semmle.label | a |
| string_flow.rb:249:16:249:16 | x | semmle.label | x |
| string_flow.rb:249:24:249:24 | x | semmle.label | x |
| string_flow.rb:250:10:250:28 | call to scrub | semmle.label | call to scrub |
| string_flow.rb:250:26:250:26 | a | semmle.label | a |
| string_flow.rb:252:10:252:10 | a | semmle.label | a |
| string_flow.rb:252:10:252:22 | call to scrub! | semmle.label | call to scrub! |
| string_flow.rb:253:10:253:22 | call to scrub! | semmle.label | call to scrub! |
| string_flow.rb:253:21:253:21 | a | semmle.label | a |
| string_flow.rb:255:5:255:5 | a | semmle.label | a |
| string_flow.rb:255:9:255:18 | call to source | semmle.label | call to source |
| string_flow.rb:256:5:256:5 | a | semmle.label | a |
| string_flow.rb:256:17:256:17 | x | semmle.label | x |
| string_flow.rb:256:25:256:25 | x | semmle.label | x |
| string_flow.rb:258:10:258:29 | call to scrub! | semmle.label | call to scrub! |
| string_flow.rb:258:27:258:27 | a | semmle.label | a |
| string_flow.rb:262:5:262:5 | a | semmle.label | a |
| string_flow.rb:262:9:262:18 | call to source | semmle.label | call to source |
| string_flow.rb:263:10:263:10 | a | semmle.label | a |
| string_flow.rb:263:10:263:22 | call to shellescape | semmle.label | call to shellescape |
| string_flow.rb:267:5:267:5 | a | semmle.label | a |
| string_flow.rb:267:9:267:18 | call to source | semmle.label | call to source |
| string_flow.rb:268:5:268:5 | b [element] | semmle.label | b [element] |
| string_flow.rb:268:9:268:9 | a | semmle.label | a |
| string_flow.rb:268:9:268:20 | call to shellsplit [element] | semmle.label | call to shellsplit [element] |
| string_flow.rb:269:10:269:10 | b [element] | semmle.label | b [element] |
| string_flow.rb:269:10:269:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:273:5:273:5 | a | semmle.label | a |
| string_flow.rb:273:9:273:18 | call to source | semmle.label | call to source |
| string_flow.rb:274:5:274:5 | b | semmle.label | b |
| string_flow.rb:274:9:274:9 | a | semmle.label | a |
| string_flow.rb:274:9:274:18 | call to slice | semmle.label | call to slice |
| string_flow.rb:275:10:275:10 | b | semmle.label | b |
| string_flow.rb:275:10:275:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:277:5:277:5 | b | semmle.label | b |
| string_flow.rb:277:9:277:9 | [post] a | semmle.label | [post] a |
| string_flow.rb:277:9:277:9 | [post] a [element 1] | semmle.label | [post] a [element 1] |
| string_flow.rb:277:9:277:9 | [post] a [element 2] | semmle.label | [post] a [element 2] |
| string_flow.rb:277:9:277:9 | [post] a [element] | semmle.label | [post] a [element] |
| string_flow.rb:277:9:277:9 | a | semmle.label | a |
| string_flow.rb:277:9:277:19 | call to slice! | semmle.label | call to slice! |
| string_flow.rb:278:10:278:10 | b | semmle.label | b |
| string_flow.rb:278:10:278:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:280:5:280:5 | b | semmle.label | b |
| string_flow.rb:280:9:280:9 | a | semmle.label | a |
| string_flow.rb:280:9:280:20 | call to split | semmle.label | call to split |
| string_flow.rb:281:10:281:10 | b | semmle.label | b |
| string_flow.rb:281:10:281:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:283:5:283:5 | b | semmle.label | b |
| string_flow.rb:283:5:283:5 | b [element 0] | semmle.label | b [element 0] |
| string_flow.rb:283:5:283:5 | b [element 1] | semmle.label | b [element 1] |
| string_flow.rb:283:5:283:5 | b [element] | semmle.label | b [element] |
| string_flow.rb:283:9:283:9 | a | semmle.label | a |
| string_flow.rb:283:9:283:9 | a [element 1] | semmle.label | a [element 1] |
| string_flow.rb:283:9:283:9 | a [element 2] | semmle.label | a [element 2] |
| string_flow.rb:283:9:283:9 | a [element] | semmle.label | a [element] |
| string_flow.rb:283:9:283:14 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:283:9:283:14 | ...[...] [element 0] | semmle.label | ...[...] [element 0] |
| string_flow.rb:283:9:283:14 | ...[...] [element 1] | semmle.label | ...[...] [element 1] |
| string_flow.rb:283:9:283:14 | ...[...] [element] | semmle.label | ...[...] [element] |
| string_flow.rb:284:10:284:10 | b | semmle.label | b |
| string_flow.rb:284:10:284:10 | b [element 0] | semmle.label | b [element 0] |
| string_flow.rb:284:10:284:10 | b [element 1] | semmle.label | b [element 1] |
| string_flow.rb:284:10:284:10 | b [element] | semmle.label | b [element] |
| string_flow.rb:284:10:284:13 | ...[...] | semmle.label | ...[...] |
| string_flow.rb:288:5:288:5 | a | semmle.label | a |
| string_flow.rb:288:9:288:18 | call to source | semmle.label | call to source |
| string_flow.rb:289:10:289:10 | a | semmle.label | a |
| string_flow.rb:289:10:289:18 | call to squeeze | semmle.label | call to squeeze |
| string_flow.rb:290:10:290:10 | a | semmle.label | a |
| string_flow.rb:290:10:290:23 | call to squeeze | semmle.label | call to squeeze |
| string_flow.rb:291:10:291:10 | a | semmle.label | a |
| string_flow.rb:291:10:291:19 | call to squeeze! | semmle.label | call to squeeze! |
| string_flow.rb:292:10:292:10 | a | semmle.label | a |
| string_flow.rb:292:10:292:24 | call to squeeze! | semmle.label | call to squeeze! |
| string_flow.rb:296:5:296:5 | a | semmle.label | a |
| string_flow.rb:296:9:296:18 | call to source | semmle.label | call to source |
| string_flow.rb:297:10:297:10 | a | semmle.label | a |
| string_flow.rb:297:10:297:17 | call to to_str | semmle.label | call to to_str |
| string_flow.rb:298:10:298:10 | a | semmle.label | a |
| string_flow.rb:298:10:298:15 | call to to_s | semmle.label | call to to_s |
| string_flow.rb:302:5:302:5 | a | semmle.label | a |
| string_flow.rb:302:9:302:18 | call to source | semmle.label | call to source |
| string_flow.rb:303:10:303:10 | a | semmle.label | a |
| string_flow.rb:303:10:303:23 | call to tr | semmle.label | call to tr |
| string_flow.rb:304:10:304:23 | call to tr | semmle.label | call to tr |
| string_flow.rb:304:22:304:22 | a | semmle.label | a |
| string_flow.rb:305:10:305:10 | a | semmle.label | a |
| string_flow.rb:305:10:305:24 | call to tr! | semmle.label | call to tr! |
| string_flow.rb:306:10:306:24 | call to tr! | semmle.label | call to tr! |
| string_flow.rb:306:23:306:23 | a | semmle.label | a |
| string_flow.rb:307:10:307:10 | a | semmle.label | a |
| string_flow.rb:307:10:307:25 | call to tr_s | semmle.label | call to tr_s |
| string_flow.rb:308:10:308:25 | call to tr_s | semmle.label | call to tr_s |
| string_flow.rb:308:24:308:24 | a | semmle.label | a |
| string_flow.rb:309:10:309:10 | a | semmle.label | a |
| string_flow.rb:309:10:309:26 | call to tr_s! | semmle.label | call to tr_s! |
| string_flow.rb:310:10:310:26 | call to tr_s! | semmle.label | call to tr_s! |
| string_flow.rb:310:25:310:25 | a | semmle.label | a |
| string_flow.rb:314:5:314:5 | a | semmle.label | a |
| string_flow.rb:314:9:314:18 | call to source | semmle.label | call to source |
| string_flow.rb:315:5:315:5 | a | semmle.label | a |
| string_flow.rb:315:20:315:20 | x | semmle.label | x |
| string_flow.rb:315:28:315:28 | x | semmle.label | x |
| string_flow.rb:316:5:316:5 | a | semmle.label | a |
| string_flow.rb:316:26:316:26 | x | semmle.label | x |
| string_flow.rb:316:34:316:34 | x | semmle.label | x |
| string_flow.rb:317:14:317:14 | a | semmle.label | a |
| string_flow.rb:317:20:317:20 | x | semmle.label | x |
| string_flow.rb:317:28:317:28 | x | semmle.label | x |
subpaths
#select
| string_flow.rb:3:10:3:22 | call to new | string_flow.rb:2:9:2:18 | call to source | string_flow.rb:3:10:3:22 | call to new | $@ | string_flow.rb:2:9:2:18 | call to source | call to source |

View File

@@ -5,7 +5,7 @@
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -4,7 +4,7 @@
import ruby
import TestUtilities.InlineFlowTest
import PathGraph
import TaintFlow::PathGraph
import codeql.ruby.frameworks.Rails
module ParamsTaintFlowConfig implements DataFlow::ConfigSig {

View File

@@ -4,7 +4,7 @@
import ruby
import TestUtilities.InlineFlowTest
import PathGraph
import TaintFlow::PathGraph
import codeql.ruby.frameworks.Rails
module ParamsTaintFlowConfig implements DataFlow::ConfigSig {

View File

@@ -6,7 +6,7 @@ import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import codeql.ruby.Frameworks
import DefaultFlowTest
import PathGraph
import ValueFlow::PathGraph
from ValueFlow::PathNode source, ValueFlow::PathNode sink
where ValueFlow::flowPath(source, sink)

View File

@@ -1,3 +1,13 @@
testFailures
edges
| arel.rb:2:3:2:3 | x | arel.rb:3:17:3:17 | x |
| arel.rb:2:7:2:14 | call to source | arel.rb:2:3:2:3 | x |
| arel.rb:3:17:3:17 | x | arel.rb:3:8:3:18 | call to sql |
nodes
| arel.rb:2:3:2:3 | x | semmle.label | x |
| arel.rb:2:7:2:14 | call to source | semmle.label | call to source |
| arel.rb:3:8:3:18 | call to sql | semmle.label | call to sql |
| arel.rb:3:17:3:17 | x | semmle.label | x |
subpaths
#select
| arel.rb:3:8:3:18 | call to sql | arel.rb:2:7:2:14 | call to source | arel.rb:3:8:3:18 | call to sql | $@ | arel.rb:2:7:2:14 | call to source | call to source |

View File

@@ -6,6 +6,7 @@ import codeql.ruby.frameworks.Arel
import codeql.ruby.AST
import TestUtilities.InlineFlowTest
import DefaultFlowTest
import TaintFlow::PathGraph
from TaintFlow::PathNode source, TaintFlow::PathNode sink
where TaintFlow::flowPath(source, sink)

View File

@@ -6,19 +6,12 @@ edges
| app.rb:75:12:75:24 | ...[...] | app.rb:75:5:75:8 | [post] self [@foo] |
| app.rb:76:32:76:35 | @foo | views/index.erb:2:10:2:12 | call to foo |
| app.rb:76:32:76:35 | self [@foo] | app.rb:76:32:76:35 | @foo |
| app.rb:95:10:95:14 | self [@user] | app.rb:95:10:95:14 | @user |
| app.rb:103:5:103:9 | [post] self [@user] | app.rb:95:10:95:14 | self [@user] |
| app.rb:103:13:103:22 | call to source | app.rb:103:5:103:9 | [post] self [@user] |
nodes
| app.rb:75:5:75:8 | [post] self [@foo] | semmle.label | [post] self [@foo] |
| app.rb:75:12:75:17 | call to params | semmle.label | call to params |
| app.rb:75:12:75:24 | ...[...] | semmle.label | ...[...] |
| app.rb:76:32:76:35 | @foo | semmle.label | @foo |
| app.rb:76:32:76:35 | self [@foo] | semmle.label | self [@foo] |
| app.rb:95:10:95:14 | @user | semmle.label | @user |
| app.rb:95:10:95:14 | self [@user] | semmle.label | self [@user] |
| app.rb:103:5:103:9 | [post] self [@user] | semmle.label | [post] self [@user] |
| app.rb:103:13:103:22 | call to source | semmle.label | call to source |
| views/index.erb:2:10:2:12 | call to foo | semmle.label | call to foo |
subpaths
#select

View File

@@ -4,7 +4,7 @@
import ruby
import TestUtilities.InlineFlowTest
import PathGraph
import TaintFlow::PathGraph
import codeql.ruby.frameworks.Sinatra
import codeql.ruby.Concepts