Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Dec 2024 18:37:46 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 283238] makefs: cd9660 produces conflicting short paths
Message-ID:  <bug-283238-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D283238

            Bug ID: 283238
           Summary: makefs: cd9660 produces conflicting short paths
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: emaste@freebsd.org

Rock ridge extensions add support for longer path and directory names than
vanilla iso9660, but iso9660 data structures still need to be populated with
unique, shortened versions of the longer names.

makefs has cd9660_handle_collisions() to find conflicting entries which uses
cd9660_rename_filename() to choose a new name when a conflict is found. Thi=
s is
called for both file and directory names (and chooses a new name to resolve=
 the
conflict for both file and directory names) but the emitted data still has a
conflict.

Demonstration:
```
$ mkdir -p test9660/this-is-a-directory-with-a-long-common-prefix-1
test9660/this-is-a-directory-with-a-long-common-prefix-2
$ makefs -t cd9660 -o rockridge test.iso test9660/
$ isoinfo -p -i test.iso
Setting input-charset to 'UTF-8' from locale.
Path table starts at block 18, size 86
   1:    1 14=20
   2:    1 15 THIS_IS_A_DIRECTORY_WITH_A_LON
   3:    1 16 THIS_IS_A_DIRECTORY_WITH_A_LON
```

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-283238-227>