summaryrefslogtreecommitdiff
path: root/allchblk.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2021-07-24 00:31:51 +0300
committerIvan Maidanski <ivmai@mail.ru>2021-07-24 00:31:51 +0300
commit0e578018d47b31691a415a71337272544928b584 (patch)
tree1266744d6208d4625938cb10cec5eff8b6771c89 /allchblk.c
parent743b52a42b0ebc102a012e32ef34b522937f4d8e (diff)
downloadbdwgc-0e578018d47b31691a415a71337272544928b584.tar.gz
Eliminate 'accessing GC_dont_gc without lock' in GC_init code defect FP
* allchblk.c (GC_allochblk): Add assertion that GC lock is held on entrance. * new_hblk.c (GC_new_hblk): Likewise. * pthread_support.c (GC_unregister_my_thread_inner): Likewise. * misc.c [LINT2] (GC_init): Call GC_disable() instead of setting GC_dont_gc directly.
Diffstat (limited to 'allchblk.c')
-rw-r--r--allchblk.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/allchblk.c b/allchblk.c
index 235310d8..6c3a1a85 100644
--- a/allchblk.c
+++ b/allchblk.c
@@ -683,6 +683,7 @@ GC_allochblk(size_t sz, int kind, unsigned flags/* IGNORE_OFF_PAGE or 0 */)
int split_limit; /* Highest index of free list whose blocks we */
/* split. */
+ GC_ASSERT(I_HOLD_LOCK());
GC_ASSERT((sz & (GRANULE_BYTES - 1)) == 0);
blocks = OBJ_SZ_TO_BLOCKS_CHECKED(sz);
if ((signed_word)(blocks * HBLKSIZE) < 0) {