FreeTree posible memory corruption ?

ag0aep6g via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 28 12:55:35 PDT 2016


On Wednesday, 28 September 2016 at 19:39:14 UTC, Temtaime wrote:
> Look here :
> https://github.com/Hackerpilot/experimental_allocator/blob/master/src/std/experimental/allocator/building_blocks/free_tree.d#L297

That's not phobos's source. You can find it at 
<https://github.com/dlang/phobos>.

> It tries to find a block inside the tree. If it fails, it 
> allocates n bytes passed to the function.
>
> Look a little down and you see a deallocate method.
> It casts previousli allocated block to internal Node struct and 
> then tries to set some fields in it.
>
> Suppose we called allocate(1) and it'll call parent allocator 
> with size 1. So size of returned block will be 1. Then we 
> deallocate such a block, and FreeTree corrupts memory.
>
> Am-I wrong and missed something ?

I've recently fixed two issues in FreeTree's code. I think the 
one you've spotted was one of them. See 
<https://github.com/dlang/phobos/pull/4798>.


More information about the Digitalmars-d mailing list