From 58a80f8c3fd5dffa6a578572000e7aa9a1b6a593 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 14 Mar 2026 19:13:12 +0000 Subject: 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 --- util/nvmutil/nvmutil.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'util') 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 && -- cgit v1.2.1