elf: don't hash userspace addresses
Subsystems (2)
PATCH 1/1 elf: don't hash userspace addresses
---
fs/binfmt_elf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
fs/binfmt_elf.c +2 -2
@@ -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);return (map_addr); }
Quoted 9 lines · Alexey Dobriyan
Signed-off-by Alexey Dobriyan <[email protected]>---
fs/binfmt_elf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
fs/binfmt_elf.c static unsigned long elf_map(struct file *filep, unsigned long addr, · line 383
Quoted 7 lines
fs/binfmt_elf.c +2
-2@@ -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 ?
Quoted 4 lines
fs/binfmt_elf.c +0
-0return (map_addr); }
Quoted 11 lines · Tetsuo Handa
Quoted 10 lines · Alexey Dobriyan
Signed-off-by Alexey Dobriyan <[email protected]>---
fs/binfmt_elf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)fs/binfmt_elf.c +0
-0@@ -379,8 +379,8 @@ static unsigned long elf_map(struct file *filep, unsigned long addr,
Quoted 8 lines
fs/binfmt_elf.c static unsigned long elf_map(struct file *filep, unsigned long addr, · line 383
Quoted 6 lines
fs/binfmt_elf.c +2
-2if ((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.
Quoted 21 lines · Alexey Dobriyan
Quoted 11 lines · Tetsuo Handa
Quoted 10 lines · Alexey Dobriyan
Signed-off-by Alexey Dobriyan <[email protected]>---
fs/binfmt_elf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)fs/binfmt_elf.c +0
-0@@ -379,8 +379,8 @@ static unsigned long elf_map(struct file *filep, unsigned long addr,Quoted 8 lines
fs/binfmt_elf.c static unsigned long elf_map(struct file *filep, unsigned long addr, · line 383
Quoted 6 lines
fs/binfmt_elf.c +2
-2if ((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 ?
Quoted 2 lines
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.
Quoted 22 lines · Tetsuo Handa
Quoted 21 lines · Alexey Dobriyan
Quoted 19 lines · Tetsuo Handa
Quoted 9 lines · Alexey Dobriyan
Signed-off-by Alexey Dobriyan <[email protected]>---
fs/binfmt_elf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)fs/binfmt_elf.c static unsigned long elf_map(struct file *filep, unsigned long addr, · line 383
Quoted 7 lines
fs/binfmt_elf.c +2
-2@@ -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 ?
Quoted 5 lines
Quoted 2 lines
Duh. There is no reason to use non-standard %px.
See the comment for
pointer()function inlib/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.