From 6b07484e725ed09fabe0b123425cb31162506447 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Thu, 4 Dec 2025 15:37:51 -0600 Subject: [PATCH] fixes --- .../Streaming/Graphics/Script/ScriptElement.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/ErsatzTV.Infrastructure/Streaming/Graphics/Script/ScriptElement.cs b/ErsatzTV.Infrastructure/Streaming/Graphics/Script/ScriptElement.cs index a79b68cc8..a93009d71 100644 --- a/ErsatzTV.Infrastructure/Streaming/Graphics/Script/ScriptElement.cs +++ b/ErsatzTV.Infrastructure/Streaming/Graphics/Script/ScriptElement.cs @@ -220,7 +220,7 @@ public class ScriptElement(ScriptGraphicsElement scriptElement, ILogger logger) if (magic != EtvGraphicsMagic || version != 1) { - // TODO: better error handling? + logger.LogWarning("Invalid graphics packet received: magic {Magic}, version {Version}", magic, version); return false; } @@ -243,11 +243,13 @@ public class ScriptElement(ScriptGraphicsElement scriptElement, ILogger logger) } break; case (byte)ScriptPayloadType.Repeat: - uint repeatFrames = BinaryPrimitives.ReadUInt32BigEndian(buffer.First.Span); - _repeatCount = (int)repeatFrames; + Span repeatBytes = stackalloc byte[4]; + buffer.Slice(0, 4).CopyTo(repeatBytes); + _repeatCount = (int)BinaryPrimitives.ReadUInt32BigEndian(repeatBytes); break; case (byte)ScriptPayloadType.Rectangles: // TODO: support rectangles + logger.LogWarning("Unsupported graphics packet type: {Type}", type); success = false; break; } @@ -261,6 +263,11 @@ public class ScriptElement(ScriptGraphicsElement scriptElement, ILogger logger) { _canvasBitmap.Erase(SKColors.Transparent); } + else + { + logger.LogWarning("Unexpected zero-length payload for type {Type}", type); + success = false; + } } return success;