From: Ivan Maidanski Date: Sat, 29 Oct 2016 14:49:37 +0000 (+0300) Subject: Eliminate 'null dereference' code defect warning in register_finalizer X-Git-Tag: v7.6.2~376 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c364ee60854a07f20d590d658759a0545583694;p=gc Eliminate 'null dereference' code defect warning in register_finalizer * finalize.c (GC_register_finalizer_inner): Add GC_ASSERT that fn is non-zero (instead of specifying this in a comment) for the case when new_fo is non-NULL (new_fo is returned by GC_oom_fn). * finalize.c [LINT2] (GC_register_finalizer_inner): Call ABORT if hhdr is NULL (for the case when new_fo is non-NULL). --- diff --git a/finalize.c b/finalize.c index 8cd5a204..b58a8833 100644 --- a/finalize.c +++ b/finalize.c @@ -700,7 +700,11 @@ STATIC void GC_register_finalizer_inner(void * obj, curr_fo = fo_next(curr_fo); } if (EXPECT(new_fo != 0, FALSE)) { - /* new_fo is returned by GC_oom_fn(), so fn != 0 and hhdr != 0. */ + /* new_fo is returned by GC_oom_fn(). */ + GC_ASSERT(fn != 0); +# ifdef LINT2 + if (NULL == hhdr) ABORT("Bad hhdr in GC_register_finalizer_inner"); +# endif break; } if (fn == 0) {