[Bug 1828282] Re: busybox 1.30.1 crashes bzip2 test case with glibc 2.29, always

Bug Watch Updater 1828282 at bugs.launchpad.net
Thu May 23 11:45:29 UTC 2019


Launchpad has imported 1 comments from the remote bug at
https://bugs.busybox.net/show_bug.cgi?id=11896.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2019-05-23T10:56:10+00:00 Dimitri John Ledkov wrote:

Originally reported at
https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/1828282 with
initial suspicion at glibc, however later diagnosed to be a busybox
issue.

The full analysis is at
https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/1828282/comments/1

In short bz2_issue_11.bz2 test case always fails on s390x since bunzip2
depends on uninitialised values, which happen to always be "wrong" on
s390x.

This is observable with valgrind too:

# valgrind busybox bunzip2 <bz2_issue_11.bz2 2>&1 >/dev/null
==40965== Memcheck, a memory error detector
==40965== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==40965== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==40965== Command: busybox bunzip2
==40965== 
==40965== Conditional jump or move depends on uninitialised value(s)
==40965==    at 0x17C1D4: get_next_block (decompress_bunzip2.c:393)
==40965==    by 0x17C37F: get_next_block (decompress_bunzip2.c:419)
==40965== 
bunzip2: bunzip error -5
==40965== 
==40965== HEAP SUMMARY:
==40965==     in use at exit: 0 bytes in 0 blocks
==40965==   total heap usage: 7 allocs, 7 frees, 4,539,696 bytes allocated
==40965== 
==40965== All heap blocks were freed -- no leaks are possible
==40965== 
==40965== For counts of detected and suppressed errors, rerun with: -v
==40965== Use --track-origins=yes to see where uninitialised values come from
==40965== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)


For the time being we are skipping the bz2_issue_11.bz2 test case in ubuntu.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/1828282/comments/6


** Changed in: busybox
       Status: Unknown => Confirmed

** Changed in: busybox
   Importance: Unknown => Medium

-- 
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/1828282

Title:
  busybox 1.30.1 crashes bzip2 test case with glibc 2.29, always

Status in BusyBox:
  Confirmed
Status in Ubuntu on IBM z Systems:
  Invalid
Status in busybox package in Ubuntu:
  Triaged
Status in glibc package in Ubuntu:
  Invalid

Bug description:
  Steps to reproduce:

  1) Get a system with glibc 2.29

  2) Get busybox 1.30.1 installed (e.g. eoan, or download busybox
  package from
  https://launchpad.net/ubuntu/+source/busybox/1:1.30.1-4ubuntu3/+build/16724246
  and use $ apt install ./busybox*.deb to install)

  3) Get busybox 1.30.1 source code, e.g. $ pull-lp-source busybox
  Or like download the orig tarball from https://launchpad.net/ubuntu/+source/busybox/1:1.30.1-4ubuntu3

  4) Run the bunzip2 testsuite:

  cd testsuite/
  ECHO=/bin/echo ./bunzip2.tests

  Observe that with glibc 2.29 the:
  PASS: bunzip2: bz2_issue_11.bz2 corrupted example

  is XFAIL or FAIL, on s390x, whereas it passes on all other arches.

  If one uses glibc 2.28 (ie. use Cosmic, and install busybox & use
  matching test suite from eoan using links above) one can observe that
  the testcase always passes.

  We suspect this might be a glibc 2.29 s390x-specific setjmp
  regression. Probably due to setjmp usage in
  ./archival/libarchive/decompress_bunzip2.c

  The tests were done on a z13 machine.

To manage notifications about this bug go to:
https://bugs.launchpad.net/busybox/+bug/1828282/+subscriptions



More information about the foundations-bugs mailing list