Thread overview |
---|
September 28, 2016 FreeTree posible memory corruption ? | ||||
---|---|---|---|---|
| ||||
Look here : https://github.com/Hackerpilot/experimental_allocator/blob/master/src/std/experimental/allocator/building_blocks/free_tree.d#L297 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 ? |
September 28, 2016 Re: FreeTree posible memory corruption ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Temtaime | 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>. |
September 28, 2016 Re: FreeTree posible memory corruption ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to ag0aep6g | On Wednesday, 28 September 2016 at 19:55:35 UTC, ag0aep6g wrote:
> On Wednesday, 28 September 2016 at 19:39:14 UTC, Temtaime wrote:
>> [...]
>
> That's not phobos's source. You can find it at <https://github.com/dlang/phobos>.
>
>> [...]
>
> 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>.
Sorry, it was first link from a google :(
Yes, your PR is addressed to this issue.
Thanks!
|
Copyright © 1999-2021 by the D Language Foundation