diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-03-14 18:24:53 +0000 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-03-26 06:59:41 +0000 |
| commit | 5f6038af5dc932342bae50d6e2b7442928c3e3aa (patch) | |
| tree | aec6dcbc26eb223ec932b5a370f8766614dfd800 | |
| parent | 30e953dc8f0e8bb70f9b5b369681f5e7425d2faa (diff) | |
util/nvmutil: check inode during post-verify
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -rw-r--r-- | util/nvmutil/nvmutil.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index a10758c7..637f6a45 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -1601,6 +1601,7 @@ check_written_part(size_t p) u8 *mem_offset; off_t file_offset; u8 *buf_restore; + struct stat st; if (!part_modified[p]) return; @@ -1613,6 +1614,12 @@ check_written_part(size_t p) memset(pad, 0xff, sizeof(pad)); + if (fstat(gbe_fd, &st) == -1) + err(errno, "%s: fstat (post-write)", fname); + + if (st.st_dev != gbe_dev || st.st_ino != gbe_ino) + err(EIO, "%s: file changed during write", fname); + r = rw_gbe_file_exact(gbe_fd, pad, gbe_rw_size, file_offset, IO_PREAD); |
