From be032988326ff3c7b28a59909edd2d445e3d2cbe Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 9 Mar 2023 18:16:18 +0100 Subject: [PATCH] Fix potential crash on delete file. Signed-off-by: Pol Henarejos --- src/fs/flash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fs/flash.c b/src/fs/flash.c index b8b2aa5..a5b309b 100644 --- a/src/fs/flash.c +++ b/src/fs/flash.c @@ -114,11 +114,11 @@ uintptr_t allocate_free_addr(uint16_t size, bool persistent) { } int flash_clear_file(file_t *file) { - if (file == NULL) { + if (file == NULL || file->data == NULL) { return CCID_OK; } uintptr_t base_addr = - (uintptr_t) (file->data - sizeof(uintptr_t) - sizeof(uint16_t) - sizeof(uintptr_t)); + (uintptr_t)(file->data - sizeof(uintptr_t) - sizeof(uint16_t) - sizeof(uintptr_t)); uintptr_t prev_addr = flash_read_uintptr(base_addr + sizeof(uintptr_t)); uintptr_t next_addr = flash_read_uintptr(base_addr); //printf("nc %lx->%lx %lx->%lx\r\n",prev_addr,flash_read_uintptr(prev_addr),base_addr,next_addr);