a) elfload.c:859 #define TARGET_ELF_PAGESTART(_v) ((_v) & ~(unsigned long)(TARGET_ELF_EXEC_PAGESIZE-1))
This means that for 64bit guest on a 32bit host the _v's value is silently reduced to 32bit, the cast should be abi_ulong. b) mmap.c:428 real_start = start & qemu_host_page_mask; Same thing basically qemu_host_page_mask is unsigned long and so the upper bits are sliently cleared. Again qemu_host_page_mask should probably be abi_ulong. The above two make elf binary with one of the segments above 4G load and run on 32bit guest only to fail well into execution and without any indication that it shouldn't have been allowed to run in the first place. -- mailto:av1...@comtv.ru