about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/ia64/clone2.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-04-25 19:14:45 +0000
committerUlrich Drepper <drepper@redhat.com>2006-04-25 19:14:45 +0000
commit38027f90d41a27e9aafc56731f8ccc3ced67ce8d (patch)
tree089a6a489a30bcdc63b09db00237dd5c68170545 /sysdeps/unix/sysv/linux/ia64/clone2.S
parentc7df983c08045b8d5c50f239b2b0d6e954afd2c7 (diff)
downloadglibc-38027f90d41a27e9aafc56731f8ccc3ced67ce8d.tar.gz
glibc-38027f90d41a27e9aafc56731f8ccc3ced67ce8d.tar.xz
glibc-38027f90d41a27e9aafc56731f8ccc3ced67ce8d.zip
[BZ #2386]
	* sysdeps/unix/sysv/linux/ia64/clone2.S: Check for NULL stakc
	pointers to match other architectures.
	* sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (tests): Add
	tst-clone.
	* sysdeps/unix/sysv/linux/tst-clone.c: New file.

	malloc'ed wbuffer which isn't freed in error conditions.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64/clone2.S')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/clone2.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/clone2.S b/sysdeps/unix/sysv/linux/ia64/clone2.S
index 69c9e05044..d38eb201ad 100644
--- a/sysdeps/unix/sysv/linux/ia64/clone2.S
+++ b/sysdeps/unix/sysv/linux/ia64/clone2.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2003, 2004, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,10 +32,12 @@ ENTRY(__clone2)
 	.prologue
 	alloc r2=ar.pfs,8,1,6,0
 	cmp.eq p6,p0=0,in0
+	cmp.eq p7,p0=0,in1
 	mov r8=EINVAL
 	mov out0=in3		/* Flags are first syscall argument.	*/
 	mov out1=in1		/* Stack address.			*/
-(p6)	br.cond.spnt.many __syscall_error
+(p6)	br.cond.spnt.many __syscall_error	/* no NULL function pointers */
+(p7)	br.cond.spnt.many __syscall_error	/* no NULL stack pointers */
 	;;
 	mov out2=in2		/* Stack size.				*/
 	mov out3=in5		/* Parent TID Pointer			*/