mirror of https://github.com/crytic/slither
Merge pull request #1725 from crytic/unitialized-storage-fix
Uninitialized storage fixpull/1739/head
commit
65f1312703
@ -0,0 +1,17 @@ |
||||
contract Uninitialized{ |
||||
|
||||
struct St{ |
||||
uint a; |
||||
} |
||||
|
||||
function bad() internal returns (St storage ret){ |
||||
ret = ret; |
||||
ret.a += 1; |
||||
} |
||||
|
||||
function ok(St storage ret) internal { |
||||
ret = ret; |
||||
ret.a += 1; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,90 @@ |
||||
[ |
||||
[ |
||||
{ |
||||
"elements": [ |
||||
{ |
||||
"type": "variable", |
||||
"name": "ret", |
||||
"source_mapping": { |
||||
"start": 100, |
||||
"length": 14, |
||||
"filename_relative": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", |
||||
"filename_absolute": "/GENERIC_PATH", |
||||
"filename_short": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", |
||||
"is_dependency": false, |
||||
"lines": [ |
||||
7 |
||||
], |
||||
"starting_column": 38, |
||||
"ending_column": 52 |
||||
}, |
||||
"type_specific_fields": { |
||||
"parent": { |
||||
"type": "function", |
||||
"name": "bad", |
||||
"source_mapping": { |
||||
"start": 67, |
||||
"length": 95, |
||||
"filename_relative": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", |
||||
"filename_absolute": "/GENERIC_PATH", |
||||
"filename_short": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", |
||||
"is_dependency": false, |
||||
"lines": [ |
||||
7, |
||||
8, |
||||
9, |
||||
10 |
||||
], |
||||
"starting_column": 5, |
||||
"ending_column": 6 |
||||
}, |
||||
"type_specific_fields": { |
||||
"parent": { |
||||
"type": "contract", |
||||
"name": "Uninitialized", |
||||
"source_mapping": { |
||||
"start": 0, |
||||
"length": 262, |
||||
"filename_relative": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", |
||||
"filename_absolute": "/GENERIC_PATH", |
||||
"filename_short": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol", |
||||
"is_dependency": false, |
||||
"lines": [ |
||||
1, |
||||
2, |
||||
3, |
||||
4, |
||||
5, |
||||
6, |
||||
7, |
||||
8, |
||||
9, |
||||
10, |
||||
11, |
||||
12, |
||||
13, |
||||
14, |
||||
15, |
||||
16, |
||||
17 |
||||
], |
||||
"starting_column": 1, |
||||
"ending_column": 2 |
||||
} |
||||
}, |
||||
"signature": "bad()" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
], |
||||
"description": "Uninitialized.bad().ret (tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#7) is a storage variable never initialized\n", |
||||
"markdown": "[Uninitialized.bad().ret](tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7) is a storage variable never initialized\n", |
||||
"first_markdown_element": "tests/detectors/uninitialized-storage/0.8.19/uninitialized_storage_pointer.sol#L7", |
||||
"id": "979d28e501693ed7ece0d429e7c30266f8e9d6a2e2eedc87006c4bad63e78706", |
||||
"check": "uninitialized-storage", |
||||
"impact": "High", |
||||
"confidence": "High" |
||||
} |
||||
] |
||||
] |
Loading…
Reference in new issue