From e3e37c41ec49a8146ea5dee502b51c7248cc8765 Mon Sep 17 00:00:00 2001 From: landley Date: Sat, 25 Mar 2006 02:49:28 +0000 Subject: Stephane Billiart found an endianness bug in insmod. git-svn-id: svn://busybox.net/trunk/busybox@14653 69ca8d6d-28ef-0310-b511-8ec308f3f277 --- modutils/insmod.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'modutils/insmod.c') diff --git a/modutils/insmod.c b/modutils/insmod.c index 26dd9783b..efa0499e4 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c @@ -516,12 +516,6 @@ int delete_module(const char *); #include #include -#if BB_LITTLE_ENDIAN -# define ELFDATAM ELFDATA2LSB -#else -# define ELFDATAM ELFDATA2MSB -#endif - #ifndef ElfW # if ELFCLASSM == ELFCLASS32 # define ElfW(x) Elf32_ ## x @@ -3331,7 +3325,8 @@ static struct obj_file *obj_load(FILE * fp, int loadprogbits) return NULL; } if (f->header.e_ident[EI_CLASS] != ELFCLASSM - || f->header.e_ident[EI_DATA] != ELFDATAM + || f->header.e_ident[EI_DATA] != (BB_BIG_ENDIAN + ? ELFDATA2MSB : ELFDATA2LSB) || f->header.e_ident[EI_VERSION] != EV_CURRENT || !MATCH_MACHINE(f->header.e_machine)) { bb_error_msg("ELF file not for this architecture"); -- cgit v1.2.3-55-g6feb