From e9b885ee550e8a3eabc9d11c469baf1cfaf64f55 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 11 Nov 2012 13:56:37 -0500 Subject: fix clobber of edx in i386 vsyscall asm this function does not obey the normal calling convention; like a syscall instruction, it's expected not to clobber any registers except the return value. clobbering edx could break callers that were reusing the value cached in edx after the syscall returns. --- src/internal/i386/syscall.s | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/internal/i386/syscall.s b/src/internal/i386/syscall.s index 291168c3..2914acee 100644 --- a/src/internal/i386/syscall.s +++ b/src/internal/i386/syscall.s @@ -16,7 +16,8 @@ __vsyscall: mov 12(%esp),%edi push %eax call 1f -2: pop %ebx +2: mov %ebx,%edx + pop %ebx pop %ebx pop %edi ret -- cgit v1.2.1