提交 5c41cee2 编写于 作者: P Pauli

mem: do not produce usage counts when tsan is unavailable.

Doing the tsan operations under lock would be difficult to arrange here (locks
require memory allocation).
Reviewed-by: NBernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/17479)
上级 e6b8f359
......@@ -26,11 +26,17 @@ static CRYPTO_free_fn free_impl = CRYPTO_free;
#if !defined(OPENSSL_NO_CRYPTO_MDEBUG) && !defined(FIPS_MODULE)
# include "internal/tsan_assist.h"
# ifdef TSAN_REQUIRES_LOCKING
# define INCREMENT(x) /* empty */
# define LOAD(x) 0
# else /* TSAN_REQUIRES_LOCKING */
static TSAN_QUALIFIER int malloc_count;
static TSAN_QUALIFIER int realloc_count;
static TSAN_QUALIFIER int free_count;
# define INCREMENT(x) tsan_counter(&(x))
# define INCREMENT(x) tsan_counter(&(x))
# define LOAD(x) tsan_load(&x)
# endif /* TSAN_REQUIRES_LOCKING */
static char *md_failstring;
static long md_count;
......@@ -79,11 +85,11 @@ void CRYPTO_get_mem_functions(CRYPTO_malloc_fn *malloc_fn,
void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount)
{
if (mcount != NULL)
*mcount = tsan_load(&malloc_count);
*mcount = LOAD(malloc_count);
if (rcount != NULL)
*rcount = tsan_load(&realloc_count);
*rcount = LOAD(realloc_count);
if (fcount != NULL)
*fcount = tsan_load(&free_count);
*fcount = LOAD(free_count);
}
/*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册