aboutsummaryrefslogtreecommitdiff
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
parentc7df983c08045b8d5c50f239b2b0d6e954afd2c7 (diff)
downloadglibc-38027f90d41a27e9aafc56731f8ccc3ced67ce8d.tar
glibc-38027f90d41a27e9aafc56731f8ccc3ced67ce8d.tar.gz
glibc-38027f90d41a27e9aafc56731f8ccc3ced67ce8d.tar.bz2
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.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/clone2.S6
3 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 28bb8934fd..87ff6c5593 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,15 @@
2006-04-25 Ulrich Drepper <drepper@redhat.com>
+ [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.
+
[BZ #2072]
* stdio-common/printf_fp.c: Fix potential memory leaks for
- malloc'ed wbuffer isn't freed in error conditions.
+ malloc'ed wbuffer which isn't freed in error conditions.
[BZ #2569]
* iconv/gconv_db.c (__gconv_release_step): Fix condition of assert
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 812cd97c80..8bec6cdb85 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -28,6 +28,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
install-others += $(inst_includedir)/bits/syscall.h
+tests += tst-clone
+
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
# For bi-arch platforms, the CPU/Makefile defines {32,64}bit-predefine and
# we generate a file that uses <bits/wordsize.h>.
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 */