From 9fb6d40eb3d4a2da8f45187de773498b784596e6 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Mon, 15 Apr 2019 15:28:21 +0200 Subject: misc: add address sanitizer heap instrumentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce AddressSanitizer support: https://github.com/google/sanitizers/ This starts with heap instrumentation. vlib_buffer, bihash and stack instrumentation should follow. Type: feature Change-Id: I7f20e235b2f79db72efd0e756f22c75f717a9884 Signed-off-by: Benoît Ganne --- src/vnet/l2/l2_fib.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/vnet/l2/l2_fib.h') diff --git a/src/vnet/l2/l2_fib.h b/src/vnet/l2/l2_fib.h index 20ba3da9aa3..a1dbc9db5c7 100644 --- a/src/vnet/l2/l2_fib.h +++ b/src/vnet/l2/l2_fib.h @@ -214,12 +214,7 @@ l2fib_compute_hash_bucket (l2fib_entry_key_t * key) return result % L2FIB_NUM_BUCKETS; } -/** - * make address sanitizer skip this: - * The 6-Bytes mac-address is cast into an 8-Bytes u64, with 2 additional Bytes. - * l2fib_make_key() does read those two Bytes but does not use them. - */ -always_inline u64 __attribute__ ((no_sanitize_address)) +always_inline u64 l2fib_make_key (const u8 * mac_address, u16 bd_index) { u64 temp; @@ -233,14 +228,14 @@ l2fib_make_key (const u8 * mac_address, u16 bd_index) * Create the in-register key as F:E:D:C:B:A:H:L * In memory the key is L:H:A:B:C:D:E:F */ - temp = *((u64 *) (mac_address)) << 16; + temp = CLIB_MEM_OVERFLOW_LOAD (*, (u64 *) mac_address) << 16; temp = (temp & ~0xffff) | (u64) (bd_index); #else /* * Create the in-register key as H:L:A:B:C:D:E:F * In memory the key is H:L:A:B:C:D:E:F */ - temp = *((u64 *) (mac_address)) >> 16; + temp = CLIB_MEM_OVERFLOW_LOAD (*, (u64 *) mac_address) >> 16; temp = temp | (((u64) bd_index) << 48); #endif -- cgit 1.2.3-korg