On Fri, Aug 26, 2016 at 5:08 PM, Christian Kandeler
<[email protected]> wrote:
> On 08/26/2016 04:49 PM, charleyb123 . wrote:
>> An aside:  We are currently steeped in the tradition that "zero" is not
>> a legal address, but that is (quickly) becoming not-true for
>> process-containers, system-emulators and VMs, and new hardware
>> (including new CPUs).
>
> That has nothing to do with the null pointer in C(++). It never refers
> to a valid address, that's how the language is defined.

0 is a valid address. The OS usually makes sure the first page is not
mapped, thus triggering a segfault if you try to dereference 0 (or in
fact the first 4k or so, depending on page size).

Linux had a security issue once where an attacker could map code into
the 0-page, triggering that code by accessing a
null-(function-)pointer.

> If zero is a
> valid address in some environment, then it's the compiler's job to
> ensure that the null pointer maps to something else at runtime.

I highly doubt that: 0 is a valid address, so the compiler can not
just go ahead and map it elsewhere as it pleases.

Best Regards,
Tobias
_______________________________________________
Qt-creator mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/qt-creator

Reply via email to