From 44aa14f476974dc9568c9eb719032f910a273f08 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Fri, 8 Mar 2024 13:49:16 +0100 Subject: [PATCH] fix: add guards for MagickImage.SetBitDepth --- src/Magick.NET/MagickImage.cs | 6 +++++- .../MagickImageTests/TheSetBitDepthMethod.cs | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Magick.NET/MagickImage.cs b/src/Magick.NET/MagickImage.cs index e873129de6..4ef8337e79 100644 --- a/src/Magick.NET/MagickImage.cs +++ b/src/Magick.NET/MagickImage.cs @@ -5784,7 +5784,11 @@ public void SetBitDepth(int value) /// The channel to set the depth for. /// Thrown when an error is raised by ImageMagick. public void SetBitDepth(int value, Channels channels) - => _nativeInstance.SetBitDepth(value, channels); + { + Throw.IfNegative(nameof(value), value); + + _nativeInstance.SetBitDepth(value, channels); + } /// /// Sets the default clipping path. diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs index 97918f7ee4..b5dd82e9d6 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheSetBitDepthMethod.cs @@ -1,6 +1,7 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System; using ImageMagick; using Xunit; @@ -10,6 +11,14 @@ public partial class MagickImageTests { public class TheSetBitDepthMethod { + [Fact] + public void ShouldThrowExceptionWhenValueIsNegative() + { + using var image = new MagickImage(Files.RoseSparkleGIF); + + Assert.Throws("value", () => image.SetBitDepth(-1)); + } + [Fact] public void ShouldChangeTheBitDepth() {