@@ -2860,12 +2860,16 @@ static int open_target(void)
if (out_fd == -1)
return sys_errmsg("cannot open the UBI volume '%s'",
output);
- if (ubi_set_property(out_fd, UBI_VOL_PROP_DIRECT_WRITE, 1))
+ if (ubi_set_property(out_fd, UBI_VOL_PROP_DIRECT_WRITE, 1)) {
+ close(out_fd);
return sys_errmsg("ubi_set_property(set direct_write) failed");
+ }
if (!yes && check_volume_empty()) {
- if (!prompt("UBI volume is not empty. Format anyways?", false))
+ if (!prompt("UBI volume is not empty. Format anyways?", false)) {
+ close(out_fd);
return errmsg("UBI volume is not empty");
+ }
}
} else {
out_fd = open(output, O_CREAT | O_RDWR | O_TRUNC,
Closing 'out_fd' is missed in handling paths in open_target(), fix it by adding closing operations before returning. Fixes: a48340c335dab ("mkfs.ubifs: use libubi to format UBI volume") Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com> --- ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)