summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/nvmutil/nvmutil.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index ee17b2f7..6a7d96db 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -1880,6 +1880,9 @@ rw_file_exact(int fd, u8 *mem, size_t nrw,
ssize_t rv = 0;
ssize_t rc = 0;
size_t retries_on_zero = 0;
+ off_t off_cur;
+ size_t nrw_cur;
+ void *mem_cur;
while (1) {
@@ -1891,10 +1894,11 @@ rw_file_exact(int fd, u8 *mem, size_t nrw,
if ((size_t)rc >= nrw)
break;
- rv = prw(fd,
- mem + (size_t)rc,
- nrw - (size_t)rc,
- (size_t)off + rc,
+ mem_cur = (void *)(mem + (size_t)rc);
+ nrw_cur = (size_t)(nrw - (size_t)rc);
+ off_cur = (off_t)((size_t)off + (size_t)rc);
+
+ rv = prw(fd, mem_cur, nrw_cur, off_cur,
rw_type, loop_eagain, loop_eintr,
OFF_ERR);