summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-11-05 09:53:22 +0000
committerStefano Babic <sbabic@denx.de>2018-11-06 11:23:27 +0100
commitfc61cc2ca3bab8fdf38572eb1ccfa6674999c8b8 (patch)
tree4009ea2d7496aaa899f5572a9ec0cb624c8e2a62 /tools
parent5ef76e59c12c79d106ebda70b710468aa6bd8b75 (diff)
downloadu-boot-fc61cc2ca3bab8fdf38572eb1ccfa6674999c8b8.tar.gz
tools: imx8image: check lseek return value
Check lseek return value. Fix Coverity CID: 184236 184235 184232 Reported-by: Coverity Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/imx8image.c27
1 files 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,