ghost1.c
up: index
prev: prov2a.c
next: ghost2.c
#include <stdio.h>
#include <cheriintrin.h>
#include "capprint.h"
int main(void)
{
int x;
int *px0 = &x;
fprintf(stderr,"Original px0: %" PTR_FMT "\n", sptr((void*)px0));
int *px1 = cheri_tag_clear(px0);
fprintf(stderr,"Original px1: %" PTR_FMT "\n", sptr((void*)px1));
unsigned char *p0 = (unsigned char*) &px0; p0[0] = 42;
unsigned char *p1 = (unsigned char*) &px1; p1[0] = 42;
fprintf(stderr,"Modified px0: %" PTR_FMT "\n", sptr((void*)px0));
fprintf(stderr,"Modified px1: %" PTR_FMT "\n", sptr((void*)px1));
}
Experimental data (what does this mean?)
cerberus-cheri-no-pnvi
cerberus-cheri-revocation-no-pnvi
cerberus-cheri-cornucopia-no-pnvi Original px0: (@disabled, 0xffffe6e0 [rwRW,0xffffe6e0-0xffffe6e4])
Original px1: (@disabled, 0xffffe6e0 [rwRW,0xffffe6e0-0xffffe6e4] (invalid))
Modified px0: (@disabled, 0xffffe62a [rwRW,0xffffe6e0-0xffffe6e4] (notag))
Modified px1: (@disabled, 0xffffe62a [rwRW,0xffffe6e0-0xffffe6e4] (invalid))
cerberus-cheri
cerberus-cheri-revocation
cerberus-cheri-cornucopia Original px0: (@83, 0xffffe6e0 [rwRW,0xffffe6e0-0xffffe6e4])
Original px1: (@83, 0xffffe6e0 [rwRW,0xffffe6e0-0xffffe6e4] (invalid))
Modified px0: (@empty, 0xffffe62a [rwRW,0xffffe6e0-0xffffe6e4] (notag))
Modified px1: (@empty, 0xffffe62a [rwRW,0xffffe6e0-0xffffe6e4] (invalid))
clang-riscv-O3-bounds-conservative
clang-riscv-O3-bounds-subobject-safe Original px0: 0x3fffdfff2c [rwRW,0x3fffdfff2c-0x3fffdfff30]
Original px1: 0x3fffdfff2c [rwRW,0x3fffdfff2c-0x3fffdfff30] (invalid)
Modified px0: 0x3fffdfff2a [rwRW,0x3fffdfff2c-0x3fffdfff30] (invalid)
Modified px1: 0x3fffdfff2a [rwRW,0x3fffdfff2c-0x3fffdfff30] (invalid)
clang-riscv-O0-bounds-conservative
clang-riscv-O0-bounds-references-only
clang-riscv-O0-bounds-subobject-safe
clang-riscv-O0-bounds-aggressive
clang-riscv-O0-bounds-very-aggressive
clang-riscv-O0-bounds-everywhere-unsafe Original px0: 0x3fffdfff6c [rwRW,0x3fffdfff6c-0x3fffdfff70]
Original px1: 0x3fffdfff6c [rwRW,0x3fffdfff6c-0x3fffdfff70] (invalid)
Modified px0: 0x3fffdfff2a [rwRW,0x3fffdfff6c-0x3fffdfff70] (invalid)
Modified px1: 0x3fffdfff2a [rwRW,0x3fffdfff6c-0x3fffdfff70] (invalid)
clang-morello-O3-bounds-subobject-safe Original px0: 0xfffffff7fefc [rwRW,0xfffffff7fefc-0xfffffff7ff00]
Original px1: 0xfffffff7fefc [rwRW,0xfffffff7fefc-0xfffffff7ff00] (invalid)
Modified px0: 0xfffffff7fe2a [rwRW,0xfffffff7fefc-0xfffffff7ff00] (invalid)
Modified px1: 0xfffffff7fe2a [rwRW,0xfffffff7fefc-0xfffffff7ff00] (invalid)
clang-morello-O0-bounds-subobject-safe
clang-morello-O0-bounds-aggressive
clang-morello-O0-bounds-very-aggressive
clang-morello-O0-bounds-everywhere-unsafe Original px0: 0xfffffff7ff4c [rwRW,0xfffffff7ff4c-0xfffffff7ff50]
Original px1: 0xfffffff7ff4c [rwRW,0xfffffff7ff4c-0xfffffff7ff50] (invalid)
Modified px0: 0xfffffff7ff2a [rwRW,0xfffffff7ff4c-0xfffffff7ff50] (invalid)
Modified px1: 0xfffffff7ff2a [rwRW,0xfffffff7ff4c-0xfffffff7ff50] (invalid)
clang-morello-O3-bounds-conservative Original px0: 0xfffffff7ff1c [rwRW,0xfffffff7ff1c-0xfffffff7ff20]
Original px1: 0xfffffff7ff1c [rwRW,0xfffffff7ff1c-0xfffffff7ff20] (invalid)
Modified px0: 0xfffffff7ff2a [rwRW,0xfffffff7ff1c-0xfffffff7ff20] (invalid)
Modified px1: 0xfffffff7ff2a [rwRW,0xfffffff7ff1c-0xfffffff7ff20] (invalid)
clang-morello-O0-bounds-conservative
clang-morello-O0-bounds-references-only Original px0: 0xfffffff7ff5c [rwRW,0xfffffff7ff5c-0xfffffff7ff60]
Original px1: 0xfffffff7ff5c [rwRW,0xfffffff7ff5c-0xfffffff7ff60] (invalid)
Modified px0: 0xfffffff7ff2a [rwRW,0xfffffff7ff5c-0xfffffff7ff60] (invalid)
Modified px1: 0xfffffff7ff2a [rwRW,0xfffffff7ff5c-0xfffffff7ff60] (invalid)
gcc-morello-O3 Original px0: 0x7fffffdc [rwRW,0x7fffffdc-0x7fffffe0]
Original px1: 0x7fffffdc [rwRW,0x7fffffdc-0x7fffffe0] (invalid)
Modified px0: 0x7fffff2a [rwRW,0x7fffffdc-0x7fffffe0] (invalid)
Modified px1: 0x7fffff2a [rwRW,0x7fffffdc-0x7fffffe0] (invalid)
gcc-morello-O0 Original px0: 0x7fffffbc [rwRW,0x7fffffbc-0x7fffffc0]
Original px1: 0x7fffffbc [rwRW,0x7fffffbc-0x7fffffc0] (invalid)
Modified px0: 0x7fffff2a [rwRW,0x7fffffbc-0x7fffffc0] (invalid)
Modified px1: 0x7fffff2a [rwRW,0x7fffffbc-0x7fffffc0] (invalid)