Check lseek return value.

Fix Coverity CID: 184236 184235 184232

Reported-by: Coverity
Signed-off-by: Peng Fan <peng....@nxp.com>
---

V2: Per Fabio's comments, use ret = lseek; if (ret) < 0) coding style.

 tools/imx8image.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/tools/imx8image.c b/tools/imx8image.c
index e6b0a146b6..03debe547e 100644
--- a/tools/imx8image.c
+++ b/tools/imx8image.c
@@ -301,6 +301,7 @@ static void copy_file_aligned(int ifd, const char 
*datafile, int offset,
        unsigned char *ptr;
        uint8_t zeros[0x4000];
        int size;
+       int ret;
 
        if (align > 0x4000) {
                fprintf(stderr, "Wrong alignment requested %d\n", align);
@@ -333,7 +334,13 @@ static void copy_file_aligned(int ifd, const char 
*datafile, int offset,
        }
 
        size = sbuf.st_size;
-       lseek(ifd, offset, SEEK_SET);
+       ret = lseek(ifd, offset, SEEK_SET);
+       if (ret < 0) {
+               fprintf(stderr, "%s: lseek error %s\n",
+                       __func__, strerror(errno));
+               exit(EXIT_FAILURE);
+       }
+
        if (write(ifd, ptr, size) != size) {
                fprintf(stderr, "Write error %s\n", strerror(errno));
                exit(EXIT_FAILURE);
@@ -359,7 +366,7 @@ static void copy_file (int ifd, const char *datafile, int 
pad, int offset)
        int tail;
        int zero = 0;
        uint8_t zeros[4096];
-       int size;
+       int size, ret;
 
        memset(zeros, 0, sizeof(zeros));
 
@@ -387,7 +394,13 @@ static void copy_file (int ifd, const char *datafile, int 
pad, int offset)
        }
 
        size = sbuf.st_size;
-       lseek(ifd, offset, SEEK_SET);
+       ret = lseek(ifd, offset, SEEK_SET);
+       if (ret < 0) {
+               fprintf(stderr, "%s: lseek error %s\n",
+                       __func__, strerror(errno));
+               exit(EXIT_FAILURE);
+       }
+
        if (write(ifd, ptr, size) != size) {
                fprintf(stderr, "Write error %s\n",
                        strerror(errno));
@@ -762,6 +775,7 @@ static int build_container(soc_type_t soc, uint32_t 
sector_size,
        char *tmp_filename = NULL;
        uint32_t size = 0;
        uint32_t file_padding = 0;
+       int ret;
 
        int container = -1;
        int cont_img_count = 0; /* indexes to arrange the container */
@@ -883,7 +897,12 @@ static int build_container(soc_type_t soc, uint32_t 
sector_size,
        } while (img_sp->option != NO_IMG);
 
        /* Add padding or skip appended container */
-       lseek(ofd, file_padding, SEEK_SET);
+       ret = lseek(ofd, file_padding, SEEK_SET);
+       if (ret < 0) {
+               fprintf(stderr, "%s: lseek error %s\n",
+                       __func__, strerror(errno));
+               exit(EXIT_FAILURE);
+       }
 
        /* Note: Image offset are not contained in the image */
        tmp = flatten_container_header(&imx_header, container + 1, &size,
-- 
2.14.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to