Labels: catch panics — never break disc scan

This commit is contained in:
MattJackson
2026-04-07 20:36:26 -07:00
parent 2bea69c7d9
commit 976aeb4848
+4 -1
View File
@@ -78,8 +78,11 @@ const PARSERS: &[(&str, DetectFn, ParseFn)] = &[
]; ];
/// Search disc for config files, extract labels, apply to streams. /// Search disc for config files, extract labels, apply to streams.
/// This is 100% optional — if anything fails, streams are untouched.
pub fn apply(session: &mut DriveSession, udf: &UdfFs, titles: &mut [Title]) { pub fn apply(session: &mut DriveSession, udf: &UdfFs, titles: &mut [Title]) {
let labels = extract(session, udf); let labels = std::panic::catch_unwind(std::panic::AssertUnwindSafe(|| {
extract(session, udf)
})).unwrap_or_default();
if labels.is_empty() { return; } if labels.is_empty() { return; }
for title in titles.iter_mut() { for title in titles.iter_mut() {