A zero pointer is not a null pointer
A zero pointer is not a null pointer
Posted Jul 25, 2009 12:49 UTC (Sat) by nix (subscriber, #2304)In reply to: A zero pointer is not a null pointer by giraffedata
Parent article: Fun with NULL pointers, part 1
that reside at address zero. Shaving off 1/2^32 or less of the address
space, and disabling an optimization in the one place that cares about
this (the kernel) does not seem like a terrible cost to me.
Data structures at address zero do not exist on any sane C platform.
Posted Jul 25, 2009 23:18 UTC (Sat)
by PaXTeam (guest, #24616)
[Link] (1 responses)
so platforms without an MMU are not sane?
Posted Jul 26, 2009 18:27 UTC (Sun)
by nix (subscriber, #2304)
[Link]
I'd say that trying to access structures at address zero, MMU or no MMU,
A zero pointer is not a null pointer
A zero pointer is not a null pointer
without either disabling all optimizations that involve knowing which
pointers are null (as the kernel now is) and taking great care to ensure
that you never need anything that can point to said structure to be NULL
at any time, or defining the null pointer to be other than all-bits-zero
(allowed, but weird, about as rare as platforms with strange word sizes).
is extremely unusual and not really sane to handle in a general-purpose
compiler. (GCC goes further than I would expect in actually having a
switch that makes it possible to use such a barmy thing.)