From: Lucas De Marchi Date: Fri, 7 Mar 2014 04:17:10 +0000 (-0300) Subject: libkmod-elf: Fix check by class in get_modversions() X-Git-Tag: v17~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fea655dcb38b9b9cacfb52ed2da2445c204f8c7e;p=thirdparty%2Fkmod.git libkmod-elf: Fix check by class in get_modversions() Commit 51c409b ("Cache the offset of crc") unintentinally changed the comparison "if (elf->class & KMOD_ELF_32)" to "if (elf->class == KMOD_ELF_32)". This has been reported by Serge Voilokov : On Raspberry PI elf->class equals KMOD_ELF_32|KMOD_ELF_LSB so valid condition should be (elf->class & KMOD_ELF_32) instead of (elf->class == KMOD_ELF_32). This fixes "modprobe --dump-modversions" failing on 32b systems. --- diff --git a/libkmod/libkmod-elf.c b/libkmod/libkmod-elf.c index 1c11a24d..53335f34 100644 --- a/libkmod/libkmod-elf.c +++ b/libkmod/libkmod-elf.c @@ -516,7 +516,7 @@ int kmod_elf_get_modversions(const struct kmod_elf *elf, struct kmod_modversion assert_cc(sizeof(struct kmod_modversion64) == sizeof(struct kmod_modversion32)); - if (elf->class == KMOD_ELF_32) + if (elf->class & KMOD_ELF_32) offcrc = sizeof(uint32_t); else offcrc = sizeof(uint64_t);