lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 18 Jun 2020 23:57:27 -0700 (PDT)
From:   "Kenneth R. Crudup" <kenny@...ix.com>
To:     Christoph Hellwig <hch@....de>
cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        linux-kernel@...r.kernel.org
Subject: Re: Commit 25f12ae45fc1 ("maccess: rename probe_kernel_address to
 get_kernel_nofault") causing several OOPSes


On Fri, 19 Jun 2020, Christoph Hellwig wrote:

> That is indeed really strange, as that commit is just a rename.
> Well, Linus also added swapping of the argument order, but again it
> shouldn't change much.

Thing is, there's other examples of the previous version in the kernel tree- any
chance there's a usage conflict (Thunderbolt has a ROM in it, maybe something in
"probe_roms.c"? (Just guessing, no idea):

----
afind probe_kernel_address
./lib/test_lockup.c:        probe_kernel_address(ptr, buf) ||
./lib/test_lockup.c:        probe_kernel_address(ptr + size - 1, buf)) {
./lib/test_lockup.c:    if (probe_kernel_address(ptr, magic) || magic != expected) {
./arch/arm64/kernel/traps.c:            if (probe_kernel_address((__force __le32 *)pc, instr_le))
./arch/sh/kernel/traps.c:       if (probe_kernel_address((insn_size_t *)addr, opcode))
./arch/x86/kernel/traps.c:      if (probe_kernel_address((unsigned short *)addr, ud))
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom_list, device) != 0)
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom + 0x18, offset) != 0)
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom + offset + 0x4, vendor) != 0)
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom + offset + 0x6, device) != 0)
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom + offset + 0x8, list) == 0 &&
./arch/x86/kernel/probe_roms.c:             probe_kernel_address(rom + offset + 0xc, rev) == 0 &&
./arch/x86/kernel/probe_roms.c: return probe_kernel_address(ptr, sig) == 0 && sig == ROMSIGNATURE;
./arch/x86/kernel/probe_roms.c: for (sum = 0; length && probe_kernel_address(rom++, c) == 0; length--)
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom + 2, c) != 0)
./arch/x86/kernel/probe_roms.c:         if (probe_kernel_address(rom + 2, c) != 0)
./arch/x86/mm/fault.c:          if (probe_kernel_address(instr, opcode))
./arch/x86/mm/fault.c:          if (probe_kernel_address(instr, opcode))
./arch/x86/mm/fault.c:  return probe_kernel_address((unsigned long *)p, dummy);
./arch/x86/pci/pcbios.c:                if (probe_kernel_address(&check->fields.signature, sig))
./arch/arm/mm/alignment.c:              fault = probe_kernel_address(ip, instr);
./arch/arm/mm/alignment.c:              fault = probe_kernel_address(ip, instr);
./arch/s390/mm/fault.c: return probe_kernel_address((unsigned long *)p, dummy);
./arch/powerpc/kernel/process.c:                    probe_kernel_address((const void *)pc, instr)) {
./arch/powerpc/kernel/kprobes.c:                if (probe_kernel_address(addr, instr))
./arch/powerpc/sysdev/fsl_pci.c:                        ret = probe_kernel_address((void *)regs->nip, inst);
./arch/riscv/kernel/kgdb.c:     if (probe_kernel_address((void *)pc, op_code))
./arch/riscv/kernel/kgdb.c:     error = probe_kernel_address((void *)addr, stepped_opcode);
./arch/riscv/kernel/traps.c:    if (probe_kernel_address((bug_insn_t *)pc, insn))
./arch/riscv/kernel/traps.c:    if (probe_kernel_address((bug_insn_t *)pc, insn))
----

> Do you see any compiler warnings or something
> odd in the kernel log before the actual crash?

Not that I could see, but I'll try building again later on.

	-Kenny

-- 
Kenneth R. Crudup  Sr. SW Engineer, Scott County Consulting, Silicon Valley

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ