Re: [RFC v2] x86-64: Allow emulated vsyscalls from user addresses

From: Pavel Machek
Date: Thu Aug 11 2011 - 09:16:24 EST


Hi!

> They trace control flow through the vsyscall page and recompile that
> code somewhere else. Then they expect it to work. DynamoRIO
> (http://dynamorio.org/) and Pin (http://www.pintool.org/) are
> affected. They crash when tracing programs that use vsyscalls.
> Valgrind is smart enough not to cause problems. It crashes on the
> getcpu vsyscall, but that has nothing to do with emulation.
>
> This patch makes each of the three vsyscall entries use a different
> vector so that they can work when relocated. It assumes that the
> code that relocates them is okay with the int instruction acting
> like ret. DynamoRIO at least appears to work.

int acting as ret is seriously weird semantics. And no, invalid
syscall parameters will not cause segfault, just return of -EFAULT. So
... can this be changed?

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/