diff --git a/src/ballet/sha256/fd_sha256.c b/src/ballet/sha256/fd_sha256.c index 8f5ae7cab5..5bea2751a9 100644 --- a/src/ballet/sha256/fd_sha256.c +++ b/src/ballet/sha256/fd_sha256.c @@ -213,7 +213,7 @@ fd_sha256_core_ref( uint * state, # undef sigma1 # undef Ch # undef Maj - + fd_msan_unpoison( state, 32UL ); } #define fd_sha256_core fd_sha256_core_ref @@ -226,7 +226,10 @@ fd_sha256_core_shaext( uint * state, /* 64-byte aligned, 8 entries uchar const * block, /* ideally 128-byte aligned (but not required), 128*block_cnt in size */ ulong block_cnt ); /* positive */ -#define fd_sha256_core fd_sha256_core_shaext +inline void fd_sha256_core( uint * state, uchar const * block, ulong block_cnt ) { + fd_sha256_core_shaext( state, block, block_cnt ); + fd_msan_unpoison( state, 32UL ); +} #else #error "Unsupported FD_SHA256_CORE_IMPL" diff --git a/src/util/sanitize/fd_msan.h b/src/util/sanitize/fd_msan.h index 31b732e2c9..124049c09e 100644 --- a/src/util/sanitize/fd_msan.h +++ b/src/util/sanitize/fd_msan.h @@ -42,15 +42,15 @@ void __msan_poison ( void const volatile * addr, ulong sz ); void __msan_unpoison ( void const volatile * addr, ulong sz ); void __msan_check_mem_is_initialized( void const volatile * addr, ulong sz ); -static inline void * fd_msan_poison ( void * addr, ulong sz ) { __msan_poison ( addr, sz ); return addr; } -static inline void * fd_msan_unpoison( void * addr, ulong sz ) { __msan_unpoison( addr, sz ); return addr; } -static inline void fd_msan_check ( void const * addr, ulong sz ) { __msan_check_mem_is_initialized( addr, sz ); } +inline void * fd_msan_poison ( void * addr, ulong sz ) { __msan_poison ( addr, sz ); return addr; } +inline void * fd_msan_unpoison( void * addr, ulong sz ) { __msan_unpoison( addr, sz ); return addr; } +inline void fd_msan_check ( void const * addr, ulong sz ) { __msan_check_mem_is_initialized( addr, sz ); } #else -static inline void * fd_msan_poison ( void * addr, ulong sz ) { (void)sz; return addr; } -static inline void * fd_msan_unpoison( void * addr, ulong sz ) { (void)sz; return addr; } -static inline void fd_msan_check ( void const * addr, ulong sz ) { (void)addr; (void)sz; } +inline void * fd_msan_poison ( void * addr, ulong sz ) { (void)sz; return addr; } +inline void * fd_msan_unpoison( void * addr, ulong sz ) { (void)sz; return addr; } +inline void fd_msan_check ( void const * addr, ulong sz ) { (void)addr; (void)sz; } #endif