Messages in this thread | | | Date | Thu, 11 Aug 2011 15:16:10 +0200 | From | Pavel Machek <> | Subject | Re: [RFC v2] x86-64: Allow emulated vsyscalls from user addresses |
| |
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
| |