Messages in this thread | | | Date | Wed, 9 May 2018 19:40:17 +0300 | From | Alexey Dobriyan <> | Subject | Re: [PATCH] elf: don't hash userspace addresses |
| |
On Sat, May 05, 2018 at 10:19:43PM +0900, Tetsuo Handa wrote: > Alexey Dobriyan wrote: > > On Sat, May 05, 2018 at 09:31:50AM +0900, Tetsuo Handa wrote: > > > Alexey Dobriyan wrote: > > > > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> > > > > --- > > > > > > > > fs/binfmt_elf.c | 4 ++-- > > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > > > --- a/fs/binfmt_elf.c > > > > +++ b/fs/binfmt_elf.c > > > > @@ -379,8 +379,8 @@ static unsigned long elf_map(struct file *filep, unsigned long addr, > > > > > > > > if ((type & MAP_FIXED_NOREPLACE) && > > > > PTR_ERR((void *)map_addr) == -EEXIST) > > > > - pr_info("%d (%s): Uhuuh, elf segment at %px requested but the memory is mapped already\n", > > > > - task_pid_nr(current), current->comm, (void *)addr); > > > > + pr_info("%d (%s): Uhuuh, elf segment at %lx requested but the memory is mapped already\n", > > > > + task_pid_nr(current), current->comm, addr); > > > > > > "%px" does not hash. For what reason you replace %px with %lx ? > > > > Duh. There is no reason to use non-standard %px. > > > > See the comment for pointer() function in lib/vsprintf.c . > In Linux kernel world, various extension for %p is supported.
%p has this funny property: scanf(printf("%p", ptr)) does not equal %p because small pointer will become (null) or (errptr) or whatever is decided in recent vsnprintf thread, therefore the less %p is used the better.
| |