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: <Y4C94LluYLGcf1Wt@hirez.programming.kicks-ass.net>
Date:   Fri, 25 Nov 2022 14:06:40 +0100
From:   Peter Zijlstra <peterz@...radead.org>
To:     Yun Levi <ppbuk5246@...il.com>
Cc:     jpoimboe@...nel.org,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [Question] About UNWIND_HINT_ENTRY on entry_SYSCALL_64.

On Fri, Nov 25, 2022 at 07:41:46PM +0900, Yun Levi wrote:
> Hello.
> 
> While I try to see the information related to ORC in vmlinux,
> I'm trying to find out ORC information related to entry_SYSCALL_64's address.
> 
> For this, I've tried to take the following step:
>     1. booting the kernel with the "nokaslr" option.
>     2. Getting ORC information by "objdump orc dump vmlinux"
>     3. cat /proc/kallsyms and check the address of "entry_SYSCALL_64"
>           - In my kernel, It's address .text + a00000
>     4. Find out related ORC entry gotten in step 2.
> 
> But, I couldn't find the reason why entry_SYSCALL_64's orc info isn't
> encoded with end =1.
> Instead, It was encoded as INVALID ORC entry like:
> 
>   .text+a00000: sp:(und) bp:(und) type:call end:0
> 
> IIUC, Some of the code is started with UNWIND_HINT_ENTRY or UNWIND_HINT_EMPTY,
> it should be encoded with end = 1. But it doesn't.
> 
> Am I wrong?

$ readelf -Ws defconfig-build/vmlinux.o | grep entry_SYSCALL_64
178466: 0000000000000029     0 NOTYPE  GLOBAL DEFAULT   18 entry_SYSCALL_64_safe_stack
188596: 0000000000000000   422 NOTYPE  GLOBAL DEFAULT   18 entry_SYSCALL_64
210374: 0000000000000038     0 NOTYPE  GLOBAL DEFAULT   18 entry_SYSCALL_64_after_hwframe

$ readelf -WS defconfig-build/vmlinux.o | grep "\[18\]"
[18] .entry.text       PROGBITS        0000000000000000 e59f00 001838 00  AX  0   0 64

$ tools/objtool/objtool --dump=orc defconfig-build/vmlinux.o | grep ".entry.text+0"
.entry.text+0: sp:(und) bp:(und) type:call end:1


Powered by blists - more mailing lists