Author: aurel32 Date: 2014-10-08 20:49:56 +0000 (Wed, 08 Oct 2014) New Revision: 6285
Added: glibc-package/branches/glibc-branch-wheezy/debian/patches/any/cvs-dlopen-tls-memleak.patch Modified: glibc-package/branches/glibc-branch-wheezy/debian/changelog glibc-package/branches/glibc-branch-wheezy/debian/patches/series Log: patches/any/cvs-dlopen-tls-memleak.patch: new patch from upstream to fix a memory leak with dlopen() and thread-local storage variables. Closes: #763559. Modified: glibc-package/branches/glibc-branch-wheezy/debian/changelog =================================================================== --- glibc-package/branches/glibc-branch-wheezy/debian/changelog 2014-10-07 21:55:36 UTC (rev 6284) +++ glibc-package/branches/glibc-branch-wheezy/debian/changelog 2014-10-08 20:49:56 UTC (rev 6285) @@ -7,6 +7,9 @@ fix stack overflow issues. Closes: #742925. * debian/patches/any/submitted-CVE-2014-0475.diff: update from upstream to fix a localplt regression introduced in version 2.13-38+deb7u3. + * patches/any/cvs-dlopen-tls-memleak.patch: new patch from upstream to + fix a memory leak with dlopen() and thread-local storage variables. + Closes: #763559. -- Aurelien Jarno <aure...@debian.org> Thu, 14 Aug 2014 15:00:43 +0200 Added: glibc-package/branches/glibc-branch-wheezy/debian/patches/any/cvs-dlopen-tls-memleak.patch =================================================================== --- glibc-package/branches/glibc-branch-wheezy/debian/patches/any/cvs-dlopen-tls-memleak.patch (rev 0) +++ glibc-package/branches/glibc-branch-wheezy/debian/patches/any/cvs-dlopen-tls-memleak.patch 2014-10-08 20:49:56 UTC (rev 6285) @@ -0,0 +1,142 @@ +2011-04-10 Ulrich Drepper <drep...@gmail.com> + + [BZ #12650] + * sysdeps/i386/dl-tls.h: Define TLS_DTV_UNALLOCATED. + * sysdeps/ia64/dl-tls.h: Likewise. + * sysdeps/powerpc/dl-tls.h: Likewise. + * sysdeps/s390/dl-tls.h: Likewise. + * sysdeps/sh/dl-tls.h: Likewise. + * sysdeps/sparc/dl-tls.h: Likewise. + * sysdeps/x86_64/dl-tls.h: Likewise. + * elf/dl-tls.c: Don't define TLS_DTV_UNALLOCATED here. + +nptl/ +2011-04-10 Ulrich Drepper <drep...@gmail.com> + + [BZ #12650] + * allocatestack.c (get_cached_stack): Deallocate DTV entries before + clearing memory. + Patch partly by Robert Rex <robert....@exasol.com>. + +ports/ +2011-04-11 Joseph Myers <jos...@codesourcery.com> + + * sysdeps/arm/dl-tls.h (TLS_DTV_UNALLOCATED): Define. + * sysdeps/mips/dl-tls.h (TLS_DTV_UNALLOCATED): Define. + + +--- a/elf/dl-tls.c ++++ b/elf/dl-tls.c +@@ -33,9 +33,6 @@ + to allow dynamic loading of modules defining IE-model TLS data. */ + #define TLS_STATIC_SURPLUS 64 + DL_NNS * 100 + +-/* Value used for dtv entries for which the allocation is delayed. */ +-#define TLS_DTV_UNALLOCATED ((void *) -1l) +- + + /* Out-of-memory handler. */ + #ifdef SHARED +--- a/nptl/allocatestack.c ++++ b/nptl/allocatestack.c +@@ -26,6 +26,7 @@ + #include <sys/mman.h> + #include <sys/param.h> + #include <dl-sysdep.h> ++#include <dl-tls.h> + #include <tls.h> + #include <list.h> + #include <lowlevellock.h> +@@ -242,6 +243,10 @@ + + /* Clear the DTV. */ + dtv_t *dtv = GET_DTV (TLS_TPADJ (result)); ++ for (size_t cnt = 0; cnt < dtv[-1].counter; ++cnt) ++ if (! dtv[1 + cnt].pointer.is_static ++ && dtv[1 + cnt].pointer.val != TLS_DTV_UNALLOCATED) ++ free (dtv[1 + cnt].pointer.val); + memset (dtv, '\0', (dtv[-1].counter + 1) * sizeof (dtv_t)); + + /* Re-initialize the TLS. */ +--- a/sysdeps/i386/dl-tls.h ++++ b/sysdeps/i386/dl-tls.h +@@ -58,3 +58,6 @@ + + # endif + #endif ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/sysdeps/ia64/dl-tls.h ++++ b/sysdeps/ia64/dl-tls.h +@@ -28,3 +28,6 @@ + #define DONT_USE_TLS_INDEX 1 + + extern void *__tls_get_addr (size_t m, size_t offset); ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/sysdeps/powerpc/dl-tls.h ++++ b/sysdeps/powerpc/dl-tls.h +@@ -50,4 +50,7 @@ + # define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET) + #endif + ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) ++ + #endif /* dl-tls.h */ +--- a/sysdeps/s390/dl-tls.h ++++ b/sysdeps/s390/dl-tls.h +@@ -75,3 +75,6 @@ + + (unsigned long) __builtin_thread_pointer (); }) + + #endif ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/sysdeps/sh/dl-tls.h ++++ b/sysdeps/sh/dl-tls.h +@@ -27,3 +27,6 @@ + + + extern void *__tls_get_addr (tls_index *ti); ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/sysdeps/sparc/dl-tls.h ++++ b/sysdeps/sparc/dl-tls.h +@@ -27,3 +27,6 @@ + + + extern void *__tls_get_addr (tls_index *ti); ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/sysdeps/x86_64/dl-tls.h ++++ b/sysdeps/x86_64/dl-tls.h +@@ -27,3 +27,6 @@ + + + extern void *__tls_get_addr (tls_index *ti); ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/ports/sysdeps/arm/dl-tls.h ++++ b/ports/sysdeps/arm/dl-tls.h +@@ -27,3 +27,6 @@ + + + extern void *__tls_get_addr (tls_index *ti); ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) +--- a/ports/sysdeps/mips/dl-tls.h ++++ b/ports/sysdeps/mips/dl-tls.h +@@ -44,3 +44,6 @@ + + # define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET) + # define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET) ++ ++/* Value used for dtv entries for which the allocation is delayed. */ ++#define TLS_DTV_UNALLOCATED ((void *) -1l) Modified: glibc-package/branches/glibc-branch-wheezy/debian/patches/series =================================================================== --- glibc-package/branches/glibc-branch-wheezy/debian/patches/series 2014-10-07 21:55:36 UTC (rev 6284) +++ glibc-package/branches/glibc-branch-wheezy/debian/patches/series 2014-10-08 20:49:56 UTC (rev 6285) @@ -393,3 +393,4 @@ any/cvs-CVE-2014-5119.diff any/cvs-resolv-reuse-fd.diff any/cvs-CVE-2013-4357.diff +any/cvs-dlopen-tls-memleak.patch -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1xbybi-0005ln...@moszumanska.debian.org