[PATCH] fix out of bounds access in TestPool::testNewBlockAllocation()
Matt Rogers
mattr at kde.org
Wed May 20 17:44:02 UTC 2009
On May 20, 2009, at 12:34 PM, Peter Oberndorfer wrote:
> First all elements of a block are allocated.
> Then one additional element is allocated, which starts a new block.
> But then memory is written after the end of the first block,
> which is out of bounds and causes a crash.
> ---
>
> This fixes a crashing kdevelop test.
> personally i can not see how this could ever have worked.
> Anything else we should check instead in this test?
> OK to commit?
>
> languages/cpp/parser/tests/test_pool.cpp | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/languages/cpp/parser/tests/test_pool.cpp b/languages/
> cpp/parser/tests/test_pool.cpp
> index 9113221..ba6e5c0 100644
> --- a/languages/cpp/parser/tests/test_pool.cpp
> +++ b/languages/cpp/parser/tests/test_pool.cpp
> @@ -60,10 +60,10 @@ void TestPool::testNewBlockAllocation()
> int lastOne = alloc._S_block_size / sizeof(int) - 1;
> p[lastOne] = 10;
> //the first one in another block
> - alloc.allocate(1);
> - p[lastOne+1] = 11;
> + int *p2 = alloc.allocate(1);
> + p2[0] = 11;
> QCOMPARE(p[lastOne], 10);
> - QCOMPARE(p[lastOne+1], 11);
> + QCOMPARE(p2[0], 11);
> }
>
> void TestPool::testWastedMemoryDueToBlockAllocation()
> --
> 1.6.2.3
Looks fine to me.
--
Matt
More information about the KDevelop-devel
mailing list