Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1 task done
mlptownsend opened this issue Sep 26, 2023 · 3 comments
Open
1 task done

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

mlptownsend opened this issue Sep 26, 2023 · 3 comments
Labels

Comments

@mlptownsend
Copy link

mlptownsend commented Sep 26, 2023

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

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

Edit to fix console output.

@mpbraithwaite
Copy link

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

@MateuszBogdan
Copy link

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?):
#2681
#2645

@FoggyFinder
Copy link
Contributor

so you propose to add check that if Width/Height = 0 then take that params from Codec?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants