diff --git a/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs b/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs
index fcc5ff7058..8076c11a37 100644
--- a/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs
+++ b/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs
@@ -131,6 +131,12 @@ namespace ImageSharp
/// The value as a string
public string ReadAsciiString(int length)
{
+ if (length == 0)
+ {
+ return string.Empty;
+ }
+
+ Guard.MustBeGreaterThan(length, 0, nameof(length));
string value = AsciiEncoding.GetString(this.data, this.AddIndex(length), length);
// remove data after (potential) null terminator
@@ -150,6 +156,13 @@ namespace ImageSharp
/// The value as a string
public string ReadUnicodeString(int length)
{
+ if (length == 0)
+ {
+ return string.Empty;
+ }
+
+ Guard.MustBeGreaterThan(length, 0, nameof(length));
+
return Encoding.BigEndianUnicode.GetString(this.data, this.AddIndex(length), length);
}