util/nvmutil: err in rw_file_exact on zero return

zero never occurs, because rw_file_once never returns zero,
but only rw_file_once determines that. rw_file_exact must
handle every possible error.

right now, if that call returns zero, rw_file_exact would
have an infinite loop.

this doesn't actually happen at the moment, so this is a
preventative bug fix.

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2026-03-13 06:05:54 +00:00
parent cbf409d6e1
commit ebac61df5e

View File

@@ -1565,7 +1565,7 @@ rw_file_exact(int fd, uint8_t *mem, size_t len,
}
for (rc = 0, rv = 0; rc < len; ) {
if ((rv = rw_file_once(fd, mem, len, off, rw_type, rc)) == -1)
if ((rv = rw_file_once(fd, mem, len, off, rw_type, rc)) <= 0)
return -1;
rc += (size_t)rv;