Module Name: src Committed By: joerg Date: Fri Nov 18 20:43:01 UTC 2011
Modified Files: src/lib/libc/arch/x86_64: SYS.h src/lib/libc/arch/x86_64/sys: __clone.S __vfork14.S brk.S exect.S ptrace.S sbrk.S Log Message: Exploit hidden __cerror To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/lib/libc/arch/x86_64/SYS.h cvs rdiff -u -r1.2 -r1.3 src/lib/libc/arch/x86_64/sys/__clone.S \ src/lib/libc/arch/x86_64/sys/exect.S \ src/lib/libc/arch/x86_64/sys/ptrace.S cvs rdiff -u -r1.3 -r1.4 src/lib/libc/arch/x86_64/sys/__vfork14.S \ src/lib/libc/arch/x86_64/sys/brk.S src/lib/libc/arch/x86_64/sys/sbrk.S Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/arch/x86_64/SYS.h diff -u src/lib/libc/arch/x86_64/SYS.h:1.10 src/lib/libc/arch/x86_64/SYS.h:1.11 --- src/lib/libc/arch/x86_64/SYS.h:1.10 Fri Nov 23 07:36:05 2007 +++ src/lib/libc/arch/x86_64/SYS.h Fri Nov 18 20:43:01 2011 @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)SYS.h 5.5 (Berkeley) 5/7/91 - * $NetBSD: SYS.h,v 1.10 2007/11/23 07:36:05 dsl Exp $ + * $NetBSD: SYS.h,v 1.11 2011/11/18 20:43:01 joerg Exp $ */ #include <machine/asm.h> @@ -49,14 +49,8 @@ ENTRY(x); \ SYSTRAP(y) -#ifdef PIC #define _SYSCALL_ERR \ - mov PIC_GOT(CERROR), %rcx; \ - jmp *%rcx -#else -#define _SYSCALL_ERR \ jmp CERROR -#endif #define _SYSCALL(x,y) \ .text; _ALIGN_TEXT; \ Index: src/lib/libc/arch/x86_64/sys/__clone.S diff -u src/lib/libc/arch/x86_64/sys/__clone.S:1.2 src/lib/libc/arch/x86_64/sys/__clone.S:1.3 --- src/lib/libc/arch/x86_64/sys/__clone.S:1.2 Thu Jun 6 20:51:17 2002 +++ src/lib/libc/arch/x86_64/sys/__clone.S Fri Nov 18 20:43:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: __clone.S,v 1.2 2002/06/06 20:51:17 fvdl Exp $ */ +/* $NetBSD: __clone.S,v 1.3 2011/11/18 20:43:01 joerg Exp $ */ /* * Copyright (c) 2002 Wasabi Systems, Inc. @@ -93,9 +93,4 @@ ENTRY(__clone) 5: popq %r13 popq %r12 -#ifdef PIC - movq PIC_GOT(CERROR),%rdx - jmp *%rdx -#else jmp CERROR -#endif Index: src/lib/libc/arch/x86_64/sys/exect.S diff -u src/lib/libc/arch/x86_64/sys/exect.S:1.2 src/lib/libc/arch/x86_64/sys/exect.S:1.3 --- src/lib/libc/arch/x86_64/sys/exect.S:1.2 Thu Aug 7 16:42:37 2003 +++ src/lib/libc/arch/x86_64/sys/exect.S Fri Nov 18 20:43:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: exect.S,v 1.2 2003/08/07 16:42:37 agc Exp $ */ +/* $NetBSD: exect.S,v 1.3 2011/11/18 20:43:01 joerg Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -36,7 +36,7 @@ #include <machine/asm.h> #if defined(SYSLIBC_SCCS) && !defined(lint) - RCSID("$NetBSD: exect.S,v 1.2 2003/08/07 16:42:37 agc Exp $") + RCSID("$NetBSD: exect.S,v 1.3 2011/11/18 20:43:01 joerg Exp $") #endif /* SYSLIBC_SCCS and not lint */ #include "SYS.h" @@ -47,9 +47,4 @@ ENTRY(exect) orb $(PSL_T>>8),1(%rsp) popfq SYSTRAP(execve) -#ifdef PIC - movq PIC_GOT(CERROR), %rcx - jmp *%rcx -#else jmp CERROR -#endif Index: src/lib/libc/arch/x86_64/sys/ptrace.S diff -u src/lib/libc/arch/x86_64/sys/ptrace.S:1.2 src/lib/libc/arch/x86_64/sys/ptrace.S:1.3 --- src/lib/libc/arch/x86_64/sys/ptrace.S:1.2 Thu Aug 7 16:42:37 2003 +++ src/lib/libc/arch/x86_64/sys/ptrace.S Fri Nov 18 20:43:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ptrace.S,v 1.2 2003/08/07 16:42:37 agc Exp $ */ +/* $NetBSD: ptrace.S,v 1.3 2011/11/18 20:43:01 joerg Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -36,7 +36,7 @@ #include <machine/asm.h> #if defined(SYSLIBC_SCCS) && !defined(lint) - RCSID("$NetBSD: ptrace.S,v 1.2 2003/08/07 16:42:37 agc Exp $") + RCSID("$NetBSD: ptrace.S,v 1.3 2011/11/18 20:43:01 joerg Exp $") #endif /* SYSLIBC_SCCS and not lint */ #include "SYS.h" @@ -54,9 +54,4 @@ ENTRY(ptrace) jc err ret err: -#ifdef PIC - movq PIC_GOT(CERROR), %rcx - jmp *%rcx -#else jmp CERROR -#endif Index: src/lib/libc/arch/x86_64/sys/__vfork14.S diff -u src/lib/libc/arch/x86_64/sys/__vfork14.S:1.3 src/lib/libc/arch/x86_64/sys/__vfork14.S:1.4 --- src/lib/libc/arch/x86_64/sys/__vfork14.S:1.3 Thu Aug 7 16:42:37 2003 +++ src/lib/libc/arch/x86_64/sys/__vfork14.S Fri Nov 18 20:43:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: __vfork14.S,v 1.3 2003/08/07 16:42:37 agc Exp $ */ +/* $NetBSD: __vfork14.S,v 1.4 2011/11/18 20:43:01 joerg Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -36,7 +36,7 @@ #include <machine/asm.h> #if defined(SYSLIBC_SCCS) && !defined(lint) - RCSID("$NetBSD: __vfork14.S,v 1.3 2003/08/07 16:42:37 agc Exp $") + RCSID("$NetBSD: __vfork14.S,v 1.4 2011/11/18 20:43:01 joerg Exp $") #endif /* SYSLIBC_SCCS and not lint */ #include "SYS.h" @@ -57,9 +57,4 @@ ENTRY(__vfork14) jmp *%r9 err: pushq %r9 -#ifdef PIC - movq PIC_GOT(CERROR), %rcx - jmp *%rcx -#else jmp CERROR -#endif Index: src/lib/libc/arch/x86_64/sys/brk.S diff -u src/lib/libc/arch/x86_64/sys/brk.S:1.3 src/lib/libc/arch/x86_64/sys/brk.S:1.4 --- src/lib/libc/arch/x86_64/sys/brk.S:1.3 Thu Aug 7 16:42:37 2003 +++ src/lib/libc/arch/x86_64/sys/brk.S Fri Nov 18 20:43:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: brk.S,v 1.3 2003/08/07 16:42:37 agc Exp $ */ +/* $NetBSD: brk.S,v 1.4 2011/11/18 20:43:01 joerg Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -36,7 +36,7 @@ #include <machine/asm.h> #if defined(SYSLIBC_SCCS) && !defined(lint) - RCSID("$NetBSD: brk.S,v 1.3 2003/08/07 16:42:37 agc Exp $") + RCSID("$NetBSD: brk.S,v 1.4 2011/11/18 20:43:01 joerg Exp $") #endif /* SYSLIBC_SCCS and not lint */ #include "SYS.h" @@ -68,8 +68,7 @@ ENTRY(_brk) xorl %eax,%eax ret err: - movq PIC_GOT(CERROR),%rdx - jmp *%rdx + jmp CERROR #else cmpq %rdi,_C_LABEL(__minbrk)(%rip) jb 1f Index: src/lib/libc/arch/x86_64/sys/sbrk.S diff -u src/lib/libc/arch/x86_64/sys/sbrk.S:1.3 src/lib/libc/arch/x86_64/sys/sbrk.S:1.4 --- src/lib/libc/arch/x86_64/sys/sbrk.S:1.3 Wed Jul 2 20:07:43 2008 +++ src/lib/libc/arch/x86_64/sys/sbrk.S Fri Nov 18 20:43:01 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: sbrk.S,v 1.3 2008/07/02 20:07:43 rmind Exp $ */ +/* $NetBSD: sbrk.S,v 1.4 2011/11/18 20:43:01 joerg Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -36,7 +36,7 @@ #include <machine/asm.h> #if defined(SYSLIBC_SCCS) && !defined(lint) - RCSID("$NetBSD: sbrk.S,v 1.3 2008/07/02 20:07:43 rmind Exp $") + RCSID("$NetBSD: sbrk.S,v 1.4 2011/11/18 20:43:01 joerg Exp $") #endif /* SYSLIBC_SCCS and not lint */ #include "SYS.h" @@ -67,8 +67,7 @@ ENTRY(_sbrk) out: ret err: - mov PIC_GOT(CERROR),%rdx - jmp *%rdx + jmp CERROR #else movq CURBRK(%rip),%rax test %rdi,%rdi