[haiku-bugs] Re: [Haiku] #8473: Concerns about ISO 9660 implementation

  • From: "scdbackup" <trac@xxxxxxxxxxxx>
  • Date: Mon, 16 Apr 2012 14:25:41 -0000

#8473: Concerns about ISO 9660 implementation
-------------------------------------+----------------------------
   Reporter:  scdbackup              |      Owner:  nobody
       Type:  enhancement            |     Status:  new
   Priority:  normal                 |  Milestone:  R1
  Component:  File Systems/ISO 9660  |    Version:  R1/Development
 Resolution:                         |   Keywords:
 Blocked By:                         |   Blocking:
Has a Patch:  0                      |   Platform:  All
-------------------------------------+----------------------------

Comment (by scdbackup):

 Probably high_root_block.iso.bz2 is too few of a challenge. It does
 not exercise diving into sub-directories.
 So i created two images which put more emphasis on tree traversal.
 https://dev.haiku-os.org/attachment/ticket/8473/reloc_dir.iso.bz2

 With Rock Ridge its tree looks like:

 {{{
 /deep_dir
 /deep_dir/1
 /deep_dir/1/2
 /deep_dir/1/2/3
 /deep_dir/1/2/3/4
 /deep_dir/1/2/3/4/5
 /deep_dir/1/2/3/4/5/6
 /deep_dir/1/2/3/4/5/6/7
 /deep_dir/1/2/3/4/5/6/7/8
 /deep_dir/1/2/3/4/5/6/7/8/9
 /deep_dir/1/2/3/4/5/6/7/8/9/10
 /deep_dir/1/2/3/4/5/6/7/8/9/10/File_10_1
 /deep_dir/1/2/3/4/5/6/7/8/9/10/File_10_2
 /deep_dir/1/2/3/4/5/6/7/8/9/File_9_1
 /deep_dir/1/2/3/4/5/6/7/8/9/File_9_2
 /deep_dir/1/2/3/4/5/6/7/8/File_8_1
 /deep_dir/1/2/3/4/5/6/7/8/File_8_2
 /deep_dir/1/2/3/4/5/6/7/File_7_1
 /deep_dir/1/2/3/4/5/6/7/File_7_2
 /file1
 /file2
 /this_is_session_3
 }}}

 Whereas without Rock Ridge:

 {{{
 /DEEP_DIR
 /DEEP_DIR/1
 /DEEP_DIR/1/2
 /DEEP_DIR/1/2/3
 /DEEP_DIR/1/2/3/4
 /DEEP_DIR/1/2/3/4/5
 /DEEP_DIR/1/2/3/4/5/6
 /DEEP_DIR/1/2/3/4/5/6/7
 /FILE1.;1
 /FILE2.;1
 /THIS_IS_SESSION_3.;1
 /7
 /7/8
 /7/8/9
 /7/8/9/10
 /7/8/9/10/FILE_10_1.;1
 /7/8/9/10/FILE_10_2.;1
 /7/8/9/FILE_9_1.;1
 /7/8/9/FILE_9_2.;1
 /7/8/FILE_8_1.;1
 /7/8/FILE_8_2.;1
 /7/FILE_7_1.;1
 /7/FILE_7_2.;1
 }}}

 This difference is called "deep directory relocation" and is due to the
 prescription of ECMA-119 that no path shall have more than 8 name
 components.

 Deep directory relocation has a bad reputation for being bug prone.
 So it often is left out. Question is whether the ISO 9660 reader relies
 on the assumption that no paths deeper than 8 can occur.

 This can be exercised by
 https://dev.haiku-os.org/attachment/ticket/8473/nonreloc_deep.iso.bz2
 which bears as ISO 9660 tree:

 {{{
 /DEEPER_DIR
 /DEEPER_DIR/1
 /DEEPER_DIR/1/.SOME_NAME;1
 /DEEPER_DIR/1/2
 /DEEPER_DIR/1/2/3
 /DEEPER_DIR/1/2/3/4
 /DEEPER_DIR/1/2/3/4/5
 /DEEPER_DIR/1/2/3/4/5/6
 /DEEPER_DIR/1/2/3/4/5/6/7
 /DEEPER_DIR/1/2/3/4/5/6/7/8
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/FILE_18_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/FILE_18_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/FILE_17_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/FILE_17_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/FILE_16_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/FILE_16_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/FILE_15_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/FILE_15_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/FILE_14_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/14/FILE_14_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/FILE_13_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/13/FILE_13_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/FILE_12_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/12/FILE_12_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/FILE_11_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/11/FILE_11_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/FILE_10_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/10/FILE_10_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/FILE_9_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/9/FILE_9_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/FILE_8_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/8/FILE_8_2.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/FILE_7_1.;1
 /DEEPER_DIR/1/2/3/4/5/6/7/FILE_7_2.;1
 /DEEPER_DIR/1/SOFTLINK.;1
 /FILE1.;1
 /FILE2.;1
 /THIS_IS_SESSION_3.;1
 }}}

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/8473#comment:8>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: