[Bug 130376] crash while checking MD5sums on include list

Colin Watson cjwatson at canonical.com
Sat Aug 4 16:14:01 BST 2007


Public bug reported:

The build machine behind cdimage.ubuntu.com was recently upgraded to
edgy/amd64. While testing the new system, I found that mkisofs
segfaulted while trying to build Ubuntu alternate install CD images.
Investigation showed that this is due to incorrect linked list code used
while constructing the JTE include and exclude lists for jigdo file
generation. This is unlikely to affect normal users of mkisofs, but
affects those trying to build Debian or Ubuntu CD images. I would like
to propose this for a stable release update in order to fix Ubuntu's
production CD image building system without the need for a local build
of mkisofs.

This is also Debian bug 411873, and I've sent a patch there to fix the
linked list generation. I have applied this patch in cdrkit
9:1.1.6-1ubuntu1 in gutsy. Corresponding patches against edgy and feisty
are attached here.

Since the crash is rather dependent on precise details of stack layout,
it's not necessarily easy to reproduce directly. However, valgrind picks
it up with no trouble. Steps to reproduce on an edgy system with mkisofs
and valgrind installed (for feisty and gutsy, substitute "genisoimage"
for "mkisofs" throughout:

  mkdir -p /tmp/mkisofs-test
  cd /tmp/mkisofs-test
  mkdir -p t/pool
  dd if=/dev/zero of=t/file bs=1024 count=100
  touch md5
  valgrind mkisofs -o t.iso -jigdo-jigdo t.jigdo -jigdo-template t.template -md5-list md5 -jigdo-force-md5 /pool/ t

The output will contain an error similar to the following (exact numbers
are unimportant):

  ==8624== Conditional jump or move depends on uninitialised value(s)
  ==8624==    at 0x42BB38: (within /usr/bin/mkisofs)
  ==8624==    by 0x40E7D6: (within /usr/bin/mkisofs)
  ==8624==    by 0x40EBD9: (within /usr/bin/mkisofs)
  ==8624==    by 0x40460E: main (in /usr/bin/mkisofs)
  ==8624==    by 0x4C570C3: (below main) (in /lib/libc-2.4.so)

The patch affects only JTE code, so (barring regressions due simply to
rebuilding cdrtools), other uses of mkisofs will not be affected.
Typical uses of mkisofs to build simple ISO images from a tree of files
on disk do not use JTE; it is an advanced feature for use by
distributors of heavily-downloaded ISO images.

** Affects: cdrkit (Ubuntu)
     Importance: High
         Status: Fix Released

** Affects: cdrtools (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: cdrkit (Ubuntu Edgy)
     Importance: Undecided
         Status: Invalid

** Affects: cdrtools (Ubuntu Edgy)
     Importance: High
         Status: New

** Affects: cdrkit (Ubuntu Feisty)
     Importance: High
         Status: New

** Affects: cdrtools (Ubuntu Feisty)
     Importance: Undecided
         Status: Invalid

** Affects: cdrkit (Ubuntu Gutsy)
     Importance: High
         Status: Fix Released

** Affects: cdrtools (Ubuntu Gutsy)
     Importance: Undecided
         Status: Invalid

** Affects: cdrkit (Debian)
     Importance: Unknown
         Status: Unknown

** Also affects: cdrkit (Ubuntu)
   Importance: Undecided
       Status: New

** Bug watch added: Debian Bug tracker #411873
   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411873

** Also affects: cdrkit (Debian) via
   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411873
   Importance: Unknown
       Status: Unknown

** Changed in: cdrtools (Ubuntu Feisty)
       Status: New => Invalid

** Changed in: cdrtools (Ubuntu Gutsy)
       Status: New => Invalid

** Changed in: cdrkit (Ubuntu Edgy)
       Status: New => Invalid

** Description changed:

  The build machine behind cdimage.ubuntu.com was recently upgraded to
  edgy/amd64. While testing the new system, I found that mkisofs
  segfaulted while trying to build Ubuntu alternate install CD images.
  Investigation showed that this is due to incorrect linked list code used
  while constructing the JTE include and exclude lists for jigdo file
  generation. This is unlikely to affect normal users of mkisofs, but
  affects those trying to build Debian or Ubuntu CD images.
  
- This is also Debian bug 411873, and I've sent a patch there.
+ This is also Debian bug 411873, and I've sent a patch there to fix the
+ linked list generation. I have applied this patch in cdrkit
+ 9:1.1.6-1ubuntu1 in gutsy. Corresponding patches against edgy and feisty
+ are attached here.
  
  Since the crash is rather dependent on precise details of stack layout,
  it's not necessarily easy to reproduce directly. However, valgrind picks
  it up with no trouble. Steps to reproduce on an edgy system with mkisofs
  and valgrind installed (for feisty and gutsy, substitute "genisoimage"
  for "mkisofs" throughout:
  
    mkdir -p /tmp/mkisofs-test
    cd /tmp/mkisofs-test
    mkdir -p t/pool
    dd if=/dev/zero of=t/file bs=1024 count=100
    touch md5
    valgrind mkisofs -o t.iso -jigdo-jigdo t.jigdo -jigdo-template t.template -md5-list md5 -jigdo-force-md5 /pool/ t
  
  The output will contain an error similar to the following (exact numbers
  are unimportant):
  
    ==8624== Conditional jump or move depends on uninitialised value(s)
    ==8624==    at 0x42BB38: (within /usr/bin/mkisofs)
    ==8624==    by 0x40E7D6: (within /usr/bin/mkisofs)
    ==8624==    by 0x40EBD9: (within /usr/bin/mkisofs)
    ==8624==    by 0x40460E: main (in /usr/bin/mkisofs)
    ==8624==    by 0x4C570C3: (below main) (in /lib/libc-2.4.so)
  
  The patch affects only JTE code, so (barring regressions due simply to
  rebuilding cdrtools), other uses of mkisofs will not be affected.
  Typical uses of mkisofs to build simple ISO images from a tree of files
  on disk do not use JTE; it is an advanced feature for use by
  distributors of heavily-downloaded ISO images.

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

-- 
crash while checking MD5sums on jigdo include list
https://bugs.launchpad.net/bugs/130376
You received this bug notification because you are a member of Ubuntu
Burning Team, which is a bug contact for cdrkit in ubuntu.



More information about the Ubuntu-burning mailing list