forked from OSchip/llvm-project
[NFC][compiler-rt][test] when using ptrauth, strip before checking if poisoned
ptrauth stores info in the address of functions, so it's not the right address we should check if poisoned rdar://75246928 Differential Revision: https://reviews.llvm.org/D106199
This commit is contained in:
parent
b0aa70761b
commit
b316c30269
|
@ -10,6 +10,9 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "sanitizer/asan_interface.h"
|
#include "sanitizer/asan_interface.h"
|
||||||
|
#if __has_feature(ptrauth_calls)
|
||||||
|
# include <ptrauth.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
void test_shadow(char *p, size_t size) {
|
void test_shadow(char *p, size_t size) {
|
||||||
fprintf(stderr, "p = %p\n", p);
|
fprintf(stderr, "p = %p\n", p);
|
||||||
|
@ -23,7 +26,13 @@ int main(int argc, char *argv[]) {
|
||||||
free(p);
|
free(p);
|
||||||
// CHECK: =-1=
|
// CHECK: =-1=
|
||||||
|
|
||||||
test_shadow((char *)&main, 1);
|
char *mainptr;
|
||||||
|
#if __has_feature(ptrauth_calls)
|
||||||
|
mainptr = (char *)ptrauth_strip((void *)&main, ptrauth_key_return_address);
|
||||||
|
#else
|
||||||
|
mainptr = (char *)&main;
|
||||||
|
#endif
|
||||||
|
test_shadow(mainptr, 1);
|
||||||
// CHECK: =-1=
|
// CHECK: =-1=
|
||||||
|
|
||||||
test_shadow((char *)&p, 1);
|
test_shadow((char *)&p, 1);
|
||||||
|
|
Loading…
Reference in New Issue