diff options
author | Anastasia Klimchuk <aklm@flashrom.org> | 2024-03-03 19:47:22 +1100 |
---|---|---|
committer | Anastasia Klimchuk <aklm@chromium.org> | 2024-03-21 10:59:40 +0000 |
commit | 9cc6be205dce4cb67de3c1202bdd0769547ede22 (patch) | |
tree | a2997323b6060aa56e7705d10edd89b47c6067ab /serprog.c | |
parent | 54b053e6b23715fbefa59b71d2cc5211508f2d79 (diff) | |
download | flashrom-9cc6be205dce4cb67de3c1202bdd0769547ede22.tar.gz flashrom-9cc6be205dce4cb67de3c1202bdd0769547ede22.tar.bz2 flashrom-9cc6be205dce4cb67de3c1202bdd0769547ede22.zip |
serprog: Fix scan-build warning of resource leak
Warning found by the latest scan-build run:
*** CID 1534883: (RESOURCE_LEAK)
/serprog.c: 853 in serprog_init()
847 "by programmer!\n", cs_num8);
848 goto init_err_cleanup_exit;
849 }
850 }
851 bt = serprog_buses_supported;
852 if (sp_docommand(S_CMD_S_BUSTYPE, 1, &bt, 0, NULL))
>>>CID 1534883: (RESOURCE_LEAK)
>>>Variable "cs" going out of scope leaks the storage it points to.
853 goto init_err_cleanup_exit;
854 }
Follow up on
commit e8c350f55e596aae3ab2bbc210b68389e2301a6c
Change-Id: Id9cf211de3c482f702adebfcfa274a183c83a33f
Signed-off-by: Anastasia Klimchuk <aklm@flashrom.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/81032
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Alexander Goncharov <chat@joursoir.net>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'serprog.c')
-rw-r--r-- | serprog.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -835,9 +835,9 @@ static int serprog_init(const struct programmer_cfg *cfg) free(cs); goto init_err_cleanup_exit; } - free(cs); if (!sp_check_commandavail(S_CMD_S_SPI_CS)) { msg_perr("Error: Setting SPI chip select is not supported!\n"); + free(cs); goto init_err_cleanup_exit; } msg_pdbg(MSGHEADER "Requested to use chip select %lu.\n", cs_num); @@ -845,9 +845,12 @@ static int serprog_init(const struct programmer_cfg *cfg) if (sp_docommand(S_CMD_S_SPI_CS, 1, &cs_num8, 0, NULL)) { msg_perr("Error: Chip select %u not supported " "by programmer!\n", cs_num8); + free(cs); goto init_err_cleanup_exit; } } + free(cs); + bt = serprog_buses_supported; if (sp_docommand(S_CMD_S_BUSTYPE, 1, &bt, 0, NULL)) goto init_err_cleanup_exit; |