https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86732

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at redhat dot com

--- Comment #5 from Jeffrey A. Law <law at redhat dot com> ---
The code is working as designed.  As noted, we want the dereference to occur so
that programs can catch the signal that occurs as a result of the dereference.

Using __builtin_trap is definitely better from a security standpoint because
the program halts after the undefined behavior -- consider an mmu-less system
that doesn't trap on *0.  If you use __builtin_unreachable you'll just start
executing random code which would be a wonderful attack vector.

And FWIW, I think we should be using __builtin_trap rather than
__builtin_unreachable in many more places because of the security concerns.

Reply via email to