[BZ #2386]
authorUlrich Drepper <drepper@redhat.com>
Tue, 25 Apr 2006 19:14:45 +0000 (19:14 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 25 Apr 2006 19:14:45 +0000 (19:14 +0000)
* 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
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/ia64/clone2.S

index 28bb893..87ff6c5 100644 (file)
--- 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
index 812cd97..8bec6cd 100644 (file)
@@ -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>.
index 69c9e05..d38eb20 100644 (file)
@@ -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                   */