]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Sync makefs(8) ISO 9660 support with NetBSD:
authorMarius Strobl <marius@FreeBSD.org>
Wed, 10 Aug 2011 19:12:21 +0000 (19:12 +0000)
committerMarius Strobl <marius@FreeBSD.org>
Wed, 10 Aug 2011 19:12:21 +0000 (19:12 +0000)
commit852f933d9d31a633ae416f0c1e020c5c01a4e9cd
tree6523aec50aaa1496802d456fb2481464a0719587
parent1bf5a6cf3ce807b20dd2e360e2041078d4ace0e5
Sync makefs(8) ISO 9660 support with NetBSD:
o cd9960 -> cd9660
o Move inclusion of sys/endian.h from cd9660_eltorito.c to cd9660.h
  since actual user is not cd9660_eltorito.c but iso.h and
  cd9660_eltorito.h.

  Actually, include order/place of sys/endian.h doesn't matter on
  netbsd since it is always included by sys/types.h but it's not
  true on other system.  This should fix cross build breakage on
  freebsd introduced by rev. 1.16 of cd9660_eltorito.c.
  Problem reported and fix suggested on twitter.
o Fix fd leaks in error cases. Found by cppcheck.
o RRIP RE length should be 4, not 0
o Apply fixes for PR bin/44114 (makefs(8) -t cd9660 -o rockridge creates
  corrupted cd9660fs), iso9660_rrip.c part:
  - cd9660_rrip_finalize_node() should check rr_real_parent in node->parent,
    not in node itself in RRIP_PL case
  - cd9660_rrip_initialize_node() should update only node passed as arg
    so handle RRIP_PL in DOTDOT case

  Fixes malformed dotdot entries in deep (more than 8 level) directories
  moved into .rr_moved dir.

  Should be pulled up to netbsd-5.
  (no official ISO has such deep dirs, but cobalt restorecd is affected)

Reviewed by: mm
Approved by: re (kib)
Obtained from: NetBSD
MFC after: 3 days
usr.sbin/makefs/cd9660.c
usr.sbin/makefs/cd9660.h
usr.sbin/makefs/cd9660/cd9660_conversion.c
usr.sbin/makefs/cd9660/cd9660_eltorito.c
usr.sbin/makefs/cd9660/cd9660_write.c
usr.sbin/makefs/cd9660/iso9660_rrip.c