aboutsummaryrefslogtreecommitdiffstats
path: root/linux_mtd.c
diff options
context:
space:
mode:
authorAnastasia Klimchuk <aklm@chromium.org>2021-08-03 15:26:19 +1000
committerNico Huber <nico.h@gmx.de>2021-08-17 16:29:35 +0000
commitc87a770f5d7072122bc9d3c501a34905052daa7f (patch)
treec9cb3562f6faac1332d2bf453aa681b198a0b37c /linux_mtd.c
parente44e6eb32ff1dcde3305535ecf38e74b8c736c02 (diff)
downloadflashrom-c87a770f5d7072122bc9d3c501a34905052daa7f.tar.gz
flashrom-c87a770f5d7072122bc9d3c501a34905052daa7f.tar.bz2
flashrom-c87a770f5d7072122bc9d3c501a34905052daa7f.zip
linux_mtd: Free param right after its last usage
Param is only used in the first half of init function, and it is local, so there is no need to keep it until the end. This makes handling error paths in the second half of init function shorter, because those paths can just return 1 instead of going to a label. BUG=b:185191942 TEST=builds and ninja test from CB:56413 Change-Id: I126a8d06297ef4d42bc93a73f7067ccc1352d1e9 Signed-off-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/56822 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Edward O'Callaghan <quasisec@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'linux_mtd.c')
-rw-r--r--linux_mtd.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/linux_mtd.c b/linux_mtd.c
index 284cde40..7780feb4 100644
--- a/linux_mtd.c
+++ b/linux_mtd.c
@@ -404,27 +404,29 @@ static int linux_mtd_init(void)
msg_pdbg("%s does not exist\n", sysfs_path);
goto linux_mtd_init_exit;
}
+ free(param);
data = calloc(1, sizeof(*data));
if (!data) {
msg_perr("Unable to allocate memory for linux_mtd_data\n");
- goto linux_mtd_init_exit;
+ return 1;
}
/* Get MTD info and store it in `data` */
if (linux_mtd_setup(dev_num, data)) {
free(data);
- goto linux_mtd_init_exit;
+ return 1;
}
if (register_shutdown(linux_mtd_shutdown, (void *)data)) {
free(data);
- goto linux_mtd_init_exit;
+ return 1;
}
register_opaque_master(&linux_mtd_opaque_master, data);
- ret = 0;
+ return 0;
+
linux_mtd_init_exit:
free(param);
return ret;