Changes 6.2.6.3:

* The command line utilities properly returns a non-zero status when an
    exception is thrown.

Changes 6.2.6.2
  * Fix a memory leak in each of CompositeImageCommand() and CompositeImage()
  * Add new options -layers compare-any, -layers compare-clear,
    -layers compare-overlay, and -layers optimize.
  * Draw last dash in a dashed polyline.
  * Add %D to -format to return the image disposal method.
  * ncorrect handling of file:// URIs causes data loss (patch from Daniel
    Kobras).
  * Set default BMP resolution units to PixelsPerCentimeter (problem report
    from digipete@shaw...).
This commit is contained in:
adam 2006-03-05 21:25:48 +00:00
parent 8b2441c12e
commit 82320dd49f
12 changed files with 43 additions and 265 deletions

View file

@ -1,9 +1,8 @@
# $NetBSD: Makefile,v 1.139 2006/02/08 12:19:38 tv Exp $
# $NetBSD: Makefile,v 1.140 2006/03/05 21:25:48 adam Exp $
.include "Makefile.common"
PKGNAME= ImageMagick-${DISTVERSION}
PKGREVISION= 3
MAINTAINER= adam@NetBSD.org
HOMEPAGE= http://www.simplesystems.org/ImageMagick/

View file

@ -1,7 +1,7 @@
# $NetBSD: Makefile.common,v 1.46 2006/01/26 20:38:18 adam Exp $
# $NetBSD: Makefile.common,v 1.47 2006/03/05 21:25:48 adam Exp $
IM_MAJOR_VER= 6.2.6
IM_MINOR_VER= 0
IM_MINOR_VER= 3
IM_MAJOR_LIB_VER= ${IM_MAJOR_VER}
.if (${IM_MINOR_VER} != NONE)

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.44 2006/01/26 20:38:18 adam Exp $
@comment $NetBSD: PLIST,v 1.45 2006/03/05 21:25:48 adam Exp $
bin/Magick++-config
bin/Magick-config
bin/Wand-config
@ -58,6 +58,7 @@ include/magick/geometry.h
include/magick/hashmap.h
include/magick/identify.h
include/magick/image.h
include/magick/layer.h
include/magick/list.h
include/magick/locale_.h
include/magick/log.h
@ -135,7 +136,6 @@ lib/pkgconfig/ImageMagick++.pc
lib/pkgconfig/ImageMagick.pc
lib/pkgconfig/Wand.pc
man/man1/ImageMagick.1
man/man1/Magick++-config.1
man/man1/Magick-config.1
man/man1/Wand-config.1
man/man1/animate.1
@ -248,6 +248,7 @@ share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/enhance.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/exception.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/fx.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/image.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/layer.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/list.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/magick-attribute.html
share/doc/ImageMagick-${IM_MAJOR_VER}/www/api/magick-image.html

View file

@ -1,13 +1,7 @@
$NetBSD: distinfo,v 1.58 2006/01/28 02:36:55 salo Exp $
$NetBSD: distinfo,v 1.59 2006/03/05 21:25:48 adam Exp $
SHA1 (ImageMagick-6.2.6-0.tar.bz2) = 0cf67149e806053a63fdaec70de913a9fd72aaf9
RMD160 (ImageMagick-6.2.6-0.tar.bz2) = 34d8ea5408439c536ac2c791c7ad2fafa1424671
Size (ImageMagick-6.2.6-0.tar.bz2) = 5139235 bytes
SHA1 (patch-aa) = b5002ca0bd553c27a23f3ea9835e5b6c738f4f8d
SHA1 (patch-ab) = 8b6e1c08d3e48dd76f8b4ae98297f6ab78017313
SHA1 (patch-ac) = 0fed1246c6d36ba8549a60c859cbed2e213f8ec7
SHA1 (patch-ad) = a98725b948b5c58c509d5d0c623831e2d3a452cb
SHA1 (patch-ae) = a3134b37c2830b7ea094a1e10c1847e596a7c78c
SHA1 (patch-af) = db1af7fa7f143cd4fa45a83310f209e928959ae6
SHA1 (patch-ag) = 732bcd06b712d2bdae5b05845be98603d2b75282
SHA1 (patch-ah) = b240858ffb307f89cdfca402ce02b6d299f1b984
SHA1 (ImageMagick-6.2.6-3.tar.bz2) = c149d620dec27227e241d62d3b4f41ff67ed387c
RMD160 (ImageMagick-6.2.6-3.tar.bz2) = edbfae33c6ec95653e428f3b6048250ba946aacc
Size (ImageMagick-6.2.6-3.tar.bz2) = 5074007 bytes
SHA1 (patch-aa) = 59d1987bc26397f2c90ea36d19ab92a39c472aa4
SHA1 (patch-ab) = 385f2ee6a47abf0c967623c6b4cae7cd3fc2667c

View file

@ -1,8 +1,8 @@
$NetBSD: patch-aa,v 1.33 2006/01/26 20:38:18 adam Exp $
$NetBSD: patch-aa,v 1.34 2006/03/05 21:25:49 adam Exp $
--- configure.orig 2006-01-19 04:20:30.000000000 +0100
--- configure.orig 2006-01-30 02:55:33.000000000 +0100
+++ configure
@@ -25186,9 +25186,6 @@ fi
@@ -25266,9 +25266,6 @@ fi
# Enable building/use of libltdl if we are building shared libraries regardless
# of whether modules are built or not.
with_ltdl='no'

View file

@ -1,15 +1,29 @@
$NetBSD: patch-ab,v 1.16 2006/01/28 02:36:55 salo Exp $
$NetBSD: patch-ab,v 1.17 2006/03/05 21:25:49 adam Exp $
Security fix for CVE-2006-0082, from Debian.
--- wand/animate.c.orig 2006-01-13 05:49:46.000000000 +0100
+++ wand/animate.c 2006-01-28 02:24:20.000000000 +0100
@@ -410,7 +410,7 @@
/*
Form filename for multi-part images.
*/
- (void) FormatMagickString(filename,MaxTextExtent,
+ (void) FormatMagickStringNumeric(filename,MaxTextExtent,
image_info->filename,scene);
if (LocaleCompare(filename,image_info->filename) == 0)
(void) FormatMagickString(filename,MaxTextExtent,"%s[%lu]",
--- Makefile.in.orig 2006-03-05 22:13:13.000000000 +0100
+++ Makefile.in
@@ -3247,8 +3247,6 @@ WAND_CLEANFILES = \
@WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_SCRPTS = \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/bin/Magick++-config
-@WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_MANS = \
-@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/bin/Magick++-config.1
@WITH_MAGICK_PLUS_PLUS_TRUE@MAGICKPP_PKGCONFIG = \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/lib/ImageMagick++.pc
@@ -3298,7 +3296,6 @@ WAND_CLEANFILES = \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/INSTALL \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/NEWS \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/README \
-@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/bin/Magick++-config.1 \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/bin/Magick++-config.in \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/lib/ImageMagick++.pc.in \
@WITH_MAGICK_PLUS_PLUS_TRUE@ Magick++/demo/model.miff \
@@ -4566,7 +4563,6 @@ pkgconfig_DATA = \
# Manual pages to install
man_MANS = \
$(MAGICK_MANS) \
- $(MAGICKPP_MANS) \
$(UTILITIES_MANS) \
$(WAND_MANS)

View file

@ -1,34 +0,0 @@
$NetBSD: patch-ac,v 1.12 2006/01/28 02:36:55 salo Exp $
Security fix for CVE-2006-0082, from Debian.
--- magick/blob.c.orig 2006-01-19 00:30:32.000000000 +0100
+++ magick/blob.c 2006-01-28 02:29:06.000000000 +0100
@@ -1913,25 +1913,8 @@
/*
Form filename for multi-part images.
*/
- (void) CopyMagickString(filename,image->filename,MaxTextExtent);
- for (p=strchr(filename,'%'); p != (char *) NULL; p=strchr(p+1,'%'))
- {
- char
- *q;
-
- q=p+1;
- if (*q == '0')
- (void) strtol(q,&q,10);
- if ((*q == '%') || (*q == 'd') || (*q == 'o') || (*q == 'x'))
- {
- char
- format[MaxTextExtent];
-
- (void) CopyMagickString(format,p,MaxTextExtent);
- (void) FormatMagickString(p,MaxTextExtent,format,image->scene);
- break;
- }
- }
+ (void) FormatMagickStringNumeric(filename,MaxTextExtent,image->filename,
+ image->scene);
if (image_info->adjoin == MagickFalse)
if ((image->previous != (Image *) NULL) ||
(GetNextImageInList(image) != (Image *) NULL))

View file

@ -1,51 +0,0 @@
$NetBSD: patch-ad,v 1.9 2006/01/28 02:36:55 salo Exp $
Security fixes for CVE-2006-0082 and #345595, from Debian.
--- wand/display.c.orig 2006-01-13 05:49:46.000000000 +0100
+++ wand/display.c 2006-01-28 02:35:54.000000000 +0100
@@ -315,10 +315,7 @@
image_number=0;
last_image=0;
last_scene=0;
- image_marker=(unsigned long *)
- AcquireMagickMemory((argc+1)*sizeof(*image_marker));
- for (i=0; i <= argc; i++)
- image_marker[i]=(unsigned long) argc;
+ image_marker=(unsigned long *) NULL;
option=(char *) NULL;
pend=MagickFalse;
resource_database=(XrmDatabase) NULL;
@@ -326,9 +323,6 @@
server_name=(char *) NULL;
state=0;
status=MagickTrue;
- if (image_marker == (unsigned long *) NULL)
- ThrowDisplayException(ResourceLimitError,"MemoryAllocationFailed",
- strerror(errno));
/*
Check for server name specified on the command line.
*/
@@ -337,6 +331,13 @@
if (status == MagickFalse)
ThrowDisplayException(ResourceLimitError,"MemoryAllocationFailed",
strerror(errno));
+ image_marker=(unsigned long *)
+ AcquireMagickMemory((argc+1)*sizeof(*image_marker));
+ for (i=0; i <= argc; i++)
+ image_marker[i]=(unsigned long) argc;
+ if (image_marker == (unsigned long *) NULL)
+ ThrowDisplayException(ResourceLimitError,"MemoryAllocationFailed",
+ strerror(errno));
for (i=1; i < (long) argc; i++)
{
/*
@@ -461,7 +462,7 @@
/*
Form filename for multi-part images.
*/
- (void) FormatMagickString(filename,MaxTextExtent,
+ (void) FormatMagickStringNumeric(filename,MaxTextExtent,
image_info->filename,scene);
if (LocaleCompare(filename,image_info->filename) == 0)
(void) FormatMagickString(filename,MaxTextExtent,"%s.%lu",

View file

@ -1,34 +0,0 @@
$NetBSD: patch-ae,v 1.6 2006/01/28 02:36:55 salo Exp $
Security fix for CVE-2006-0082, from Debian.
--- magick/image.c.orig 2006-01-17 17:20:54.000000000 +0100
+++ magick/image.c 2006-01-28 02:42:54.000000000 +0100
@@ -2780,25 +2780,8 @@
/*
Rectify multi-image file support.
*/
- (void) CopyMagickString(filename,image_info->filename,MaxTextExtent);
- for (p=strchr(filename,'%'); p != (char *) NULL; p=strchr(p+1,'%'))
- {
- char
- *q;
-
- q=(char *) p+1;
- if (*q == '0')
- (void) strtol(q,&q,10);
- if ((*q == '%') || (*q == 'd') || (*q == 'o') || (*q == 'x'))
- {
- char
- format[MaxTextExtent];
-
- (void) CopyMagickString(format,p,MaxTextExtent);
- (void) FormatMagickString(p,MaxTextExtent,format,image_info->scene);
- break;
- }
- }
+ (void) FormatMagickStringNumeric(filename,MaxTextExtent,
+ image_info->filename,image_info->scene);
if ((LocaleCompare(filename,image_info->filename) != 0) &&
(strchr(filename,'%') == (char *) NULL))
image_info->adjoin=MagickFalse;

View file

@ -1,15 +0,0 @@
$NetBSD: patch-af,v 1.6 2006/01/28 02:36:55 salo Exp $
Security fix for CVE-2006-0082, from Debian.
--- wand/montage.c.orig 2006-01-13 05:49:46.000000000 +0100
+++ wand/montage.c 2006-01-28 02:51:49.000000000 +0100
@@ -340,7 +340,7 @@
/*
Form filename for multi-part images.
*/
- (void) FormatMagickString(filename,MaxTextExtent,
+ (void) FormatMagickStringNumeric(filename,MaxTextExtent,
image_info->filename,scene);
if (LocaleCompare(filename,image_info->filename) == 0)
(void) FormatMagickString(filename,MaxTextExtent,"%s.%lu",

View file

@ -1,82 +0,0 @@
$NetBSD: patch-ag,v 1.4 2006/01/28 02:36:55 salo Exp $
Security fix for CVE-2006-0082, from Debian.
--- magick/string.c.orig 2006-01-08 23:49:09.000000000 +0100
+++ magick/string.c 2006-01-28 02:54:01.000000000 +0100
@@ -971,6 +971,75 @@
% %
% %
% %
+% F o r m a t M a g i c k S t r i n g N u m e r i c %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Method FormatMagickStringNumeric formats output for a single numeric
+% argument. It takes into account that the format string given might be
+% untrusted user input, and returns the length of the formatted string.
+%
+% The format of the FormatMagickStringNumeric method is:
+%
+% long FormatMagickStringNumeric(char *string,const size_t length,
+% const char *format,int value)
+%
+% A description of each parameter follows.
+%
+% o string: FormatMagickStringNumeric() returns the formatted string in this
+% character buffer.
+%
+% o length: The maximum length of the string.
+%
+% o format: A string describing the format to use to write the numeric
+% argument. Only the first numeric format identifier is replaced.
+%
+% o value: Numeric value to substitute into format string.
+%
+%
+*/
+MagickExport long FormatMagickStringNumeric(char *string,const size_t length,const char *format,int value)
+{
+ char
+ *p;
+
+ (void) CopyMagickString(string, format, length);
+
+ for (p=strchr(format,'%'); p != (char *) NULL; p=strchr(p+1,'%'))
+ {
+ char
+ *q;
+
+ q=(char *) p+1;
+ if (*q == '0')
+ (void) strtol(q,&q,10);
+ if ((*q == '%') || (*q == 'd') || (*q == 'o') || (*q == 'x'))
+ {
+ char
+ c;
+
+ q++;
+ c=*q;
+ *q='\0';
+ (void) snprintf(string+(p-format),length-(p-format),p,value);
+ *q=c;
+ (void) ConcatenateMagickString(string,q,length);
+ if (*(q-1) == '%')
+ p++;
+ else
+ break;
+ }
+ }
+ return (long)strlen(string);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
% F o r m a t M a g i c k S t r i n g %
% %
% %

View file

@ -1,14 +0,0 @@
$NetBSD: patch-ah,v 1.3 2006/01/28 02:36:55 salo Exp $
Security fix for CVE-2006-0082, from Debian.
--- magick/string_.h.orig 2006-01-08 06:14:02.000000000 +0100
+++ magick/string_.h 2006-01-28 03:04:20.000000000 +0100
@@ -61,6 +61,7 @@
magick_attribute((format (printf,3,4))),
FormatMagickStringList(char *,const size_t,const char *,va_list)
magick_attribute((format (printf,3,0))),
+ FormatMagickStringNumeric(char *,const size_t,const char *,int),
FormatMagickTime(const time_t,const size_t,char *),
LocaleCompare(const char *,const char *),
LocaleNCompare(const char *,const char *,const size_t);