From 2b8d0c630468ff36d57627cb98d5b8691962b2f5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 17 Dec 2022 12:48:13 +0000 Subject: [PATCH 1/1] util/ifdtool: exit via errno if fclose/close fails Signed-off-by: Leah Rowe Change-Id: I7fd45ff5534e0ab39fe817f4e2f39a4bc8f7df9c --- util/ifdtool/ifdtool.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/util/ifdtool/ifdtool.c b/util/ifdtool/ifdtool.c index 7e3053df77..2b8201c454 100644 --- a/util/ifdtool/ifdtool.c +++ b/util/ifdtool/ifdtool.c @@ -740,8 +740,8 @@ cmd_extract_regions(char *image, int size) if (write(region_fd, image + region.base, region.size) != region.size) errm("%s: ", region_filename); - - close(region_fd); + if (close(region_fd)) + errm("%s: ", region_filename); } } } @@ -795,7 +795,8 @@ cmd_inject_region(const char *new_filename, char *image, int size, != region_size) errm("%s: ", region_fname); - close(region_fd); + if (close(region_fd)) + errm("%s: ", region_fname); printf("Adding %s as the %s section of %s\n", region_fname, region_name(region_type), new_filename); @@ -857,7 +858,8 @@ cmd_new_layout(const char *new_filename, char *image, int size, if (new_regions[region_number].size < 0) new_regions[region_number].size = 0; } - fclose(romlayout); + if (fclose(romlayout)) + errm("%s: ", layout_fname); /* check new layout */ for (i = 0; i < max_regions; i++) { @@ -1238,8 +1240,8 @@ read_image(const char *romname, char *rombuf) err(1, NULL); else if (read(romfd, rombuf, romsize) != romsize) errm("%s: ", romname); - else - close(romfd); + else if (close(romfd)) + errm("%s: ", romname); return romsize; /* TODO: return ssize_t in this function */ } @@ -1258,7 +1260,8 @@ write_image(const char *filename, char *image, int size) errm("%s: ", filename); if (write(new_fd, image, size) != size) errm("%s: ", filename); - close(new_fd); + if (close(new_fd)) + errm("%s: ", filename); } void @@ -1283,7 +1286,9 @@ dump_frba_layout(const frba_t *frba, const char *layout_fname) if (write(layout_fd, buf, strlen(buf)) < 0) errm("%s: ", layout_fname); } - close(layout_fd); + if (close(layout_fd)) + errm("%s: ", layout_fname); + printf("Wrote layout to %s\n", layout_fname); } -- 2.25.1