From 6e0063cd1fdfeb20a6f89e92beb0c2b81c6dad7b Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 29 Jul 2025 11:48:28 -0400 Subject: [PATCH] More graceful handling of MS-CAB sets --- BinaryObjectScanner/FileType/MicrosoftCAB.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/BinaryObjectScanner/FileType/MicrosoftCAB.cs b/BinaryObjectScanner/FileType/MicrosoftCAB.cs index c939257c..8f14b9d4 100644 --- a/BinaryObjectScanner/FileType/MicrosoftCAB.cs +++ b/BinaryObjectScanner/FileType/MicrosoftCAB.cs @@ -33,8 +33,14 @@ namespace BinaryObjectScanner.FileType #if NET20 || NET35 || !WINX86 // TODO: Remove once Serialization is updated - // Get a wrapper for the set - var current = OpenSet(file); + // Get a wrapper for the set, if possible + SabreTools.Serialization.Wrappers.MicrosoftCabinet? current; + if (File.Exists(file)) + current = OpenSet(file); + else + current = SabreTools.Serialization.Wrappers.MicrosoftCabinet.Create(stream); + + // Validate the header exists if (current?.Model?.Header == null) return false;