-
Remove features
const_mut_refs
anduse_spin_nightly
.Since rust 1.61, the required const features are available in stable rust, and
lock_api
>= 0.4.7 automatically uses them. To avoid a breaking change, the features are still listed in Cargo.toml, but have no effect and are marked as deprecated. This bumps the minimum supported rust version to 1.61.
- Fix memory leak of small back paddings by considering regions that would result in such small back paddings as unsuitable (#71)
- Fix build on stable by adding missing field in
HoleList
initializer (#68)- Fixes a bug introduced in
v0.10.2
.
- Fixes a bug introduced in
Fix for potential out-of-bound writes that were possible on Heap
initialization and Heap::extend
. See the security advisory for details. The issues were fixed in the following way:
- The initialization functions now panic if the given size is not large enough to store the necessary metadata. Depending on the alignment of the heap bottom pointer, the minimum size is between
2 * size_of::<usize>
and3 * size_of::<usize>
. - The
extend
method now panics when trying to extend an unitialized heap. - Extend calls with a size smaller than
size_of::<usize>() * 2
are now buffered internally and not added to the list directly. The buffered region will be merged with futureextend
calls. - The
size()
method now returns the usable size of the heap, which might be slightly smaller than thetop() - bottom()
difference because of alignment constraints.
- Fixed logic for freeing nodes (#64)
- Changed constructor to take
*mut u8
instead ofusize
(#62)- NOTE: Breaking API change
- Reworked internals to pass Miri tests (#62)
- Add safe constructor and initialization for
Heap
(#55) - Merge front/back padding after allocate current hole (#54)
- Update
spinning_top
dependency tov0.2.3
(#50)
- Add new
use_spin_nightly
feature, which, together withconst_mut_refs
, makes theempty
method ofLockedHeap
const (#49)
- Made hole module public for external uses (#47)
- Don't require nightly for
use_spin
feature (#46)
- Do not require alloc crate (#44)
- Unstable Breakage: fix(alloc_ref): Use new nightly Allocator trait #42
- Build on stable without features #43
- Adds a new
const_mut_refs
crate feature (enabled by default). - By disabling this feature, it's possible to build the crate on stable Rust.
- Adds a new
- Fix build error on latest nightly (#35)
- Update AllocRef implementation for latest API changes (#33)
- Add function to get used and free heap size (#32)
- Prevent writing to heap memory range when size too small (#31)
- Update AllocRef implementation for latest API changes (#30)
- AllocRef::alloc is now safe and allows zero-sized allocations (#28)
- This is technically a breaking change for the unstable
alloc_ref
feature of this crate because it now requires a newer nightly version of Rust.
- This is technically a breaking change for the unstable
- Breaking: Make AllocRef implementation optional behind new
alloc_ref
feature- To enable the
AllocRef
implementation again, enable thealloc_ref
feature of this crate in your Cargo.toml
- To enable the
- Fix build on nightly 1.43.0 (05-03-2020) (#25)
- Use new spinning_top crate instead of
spin
(#23)
- The
Alloc
trait was renamed toAllocRef
(#20)
- Align up the Hole initialization address (#18)
- Remove
alloc
feature gate, which is now stable