diff --git a/src/ImageSharp/Formats/Png/Chunks/FrameControl.cs b/src/ImageSharp/Formats/Png/Chunks/FrameControl.cs
index 91f79c8154..7288df8a0e 100644
--- a/src/ImageSharp/Formats/Png/Chunks/FrameControl.cs
+++ b/src/ImageSharp/Formats/Png/Chunks/FrameControl.cs
@@ -147,7 +147,13 @@ internal readonly struct FrameControl
/// The data to parse.
/// The parsed fcTL.
public static FrameControl Parse(ReadOnlySpan data)
- => new(
+ {
+ if (data.Length < Size)
+ {
+ PngThrowHelper.ThrowInvalidImageContentException("The Frame Control Chunk does not contain enough data!");
+ }
+
+ return new(
sequenceNumber: BinaryPrimitives.ReadUInt32BigEndian(data[..4]),
width: BinaryPrimitives.ReadUInt32BigEndian(data[4..8]),
height: BinaryPrimitives.ReadUInt32BigEndian(data[8..12]),
@@ -157,4 +163,5 @@ internal readonly struct FrameControl
delayDenominator: BinaryPrimitives.ReadUInt16BigEndian(data[22..24]),
disposalMode: (FrameDisposalMode)(data[24] + 1),
blendMode: (FrameBlendMode)data[25]);
+ }
}