-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
MemoryConsumer::try_grow calls through to MemoryManager::can_grow_directly which determines the remaining space by performing self.pool_size - trk_total.
This can potentially underflow if the tracked memory exceeds the pool size, something for which there is no protection.
To Reproduce
#[test]
fn test_underflow() {
let config = MemoryManagerConfig::try_new_limit(100, 0.5).unwrap();
let manager = MemoryManager::new(config);
manager.grow_tracker_usage(100);
manager.register_requester(&MemoryConsumerId::new(1));
assert!(!manager.can_grow_directly(20, 0));
}
Expected behavior
Additional context
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working