Skip to content
This repository was archived by the owner on Jan 5, 2023. It is now read-only.

Commit e6217d9

Browse files
committed
Provide better strings for map and struct literals
1 parent dc113ab commit e6217d9

6 files changed

Lines changed: 42 additions & 38 deletions

File tree

ql/src/semmle/go/Expr.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,8 @@ class MapLit extends CompositeLit {
415415

416416
/** Gets the value type of this literal. */
417417
Type getValueType() { result = mt.getValueType() }
418+
419+
override string toString() { result = "map literal" }
418420
}
419421

420422
/**
@@ -435,6 +437,8 @@ class StructLit extends CompositeLit {
435437

436438
/** Gets the struct type underlying this literal. */
437439
StructType getStructType() { result = st }
440+
441+
override string toString() { result = "struct literal" }
438442
}
439443

440444
/**

ql/test/library-tests/semmle/go/Expr/CompositeLit.expected

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
| literals.go:5:15:9:1 | composite literal | 0 | key | literals.go:6:2:6:10 | "decimal" |
2-
| literals.go:5:15:9:1 | composite literal | 0 | value | literals.go:6:17:6:18 | 42 |
3-
| literals.go:5:15:9:1 | composite literal | 1 | key | literals.go:7:2:7:8 | "octal" |
4-
| literals.go:5:15:9:1 | composite literal | 1 | value | literals.go:7:17:7:20 | 0600 |
5-
| literals.go:5:15:9:1 | composite literal | 2 | key | literals.go:8:2:8:14 | "hexadecimal" |
6-
| literals.go:5:15:9:1 | composite literal | 2 | value | literals.go:8:17:8:24 | 0xcaffee |
1+
| literals.go:5:15:9:1 | map literal | 0 | key | literals.go:6:2:6:10 | "decimal" |
2+
| literals.go:5:15:9:1 | map literal | 0 | value | literals.go:6:17:6:18 | 42 |
3+
| literals.go:5:15:9:1 | map literal | 1 | key | literals.go:7:2:7:8 | "octal" |
4+
| literals.go:5:15:9:1 | map literal | 1 | value | literals.go:7:17:7:20 | 0600 |
5+
| literals.go:5:15:9:1 | map literal | 2 | key | literals.go:8:2:8:14 | "hexadecimal" |
6+
| literals.go:5:15:9:1 | map literal | 2 | value | literals.go:8:17:8:24 | 0xcaffee |
77
| literals.go:11:17:21:1 | slice literal | 0 | value | literals.go:12:2:12:3 | 0. |
88
| literals.go:11:17:21:1 | slice literal | 1 | value | literals.go:13:2:13:6 | 72.40 |
99
| literals.go:11:17:21:1 | slice literal | 2 | value | literals.go:14:2:14:7 | 072.40 |

ql/test/library-tests/semmle/go/controlflow/ControlFlowGraph/ControlFlowNode_getASuccessor.expected

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@
7878
| exprs.go:9:54:9:59 | type conversion | exprs.go:9:48:9:59 | ...<... |
7979
| exprs.go:9:58:9:58 | z | exprs.go:9:54:9:59 | type conversion |
8080
| exprs.go:10:2:10:8 | assignment to struct1 | exprs.go:11:2:11:8 | skip |
81-
| exprs.go:10:2:10:8 | skip | exprs.go:10:13:10:32 | composite literal |
82-
| exprs.go:10:13:10:32 | composite literal | exprs.go:10:2:10:8 | assignment to struct1 |
81+
| exprs.go:10:2:10:8 | skip | exprs.go:10:13:10:32 | struct literal |
82+
| exprs.go:10:13:10:32 | struct literal | exprs.go:10:2:10:8 | assignment to struct1 |
8383
| exprs.go:11:2:11:8 | assignment to struct2 | exprs.go:15:2:15:8 | skip |
84-
| exprs.go:11:2:11:8 | skip | exprs.go:11:13:14:21 | composite literal |
85-
| exprs.go:11:13:14:21 | composite literal | exprs.go:14:4:14:4 | k |
84+
| exprs.go:11:2:11:8 | skip | exprs.go:11:13:14:21 | struct literal |
85+
| exprs.go:11:13:14:21 | struct literal | exprs.go:14:4:14:4 | k |
8686
| exprs.go:14:4:14:4 | init of k | exprs.go:14:7:14:8 | fn |
8787
| exprs.go:14:4:14:4 | k | exprs.go:14:4:14:4 | init of k |
8888
| exprs.go:14:7:14:8 | fn | exprs.go:14:10:14:10 | i |
@@ -93,8 +93,8 @@
9393
| exprs.go:14:13:14:13 | j | exprs.go:14:16:14:19 | .../... |
9494
| exprs.go:14:16:14:19 | .../... | exprs.go:14:7:14:20 | call to fn |
9595
| exprs.go:15:2:15:8 | assignment to struct3 | exprs.go:16:2:16:5 | skip |
96-
| exprs.go:15:2:15:8 | skip | exprs.go:15:13:15:58 | composite literal |
97-
| exprs.go:15:13:15:58 | composite literal | exprs.go:15:35:15:41 | struct1 |
96+
| exprs.go:15:2:15:8 | skip | exprs.go:15:13:15:58 | struct literal |
97+
| exprs.go:15:13:15:58 | struct literal | exprs.go:15:35:15:41 | struct1 |
9898
| exprs.go:15:32:15:43 | init of key-value pair | exprs.go:15:49:15:55 | struct2 |
9999
| exprs.go:15:35:15:41 | struct1 | exprs.go:15:35:15:43 | selection of x |
100100
| exprs.go:15:35:15:43 | selection of x | exprs.go:15:32:15:43 | init of key-value pair |
@@ -131,8 +131,8 @@
131131
| exprs.go:18:21:18:21 | init of s | exprs.go:18:2:18:4 | assignment to slc |
132132
| exprs.go:18:21:18:21 | s | exprs.go:18:21:18:21 | init of s |
133133
| exprs.go:19:2:19:3 | assignment to mp | exprs.go:20:2:20:5 | skip |
134-
| exprs.go:19:2:19:3 | skip | exprs.go:19:8:19:38 | composite literal |
135-
| exprs.go:19:8:19:38 | composite literal | exprs.go:19:23:19:25 | slc |
134+
| exprs.go:19:2:19:3 | skip | exprs.go:19:8:19:38 | map literal |
135+
| exprs.go:19:8:19:38 | map literal | exprs.go:19:23:19:25 | slc |
136136
| exprs.go:19:23:19:25 | slc | exprs.go:19:27:19:27 | 0 |
137137
| exprs.go:19:23:19:28 | index expression | exprs.go:19:31:19:34 | arr2 |
138138
| exprs.go:19:23:19:28 | index expression | exprs.go:26:1:26:1 | exit |
@@ -174,7 +174,7 @@
174174
| exprs.go:23:10:23:17 | slice expression | exprs.go:23:2:23:5 | assignment to slc5 |
175175
| exprs.go:23:10:23:17 | slice expression | exprs.go:26:1:26:1 | exit |
176176
| exprs.go:23:15:23:15 | 0 | exprs.go:23:10:23:17 | len |
177-
| exprs.go:24:2:24:5 | assignment to slc6 | exprs.go:25:9:25:34 | composite literal |
177+
| exprs.go:24:2:24:5 | assignment to slc6 | exprs.go:25:9:25:34 | struct literal |
178178
| exprs.go:24:2:24:5 | skip | exprs.go:24:10:24:13 | slc5 |
179179
| exprs.go:24:10:24:13 | slc5 | exprs.go:24:10:24:17 | 0 |
180180
| exprs.go:24:10:24:17 | 0 | exprs.go:24:16:24:16 | 2 |
@@ -183,7 +183,7 @@
183183
| exprs.go:24:10:24:17 | slice expression | exprs.go:26:1:26:1 | exit |
184184
| exprs.go:24:16:24:16 | 2 | exprs.go:24:10:24:17 | cap |
185185
| exprs.go:25:2:25:34 | return statement | exprs.go:26:1:26:1 | exit |
186-
| exprs.go:25:9:25:34 | composite literal | exprs.go:25:15:25:16 | mp |
186+
| exprs.go:25:9:25:34 | struct literal | exprs.go:25:15:25:16 | mp |
187187
| exprs.go:25:15:25:16 | mp | exprs.go:25:18:25:18 | s |
188188
| exprs.go:25:15:25:19 | index expression | exprs.go:25:15:25:19 | init of index expression |
189189
| exprs.go:25:15:25:19 | index expression | exprs.go:26:1:26:1 | exit |

ql/test/library-tests/semmle/go/dataflow/SSA/VarDefs.expected

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@
3333
| main.go:96:2:96:2 | assignment to x | main.go:96:2:96:2 | x | main.go:96:7:96:7 | 0 |
3434
| main.go:98:3:98:3 | assignment to x | main.go:96:2:96:2 | x | main.go:98:7:98:7 | 1 |
3535
| main.go:110:6:110:6 | assignment to p | main.go:110:6:110:6 | p | main.go:110:6:110:6 | zero value for p |
36-
| main.go:112:3:112:3 | assignment to p | main.go:110:6:110:6 | p | main.go:112:7:112:24 | composite literal |
36+
| main.go:112:3:112:3 | assignment to p | main.go:110:6:110:6 | p | main.go:112:7:112:24 | struct literal |
3737
| main.go:112:9:112:9 | init of 2 | main.go:104:2:104:2 | a | main.go:112:9:112:9 | 2 |
38-
| main.go:112:12:112:18 | init of composite literal | main.go:105:2:105:2 | b | main.go:112:12:112:18 | composite literal |
38+
| main.go:112:12:112:18 | init of struct literal | main.go:105:2:105:2 | b | main.go:112:12:112:18 | struct literal |
3939
| main.go:112:14:112:14 | init of 1 | main.go:89:2:89:2 | a | main.go:112:14:112:14 | 1 |
4040
| main.go:112:17:112:17 | init of 5 | main.go:90:2:90:2 | b | main.go:112:17:112:17 | 5 |
4141
| main.go:112:21:112:23 | init of 'n' | main.go:106:2:106:2 | c | main.go:112:21:112:23 | 'n' |
42-
| main.go:114:3:114:3 | assignment to p | main.go:110:6:110:6 | p | main.go:114:7:114:24 | composite literal |
42+
| main.go:114:3:114:3 | assignment to p | main.go:110:6:110:6 | p | main.go:114:7:114:24 | struct literal |
4343
| main.go:114:9:114:9 | init of 3 | main.go:104:2:104:2 | a | main.go:114:9:114:9 | 3 |
44-
| main.go:114:12:114:18 | init of composite literal | main.go:105:2:105:2 | b | main.go:114:12:114:18 | composite literal |
44+
| main.go:114:12:114:18 | init of struct literal | main.go:105:2:105:2 | b | main.go:114:12:114:18 | struct literal |
4545
| main.go:114:14:114:14 | init of 4 | main.go:89:2:89:2 | a | main.go:114:14:114:14 | 4 |
4646
| main.go:114:17:114:17 | init of 5 | main.go:90:2:90:2 | b | main.go:114:17:114:17 | 5 |
4747
| main.go:114:21:114:23 | init of '2' | main.go:106:2:106:2 | c | main.go:114:21:114:23 | '2' |

ql/test/query-tests/Security/CWE-089/SqlInjection.expected

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ edges
88
| main.go:14:63:14:67 | selection of URL : pointer type | main.go:14:11:14:84 | call to Sprintf |
99
| main.go:15:63:15:70 | selection of Header : Header | main.go:15:11:15:85 | call to Sprintf |
1010
| main.go:27:17:30:2 | &... [pointer, Category] | main.go:33:3:33:13 | RequestData [pointer, Category] |
11-
| main.go:27:18:30:2 | composite literal [Category] : slice type | main.go:27:17:30:2 | &... [pointer, Category] |
11+
| main.go:27:18:30:2 | struct literal [Category] : slice type | main.go:27:17:30:2 | &... [pointer, Category] |
1212
| main.go:29:13:29:19 | selection of URL : pointer type | main.go:29:13:29:39 | index expression : slice type |
13-
| main.go:29:13:29:39 | index expression : slice type | main.go:27:18:30:2 | composite literal [Category] : slice type |
13+
| main.go:29:13:29:39 | index expression : slice type | main.go:27:18:30:2 | struct literal [Category] : slice type |
1414
| main.go:33:3:33:13 | RequestData [pointer, Category] | main.go:33:3:33:13 | implicit dereference [Category] : slice type |
1515
| main.go:33:3:33:13 | implicit dereference [Category] : slice type | main.go:33:3:33:22 | selection of Category : slice type |
1616
| main.go:33:3:33:22 | selection of Category : slice type | main.go:34:11:34:11 | q |
@@ -72,7 +72,7 @@ nodes
7272
| main.go:15:11:15:85 | call to Sprintf | semmle.label | call to Sprintf |
7373
| main.go:15:63:15:70 | selection of Header : Header | semmle.label | selection of Header : Header |
7474
| main.go:27:17:30:2 | &... [pointer, Category] | semmle.label | &... [pointer, Category] |
75-
| main.go:27:18:30:2 | composite literal [Category] : slice type | semmle.label | composite literal [Category] : slice type |
75+
| main.go:27:18:30:2 | struct literal [Category] : slice type | semmle.label | struct literal [Category] : slice type |
7676
| main.go:29:13:29:19 | selection of URL : pointer type | semmle.label | selection of URL : pointer type |
7777
| main.go:29:13:29:39 | index expression : slice type | semmle.label | index expression : slice type |
7878
| main.go:33:3:33:13 | RequestData [pointer, Category] | semmle.label | RequestData [pointer, Category] |

ql/test/query-tests/Security/CWE-312/CleartextLogging.expected

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@ edges
22
| passwords.go:8:12:8:12 | definition of x : string | passwords.go:9:14:9:14 | x |
33
| passwords.go:30:8:30:15 | password : string | passwords.go:8:12:8:12 | definition of x : string |
44
| passwords.go:34:28:34:35 | password : string | passwords.go:34:14:34:35 | ...+... |
5-
| passwords.go:36:10:38:2 | composite literal : passStruct | passwords.go:39:14:39:17 | obj1 |
5+
| passwords.go:36:10:38:2 | struct literal : passStruct | passwords.go:39:14:39:17 | obj1 |
66
| passwords.go:42:6:42:13 | password : string | passwords.go:44:14:44:17 | obj2 |
77
| passwords.go:48:11:48:18 | password : string | passwords.go:47:14:47:17 | obj3 |
8-
| passwords.go:85:19:87:2 | composite literal : passSetStruct | passwords.go:88:14:88:26 | utilityObject |
8+
| passwords.go:85:19:87:2 | struct literal : passSetStruct | passwords.go:88:14:88:26 | utilityObject |
99
| passwords.go:90:12:90:19 | password : string | passwords.go:91:23:91:28 | secret |
1010
| passwords.go:101:33:101:40 | password : string | passwords.go:101:15:101:40 | ...+... |
1111
| passwords.go:107:34:107:41 | password : string | passwords.go:107:16:107:41 | ...+... |
1212
| passwords.go:112:33:112:40 | password : string | passwords.go:112:15:112:40 | ...+... |
1313
| passwords.go:116:28:116:36 | password1 : stringable | passwords.go:116:14:116:45 | ...+... |
14-
| passwords.go:118:12:123:2 | composite literal : Config | passwords.go:125:14:125:19 | config |
15-
| passwords.go:118:12:123:2 | composite literal [x] : string | passwords.go:126:14:126:19 | config [x] : string |
16-
| passwords.go:118:12:123:2 | composite literal [y] : string | passwords.go:127:14:127:19 | config [y] : string |
17-
| passwords.go:121:13:121:20 | password : string | passwords.go:118:12:123:2 | composite literal [x] : string |
14+
| passwords.go:118:12:123:2 | struct literal : Config | passwords.go:125:14:125:19 | config |
15+
| passwords.go:118:12:123:2 | struct literal [x] : string | passwords.go:126:14:126:19 | config [x] : string |
16+
| passwords.go:118:12:123:2 | struct literal [y] : string | passwords.go:127:14:127:19 | config [y] : string |
17+
| passwords.go:121:13:121:20 | password : string | passwords.go:118:12:123:2 | struct literal [x] : string |
1818
| passwords.go:121:13:121:20 | password : string | passwords.go:125:14:125:19 | config |
19-
| passwords.go:122:13:122:25 | call to getPassword : string | passwords.go:118:12:123:2 | composite literal [y] : string |
19+
| passwords.go:122:13:122:25 | call to getPassword : string | passwords.go:118:12:123:2 | struct literal [y] : string |
2020
| passwords.go:122:13:122:25 | call to getPassword : string | passwords.go:125:14:125:19 | config |
2121
| passwords.go:126:14:126:19 | config [x] : string | passwords.go:126:14:126:21 | selection of x |
2222
| passwords.go:127:14:127:19 | config [y] : string | passwords.go:127:14:127:21 | selection of y |
@@ -33,14 +33,14 @@ nodes
3333
| passwords.go:32:12:32:19 | password | semmle.label | password |
3434
| passwords.go:34:14:34:35 | ...+... | semmle.label | ...+... |
3535
| passwords.go:34:28:34:35 | password : string | semmle.label | password : string |
36-
| passwords.go:36:10:38:2 | composite literal : passStruct | semmle.label | composite literal : passStruct |
36+
| passwords.go:36:10:38:2 | struct literal : passStruct | semmle.label | struct literal : passStruct |
3737
| passwords.go:39:14:39:17 | obj1 | semmle.label | obj1 |
3838
| passwords.go:42:6:42:13 | password : string | semmle.label | password : string |
3939
| passwords.go:44:14:44:17 | obj2 | semmle.label | obj2 |
4040
| passwords.go:47:14:47:17 | obj3 | semmle.label | obj3 |
4141
| passwords.go:48:11:48:18 | password : string | semmle.label | password : string |
4242
| passwords.go:51:14:51:27 | fixed_password | semmle.label | fixed_password |
43-
| passwords.go:85:19:87:2 | composite literal : passSetStruct | semmle.label | composite literal : passSetStruct |
43+
| passwords.go:85:19:87:2 | struct literal : passSetStruct | semmle.label | struct literal : passSetStruct |
4444
| passwords.go:88:14:88:26 | utilityObject | semmle.label | utilityObject |
4545
| passwords.go:90:12:90:19 | password : string | semmle.label | password : string |
4646
| passwords.go:91:23:91:28 | secret | semmle.label | secret |
@@ -52,9 +52,9 @@ nodes
5252
| passwords.go:112:33:112:40 | password : string | semmle.label | password : string |
5353
| passwords.go:116:14:116:45 | ...+... | semmle.label | ...+... |
5454
| passwords.go:116:28:116:36 | password1 : stringable | semmle.label | password1 : stringable |
55-
| passwords.go:118:12:123:2 | composite literal : Config | semmle.label | composite literal : Config |
56-
| passwords.go:118:12:123:2 | composite literal [x] : string | semmle.label | composite literal [x] : string |
57-
| passwords.go:118:12:123:2 | composite literal [y] : string | semmle.label | composite literal [y] : string |
55+
| passwords.go:118:12:123:2 | struct literal : Config | semmle.label | struct literal : Config |
56+
| passwords.go:118:12:123:2 | struct literal [x] : string | semmle.label | struct literal [x] : string |
57+
| passwords.go:118:12:123:2 | struct literal [y] : string | semmle.label | struct literal [y] : string |
5858
| passwords.go:121:13:121:20 | password : string | semmle.label | password : string |
5959
| passwords.go:122:13:122:25 | call to getPassword : string | semmle.label | call to getPassword : string |
6060
| passwords.go:125:14:125:19 | config | semmle.label | config |
@@ -73,17 +73,17 @@ nodes
7373
| passwords.go:28:14:28:28 | call to getPassword | util.go:16:9:16:18 | selection of password : string | passwords.go:28:14:28:28 | call to getPassword | Sensitive data returned by $@ is logged here. | util.go:16:9:16:18 | selection of password | an access to password |
7474
| passwords.go:32:12:32:19 | password | passwords.go:32:12:32:19 | password | passwords.go:32:12:32:19 | password | Sensitive data returned by $@ is logged here. | passwords.go:32:12:32:19 | password | an access to password |
7575
| passwords.go:34:14:34:35 | ...+... | passwords.go:34:28:34:35 | password : string | passwords.go:34:14:34:35 | ...+... | Sensitive data returned by $@ is logged here. | passwords.go:34:28:34:35 | password | an access to password |
76-
| passwords.go:39:14:39:17 | obj1 | passwords.go:36:10:38:2 | composite literal : passStruct | passwords.go:39:14:39:17 | obj1 | Sensitive data returned by $@ is logged here. | passwords.go:36:10:38:2 | composite literal | an access to password |
76+
| passwords.go:39:14:39:17 | obj1 | passwords.go:36:10:38:2 | struct literal : passStruct | passwords.go:39:14:39:17 | obj1 | Sensitive data returned by $@ is logged here. | passwords.go:36:10:38:2 | struct literal | an access to password |
7777
| passwords.go:44:14:44:17 | obj2 | passwords.go:42:6:42:13 | password : string | passwords.go:44:14:44:17 | obj2 | Sensitive data returned by $@ is logged here. | passwords.go:42:6:42:13 | password | an access to password |
7878
| passwords.go:47:14:47:17 | obj3 | passwords.go:48:11:48:18 | password : string | passwords.go:47:14:47:17 | obj3 | Sensitive data returned by $@ is logged here. | passwords.go:48:11:48:18 | password | an access to password |
7979
| passwords.go:51:14:51:27 | fixed_password | passwords.go:51:14:51:27 | fixed_password | passwords.go:51:14:51:27 | fixed_password | Sensitive data returned by $@ is logged here. | passwords.go:51:14:51:27 | fixed_password | an access to fixed_password |
80-
| passwords.go:88:14:88:26 | utilityObject | passwords.go:85:19:87:2 | composite literal : passSetStruct | passwords.go:88:14:88:26 | utilityObject | Sensitive data returned by $@ is logged here. | passwords.go:85:19:87:2 | composite literal | an access to passwordSet |
80+
| passwords.go:88:14:88:26 | utilityObject | passwords.go:85:19:87:2 | struct literal : passSetStruct | passwords.go:88:14:88:26 | utilityObject | Sensitive data returned by $@ is logged here. | passwords.go:85:19:87:2 | struct literal | an access to passwordSet |
8181
| passwords.go:91:23:91:28 | secret | passwords.go:90:12:90:19 | password : string | passwords.go:91:23:91:28 | secret | Sensitive data returned by $@ is logged here. | passwords.go:90:12:90:19 | password | an access to password |
8282
| passwords.go:101:15:101:40 | ...+... | passwords.go:101:33:101:40 | password : string | passwords.go:101:15:101:40 | ...+... | Sensitive data returned by $@ is logged here. | passwords.go:101:33:101:40 | password | an access to password |
8383
| passwords.go:107:16:107:41 | ...+... | passwords.go:107:34:107:41 | password : string | passwords.go:107:16:107:41 | ...+... | Sensitive data returned by $@ is logged here. | passwords.go:107:34:107:41 | password | an access to password |
8484
| passwords.go:112:15:112:40 | ...+... | passwords.go:112:33:112:40 | password : string | passwords.go:112:15:112:40 | ...+... | Sensitive data returned by $@ is logged here. | passwords.go:112:33:112:40 | password | an access to password |
8585
| passwords.go:116:14:116:45 | ...+... | passwords.go:116:28:116:36 | password1 : stringable | passwords.go:116:14:116:45 | ...+... | Sensitive data returned by $@ is logged here. | passwords.go:116:28:116:36 | password1 | an access to password1 |
86-
| passwords.go:125:14:125:19 | config | passwords.go:118:12:123:2 | composite literal : Config | passwords.go:125:14:125:19 | config | Sensitive data returned by $@ is logged here. | passwords.go:118:12:123:2 | composite literal | an access to password |
86+
| passwords.go:125:14:125:19 | config | passwords.go:118:12:123:2 | struct literal : Config | passwords.go:125:14:125:19 | config | Sensitive data returned by $@ is logged here. | passwords.go:118:12:123:2 | struct literal | an access to password |
8787
| passwords.go:125:14:125:19 | config | passwords.go:121:13:121:20 | password : string | passwords.go:125:14:125:19 | config | Sensitive data returned by $@ is logged here. | passwords.go:121:13:121:20 | password | an access to password |
8888
| passwords.go:125:14:125:19 | config | passwords.go:122:13:122:25 | call to getPassword : string | passwords.go:125:14:125:19 | config | Sensitive data returned by $@ is logged here. | passwords.go:122:13:122:25 | call to getPassword | a call to getPassword |
8989
| passwords.go:126:14:126:21 | selection of x | passwords.go:121:13:121:20 | password : string | passwords.go:126:14:126:21 | selection of x | Sensitive data returned by $@ is logged here. | passwords.go:121:13:121:20 | password | an access to password |

0 commit comments

Comments
 (0)