diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2020-08-17 09:58:58 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2020-09-05 20:47:11 +0100 |
commit | 3934483429b77525f25922787933fb7ee3e73a0f (patch) | |
tree | 5cf5d1d4ebe72c1cd437d6b0f6d359465604928d /src/target/image.c | |
parent | 0dad8cbfe9e1d43cdcabbc8eb4e2809b7b21381d (diff) | |
download | riscv-openocd-3934483429b77525f25922787933fb7ee3e73a0f.zip riscv-openocd-3934483429b77525f25922787933fb7ee3e73a0f.tar.gz riscv-openocd-3934483429b77525f25922787933fb7ee3e73a0f.tar.bz2 |
target: avoid checking for non NULL pointer to free it
The function free() can be called with a NULL pointer as argument,
no need to check the argument before. If the pointer is NULL, no
operation is performed by free().
Remove the occurrences of pattern:
if (ptr)
free(ptr);
In target/openrisc/jsp_server.c, an error is logged if the ptr was
already NULL. This cannot happen since the pointer was already
referenced few lines before and openocd would have been already
SIGSEGV in that case, so remove the log.
Change-Id: I290a32e6d4deab167676af4ddc83523c830ae49e
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5809
Tested-by: jenkins
Diffstat (limited to 'src/target/image.c')
-rw-r--r-- | src/target/image.c | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/src/target/image.c b/src/target/image.c index 64d4d52..8160e5f 100644 --- a/src/target/image.c +++ b/src/target/image.c @@ -984,40 +984,30 @@ void image_close(struct image *image) fileio_close(image_ihex->fileio); - if (image_ihex->buffer) { - free(image_ihex->buffer); - image_ihex->buffer = NULL; - } + free(image_ihex->buffer); + image_ihex->buffer = NULL; } else if (image->type == IMAGE_ELF) { struct image_elf *image_elf = image->type_private; fileio_close(image_elf->fileio); - if (image_elf->header) { - free(image_elf->header); - image_elf->header = NULL; - } + free(image_elf->header); + image_elf->header = NULL; - if (image_elf->segments) { - free(image_elf->segments); - image_elf->segments = NULL; - } + free(image_elf->segments); + image_elf->segments = NULL; } else if (image->type == IMAGE_MEMORY) { struct image_memory *image_memory = image->type_private; - if (image_memory->cache) { - free(image_memory->cache); - image_memory->cache = NULL; - } + free(image_memory->cache); + image_memory->cache = NULL; } else if (image->type == IMAGE_SRECORD) { struct image_mot *image_mot = image->type_private; fileio_close(image_mot->fileio); - if (image_mot->buffer) { - free(image_mot->buffer); - image_mot->buffer = NULL; - } + free(image_mot->buffer); + image_mot->buffer = NULL; } else if (image->type == IMAGE_BUILDER) { int i; @@ -1027,15 +1017,11 @@ void image_close(struct image *image) } } - if (image->type_private) { - free(image->type_private); - image->type_private = NULL; - } + free(image->type_private); + image->type_private = NULL; - if (image->sections) { - free(image->sections); - image->sections = NULL; - } + free(image->sections); + image->sections = NULL; } int image_calculate_checksum(uint8_t *buffer, uint32_t nbytes, uint32_t *checksum) |