SkiaSharp icon indicating copy to clipboard operation
SkiaSharp copied to clipboard

SKBitmap.Decode access violation w/ Span<bytes> and SKImageInfo

Open mlptownsend opened this issue 2 years ago • 3 comments

Description

I upgraded from 2.88.1 to 2.88.6 today and discovered a process teardown crash with SKBitmap.Decode when you provide it an SKImageInfo. Create a new console app, in this case I'm targetting .net 6. Add the SkiaSharp 2.88.6 nuget reference. And the application will die on bitmapNoLongerWorks. image

If you go back to 2.88.5 or earlier, it will continue with bitmapNoLongerWorks as null. image

The console output should be:

Opaque
Bgra8888
256
256
True

This tripped some unit tests running on both windows and ubuntu, so it'll likely fail on Linux too.

Code

var base64 = "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\r\n";
ReadOnlySpan<byte> bytes = System.Convert.FromBase64String(base64);
var bitmapWorks = SkiaSharp.SKBitmap.Decode(bytes);
Console.WriteLine(bitmapWorks.Info.AlphaType);
Console.WriteLine(bitmapWorks.Info.ColorType);
Console.WriteLine(bitmapWorks.Info.Width);
Console.WriteLine(bitmapWorks.Info.Height);
var bitmapAlsoWorks = SkiaSharp.SKBitmap.Decode(bytes, new SkiaSharp.SKImageInfo() {
	AlphaType = SkiaSharp.SKAlphaType.Premul,
	ColorType = SkiaSharp.SKColorType.Bgra8888,
	Width = bitmapWorks.Info.Width,
	Height = bitmapWorks.Info.Height
});
//Access violation, used to return null in 2.88.1.
var bitmapNoLongerWorks = SkiaSharp.SKBitmap.Decode(bytes, new SkiaSharp.SKImageInfo() {
	AlphaType = SkiaSharp.SKAlphaType.Premul,
	ColorType = SkiaSharp.SKColorType.Bgra8888
});
Console.WriteLine(bitmapNoLongerWorks is null);

Expected Behavior

bitmapNoLongerWorks should be null and not kill the process.

Actual Behavior

Everything explodes and dies.

Version of SkiaSharp

Other (Please indicate in the description)

Last Known Good Version of SkiaSharp

2.88.1 (Deprecated)

IDE / Editor

Visual Studio (Windows)

Platform / Operating System

Linux, Windows

Platform / Operating System Version

Windows 11 Ubuntu

Devices

No response

Relevant Screenshots

No response

Relevant Log Output

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

Edit to fix console output.

mlptownsend avatar Sep 26 '23 22:09 mlptownsend

We are also seeing our .net process on Windows crash if we call the function

SKCodec.GetScaledDimensions(float)

If we use a positive value e.g. 0.4 there is a crash

If we use package 2.88.5 there is no crash package 2.88.6 crashes with the error System.AccessViolationException

mpbraithwaite avatar Oct 11 '23 16:10 mpbraithwaite

I have the same crash ending with SIGSEGV in Net Core 8 docker image (mcr.microsoft.com/dotnet/aspnet:8.0) as well as Windows (got AccessViolationException under the debugger). And again rolling back to 2.88.5 fixes this specific issue. It also seems that sometimes operation succeeeds and sometimes failes with crash. There seem to be more simillar issues being reported (propably dupes?): https://github.com/mono/SkiaSharp/issues/2681 https://github.com/mono/SkiaSharp/issues/2645

MateuszBogdan avatar Dec 04 '23 12:12 MateuszBogdan