diff options
Diffstat (limited to 'util')
| -rw-r--r-- | util/nvmutil/nvmutil.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index b3cea8da..9218b827 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -1882,6 +1882,10 @@ rw_file_exact(int fd, u8 *mem, size_t nrw, size_t retries_on_zero = 0; while (1) { + + /* Prevent theoretical overflow */ + if ((size_t)rv > (nrw - rc)) + goto err_rw_file_exact; rc += rv; if ((size_t)rc >= nrw) @@ -1896,10 +1900,6 @@ rw_file_exact(int fd, u8 *mem, size_t nrw, if (rv < 0) return -1; - - /* Prevent theoretical overflow */ - if ((size_t)rv > (nrw - rc)) - goto err_rw_file_exact; if (rv == 0) { if (retries_on_zero++ < max_retries) |
