From c02c8fe5a96ad535771074f054fe2c1ffcd99d9b Mon Sep 17 00:00:00 2001 From: Johannes Bildstein Date: Thu, 23 Mar 2017 17:38:54 +0100 Subject: [PATCH] don't allow reading negative length strings --- .../MetaData/Profiles/ICC/IccDataReader.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs b/src/ImageSharp/MetaData/Profiles/ICC/IccDataReader.cs index fcc5ff705..8076c11a3 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); }