diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-03-14 19:13:12 +0000 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-03-26 06:59:41 +0000 |
| commit | 1606f79c74d551323c1bc8f5da0b81ba0112b570 (patch) | |
| tree | 3d691143f128d5a95f7a0b63c1ba4ede37cdb150 | |
| parent | b88c81869b604662e69730568beb36adf2eccce5 (diff) | |
util/nvmutil: even safer pointer comparison
we assert now that ulong is the size of a pointer,
therefore we know that it can fit a pointer reliably.
this code is written for c90 spec so lacks uintptr
Signed-off-by: Leah Rowe <leah@libreboot.org>
| -rw-r--r-- | util/nvmutil/nvmutil.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index c8b8060b..90b96bc6 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -246,6 +246,9 @@ typedef char static_assert_int_ge_32[(sizeof(int) >= 4) ? 1 : -1]; typedef char static_assert_twos_complement[ ((-1 & 3) == 3) ? 1 : -1 ]; +typedef char assert_ulong_ptr[ + (sizeof(ulong) >= sizeof(void *)) ? 1 : -1 +]; /* * We set _FILE_OFFSET_BITS 64, but we only handle @@ -1801,15 +1804,15 @@ static ssize_t rw_gbe_file_exact(int fd, u8 *mem, size_t nrw, off_t off, int rw_type) { - size_t mem_addr; - size_t buf_addr; - size_t buf_end; + ulong mem_addr; + ulong buf_addr; + ulong buf_end; if (mem == NULL) goto err_rw_gbe_file_exact; - mem_addr = (size_t)(void *)mem; - buf_addr = (size_t)(void *)buf; + mem_addr = (ulong)(void *)mem; + buf_addr = (ulong)(void *)buf; buf_end = buf_addr + GBE_FILE_SIZE; if (mem != (void *)pad && |
