[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libcdio-devel] [PATCH 2/2] Add processing of Rock Ridge CE records
From: |
Thomas Schmitt |
Subject: |
Re: [Libcdio-devel] [PATCH 2/2] Add processing of Rock Ridge CE records |
Date: |
Wed, 01 Mar 2023 00:12:06 +0100 |
Hi,
it comes to me that interpretation of CE needs a safety net against
endless loops.
I recently participated as instigator and reviewer in the implementation
of such a loop breaker in GRUB. It was committed together with a bug fix
as
https://git.savannah.gnu.org/cgit/grub.git/commit/?id=2a96eab759aff74c2a214da66eefeb1e770c0820
(actually submitted by Lidong Chen, not by me).
Adapted to libcdio this would mean to have a local variable "ce_counter",
a limit (GRUB and libisofs have 100000, Linux has 31), and a test
in the SIG('C','E')-case which bails out if the incremented ce_counter
exceeds the limit.
I demonstrated the CE-loop problem by a killer ISO which is now part of
GRUB's test suite:
https://git.savannah.gnu.org/cgit/grub.git/tree/tests/iso9660_ce_loop.iso.gz
(897 bytes which inflate to 128 KiB of iso9660_ce_loop.iso)
Have a nice day :)
Thomas