]> granicus.if.org Git - gc/commitdiff
Eliminate CSA false warning about null dereference in array_mark_proc
authorIvan Maidanski <ivmai@mail.ru>
Fri, 26 Aug 2016 07:04:39 +0000 (10:04 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 26 Aug 2016 07:04:39 +0000 (10:04 +0300)
The exact warning message is: Access to field 'mse_start' results in a
dereference of a null pointer (loaded from variable 'new_mark_stack_ptr').

* typd_mlc.c (GC_array_mark_proc): Add assertion that mark_stack_ptr is
non-NULL (thus orig_mark_stack_ptr is non-NULL too).

typd_mlc.c

index 839c3144f9a26b02988671f57b1397ba358faf71..8e92cda18529062864c41f7306dccc575e8619e9 100644 (file)
@@ -499,6 +499,7 @@ STATIC mse * GC_array_mark_proc(word * addr, mse * mark_stack_ptr,
         /* and request a mark stack expansion.                          */
         /* This cannot cause a mark stack overflow, since it replaces   */
         /* the original array entry.                                    */
+        GC_ASSERT(mark_stack_ptr != NULL);
         GC_mark_stack_too_small = TRUE;
         new_mark_stack_ptr = orig_mark_stack_ptr + 1;
         new_mark_stack_ptr -> mse_start = (ptr_t)addr;