diff --git a/fdtextract.c b/fdtextract.c index 9c975973f42effe1c921c06cbe8586d77724838c..fac6c277797827c3a7c2d3289e957f606298bb67 100644 --- a/fdtextract.c +++ b/fdtextract.c @@ -113,7 +113,7 @@ static ssize_t copy_data(int out_fd, int in_fd, ssize_t size) while (left > 0) { char buf[4096]; - ssize_t count = sizeof(buf) < left ? sizeof(buf) : left; + ssize_t count = (ssize_t)sizeof(buf) < left ? (ssize_t)sizeof(buf) : left; ssize_t written; count = read(in_fd, buf, count); @@ -277,14 +277,14 @@ char *read_header(int fd) return NULL; len = read(fd, buf, FDT_V1_SIZE); - if (len < FDT_V1_SIZE) { + if (len < (ssize_t)FDT_V1_SIZE) { free(buf); return NULL; } /* Read rest of header */ total_size = fdt_totalsize(buf); - if (total_size < FDT_V1_SIZE) { + if (total_size < (ssize_t)FDT_V1_SIZE) { free(buf); return NULL; } @@ -297,7 +297,7 @@ char *read_header(int fd) buf = tmp; len = read(fd, buf + FDT_V1_SIZE, total_size - FDT_V1_SIZE); - if (len < total_size - FDT_V1_SIZE) { + if (len < total_size - (ssize_t)FDT_V1_SIZE) { free(buf); return NULL; }