From: Andrey Yurovsky Date: Thu, 28 Aug 2014 18:54:29 +0000 (-0700) Subject: stm32lx: don't allow part_info to be uninitialized X-Git-Tag: v0.9.0-rc1~279 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4efb3ebb769f6e4a9b8f6a9134d3fda8319d6b85;p=openocd stm32lx: don't allow part_info to be uninitialized It's possible for us to fail to read the part ID code so make sure that part_info is initialized to NULL before attempting to do so, otherwise we could proceed and use it uninitialized and then segfault. Change-Id: I0a3f3d3947690b66f0981b5046340449521e0b33 Signed-off-by: Jack Peel Signed-off-by: Andrey Yurovsky Reviewed-on: http://openocd.zylin.com/2276 Reviewed-by: Andreas Fritiofson Tested-by: jenkins Reviewed-by: Spencer Oliver --- diff --git a/src/flash/nor/stm32lx.c b/src/flash/nor/stm32lx.c index f7074c3e..dc1a0c40 100644 --- a/src/flash/nor/stm32lx.c +++ b/src/flash/nor/stm32lx.c @@ -214,7 +214,7 @@ FLASH_BANK_COMMAND_HANDLER(stm32lx_flash_bank_command) return ERROR_COMMAND_SYNTAX_ERROR; /* Create the bank structure */ - stm32lx_info = malloc(sizeof(struct stm32lx_flash_bank)); + stm32lx_info = calloc(1, sizeof(*stm32lx_info)); /* Check allocation */ if (stm32lx_info == NULL) { @@ -624,6 +624,7 @@ static int stm32lx_probe(struct flash_bank *bank) uint32_t second_bank_base; stm32lx_info->probed = 0; + stm32lx_info->part_info = NULL; int retval = stm32lx_read_id_code(bank->target, &device_id); if (retval != ERROR_OK)