Ticket #96 (closed bug: fixed)

Opened 2 years ago

Last modified 2 years ago

libisofs breaks ECMA specs (write records across block boundaries)

Reported by: brasero Owned by: pygi
Priority: major Milestone: libisofs-0.2.8
Component: libisofs [old] Version: TRUNK
Keywords: Cc:

Description

when writing the contents of a directory, if the size of all directory records is over the size of a block (and then crosses block boundaries) libisofs writes directory records across block boundaries which breaks ECMA standard (paragrah 6.8.1.1): "Each Directory Record shall end in the Logical Sector in which it begins. Unused byte positions after the last Directory Record in a Logical Sector shall be set to (00)."

Attachments

libisofs_r720_no96.diff (3.2 kB) - added by suriyan 2 years ago.
#96 patch for libisofs r720

Change History

Changed 2 years ago by pygi

  • status changed from new to assigned
  • version set to TRUNK
  • milestone set to libisofs-0.2.8

Changed 2 years ago by pygi

Should be fixed with revision 721. Please test and report.

Changed 2 years ago by suriyan

I had tested but it cause assertion and segfault, see below :-

#./iso testdata/ test.iso
now in state 2, curblock=15
now in state 4, curblock=16
now in state 5, curblock=17
now in state 6, curblock=18
now in state 9, curblock=19
start=0, end=-1, dirlist_len=2
iso: libisofs/ecma119.c:623: write_dirs: Assertion `end < t->dirlist_len' failed.
Aborted (core dumped)

Note: testdata directory contain a few thousand of JPG files.

Changed 2 years ago by pygi

Thank you for your report. Do you have the same problem with revisions prior to 721?

Changed 2 years ago by suriyan

No, I had tested with revision 720, it's no problem.

Changed 2 years ago by suriyan

#96 patch for libisofs r720

Changed 2 years ago by suriyan

Attachment is my fixed for #96, but may not good enough. It just short time hacking into libisofs.

Changed 2 years ago by pygi

Interesting. Thanks for the patch. I'll be testing it over the weekend and if all is fine commit. I hope you've given it some testing as well :)

Changed 2 years ago by suriyan

I had tested to create ISO file size about 1 GB from a few thousand JPG files. It's no problem. Output ISO file can be mount on both Linux and Win32 (I'm using DAEMON Tools)

Changed 2 years ago by pygi

The fix is commited, and it should work now. I'll use this chance to call for more testing, and if no bugs arise I'll close ticket in a few days. Suriyan, please shoot me a mail.

Changed 2 years ago by pygi

  • status changed from assigned to closed
  • resolution set to fixed

Bug smashed!

Note: See TracTickets for help on using tickets.