-
Notifications
You must be signed in to change notification settings - Fork 336
Closed
Description
I'm testing a patch (see attached) for CVE-2015-1593 against RHEL7.3 GA + kernel-3.10.0-200.el7.x86_64 (rebuilt by RHEL7.3 GA toolset) and was running into the following kpatch-build error:
Skipping cleanup
Fedora/Red Hat distribution detected
Downloading kernel source for 3.10.0-200.el7.x86_64
Unpacking kernel source
Testing patch file
checking file arch/x86/mm/mmap.c
checking file fs/binfmt_elf.c
Reading special section data
Building original kernel
Building patched kernel
Extracting new and modified ELF sections
mmap.o: changed function: stack_maxrandom_size
mmap.o: changed function: arch_pick_mmap_layout
binfmt_elf.o: changed function: load_elf_binary
compat_binfmt_elf.o: changed function: load_elf_binary
Patched objects: vmlinux
Building patch module: kpatch-klp.ko
/usr/local/libexec/kpatch/create-kpatch-module: ERROR: tmp_output.o: kpatch_create_symbol_list: 331: symbol load_elf_binary at offset 3536 within section .text.load_elf_binary, expected 0
ERROR: kpatch build failed. Check /root/.kpatch/build.log for more details.
It's interesting to note that kpatch-build reports that both binfmt_elf.o and compat_binfmt_elf.o modify a function called load_elf_binary. (Check out fs/compat_binfmt_elf.c for it #include's binfmt_elf.c!) I think kpatch-build is getting tripped up on these duplicate functions as:
TMP=~/.kpatch/tmp/patch/tmp_output.o
readelf --wide --symbols $TMP | grep load_elf_binary
Symbol table '.symtab' contains 52 entries:
Num: Value Size Type Bind Vis Ndx Name
...
24: 0000000000000000 3523 FUNC LOCAL DEFAULT 5 load_elf_binary
26: 0000000000000dd0 3656 FUNC LOCAL DEFAULT 5 load_elf_binary
Note that the first load_elf_binary symbol value is 0 and the second is 0xdd0 = 3536, the found and expected values in the kpatch-build complaint.
Metadata
Metadata
Assignees
Labels
No labels