Your message dated Fri, 28 Apr 2017 19:01:02 +0100
with message-id <[email protected]>
and subject line Re: Bug#856639: jessie-pu: package imagemagick
has caused the Debian Bug report #856639,
regarding jessie-pu: package imagemagick
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
856639: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=856639
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: jessie
User: [email protected]
Usertags: pu
Hi SRMs,
[coordinated with Bastien, the primary imagemagick maintainer]
imagemagick bug #844594 also affects jessie and it's a regression in
jessie compared to wheezy. Since there's a steady stream of
imagemagick vulnerabilities this would not result in a dedicated
jessie update, but I'm rather asking for SRM approval to roll
this into the next jessie update along with security fixes.
This patch has been running on the jessie-based image scalers
of Wikimedia Commons for a few months without further problems.
Patch attached.
Cheers,
Moritz
Description: Fix convert -sharpen with CMYK images
Backport of
https://github.com/ImageMagick/ImageMagick/commit/b1b4057233710e30d7d68bf8d8a5fcbd0eb7b275
From: Cristy <[email protected]>
--- imagemagick-6.8.9.9.orig/magick/morphology.c
+++ imagemagick-6.8.9.9/magick/morphology.c
@@ -2706,7 +2706,7 @@ static ssize_t MorphologyPrimitive(const
*/
*q = p[r];
if (image->colorspace == CMYKColorspace)
- SetPixelIndex(q_indexes+y,GetPixelIndex(p_indexes+r));
+ SetPixelIndex(q_indexes+y,GetPixelIndex(p_indexes+y+r));
/* Set the bias of the weighted average output */
result.red =
@@ -2724,7 +2724,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = &kernel->values[ kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+y;
if ( ((channel & SyncChannels) == 0 ) ||
(image->matte == MagickFalse) )
{ /* No 'Sync' involved.
@@ -2804,7 +2804,7 @@ static ssize_t MorphologyPrimitive(const
|| ( p[r].blue != GetPixelBlue(q))
|| ( p[r].opacity != GetPixelOpacity(q))
|| ( image->colorspace == CMYKColorspace &&
- GetPixelIndex(p_indexes+r) != GetPixelIndex(q_indexes+y) ) )
+ (GetPixelIndex(p_indexes+y+r) != GetPixelIndex(q_indexes+y))) )
changes[id]++;
p++;
q++;
@@ -2907,7 +2907,7 @@ static ssize_t MorphologyPrimitive(const
*/
*q = p[r];
if (image->colorspace == CMYKColorspace)
- SetPixelIndex(q_indexes+x,GetPixelIndex(p_indexes+r));
+ SetPixelIndex(q_indexes+x,GetPixelIndex(p_indexes+x+r));
/* Defaults */
min.red =
@@ -2927,7 +2927,7 @@ static ssize_t MorphologyPrimitive(const
result.opacity = QuantumRange - (double) p[r].opacity;
result.index = 0.0;
if ( image->colorspace == CMYKColorspace)
- result.index = (double) GetPixelIndex(p_indexes+r);
+ result.index = (double) GetPixelIndex(p_indexes+x+r);
switch (method) {
case ConvolveMorphology:
@@ -2969,7 +2969,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
if ( ((channel & SyncChannels) == 0 ) ||
(image->matte == MagickFalse) )
{ /* No 'Sync' involved.
@@ -3056,7 +3056,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = kernel->values;
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k++) {
if ( IsNaN(*k) || (*k) < 0.5 ) continue;
@@ -3087,7 +3087,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) || (*k) < 0.5 ) continue;
@@ -3121,7 +3121,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = kernel->values;
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k++) {
if ( IsNaN(*k) ) continue;
@@ -3170,7 +3170,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = kernel->values;
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k++) {
if ( IsNaN(*k) || (*k) < 0.5 ) continue;
@@ -3201,7 +3201,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) || (*k) < 0.5 ) continue; /* boolean kernel */
@@ -3244,7 +3244,7 @@ static ssize_t MorphologyPrimitive(const
*/
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) ) continue;
@@ -3253,8 +3253,7 @@ static ssize_t MorphologyPrimitive(const
Minimize(result.blue, (*k)+k_pixels[u].blue);
Minimize(result.opacity, (*k)+QuantumRange-k_pixels[u].opacity);
if ( image->colorspace == CMYKColorspace)
- Minimize(result.index,(*k)+GetPixelIndex(
- k_indexes+u));
+ Minimize(result.index,(*k)+GetPixelIndex(k_indexes+u));
}
k_pixels += virt_width;
k_indexes += virt_width;
@@ -3328,7 +3327,7 @@ static ssize_t MorphologyPrimitive(const
|| ( p[r].blue != GetPixelBlue(q) )
|| ( p[r].opacity != GetPixelOpacity(q) )
|| ( image->colorspace == CMYKColorspace &&
- GetPixelIndex(p_indexes+r) != GetPixelIndex(q_indexes+x) ) )
+ (GetPixelIndex(p_indexes+x+r) != GetPixelIndex(q_indexes+x))) )
changes[id]++;
p++;
q++;
@@ -3502,7 +3501,7 @@ static ssize_t MorphologyPrimitiveDirect
/* Add kernel Value and select the minimum value found. */
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v <= (ssize_t) offy; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) ) continue;
@@ -3541,7 +3540,7 @@ static ssize_t MorphologyPrimitiveDirect
*/
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=0; v <= (ssize_t) offy; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) ) continue;
@@ -3599,7 +3598,7 @@ static ssize_t MorphologyPrimitiveDirect
|| ( p[r].blue != GetPixelBlue(q) )
|| ( p[r].opacity != GetPixelOpacity(q) )
|| ( image->colorspace == CMYKColorspace &&
- GetPixelIndex(p_indexes+r) != GetPixelIndex(q_indexes+x) ) )
+ (GetPixelIndex(p_indexes+x+r) != GetPixelIndex(q_indexes+x))) )
changed++; /* The pixel was changed in some way! */
p++; /* increment pixel buffers */
@@ -3694,7 +3693,7 @@ static ssize_t MorphologyPrimitiveDirect
/* Add kernel Value and select the minimum value found. */
k = &kernel->values[ kernel->width*(kernel->y+1)-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=offy; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) ) continue;
@@ -3731,7 +3730,7 @@ static ssize_t MorphologyPrimitiveDirect
*/
k = &kernel->values[ kernel->width*(kernel->y+1)-1 ];
k_pixels = p;
- k_indexes = p_indexes;
+ k_indexes = p_indexes+x;
for (v=offy; v < (ssize_t) kernel->height; v++) {
for (u=0; u < (ssize_t) kernel->width; u++, k--) {
if ( IsNaN(*k) ) continue;
@@ -3789,7 +3788,7 @@ static ssize_t MorphologyPrimitiveDirect
|| ( p[r].blue != GetPixelBlue(q) )
|| ( p[r].opacity != GetPixelOpacity(q) )
|| ( image->colorspace == CMYKColorspace &&
- GetPixelIndex(p_indexes+r) != GetPixelIndex(q_indexes+x) ) )
+ (GetPixelIndex(p_indexes+x+r) != GetPixelIndex(q_indexes+x))) )
changed++; /* The pixel was changed in some way! */
p--; /* go backward through pixel buffers */
--- End Message ---
--- Begin Message ---
On Thu, 2017-04-13 at 21:37 +0200, Salvatore Bonaccorso wrote:
> The patch has been included in the last DSA for imagemagick, versioned
> 8:6.8.9.9-5+deb8u8.
Therefore closing the p-u bug; thanks.
Regards,
Adam
--- End Message ---