From 53296293ee5b4ffe315d45621ae6329953ad1996 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Mon, 26 Nov 2018 22:46:35 +0100 Subject: [PATCH] fix potential out of bound array access in Button_Layer_add() --- src/layers.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/layers.c b/src/layers.c index 12b19253..bb34b861 100644 --- a/src/layers.c +++ b/src/layers.c @@ -106,11 +106,23 @@ void Layer_activate(int layer, short side) void Button_Layer_add(void) { - int max[] = {MAX_NB_LAYERS, MAX_NB_FRAMES, 5}; + int max; Hide_cursor(); - if (Main.backups->Pages->Nb_layers < max[Main.backups->Pages->Image_mode]) + switch (Main.backups->Pages->Image_mode) + { + case IMAGE_MODE_LAYERED: + max = MAX_NB_LAYERS; + break; + case IMAGE_MODE_ANIMATION: + max = MAX_NB_FRAMES; + break; + default: + max = 5; + } + + if (Main.backups->Pages->Nb_layers < max) { // Backup with unchanged layers Backup_layers(LAYER_NONE);