fixed potential crash bug with empty (padding) element buttons in editor
authorHolger Schemel <info@artsoft.org>
Sat, 1 Dec 2018 10:41:54 +0000 (11:41 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 1 Dec 2018 10:41:54 +0000 (11:41 +0100)
This fixes a bug that can cause a crash when accessing memory that was
already free()'ed again, because the variable that contains the amount
of allocated memory is not updated when memory allocation changes.

The bug is fixed by updating that variable when memory is allocated.

src/editor.c

index 33e9dae..9396d5e 100644 (file)
@@ -7146,7 +7146,10 @@ void CreateLevelEditorGadgets(void)
   right_gadget_border =
     checked_calloc(num_editor_gadgets * sizeof(int));
 
   right_gadget_border =
     checked_calloc(num_editor_gadgets * sizeof(int));
 
-  editor_el_empty = checked_calloc(ED_NUM_ELEMENTLIST_BUTTONS * sizeof(int));
+  // set number of empty (padding) element buttons to maximum number of buttons
+  num_editor_el_empty = ED_NUM_ELEMENTLIST_BUTTONS;
+
+  editor_el_empty = checked_calloc(num_editor_el_empty * sizeof(int));
   editor_el_empty_ptr = editor_el_empty;
 
   use_permanent_palette = !editor.palette.show_as_separate_screen;
   editor_el_empty_ptr = editor_el_empty;
 
   use_permanent_palette = !editor.palette.show_as_separate_screen;