[Bug 190655] New: cd9660 cannot mount ISO 9660 multi-session above 4 GiB

bz-noreply at freebsd.org bz-noreply at freebsd.org
Thu Jun 5 11:44:30 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=190655

            Bug ID: 190655
           Summary: cd9660 cannot mount ISO 9660 multi-session above 4 GiB
           Product: Base System
           Version: 8.4-STABLE
          Hardware: Any
                OS: Any
            Status: Needs Triage
          Severity: Affects Some People
          Priority: Normal
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: scdbackup at gmx.net

This bug shows up when mounting a multi-session ISO 9660 medium
which has its directory tree above 4 GiB. (Not possible with CD,
but with DVD or BD.)

Obtain und uncompress
  http://scdbackup.webframe.org/large.iso.bz2
(Caution: 4470 bytes inflate to 4+ GiB.)

Then mount it
  # mdconfig -a -t vnode -f large.iso
  md1
  # mount_cd9660 /dev/md1 /mnt
  # find /mnt
  /mnt
  # ls -ld /mnt
  -r-xr-xr-x  1 root  wheel  0 Jan  1  1970 /mnt

The reason is that the byte address of the ISO 9660 Directory Records
is encoded in ino_t, which on FreeBSD is 32 bit. If a record is stored
above 4 GiB - 1, then rollover happens and it cannot be found.

By webinterface i believe to see it in current FreeBSD source, too.

The rollover in function isodirino():
  http://fxr.watson.org/fxr/source/fs/cd9660/cd9660_node.c?v=FREEBSD10#L319

The reverse computation of the directory block address
  http://fxr.watson.org/fxr/source/fs/cd9660/cd9660_vfsops.c?v=FREEBSD10#L773

The reverse computation of the byte address of the directory
record of a symbolic link target
  http://fxr.watson.org/fxr/source/fs/cd9660/cd9660_vnops.c?v=FREEBSD10#L692

And the reason why the NetBSD remedy will not help FreeBSD
  http://fxr.watson.org/fxr/source/sys/_types.h?v=FREEBSD10;im=3#L46
At least on my olde FreeBSD-8.4, sizeof(ino_t) is really 4.

See also
  http://lists.freebsd.org/pipermail/freebsd-hackers/2014-May/045139.html

For my diagnosis and solution which cannot be ported to FreeBSD
  http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=48787

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list