mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-22 09:58:09 +00:00
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 <rstoyanov@fedoraproject.org>
This commit is contained in:
parent
d8c349270c
commit
5c2f02b2ea
@ -111,7 +111,8 @@ static inline void *mmap_pages(void *addr_hint, unsigned int count, bool filemap
|
|||||||
|
|
||||||
map = mmap(addr_hint, count * PAGE_SIZE, PROT_WRITE | PROT_READ,
|
map = mmap(addr_hint, count * PAGE_SIZE, PROT_WRITE | PROT_READ,
|
||||||
MAP_PRIVATE | (filemap ? 0 : MAP_ANONYMOUS) | (addr_hint ? MAP_FIXED : 0),
|
MAP_PRIVATE | (filemap ? 0 : MAP_ANONYMOUS) | (addr_hint ? MAP_FIXED : 0),
|
||||||
filemap ? fd : -1, filemap ? ((off_t)addr_hint - (off_t)map_base) : 0);
|
filemap ? fd : -1,
|
||||||
|
filemap ? (off_t)((intptr_t)addr_hint - (intptr_t)map_base) : 0);
|
||||||
if (map == MAP_FAILED || (addr_hint && (map != addr_hint)))
|
if (map == MAP_FAILED || (addr_hint && (map != addr_hint)))
|
||||||
return MAP_FAILED;
|
return MAP_FAILED;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user