Skip to content

v0.16.0

Choose a tag to compare

@turbolent turbolent released this 09 Apr 23:00
· 28 commits to main since this release
b51f976

This release focused on reviewing, documenting, and refactoring code to proactively reduce false-positive security bug reports we are likely to receive in the future. There is more potential for reviewing and refactoring, but we wanted to release worthwhile improvements now.

The most notable changes are:

  • The NewStorableSlab() function has one more parameter storableSize that is used by other code in this release..
  • The NewStorableSlab function enforces a limit of ~4.2 GB for a single StorableSlab (for perspective, the largest is 7.3 MB on mainnet and regular slabs have a median size of than 1 KB). See details.

We thank @fxamacker for all her great efforts! 🙇

What's Changed

  • Remove unused function in storage.go by @fxamacker in #646
  • Refactor and fix several issues by @fxamacker in #647
  • Add slab size overflow guard during decoding by @fxamacker in #648
  • Add more defensive checks when decoding data by @fxamacker in #649
  • Document code that is underflow/overflow safe by @fxamacker in #650
  • Add maxThreshold to enforce size invariants by @fxamacker in #651
  • Document encoding code that is truncation safe to prevent security bug reports by @fxamacker in #652
  • Document more code that is underflow/overflow safe to prevent false-positive security reports by @fxamacker in #653
  • Limit storable size in NewStorableSlab() by @fxamacker in #654

Full Changelog: v0.15.0...v0.16.0