The current libcdio parses Rock Ridge CE records but does not process them.

This creates issues when trying to handle an ISO-9660 image like Debian's 'firmware-11.6.0-amd64-netinst.iso', which can be downloaded from https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/amd64/iso-cd/, since this image has some of the Rock Ridge symbolic links for the entries found in the /firmware/ directory defined in a CE record (such as '/firmware/firmware-ath9k-htc_1.4.0-106-gc583009+dfsg1-1_all.deb').

This patch series adds CE record processing and also applies some clean up to the current Rock Ridge code.

Note: As I found out after wasting a couple hours figuring out why one of the CE SL entries was not processed as expected, you really don't want to feed a char based array to from_733(), as the *signed* char values will be sign-extended, and you may end up with a 0xffffffc4 value instead of the expected 0x000000c4 when processing a 0xc4000000000000c4 entry!

Regards,

/Pete

Pete Batard (2):
  Clean up rock.h and fix the use of signed chars in iso_su_ce_s
  Add processing of Rock Ridge CE records

 include/cdio/rock.h | 18 +++++------
 lib/iso9660/rock.c  | 79 ++++++++++++++++++++++++++-------------------
 2 files changed, 54 insertions(+), 43 deletions(-)

--
2.39.1.windows.1


Reply via email to