[Bug 1341569] Re: Shared libraries built with multiple tocs resolve plt to local function entry

Launchpad Bug Tracker 1341569 at bugs.launchpad.net
Wed Nov 12 14:38:19 UTC 2014


This bug was fixed in the package glibc - 2.19-13ubuntu2

---------------
glibc (2.19-13ubuntu2) vivid; urgency=medium

  * No, really, remove obsolete /etc/ld.so.conf.d/i686-linux-gnu.conf.

glibc (2.19-13ubuntu1) vivid; urgency=medium

  * Merge with Debian unstable, pulling in upstream and package fixes.
  * Re-enable the testsuite that was disabled in Debian for the freeze.
  * Drop obsolete /etc/ld.so.conf.d/i686-linux-gnu.conf (LP: #1381656)
  * Update to release/2.19/master, and readjust patches to compensate:
    - localedata/unsubmitted-tst-setlocale3-ENV.diff: Superseded.
    - s390/cvs-s390-abi-reversal.diff: Superseded.
    - any/cvs-resolv-reuse-fd.diff: Superseded.
    - any/cvs-posix_spawn_file_actions_addopen.diff: Superseded.
    - any/cvs-setlocale-alloca.diff: Superseded.
    - any/cvs-CVE-2014-0475.diff: Superseded.
    - any/cvs-CVE-2014-5119.diff: Superseded.
    - any/cvs-CVE-2014-6040.diff: Superseded.
    - any/cvs-resolv-first-query-failure.diff: Rebased with upstream.
  * testsuite-checking: Ignore failures of the tst-dl-iter-static test,
    which are caused by the lddebug-scopes patch, while we work out a
    better solution upstream to the GDB versus linux-vdso.so.1 problem.
  * Pull in latest PPC fixes from ibm/2.19/master branch (LP: #1341569)

glibc (2.19-13) unstable; urgency=medium

  [ Aurelien Jarno ]
  * kfreebsd/local-fbtl.diff: update to revision 5677 (from glibc-bsd).
    Workarounds a kfreebsd 9.0 to 10.1 ABI break. Closes: #740509.
  * patches/hppa/cvs-sigrtmin.diff: backport patch from upstream to change
    __SIGRTMIN to match other architectures. Closes: #766605.
  * patches/amd64/cvs-slow-sse42.diff: backport patch from upstream to fix
    a performance issue with strcmp and friends functions on some machines.
  * patches/any/cvs-regex-alloca.diff: new patch from upstream to fix a
    segmentation fault in regex in case of heap allocation failure. Closes:
    #767225.
  * Don't fail to build in case of testsuite regressions, so that changes
    in the environment (e.g.: kernel) do not prevent security or stable
    versions to be built. It will be re-enabled after the Jessie release.
  * debian/control.in/main: build-depends on debhelper (>= 9.20141010) to
    get Build-Profiles features. This fixes the following lintian warning:
    restriction-formula-with-debhelper-without-debhelper-version.

  [ Samuel Thibault ]
  * hurd-i386/cvs-libpthread.diff: Update to Sun Nov 2.
  * hurd-i386/libpthread_clean.diff: Refresh, most of it merged into
    cvs-libpthread.diff.
  * hurd-i386/cvs-libpthread-pthread_condattr_setclock.diff,
    cvs-libpthread_guardsize.diff, cvs-libpthread_std_thread.diff: Remove,
    merged into cvs-libpthread.diff.

glibc (2.19-12) unstable; urgency=medium

  [ Samuel Thibault ]
  * patches/hurd-i386/tg-thread-cancel.diff: Update patch from upstream, fixes
    a rare deadlock.
  * patches/hurd-i386/local-libpthread-stacksize.diff: New patch to make
    libpthread stacks size default to 8MiB like on Linux, to avoid surprises
    with packages which assume the Linuxish default.
  * patches/hurd-i386/tg-poll_errors_fixes.diff: Update patch, fixes
    select returned value in case of errors. Closes: #764840.

  [ Petr Salinger ]
  * update testsuite-checking/expected-results-*-kfreebsd-gnu-*
    under 10.x kernels, provided by Steven Chamberlain. Closes: #762404.

  [ Aurelien Jarno ]
  * Remove mtrace(1) and pldd(1) manpages, provided by the manpages package
    starting with version 3.74.
  * debian/control.in/*: update the syntax of the Build-Profiles field and
    build depends on dpkg-dev (>= 1.17.14) to get the new feature. Closes:
    #764274.
  * Remove libc6-prof package as it's broken for years and there are better
    way to profile code nowadays. Closes: #760450.
  * patches/amd64/local-blacklist-on-TSX-Haswell.diff: new patch from
    Henrique de Moraes Holschuh to disable TSX on processors which might get
    it disable through a microcode update. Closes: #762195.
  * Install French, German, Polish and Spanish version of validlocale(8)
    manpage. Add a Replaces: manpages-fr-extra (<= 20141008).
  * Update French manpages translations, by David Prévot. Closes: #715289.
  * Update German manpages translations, by Helge Kreutzmann. Closes: #717979.
  * kfreebsd/local-fbtl.diff: update to revision 5651 (from glibc-bsd).
    Workarounds a kfreebsd 9.0 to 10.1 ABI break. Closes: #740509.
  * patches/any/cvs-CVE-2014-6040.diff: new patch from upstream to fix crashes
    on invalid input in IBM gconv modules (CVE-2014-6040).
  * patches/any/cvs-check_pf-infinite-loop.diff: new patch from upstream to
    fix an infinite loop in infinite loop in check_pf.
  * patches/any/local-static-dlopen-search-path.diff: new patch to re-enable
    default search path for dlopen() in static libraries. Closes: #754813,
    #757941.

  [ Helmut Grohne ]
  * debian/patches/any/local-bootstrap-headers.diff: Update to handle
    stubs-$abi.h which is required for multilib bootstraps. Closes: #756473

glibc (2.19-11) unstable; urgency=medium

  [ Samuel Thibault ]
  * patches/hurd-i386/tg-thread-cancel.diff: Update patch against two other
    overzealous assertions.
  * patches/hurd-i386/submitted-bind_umask.diff: Split into cvs-bind_umask.diff
    and submitted-bind_umask2.diff as requested by upstream.
  * patches/hurd-i386/cvs-fork_ss_hang.diff: New patch which fixes some dash
    hangs.
  * patches/hurd-i386/cvs-libpthread_guardsize.diff: Add another guard size
    computation fix.  Fixes gcj's boehm-gc.  Closes: #760076.

  [ Aurelien Jarno ]
  * debian/control.in/main: Build-Depends on dpkg (>= 1.17.11) instead of
    dpkg-dev (>= 1.17.1).  Closes: #759495.
  * debian/debhelper.in/libc.{preinst,postinst,postrm}: correctly remove old
    conffiles /etc/ld.so.conf.d/i486-{kfreebsd-gnu.conf,gnu-gnu.conf,gnu.conf}.
    Closes: #759568.
  * Update Italian debconf translation, by Luca Monducci.  Closes: #760092.

  [ Petr Salinger ]
  * kfreebsd/local-fbtl.diff: update to revision 5520 (from glibc-bsd).
    Fixes x87 precision mode in newly created pthreads. Closes: #761175.
 -- Adam Conrad <adconrad at ubuntu.com>   Tue, 11 Nov 2014 20:35:28 -0700

** Changed in: glibc (Ubuntu)
       Status: New => Fix Released

** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2014-0475

** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2014-5119

** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2014-6040

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/1341569

Title:
  Shared libraries built with multiple tocs resolve plt to local
  function entry

Status in “glibc” package in Ubuntu:
  Fix Released
Status in “glibc” source package in Trusty:
  New
Status in “glibc” source package in Utopic:
  New

Bug description:
  -- Problem Description --
  An optimisation in glibc is supposed to make calls within a shared library go to the local entry points, when DT_PPC64_OPT does *not* have bit 2 (PPC64_OPT_MULTI_TOC) set.  See glibc/sysdeps/powerpc/powerpc64/dl-machine.h:ppc64_local_entry_offset.

  Libraries correctly have the bit set, but glibc *is* applying the
  local offset.

  When I look at the l_info in question, I see
  p ((struct link_map *) 0x3fffb7f925d8)->l_info
  $6 = {0x0, 0x3fffb7edaf58, 0x3fffb7edb028, 0x3fffb7edb018, 0x3fffb7edafc8, 
    0x3fffb7edafd8, 0x3fffb7edafe8, 0x3fffb7edb078, 0x3fffb7edb088, 
    0x3fffb7edb098, 0x3fffb7edaff8, 0x3fffb7edb008, 0x3fffb7edaf68, 
    0x3fffb7edaf78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3fffb7edb038, 0x0, 0x0, 
    0x3fffb7edb048, 0x0, 0x3fffb7edaf88, 0x3fffb7edafa8, 0x3fffb7edaf98, 
    0x3fffb7edafb8, 0x0, 0x0, 0x0, 0x0, 0x0,
  -------
    0x3fffb7edb058, 0x0, 0x0, 0x3fffb7edb0b8,
  -------
    0x3fffb7edb0a8, 0x0, 0x0, 0x0, 0x0, 0x3fffb7edb0d8, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3fffb7edb0c8, 0x0 <repeats 26 times>}

  Highlighted part is the DT_PPC64 area, with DT_PPC64_OPT being the
  last one.  It should be "0x2", but is overwritten with some other
  value due to DT_PPC64_NUM being one too small in the following from
  elf.h.

  /* PowerPC64 specific values for the Dyn d_tag field.  */
  #define DT_PPC64_GLINK  (DT_LOPROC + 0)
  #define DT_PPC64_OPD    (DT_LOPROC + 1)
  #define DT_PPC64_OPDSZ  (DT_LOPROC + 2)
  #define DT_PPC64_OPT    (DT_LOPROC + 3)
  #define DT_PPC64_NUM    3

  Fix applied for upstream bug https://sourceware.org/bugzilla/show_bug.cgi?id=17153
  git revision f6c44d47

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1341569/+subscriptions



More information about the foundations-bugs mailing list