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 33e9dae57b849717be477ced9c6deb1acb9c2490..9396d5eff13053a7a27003c8b14be530745224c0 100644 (file)
@@ -7146,7 +7146,10 @@ void CreateLevelEditorGadgets(void)
   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;