|
Message-ID: <20171016110318.GQ15263@port70.net> Date: Mon, 16 Oct 2017 13:03:18 +0200 From: Szabolcs Nagy <nsz@...t70.net> To: Minqiang Chen <ptpt52@...il.com> Cc: musl@...ts.openwall.com Subject: Re: [PATCH v1] mman: fix mmap pass wrong offset to kernel * Minqiang Chen <ptpt52@...il.com> [2017-10-16 09:09:32 +0800]: > > musl: fix mmap pass wrong offset to kernel > > > > for example off_t x=0x8d9eb000, the x/4096 result is 0xfff8d9eb, > not 0x8d9eb as expecting > off_t is 64bit, not 32bit, so x/4096 should not signextend. you need to investigate this problem more. > this happens on arm_cortex-a15 with gcc 6.3.x > > > > Signed-off-by: Chen Minqiang <ptpt52@...il.com> > > > *diff --git a/src/mman/mmap.c b/src/mman/mmap.c* > > *index 1592403..a09c901 100644* > > *--- a/src/mman/mmap.c* > > *+++ b/src/mman/mmap.c* > > *@@ -27,7 +27,7 @@* void *__mmap(void *start, size_t len, int prot, int > flags, int fd, off_t off) > > __vm_wait(); > > } > > #ifdef SYS_mmap2 > > *- ret = __syscall(SYS_mmap2, start, len, prot, flags, fd, off/UNIT);* > > *+* *ret = __syscall(SYS_mmap2, start, len, prot, flags, fd, > (unsigned long)off/UNIT);* this is wrong, off is 64bit signed int, it can have values outside of the range of unsigned long. (and your email client ruined the patch with random '*' and '\n')
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.