Skip to content
sehgalrohan edited this page May 5, 2015 · 4 revisions

External function pointers

Pointers to external functions passed around, leading to checks at call sites.

Memory Exhausted (Fixed)

Some binaries crash with Memory Exhausted. GDB revealed that the NEON instructions might be the problem, they seem to load the wrong value for SIZE_MAX into the float registers.

The exact cause is this:

./lib/stdint.h:539:20: note: expanded from macro 'SIZE_MAX' # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) ^~~~~~~~~~~~~~~~~~~~~~~~ ./lib/stdint.h:131:21: note: expanded from macro '_STDINT_MAX' ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)

Need to investigate architecture problems (64 vs 32).

Possible fix

Using a 32bit VM or manually fixing generated Makefile.

Stat Segfault (Fixed)

NULL pointers as function arguments, fixed.

Infinite Loop

Passing function pointers as struct members (or mutating them in other ways) causes a wrapper to not get created.

Possible Fix

Find all pointers to internal functions that are assigned to Locations (variables, structs and arrays) that might get passed to external functions.

Double Function pointers (AliasAnalysis)

Clone this wiki locally