Don't allow the pool allocator to be configured to allocate zero-sized objects
PR bootstrap/87747 would have been significantly easier to track down if the pool allocator had faulted an attempt to configure it to allocate zero-sized objects. Instead, this slipped through and we later hit memory corruption when the assumed size turned out to be different to the configured size. While, theoretically, there might be a use case for this, it seems unlikely to me that GCC would have such a use. So this patch adds a checking assert that the object size is not zero. * alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize): Assert that the allocation size is not zero. From-SVN: r265620
This commit is contained in:
parent
22e4f1fb6c
commit
29f6f2d244
@ -1,3 +1,8 @@
|
||||
2018-10-30 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize):
|
||||
Assert that the allocation size is not zero.
|
||||
|
||||
2018-10-30 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/87800
|
||||
|
@ -256,6 +256,7 @@ base_pool_allocator <TBlockAllocator>::initialize ()
|
||||
size_t size = m_size;
|
||||
|
||||
gcc_checking_assert (m_name);
|
||||
gcc_checking_assert (m_size);
|
||||
|
||||
/* Make size large enough to store the list header. */
|
||||
if (size < sizeof (allocation_pool_list*))
|
||||
|
Loading…
x
Reference in New Issue
Block a user