diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-09-17 15:58:17 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-09-17 15:58:17 -0700 |
commit | a6b80a09c364c59340d5a6b08d02ab33f085498b (patch) | |
tree | efc2d06a062d9541d70e27ee08680a657b05caf7 /tests/014/socket-basic.tl | |
parent | e0e1f72e64812cc8df910ec5de92f319b4578c8b (diff) | |
download | txr-a6b80a09c364c59340d5a6b08d02ab33f085498b.tar.gz txr-a6b80a09c364c59340d5a6b08d02ab33f085498b.tar.bz2 txr-a6b80a09c364c59340d5a6b08d02ab33f085498b.zip |
android: pointer tagging countermeasure.
We strip Android's pointer tag from our heap
pointer while we own it, then put it back at
free time.
* configure (android_target): New variable.
Set this to y in the test where we detect Android.
When setting CONFIG_NAN_BOXING, also set
CONFIG_NAN_BOXING_STRIP_TAG if on Android.
* gc.c (struct heap): New member, tag.
(more): When tag stripping is enabled, clear the
top 16 bits of the pointer coming from malloc,
and keep those bits in heap->tag. This gets rid
of Android's tag.
(sweep): When releasing a heap block with free,
we must put the tag back into the pointer, from
heap->tag.
Diffstat (limited to 'tests/014/socket-basic.tl')
0 files changed, 0 insertions, 0 deletions