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]
Message-ID: <20200915210231.ysaibtkeibdm4zps@treble>
Date:   Tue, 15 Sep 2020 16:02:31 -0500
From:   Josh Poimboeuf <jpoimboe@...hat.com>
To:     Borislav Petkov <bp@...en8.de>
Cc:     Nick Desaulniers <ndesaulniers@...gle.com>,
        Rong Chen <rong.a.chen@...el.com>,
        kernel test robot <lkp@...el.com>,
        "Li, Philip" <philip.li@...el.com>, x86-ml <x86@...nel.org>,
        LKML <linux-kernel@...r.kernel.org>,
        clang-built-linux <clang-built-linux@...glegroups.com>,
        Marco Elver <elver@...gle.com>
Subject: Re: [tip:x86/seves] BUILD SUCCESS WITH WARNING
 e6eb15c9ba3165698488ae5c34920eea20eaa38e

On Tue, Sep 15, 2020 at 10:49:12PM +0200, Borislav Petkov wrote:
> On Tue, Sep 15, 2020 at 01:12:24PM -0700, Nick Desaulniers wrote:
> >       1 warning: objtool: ist_exc_vmm_communication()+0x12: unreachable instruction
> 
> That looks interesting. So your .o has:
> 
> 00000000000004c0 <ist_exc_vmm_communication>:
>  4c0:   55                      push   %rbp
>  4c1:   48 89 e5                mov    %rsp,%rbp
>  4c4:   48 c7 c7 00 00 00 00    mov    $0x0,%rdi
>  4cb:   31 c0                   xor    %eax,%eax
>  4cd:   e8 00 00 00 00          callq  4d2 <ist_exc_vmm_communication+0x12>
>  4d2:   0f 0b                   ud2    
>  4d4:   66 66 2e 0f 1f 84 00    data16 nopw %cs:0x0(%rax,%rax,1)
>  4db:   00 00 00 00 
>  4df:   90                      nop

If you disassemble with "objdump -dr" it shows the relocations:

00000000000004c0 <ist_exc_vmm_communication>:
 4c0:	55                   	push   %rbp
 4c1:	48 89 e5             	mov    %rsp,%rbp
 4c4:	48 c7 c7 00 00 00 00 	mov    $0x0,%rdi
			4c7: R_X86_64_32S	.rodata.str1.1+0x1ef
 4cb:	31 c0                	xor    %eax,%eax
 4cd:	e8 00 00 00 00       	callq  4d2 <ist_exc_vmm_communication+0x12>
			4ce: R_X86_64_PLT32	panic-0x4
 4d2:	0f 0b                	ud2    
 4d4:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
 4db:	00 00 00 00 
 4df:	90                   	nop

panic() is noreturn, so the compiler is enforcing the fact that it
doesn't return, by trapping if it does return.

I seem to remember that's caused by CONFIG_UBSAN_TRAP.

-- 
Josh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ