From ef13cdc3b6c749057cb9ab8f1b7b4b5e75908178 Mon Sep 17 00:00:00 2001 From: Anna Date: Fri, 5 Jul 2024 17:25:21 -0400 Subject: [PATCH] fix: check for null string --- client/MiniPenumbra/VfxReplacer.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/client/MiniPenumbra/VfxReplacer.cs b/client/MiniPenumbra/VfxReplacer.cs index 60f2785..109ce8c 100644 --- a/client/MiniPenumbra/VfxReplacer.cs +++ b/client/MiniPenumbra/VfxReplacer.cs @@ -27,6 +27,15 @@ internal unsafe class VfxReplacer : IDisposable { } private byte ReadSqPackDetour(void* resourceManager, SeFileDescriptor* fileDescriptor, int priority, bool isSync) { + try { + return this.ReadSqPackDetourInner(resourceManager, fileDescriptor, priority, isSync); + } catch (Exception ex) { + Plugin.Log.Error(ex, "Error in ReadSqPackDetour"); + return this._readSqPackHook.Original(resourceManager, fileDescriptor, priority, isSync); + } + } + + private byte ReadSqPackDetourInner(void* resourceManager, SeFileDescriptor* fileDescriptor, int priority, bool isSync) { if (!this.Plugin.Config.RemoveGlow) { goto Original; } @@ -35,7 +44,12 @@ internal unsafe class VfxReplacer : IDisposable { goto Original; } - var path = fileDescriptor->ResourceHandle->FileName.ToString(); + var fileName = fileDescriptor->ResourceHandle->FileName; + if (fileName.BasicString.First == null) { + goto Original; + } + + var path = fileName.ToString(); var index = Array.IndexOf(Messages.VfxPaths, path); if (index == -1) { goto Original;