Re: [PATCH 2/5] selftests/x86: fix vDSO selftest segfault for vsyscall=none

2018-02-11 Thread Ingo Molnar
* Dominik Brodowski wrote: > On Sun, Feb 11, 2018 at 01:17:14PM +0100, Dominik Brodowski wrote: > > On Sun, Feb 11, 2018 at 12:21:53PM +0100, Ingo Molnar wrote: > > > > > > * Dominik Brodowski wrote: > > > > > > > + char name[128]; > > > > + if (sscanf(line, "%p-%p

Re: [PATCH 2/5] selftests/x86: fix vDSO selftest segfault for vsyscall=none

2018-02-11 Thread Dominik Brodowski
On Sun, Feb 11, 2018 at 01:17:14PM +0100, Dominik Brodowski wrote: > On Sun, Feb 11, 2018 at 12:21:53PM +0100, Ingo Molnar wrote: > > > > * Dominik Brodowski wrote: > > > > > + char name[128]; > > > + if (sscanf(line, "%p-%p %c-%cp %*x %*x:%*x %*u %s", > > > +

Re: [PATCH 2/5] selftests/x86: fix vDSO selftest segfault for vsyscall=none

2018-02-11 Thread Dominik Brodowski
On Sun, Feb 11, 2018 at 12:21:53PM +0100, Ingo Molnar wrote: > > * Dominik Brodowski wrote: > > > + char name[128]; > > + if (sscanf(line, "%p-%p %c-%cp %*x %*x:%*x %*u %s", > > + &start, &end, &r, &x, name) != 5) > > So that's a buffer overflow waiting

Re: [PATCH 2/5] selftests/x86: fix vDSO selftest segfault for vsyscall=none

2018-02-11 Thread Ingo Molnar
* Dominik Brodowski wrote: > + char name[128]; > + if (sscanf(line, "%p-%p %c-%cp %*x %*x:%*x %*u %s", > +&start, &end, &r, &x, name) != 5) So that's a buffer overflow waiting to happen, if a line in 'maps' gets too large, right? Thanks,

[PATCH 2/5] selftests/x86: fix vDSO selftest segfault for vsyscall=none

2018-02-11 Thread Dominik Brodowski
The vDSO selftest tries to execute a vsyscall unconditionally, even if it is not present on the test system (e.g. if booted with vsyscall=none or with CONFIG_LEGACY_VSYSCALL_NONE=y set. Fix this by copying (and tweaking) the vsyscall check from test_vsyscall.c CC: Andrew Lutomirski Signed-off-by: