dynamically allocating on the stack

Dmitry Olshansky dmitry.olsh at gmail.com
Sat Apr 21 20:46:08 UTC 2018


On Saturday, 21 April 2018 at 14:25:58 UTC, Cym13 wrote:
> On Saturday, 21 April 2018 at 13:54:14 UTC, H. S. Teoh wrote:
>> On Sat, Apr 21, 2018 at 01:30:55PM +0000, Cym13 via 
>> Digitalmars-d-learn wrote:
>>> On Saturday, 21 April 2018 at 12:08:09 UTC, Dmitry Olshansky 
>>> wrote:
>> [...]
>>> > Unbounded allocation on stack is kind of anti-pattern and a 
>>> > potential DoS vector.
>>> 
>>> I'm having trouble seeing how unbounded heap allocations 
>>> aren't equally a potential DoS vector.
>> [...]
>>
>> Generally speaking, the heap is much bigger than the stack 
>> (often many times so) and so is less prone to overflow.  
>> Though it's true, it still does happen if you just blindly 
>> allocate memory based on unsanitized external input.
>>
>>
>> T
>
> Wait, why? Don't they share the same address space and grow in 
> opposite directions?

That was true more like 25 years ago. Same address space is 
obviously still true. These days heap is usually not using sbrk 
which is basically what you describe. Also imagine threads and 
tell me which stack grows towards which ;)

Heap is allocated with mmap on Posix’es and VirtualAlloc on 
Windows. Stack is typically fixed limit imposed by ulimit and how 
it grows is beside the point really.






More information about the Digitalmars-d-learn mailing list