summaryrefslogtreecommitdiff
path: root/new_hblk.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 /new_hblk.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 'new_hblk.c')
-rw-r--r--new_hblk.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/new_hblk.c b/new_hblk.c
index 88de14dd..3e59c020 100644
--- a/new_hblk.c
+++ b/new_hblk.c
@@ -174,6 +174,7 @@ GC_INNER void GC_new_hblk(size_t gran, int kind)
GC_bool clear = GC_obj_kinds[kind].ok_init;
GC_STATIC_ASSERT((sizeof (struct hblk)) == HBLKSIZE);
+ GC_ASSERT(I_HOLD_LOCK());
if (GC_debugging_started) clear = TRUE;