Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 9 Jun 2016 10:40:21 -0700
From: Andy Lutomirski <luto@...capital.net>
To: Alexander Monakov <amonakov@...ras.ru>
Cc: fREW Schmidt <frioux@...il.com>, Linux Kernel <linux-kernel@...r.kernel.org>, 
	"musl@...ts.openwall.com" <musl@...ts.openwall.com>
Subject: Re: Broken vDSO on built kernel

On Wed, Jun 8, 2016 at 2:36 PM, Alexander Monakov <amonakov@...ras.ru> wrote:
> On Wed, 8 Jun 2016, fREW Schmidt wrote:
>> I was debugging an issue I ran into (
>> https://github.com/docker/docker/issues/23378) and after chatting with the
>> folks in #musl and we triaged it down to a broken vDSO (tested by running
>> `strace date` and seeing a clock_gettime call.)
>
> To provide a bit more detail, we've found that the vdso mappend into the
> application has no dynamic symbols; Glibc ignores the vdso, so it continues to
> work, but musl segfaults since the vdso is invalid.
>
> I'm pasting below `readelf -aW` output on the vdso dumped on the affected
> system (via 'fwrite((void*)getauxval(AT_SYSINFO_EHDR), 8192, 1, stdout)';
> as you can see, there's no dynamic symbols and symbol hash tables.  It may
> be a toolchain bug since there was no issue with 4.6 kernel (and reportedly
> there were no significant vdso changes merged into 4.7 -- the issue is seen
> on Ubuntu's 4.7rc2).

Hmm.  The vdso64.so in /lib/firmware in that image has the same
problem, so this isn't vdso2c's fault.  I added this to my -next queue
to help diagnose it:

https://git.kernel.org/cgit/linux/kernel/git/luto/linux.git/commit/?h=x86/vdso&id=6436d4c1a83cbe083e54c53bb2b16efaab9b62f4

--Andy

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.