[Bug 2088460] [NEW] valgrind falsely reports "Invalid read" on ppc64el

Julian Andres Klode 2088460 at bugs.launchpad.net
Mon Nov 18 14:15:38 UTC 2024


Public bug reported:

valgrind has a problem on ppc64el, similar to when stack clash
protection is enabled on armhf in that a 32 KB buffer on the stack
causes it to generate incorrect "Invalid read of size 8" (16 in Debian):

442s -==46196== Invalid read of size 8
442s -==46196==    at 0x4CDF9B0: ExtractTar::Go(pkgDirStream&) (in /usr/lib/powerpc64le-linux-gnu/libapt-pkg.so.6.0.0)
442s -==46196==    by 0x4D0C823: debDebFile::MemControlExtract::Read(debDebFile&) (in /usr/lib/powerpc64le-linux-gnu/libapt-pkg.so.6.0.0)
442s -==46196==    by 0x1938EB: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x19B6FF: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x1894D7: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x19AA5B: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x19B20F: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x19549F: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x4CCDFA7: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/powerpc64le-linux-gnu/libapt-pkg.so.6.0.0)
442s -==46196==    by 0x491FD4F: DispatchCommandLine(CommandLine&, std::vector<CommandLine::Dispatch, std::allocator<CommandLine::Dispatch> > const&) (in /usr/lib/powerpc64le-linux-gnu/libapt-private.so.0.0.0)
442s -==46196==    by 0x18762F: ??? (in /usr/bin/apt-ftparchive)
442s -==46196==    by 0x5356C43: (below main) (libc_start_call_main.h:58)
442s -==46196==  Address 0x1fff00d820 is on thread 1's stack
442s -==46196==  336 bytes below stack pointer


This was fixed in APT in

https://salsa.debian.org/apt-
team/apt/-/commit/a5d029ea6474db4f7edf8e9b6d73afd2ae583250

But we have since reached the conclusion in Debian to remove valgrind
for armhf and ppc64el, hence the workaround has been reverted and the
test suite changed to depend on valgrind-if-available.

For Ubuntu, armhf is not affected, and we don't need to patch out the
valgrind binary itself, but we can just drop ppc64el from the valgrind-
if-available architecture list.

** Affects: valgrind (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: valgrind-if-available (Ubuntu)
     Importance: Undecided
         Status: Fix Committed

** Also affects: valgrind-if-available (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: valgrind-if-available (Ubuntu)
       Status: New => Fix Committed

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

Title:
  valgrind falsely reports "Invalid read" on ppc64el

Status in valgrind package in Ubuntu:
  New
Status in valgrind-if-available package in Ubuntu:
  Fix Committed

Bug description:
  valgrind has a problem on ppc64el, similar to when stack clash
  protection is enabled on armhf in that a 32 KB buffer on the stack
  causes it to generate incorrect "Invalid read of size 8" (16 in
  Debian):

  442s -==46196== Invalid read of size 8
  442s -==46196==    at 0x4CDF9B0: ExtractTar::Go(pkgDirStream&) (in /usr/lib/powerpc64le-linux-gnu/libapt-pkg.so.6.0.0)
  442s -==46196==    by 0x4D0C823: debDebFile::MemControlExtract::Read(debDebFile&) (in /usr/lib/powerpc64le-linux-gnu/libapt-pkg.so.6.0.0)
  442s -==46196==    by 0x1938EB: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x19B6FF: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x1894D7: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x19AA5B: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x19B20F: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x19549F: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x4CCDFA7: CommandLine::DispatchArg(CommandLine::Dispatch const*, bool) (in /usr/lib/powerpc64le-linux-gnu/libapt-pkg.so.6.0.0)
  442s -==46196==    by 0x491FD4F: DispatchCommandLine(CommandLine&, std::vector<CommandLine::Dispatch, std::allocator<CommandLine::Dispatch> > const&) (in /usr/lib/powerpc64le-linux-gnu/libapt-private.so.0.0.0)
  442s -==46196==    by 0x18762F: ??? (in /usr/bin/apt-ftparchive)
  442s -==46196==    by 0x5356C43: (below main) (libc_start_call_main.h:58)
  442s -==46196==  Address 0x1fff00d820 is on thread 1's stack
  442s -==46196==  336 bytes below stack pointer

  
  This was fixed in APT in

  https://salsa.debian.org/apt-
  team/apt/-/commit/a5d029ea6474db4f7edf8e9b6d73afd2ae583250

  But we have since reached the conclusion in Debian to remove valgrind
  for armhf and ppc64el, hence the workaround has been reverted and the
  test suite changed to depend on valgrind-if-available.

  For Ubuntu, armhf is not affected, and we don't need to patch out the
  valgrind binary itself, but we can just drop ppc64el from the
  valgrind-if-available architecture list.

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




More information about the foundations-bugs mailing list