diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-03-14 22:43:22 +0000 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-03-26 06:59:41 +0000 |
| commit | e4802d4013e26acd0090066145298bfefb9d13b0 (patch) | |
| tree | 10ae30920bf9b18f4dcf86375f260b8300e376ed | |
| parent | 37526fc1c1c77aa551f7754c2b174c00e7f6347a (diff) | |
util/nvmutil: rw file: guard rc before addition
otherwise, it could still overflow
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -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) |
