kmodloader: Check module endian before loading
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 30 Jun 2017 23:34:22 +0000 (16:34 -0700)
committerFlorian Fainelli <f.fainelli@gmail.com>
Sun, 2 Jul 2017 19:25:21 +0000 (12:25 -0700)
commit2cff779140b7b10256d722c9267f8a38c9fba088
treed69de79adfdea662a29eec7f7792178b5ebe68de
parentd54f38a2e2da5a29b00d19b490a87cc5ff910f33
kmodloader: Check module endian before loading

If we manage to accidentally get a module installed that does not match
the system endianess (there is currently nothing preventing that in
OpenWrt/LEDE) we will hit a segmentation fault when doing this:

sh = (Elf32_Shdr *) (map + e->e_shoff);

because e->e_shoff will be wrongly encoded and this most likely will
result in an invalid offset to de-reference from.

Update elf_find_section() to check that the build time endianess of
kmodloader matches that of the module, otherwise nothing would work
really.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
kmodloader.c