lkml.org 
[lkml]   [2007]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH][RESEND] PIE randomization
On Sat, 12 May 2007, Jiri Kosina wrote:

> However, I seem to get "soft" hang on boot with this patch,
> approximately at the time the init should be executed. The system is not
> completely stuck - interrupts are delivered, keyboard is working,
> alt-sysrq-t dumps proper output, but userspace doesn't seem to get
> started. This happens on i386, didn't try on other archs.

Hi Jan,

I finally had time to look at it a little bit - I think you omitted
porting of proper handling of *interp_load_addr == 0, which made my box
hang. The patch below, when applied on top of what you have sent, makes it
work again and also the randomization for ET_DYN executables seems to work
OK.

Could you please refresh your patch, update the Changelog in a proper way
and resubmit?

Thanks.


diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index be6671e..8406f9a 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -347,7 +347,7 @@ static inline unsigned long total_mappin
an ELF header */

static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
- struct file *interpreter, unsigned long *interp_load_addr,
+ struct file *interpreter, unsigned long *interp_map_addr,
unsigned long no_base)
{
struct elf_phdr *elf_phdata;
@@ -421,6 +421,9 @@ static unsigned long load_elf_interp(str

map_addr = elf_map(interpreter, load_addr + vaddr,
eppnt, elf_prot, elf_type, total_size);
+ total_size = 0;
+ if (!*interp_map_addr)
+ *interp_map_addr = map_addr;
error = map_addr;
if (BAD_ADDR(map_addr))
goto out_close;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-05-16 19:19    [W:0.105 / U:0.620 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site