Browse Source

Fix #403

af/merge-core
James Jackson-South 9 years ago
parent
commit
124b349500
  1. 3
      src/ImageSharp/Formats/Gif/GifDecoderCore.cs
  2. 13
      tests/ImageSharp.Tests/Formats/Gif/GifDecoderTests.cs
  3. 1
      tests/ImageSharp.Tests/TestImages.cs
  4. 3
      tests/Images/Input/Gif/issues/issue403_baddescriptorwidth.gif

3
src/ImageSharp/Formats/Gif/GifDecoderCore.cs

@ -443,7 +443,8 @@ namespace SixLabors.ImageSharp.Formats.Gif
var rgba = new Rgba32(0, 0, 0, 255);
for (int x = descriptor.Left; x < descriptor.Left + descriptor.Width; x++)
// #403 The left + width value can be larger than the image width
for (int x = descriptor.Left; x < descriptor.Left + descriptor.Width && x < rowSpan.Length; x++)
{
int index = indices[i];

13
tests/ImageSharp.Tests/Formats/Gif/GifDecoderTests.cs

@ -136,7 +136,7 @@ namespace SixLabors.ImageSharp.Tests
}
[Theory]
[WithFileCollection(nameof(BadAppExtFiles), PixelTypes)]
[WithFileCollection(nameof(BadAppExtFiles), PixelTypes.Rgba32)]
public void DecodeBadApplicationExtensionLength<TPixel>(TestImageProvider<TPixel> imageProvider)
where TPixel : struct, IPixel<TPixel>
{
@ -145,5 +145,16 @@ namespace SixLabors.ImageSharp.Tests
imageProvider.Utility.SaveTestOutputFile(image, "bmp");
}
}
[Theory]
[WithFile(TestImages.Gif.Issues.BadDescriptorWidth, PixelTypes.Rgba32)]
public void DecodeBadDescriptorDimensionsLength<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : struct, IPixel<TPixel>
{
using (Image<TPixel> image = provider.GetImage())
{
provider.Utility.SaveTestOutputFile(image, "bmp");
}
}
}
}

1
tests/ImageSharp.Tests/TestImages.cs

@ -161,6 +161,7 @@ namespace SixLabors.ImageSharp.Tests
{
public const string BadAppExtLength = "Gif/issues/issue405_badappextlength252.gif";
public const string BadAppExtLength_2 = "Gif/issues/issue405_badappextlength252-2.gif";
public const string BadDescriptorWidth = "Gif/issues/issue403_baddescriptorwidth.gif";
}
public static readonly string[] All = { Rings, Giphy, Cheers, Trans, Kumin };

3
tests/Images/Input/Gif/issues/issue403_baddescriptorwidth.gif

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c108091ffddd87178378656e37a7e975aa69be56376b9105adbbc14fe8d9a010
size 707660
Loading…
Cancel
Save