RFC: bug in load_elf_binary?

From: Chris Friesen
Date: Wed Sep 12 2007 - 14:36:23 EST



No responses in a couple days so I'm resending. I've CC'd a few people who've touched binfmt_elf.c recently.


We've got an unusual elf binary and we seem to be running into a bug in the elf loader. I'm not an elf expert, so my apologies if I get the terminology wrong.

The elf spec says that PT_LOAD segments must be ordered by vaddr. We want to have a segment at a relatively low fixed vaddr. The exact address is not important, except that it's lower than the standard elf headers and so it must be the first segment in the elf file.

However, this segment also has no size in the file...it's basically all statically allocated at runtime.

In the kernel elf loader, the p_vaddr and p_offset of the first segment are used to determine the load_addr for use with the rest of the segments. In the case of this elf file, the first segment does not actually have a valid p_offset.

Anyone have any suggestions on how to deal with this? One crude hack we considered was to simply not set the load_addr if the first segment doesn't have a valid p_offset, but that doesn't solve the general case.

Thanks,

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