From 0e578018d47b31691a415a71337272544928b584 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Sat, 24 Jul 2021 00:31:51 +0300 Subject: 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. --- allchblk.c | 1 + 1 file changed, 1 insertion(+) (limited to 'allchblk.c') 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) { -- cgit v1.2.1