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