OSDN Git Service

Add support for LOCAL_DETECT_INTEGER_OVERFLOWS
authorNick Kralevich <nnk@google.com>
Sun, 14 Jun 2015 18:38:30 +0000 (11:38 -0700)
committerNick Kralevich <nnk@google.com>
Mon, 15 Jun 2015 21:52:09 +0000 (14:52 -0700)
commit99d92506acb95c908aceaf23af54f76e2800cabf
treeb6390b00c016e97f8afaa0248b6bd642052b828f
parent46cb2ee3cb120a1c03241e9e2aa66d76c890c486
Add support for LOCAL_DETECT_INTEGER_OVERFLOWS

Add build system support for LOCAL_DETECT_INTEGER_OVERFLOWS. When enabled,
an attempt to perform an integer arithmetic operation which overflows
will result in a call to abort(). This is intended for security
sensitive code, where integer overflow operations are not expected
nor desirable.

Two classes of underflows/overflows are detected and blocked:

1) Signed integer underflow/overflow.
2) Unsigned integer underflow/overflows.

Signed integer overflows are undefined behavior, according to the
C standard. Unsigned integer overflows are defined behavior, but
still undesirable in security sensitive code.

Only clang is supported today. gcc has -ftrapv for handling signed
integer overflow, but it's widely considered broken
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35412) and we're
deliberately avoiding it's use here.

Change-Id: Ib4918dc84e37e83d4205e5035544545d91671e5f
Vaguely-Related-Bug: 11859726
core/clear_vars.mk
core/config_sanitizers.mk