53 lines
1.8 KiB
Diff
53 lines
1.8 KiB
Diff
From 3ea3dc0347ecf0fd2df4b1ca25666e2a78da150c Mon Sep 17 00:00:00 2001
|
|
From: Nils Philippsen <nils@redhat.com>
|
|
Date: Mon, 27 May 2013 14:33:28 +0200
|
|
Subject: [PATCH] patch: unsharp-mask-crash
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Squashed commit of the following:
|
|
|
|
commit a8748094ec325bfeb856c603ece8c2026f0968ea
|
|
Author: Téo Mazars <teo.mazars@ensimag.fr>
|
|
Date: Sun Apr 7 22:29:56 2013 +0200
|
|
|
|
Bug 695418 - Unsharp mask crashes for large radii
|
|
|
|
Make sure we are working on the image range
|
|
(cherry picked from commit 35cc644765c553b6feb24bd56133b6f9f74ed5e4)
|
|
---
|
|
plug-ins/common/unsharp-mask.c | 9 ++++++++-
|
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/plug-ins/common/unsharp-mask.c b/plug-ins/common/unsharp-mask.c
|
|
index e6e3ad8..998c96e 100644
|
|
--- a/plug-ins/common/unsharp-mask.c
|
|
+++ b/plug-ins/common/unsharp-mask.c
|
|
@@ -369,7 +369,7 @@ box_blur_line (const gint box_width, /* Width of the kernel */
|
|
/* If the leading edge has gone off the image, but the output and
|
|
* trailing edge are on the image. (The big loop exits when the
|
|
* output goes off the image. */
|
|
- else
|
|
+ else if (trail >= 0)
|
|
{
|
|
for (i = 0; i < bpp; i++)
|
|
{
|
|
@@ -377,6 +377,13 @@ box_blur_line (const gint box_width, /* Width of the kernel */
|
|
dest[bpp * output + i] = (ac[i] + (coverage >> 1)) / coverage;
|
|
}
|
|
}
|
|
+ /* Leading has gone off the image and trailing isn't yet in it
|
|
+ * (small image) */
|
|
+ else if (output >= 0)
|
|
+ {
|
|
+ for (i = 0; i < bpp; i++)
|
|
+ dest[bpp * output + i] = (ac[i] + (coverage >> 1)) / coverage;
|
|
+ }
|
|
|
|
lead++;
|
|
output++;
|
|
--
|
|
1.8.1.4
|
|
|