Return null on invalid resize bounds (#2054)

Fixes #2012
This commit is contained in:
Matthew Leibowitz 2022-05-26 20:38:28 +08:00 коммит произвёл GitHub
Родитель db8723935a
Коммит 59ee16f809
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 23 добавлений и 0 удалений

Просмотреть файл

@ -786,6 +786,9 @@ namespace SkiaSharp
public SKBitmap Resize (SKImageInfo info, SKFilterQuality quality)
{
if (info.IsEmpty)
return null;
var dst = new SKBitmap (info);
if (ScalePixels (dst, quality)) {
return dst;

Просмотреть файл

@ -428,6 +428,26 @@ namespace SkiaSharp.Tests
Assert.Equal(SKColors.Blue, dstBmp.GetPixel(75, 75));
}
[SkippableTheory]
[InlineData(-1, -1)]
[InlineData(0, 0)]
[InlineData(-1, 10)]
[InlineData(10, -1)]
[InlineData(0, 10)]
[InlineData(10, 0)]
public void BitmapDoesNotCrashOnInvalidResizes(int width, int hight)
{
using var bitmap = CreateTestBitmap();
var newInfo = bitmap.Info;
newInfo.Width = width;
newInfo.Height = hight;
using var newBitmap = bitmap.Resize(newInfo, SKFilterQuality.High);
Assert.Null(newBitmap);
}
[SkippableFact]
public void CanScalePixels()
{