Don't sanitize linker_set
The assumptions of linker_set don't play nicely with AddressSanitizer. AddressSanitizer adds a 'redzone' of zeros around globals (including those in named sections), whereas linker_set assumes they are all packed consecutively like a pointer array. So: let's annotate linker_set so that AddressSanitizer ignores it. Submitted by: Matthew Bryan <matthew.bryan@isilon.com> Reviewed by: kib, rang_acm.org Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D22239
This commit is contained in:
parent
c25de3a3c5
commit
b9967c3f90
|
@ -709,6 +709,13 @@
|
||||||
/* Function should not be analyzed. */
|
/* Function should not be analyzed. */
|
||||||
#define __no_lock_analysis __lock_annotate(no_thread_safety_analysis)
|
#define __no_lock_analysis __lock_annotate(no_thread_safety_analysis)
|
||||||
|
|
||||||
|
/* Function or variable should not be sanitized, ie. by AddressSanitizer */
|
||||||
|
#if __has_attribute(no_sanitize)
|
||||||
|
#define __nosanitizeaddress __attribute__((no_sanitize("address")))
|
||||||
|
#else
|
||||||
|
#define __nosanitizeaddress
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Guard variables and structure members by lock. */
|
/* Guard variables and structure members by lock. */
|
||||||
#define __guarded_by(x) __lock_annotate(guarded_by(x))
|
#define __guarded_by(x) __lock_annotate(guarded_by(x))
|
||||||
#define __pt_guarded_by(x) __lock_annotate(pt_guarded_by(x))
|
#define __pt_guarded_by(x) __lock_annotate(pt_guarded_by(x))
|
||||||
|
|
Loading…
Reference in New Issue