mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +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
dcee5bd6ff
commit
2ba3430106
1 changed files with 2 additions and 1 deletions
|
|
@ -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_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)))
|
||||
return MAP_FAILED;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue