Skip to content

Commit 5c2f02b

Browse files
rst0gitmihalicyn
authored andcommitted
test/zdtm/static/maps12: fix pointer-to-int cast
The `offset` argument to `mmap()` was computed with a direct cast from pointer to `off_t`: `(off_t)addr_hint - (off_t)map_base` This causes a build failure when compiling since pointers and `off_t` may differ in size on some platforms. maps12.c: In function 'mmap_pages': maps12.c:114:50: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 114 | filemap ? fd : -1, filemap ? ((off_t)addr_hint - (off_t)map_base) : 0); | ^ maps12.c:114:69: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 114 | filemap ? fd : -1, filemap ? ((off_t)addr_hint - (off_t)map_base) : 0); The fix in this patch is to cast both pointers to `intptr_t`, perform the subtraction in that type, and then cast the result back to `off_t`. Signed-off-by: Radostin Stoyanov <[email protected]>
1 parent d8c3492 commit 5c2f02b

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

test/zdtm/static/maps12.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ static inline void *mmap_pages(void *addr_hint, unsigned int count, bool filemap
111111

112112
map = mmap(addr_hint, count * PAGE_SIZE, PROT_WRITE | PROT_READ,
113113
MAP_PRIVATE | (filemap ? 0 : MAP_ANONYMOUS) | (addr_hint ? MAP_FIXED : 0),
114-
filemap ? fd : -1, filemap ? ((off_t)addr_hint - (off_t)map_base) : 0);
114+
filemap ? fd : -1,
115+
filemap ? (off_t)((intptr_t)addr_hint - (intptr_t)map_base) : 0);
115116
if (map == MAP_FAILED || (addr_hint && (map != addr_hint)))
116117
return MAP_FAILED;
117118

0 commit comments

Comments
 (0)