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

--- Comment #3 from Jürgen Urban <jur at sysgo dot com> ---
>From security point of view the compiler should not put jump tables into the
code, because this creates new attack vectors. The code might be used by
different types of security attacks, as it can contain instructions which are
special (cache or FPU operations for example). A better location would be a
different section which can be configured to be not executable.
For me it looks like it could be easy to add the @STT_OBJECT feature while it
would help to correctly disassemble the code.
When you have to analyse the code for security or safety reasons, this helps
with automated analysis. For example you might have to prove full code coverage
when testing and the compiler should not create code which is never
executed/tested. The fmsub instruction can never be executed. For such an
analysis you get into problems, as you have to explain why the code is never
executed. Actually the problem was detected as the code should not contain any
floating point instructions (because FPU is disabled), but the disassembly has
shown that this was not the case.

Reply via email to