Loading crypto/lhash/lhash.c +8 −6 Original line number Diff line number Diff line Loading @@ -157,16 +157,18 @@ void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data) OPENSSL_LH_NODE **rn; void *ret; lh->error = 0; tsan_store((TSAN_QUALIFIER int *)&lh->error, 0); rn = getrn(lh, data, &hash); if (*rn == NULL) { lh->num_retrieve_miss++; tsan_counter(&lh->num_retrieve_miss); return NULL; } else { ret = (*rn)->data; lh->num_retrieve++; tsan_counter(&lh->num_retrieve); } return ret; } Loading Loading @@ -296,7 +298,7 @@ static OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh, OPENSSL_LH_COMPFUNC cf; hash = (*(lh->hash)) (data); lh->num_hash_calls++; tsan_counter(&lh->num_hash_calls); *rhash = hash; nn = hash % lh->pmax; Loading @@ -306,12 +308,12 @@ static OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh, cf = lh->comp; ret = &(lh->b[(int)nn]); for (n1 = *ret; n1 != NULL; n1 = n1->next) { lh->num_hash_comps++; tsan_counter(&lh->num_hash_comps); if (n1->hash != hash) { ret = &(n1->next); continue; } lh->num_comp_calls++; tsan_counter(&lh->num_comp_calls); if (cf(n1->data, data) == 0) break; ret = &(n1->next); Loading crypto/lhash/lhash_lcl.h +7 −5 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ */ #include <openssl/crypto.h> #include "internal/tsan_assist.h" struct lhash_node_st { void *data; struct lhash_node_st *next; Loading @@ -29,14 +31,14 @@ struct lhash_st { unsigned long num_expand_reallocs; unsigned long num_contracts; unsigned long num_contract_reallocs; unsigned long num_hash_calls; unsigned long num_comp_calls; TSAN_QUALIFIER unsigned long num_hash_calls; TSAN_QUALIFIER unsigned long num_comp_calls; unsigned long num_insert; unsigned long num_replace; unsigned long num_delete; unsigned long num_no_delete; unsigned long num_retrieve; unsigned long num_retrieve_miss; unsigned long num_hash_comps; TSAN_QUALIFIER unsigned long num_retrieve; TSAN_QUALIFIER unsigned long num_retrieve_miss; TSAN_QUALIFIER unsigned long num_hash_comps; int error; }; Loading
crypto/lhash/lhash.c +8 −6 Original line number Diff line number Diff line Loading @@ -157,16 +157,18 @@ void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data) OPENSSL_LH_NODE **rn; void *ret; lh->error = 0; tsan_store((TSAN_QUALIFIER int *)&lh->error, 0); rn = getrn(lh, data, &hash); if (*rn == NULL) { lh->num_retrieve_miss++; tsan_counter(&lh->num_retrieve_miss); return NULL; } else { ret = (*rn)->data; lh->num_retrieve++; tsan_counter(&lh->num_retrieve); } return ret; } Loading Loading @@ -296,7 +298,7 @@ static OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh, OPENSSL_LH_COMPFUNC cf; hash = (*(lh->hash)) (data); lh->num_hash_calls++; tsan_counter(&lh->num_hash_calls); *rhash = hash; nn = hash % lh->pmax; Loading @@ -306,12 +308,12 @@ static OPENSSL_LH_NODE **getrn(OPENSSL_LHASH *lh, cf = lh->comp; ret = &(lh->b[(int)nn]); for (n1 = *ret; n1 != NULL; n1 = n1->next) { lh->num_hash_comps++; tsan_counter(&lh->num_hash_comps); if (n1->hash != hash) { ret = &(n1->next); continue; } lh->num_comp_calls++; tsan_counter(&lh->num_comp_calls); if (cf(n1->data, data) == 0) break; ret = &(n1->next); Loading
crypto/lhash/lhash_lcl.h +7 −5 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ */ #include <openssl/crypto.h> #include "internal/tsan_assist.h" struct lhash_node_st { void *data; struct lhash_node_st *next; Loading @@ -29,14 +31,14 @@ struct lhash_st { unsigned long num_expand_reallocs; unsigned long num_contracts; unsigned long num_contract_reallocs; unsigned long num_hash_calls; unsigned long num_comp_calls; TSAN_QUALIFIER unsigned long num_hash_calls; TSAN_QUALIFIER unsigned long num_comp_calls; unsigned long num_insert; unsigned long num_replace; unsigned long num_delete; unsigned long num_no_delete; unsigned long num_retrieve; unsigned long num_retrieve_miss; unsigned long num_hash_comps; TSAN_QUALIFIER unsigned long num_retrieve; TSAN_QUALIFIER unsigned long num_retrieve_miss; TSAN_QUALIFIER unsigned long num_hash_comps; int error; };