diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2023-04-30 22:57:59 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2023-05-05 22:15:02 +0000 |
commit | 57f7ce68a48b03bcd198a009fc9c75fe3948c0db (patch) | |
tree | f5f06dd274b250ebe345c2e132720ef74096d9d5 | |
parent | d771d7f1a7d0181b4670c7c3ddb83ba8b8eb7da0 (diff) | |
download | riscv-openocd-57f7ce68a48b03bcd198a009fc9c75fe3948c0db.zip riscv-openocd-57f7ce68a48b03bcd198a009fc9c75fe3948c0db.tar.gz riscv-openocd-57f7ce68a48b03bcd198a009fc9c75fe3948c0db.tar.bz2 |
pld: gatemate: fix memory leak
When gatemate_set_instr() fails, the array pointed by
bit_file.raw_file.data is not freed.
Issue identified by OpenOCD Jenkins clang build.
Free the array while propagating the error.
Change-Id: I2f7fadee903f9c65cdc9ab9b52ccb5803b48a59d
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Fixes: 682f927f8e4e ("pld: add support for cologne chip gatemate fpgas")
Reviewed-on: https://review.openocd.org/c/openocd/+/7632
Tested-by: jenkins
Reviewed-by: Daniel Anselmi <danselmi@gmx.ch>
-rw-r--r-- | src/pld/gatemate.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pld/gatemate.c b/src/pld/gatemate.c index afd27ef..43b3f02 100644 --- a/src/pld/gatemate.c +++ b/src/pld/gatemate.c @@ -192,8 +192,10 @@ static int gatemate_load(struct pld_device *pld_device, const char *filename) return retval; retval = gatemate_set_instr(tap, JTAG_CONFIGURE); - if (retval != ERROR_OK) + if (retval != ERROR_OK) { + free(bit_file.raw_file.data); return retval; + } struct scan_field field; field.num_bits = bit_file.raw_file.length * 8; |