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

Reply via email to