From 38027f90d41a27e9aafc56731f8ccc3ced67ce8d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 25 Apr 2006 19:14:45 +0000 Subject: [PATCH] [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. --- ChangeLog | 9 ++++++++- sysdeps/unix/sysv/linux/Makefile | 2 ++ sysdeps/unix/sysv/linux/ia64/clone2.S | 6 ++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28bb893..87ff6c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,15 @@ 2006-04-25 Ulrich Drepper + [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 812cd97..8bec6cd 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 . diff --git a/sysdeps/unix/sysv/linux/ia64/clone2.S b/sysdeps/unix/sysv/linux/ia64/clone2.S index 69c9e05..d38eb20 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 */ -- 2.7.4