DirtyBytesArrayToStorageCopying ``bytes`` arrays from memory or calldata to storage may result in dirty storage values.
|Copying ``bytes`` arrays from memory or calldata to storage is done in chunks of 32 bytes even if the length is not a multiple of 32. Thereby, extra bytes past the end of the array may be copied from calldata or memory to storage. These dirty bytes may then become observable after a ``.push()`` without arguments to the bytes array in storage, i.e. such a push will not result in a zero value at the end of the array as expected. This bug only affects the legacy code generation pipeline, the new code generation pipeline via IR is not affected.|
- Link: https://blog.soliditylang.org/2022/06/15/dirty-bytes-array-to-storage-bug/
- First Introduced: 0.0.1
- Fixed in Version: 0.8.15
- Severity<: low