3 ms·
It doesn’t. It’s just that dereferencing a zeroed pointer reliably crashes the program (unless you specifically do funky things with mmap) but dereferencing gar
by kccqzy 5mo ago
It doesn’t. It’s just that dereferencing a zeroed pointer reliably crashes the program (unless you specifically do funky things with mmap) but dereferencing garbage memory as a pointer could do a lot more insidious damage.
- jagged-chisel 5mo agoMy point is that the developer's comment doesn't make sense. Zeroing the allocated memory doesn't change anything about overrunning the buffer. edit: removed unnecessary examples
- davrosthedalek 5mo agoHaven't looked at the code, but the allocated memory could be larger than necessary to make "off-by-one" or "off-by-a-few" errors less deadly. Then zeroing it out makes it even less so. Defense in depth. Or it's an allocation for an arena? The zeroing might help trigger 0 derefs earlier if the overrun happens for the object that are then allocated in the arena (and not by allocating more objects than the arena can provide)
- Shish2k 5mo agoThis doesn't prevent overrunning the buffer -- it means that when you do overrun the buffer, it does less damage