From: cristy Date: Mon, 26 May 2014 17:49:54 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~2273 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f2a82ee6e25411cb280db708ff26ab55cece1945;p=imagemagick --- diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c index 8c4276800..f443503b1 100644 --- a/MagickCore/attribute.c +++ b/MagickCore/attribute.c @@ -164,12 +164,12 @@ MagickExport RectangleInfo GetImageBoundingBox(const Image *image, GetPixelInfo(image,&target[1]); p=GetCacheViewVirtualPixels(image_view,(ssize_t) image->columns-1,0,1,1, exception); - if (p == (const Quantum *) NULL) + if (p != (const Quantum *) NULL) GetPixelInfoPixel(image,p,&target[1]); GetPixelInfo(image,&target[2]); p=GetCacheViewVirtualPixels(image_view,0,(ssize_t) image->rows-1,1,1, exception); - if (p == (const Quantum *) NULL) + if (p != (const Quantum *) NULL) GetPixelInfoPixel(image,p,&target[2]); status=MagickTrue; GetPixelInfo(image,&zero); diff --git a/MagickCore/blob.c b/MagickCore/blob.c index 59e4cf175..6fcc154a9 100644 --- a/MagickCore/blob.c +++ b/MagickCore/blob.c @@ -3830,7 +3830,7 @@ MagickPrivate MagickBooleanType SetBlobExtent(Image *image, status; file=fileno(image->blob->file_info.file); - if (file == -1) + if ((file == -1) || (offset < 0)) return(MagickFalse); status=posix_fallocate(file,offset,extent-offset); if (status != 0) diff --git a/MagickCore/cache.c b/MagickCore/cache.c index e355b2718..9a7d559d6 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -690,7 +690,8 @@ static MagickBooleanType ClonePixelCacheRepository( clone_nexus[id],exception); if (pixels == (Quantum *) NULL) continue; - if (clone_nexus[id]->metacontent != (void *) NULL) + if ((clone_nexus[id]->metacontent != (void *) NULL) && + (cache_nexus[id]->metacontent != (void *) NULL)) (void) memcpy(clone_nexus[id]->metacontent, cache_nexus[id]->metacontent,length* sizeof(cache_nexus[id]->metacontent)); diff --git a/MagickCore/compare.c b/MagickCore/compare.c index ae8f5eadc..444ce0539 100644 --- a/MagickCore/compare.c +++ b/MagickCore/compare.c @@ -453,7 +453,7 @@ static size_t GetImageChannels(const Image *image) if ((traits & UpdatePixelTrait) != 0) channels++; } - return(channels); + return(channels == 0 ? 1 : channels); } static MagickBooleanType GetFuzzDistortion(const Image *image, diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c index 36a0ac444..a7d73b8dd 100644 --- a/MagickCore/distribute-cache.c +++ b/MagickCore/distribute-cache.c @@ -207,7 +207,6 @@ static int ConnectPixelCacheServer(const char *hostname,const int port, result->ai_protocol); if (client_socket == -1) { - (void) close(client_socket); (void) ThrowMagickException(exception,GetMagickModule(),CacheError, "DistributedPixelCache","'%s'",hostname); return(-1); @@ -215,6 +214,7 @@ static int ConnectPixelCacheServer(const char *hostname,const int port, status=connect(client_socket,result->ai_addr,result->ai_addrlen); if (status == -1) { + (void) close(client_socket); (void) ThrowMagickException(exception,GetMagickModule(),CacheError, "DistributedPixelCache","'%s'",hostname); return(-1); diff --git a/MagickCore/draw.c b/MagickCore/draw.c index cb33e7a59..b45ce938c 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -4348,6 +4348,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, (void) GetOneCacheViewVirtualPixelInfo(image_view,x,y,&target, exception); + GetPixelInfo(image,&pixel); for (y=0; y < (ssize_t) image->rows; y++) { register Quantum diff --git a/MagickCore/effect.c b/MagickCore/effect.c index c406f3d2a..6ddbf0c68 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -1998,12 +1998,12 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview, (void) CopyMagickString(factor,"impulse",MaxTextExtent); break; } - case 4: + case 5: { (void) CopyMagickString(factor,"laplacian",MaxTextExtent); break; } - case 5: + case 6: { (void) CopyMagickString(factor,"Poisson",MaxTextExtent); break; diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c index 19108a48c..4069ce747 100644 --- a/MagickCore/enhance.c +++ b/MagickCore/enhance.c @@ -2696,7 +2696,7 @@ MagickExport MagickBooleanType LevelImageColors(Image *image, (IfMagickFalse(IsGrayColorspace(black_color->colorspace)) || IfMagickFalse(IsGrayColorspace(white_color->colorspace)))) (void) SetImageColorspace(image,sRGBColorspace,exception); - status=MagickFalse; + status=MagickTrue; if( IfMagickFalse(invert) ) { if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0) diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c index 927a72225..c8859fcda 100644 --- a/MagickCore/morphology.c +++ b/MagickCore/morphology.c @@ -2740,7 +2740,9 @@ static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image, } if (fabs(pixel-p[center+i]) > MagickEpsilon) changes[id]++; - gamma=(double) kernel->height*kernel->width/count; + gamma=1.0; + if (count != 0) + gamma=(double) kernel->height*kernel->width/count; SetPixelChannel(morphology_image,channel,ClampToQuantum(gamma* pixel),q); continue; diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index fbf27e31d..14d2523a1 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -2112,6 +2112,8 @@ MagickExport void GetPixelInfo(const Image *image,PixelInfo *pixel) pixel->black=0.0; pixel->alpha=(double) OpaqueAlpha; pixel->index=0.0; + pixel->count=0; + pixel->fuzz=0.0; if (image == (const Image *) NULL) return; pixel->storage_class=image->storage_class; diff --git a/MagickCore/property.c b/MagickCore/property.c index ad51c6bc9..ee9eba5dc 100644 --- a/MagickCore/property.c +++ b/MagickCore/property.c @@ -3366,7 +3366,7 @@ MagickExport char *InterpretImageProperties(ImageInfo *image_info, */ { char - pattern[MaxTextExtent]; + pattern[2*MaxTextExtent]; const char *key, @@ -3382,8 +3382,8 @@ MagickExport char *InterpretImageProperties(ImageInfo *image_info, p++; /* advance p to just inside the opening brace */ depth=1; if ( *p == ']' ) { - (void) ThrowMagickException(exception,GetMagickModule(), - OptionWarning,"UnknownImageProperty","\"%%[]\""); + (void) ThrowMagickException(exception,GetMagickModule(),OptionWarning, + "UnknownImageProperty","\"%%[]\""); break; } for (len=0; len<(MaxTextExtent-1L) && (*p != '\0');) diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c index d5be1b378..e004e1e7c 100644 --- a/MagickCore/quantize.c +++ b/MagickCore/quantize.c @@ -533,8 +533,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info, /* Create a reduced color image. */ - if ((cube_info->quantize_info->dither_method != NoDitherMethod) && - (cube_info->quantize_info->dither_method != NoDitherMethod)) + if (cube_info->quantize_info->dither_method != NoDitherMethod) (void) DitherImage(image,cube_info,exception); else { diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c index 596118938..a8b354e0d 100644 --- a/MagickCore/xml-tree.c +++ b/MagickCore/xml-tree.c @@ -1496,7 +1496,8 @@ static char *ParseEntities(char *xml,char **entities,int state) */ length=strlen(entities[i]); entity=strchr(xml,';'); - if ((length-1L) >= (size_t) (entity-xml)) + if ((entity != (char *) NULL) && + ((length-1L) >= (size_t) (entity-xml))) { offset=(ssize_t) (xml-p); extent=(size_t) (offset+length+strlen(entity)); diff --git a/MagickWand/composite.c b/MagickWand/composite.c index 0e9e4ad38..93bd1cf16 100644 --- a/MagickWand/composite.c +++ b/MagickWand/composite.c @@ -111,9 +111,6 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image, Image *composite_image,CompositeOptions *composite_options, ExceptionInfo *exception) { - ChannelType - channel_mask; - MagickStatusType status; @@ -125,9 +122,13 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",(*image)->filename); assert(exception != (ExceptionInfo *) NULL); status=MagickTrue; - channel_mask=SetImageChannelMask(composite_image,composite_options->channel); if (composite_image != (Image *) NULL) { + ChannelType + channel_mask; + + channel_mask=SetImageChannelMask(composite_image, + composite_options->channel); assert(composite_image->signature == MagickSignature); switch (composite_options->compose) { @@ -219,8 +220,8 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image, composite_options->compose,MagickTrue,geometry.x,geometry.y, exception); } + (void) SetPixelChannelMask(composite_image,channel_mask); } - (void) SetPixelChannelMask(composite_image,channel_mask); return(status != 0 ? MagickTrue : MagickFalse); } diff --git a/MagickWand/convert.c b/MagickWand/convert.c index e6f1c0bae..2b6887975 100644 --- a/MagickWand/convert.c +++ b/MagickWand/convert.c @@ -122,7 +122,10 @@ static MagickBooleanType ConcatenateImages(int argc,char **argv, { input=fopen_utf8(argv[i],"rb"); if (input == (FILE *) NULL) - ThrowFileException(exception,FileOpenError,"UnableToOpenFile",argv[i]); + { + ThrowFileException(exception,FileOpenError,"UnableToOpenFile",argv[i]); + continue; + } for (c=fgetc(input); c != EOF; c=fgetc(input)) (void) fputc((char) c,output); (void) fclose(input); diff --git a/MagickWand/pixel-wand.c b/MagickWand/pixel-wand.c index f1fdd4540..cdb42733b 100644 --- a/MagickWand/pixel-wand.c +++ b/MagickWand/pixel-wand.c @@ -1263,6 +1263,7 @@ WandExport void PixelGetQuantumPacket(const PixelWand *wand,PixelInfo *packet) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); assert(packet != (PixelInfo *) NULL); packet->alpha=(double) ClampToQuantum(wand->pixel.alpha); + packet->alpha_trait=wand->pixel.alpha_trait; if (wand->pixel.colorspace == CMYKColorspace) { packet->red=(double) ClampToQuantum(QuantumRange- diff --git a/coders/cals.c b/coders/cals.c index c4e7dd5bd..b42734eb0 100644 --- a/coders/cals.c +++ b/coders/cals.c @@ -534,12 +534,13 @@ static MagickBooleanType WriteCALSImage(const ImageInfo *image_info, default: { orient_y=270; + break; } } - (void) FormatLocaleString(header,MaxTextExtent,"rorient: %03ld,%03ld", + (void) FormatLocaleString(header,sizeof(header),"rorient: %03ld,%03ld", (long) orient_x,(long) orient_y); count=WriteCALSRecord(image,header); - (void) FormatLocaleString(header,MaxTextExtent,"rpelcnt: %06lu,%06lu", + (void) FormatLocaleString(header,sizeof(header),"rpelcnt: %06lu,%06lu", (unsigned long) image->columns,(unsigned long) image->rows); count=WriteCALSRecord(image,header); density=200; @@ -551,7 +552,7 @@ static MagickBooleanType WriteCALSImage(const ImageInfo *image_info, (void) ParseGeometry(image_info->density,&geometry_info); density=(size_t) floor(geometry_info.rho+0.5); } - (void) FormatLocaleString(header,MaxTextExtent,"rdensty: %04lu", + (void) FormatLocaleString(header,sizeof(header),"rdensty: %04lu", (unsigned long) density); count=WriteCALSRecord(image,header); count=WriteCALSRecord(image,"notes: NONE"); diff --git a/coders/jp2.c b/coders/jp2.c index d00bd9792..22a7d0929 100644 --- a/coders/jp2.c +++ b/coders/jp2.c @@ -877,7 +877,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image, p=option; for (i=0; sscanf(p,"%f",¶meters.tcp_rates[i]) == 1; i++) { - if (i > 100) + if (i >= 100) break; while ((*p != '\0') && (*p != ',')) p++; diff --git a/coders/label.c b/coders/label.c index 49357789d..0e2162e8e 100644 --- a/coders/label.c +++ b/coders/label.c @@ -131,6 +131,7 @@ static Image *ReadLABELImage(const ImageInfo *image_info, label=GetImageProperty(image,"label",exception); draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL); draw_info->text=ConstantString(label); + metrics.width=0; status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception); if ((image->columns == 0) && (image->rows == 0)) { diff --git a/coders/psd.c b/coders/psd.c index 9c3946d26..0e5ddf7c0 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -1188,7 +1188,7 @@ static MagickStatusType ReadPSDLayers(Image *image,const ImageInfo *image_info, count=ReadBlob(image,4,(unsigned char *) type); if ((count == 0) || (LocaleNCompare(type,"8BIM",4) != 0)) { - if (DiscardBlobBytes(image,size-(ssize_t) quantum-8) == MagickFalse) + if (DiscardBlobBytes(image,(MagickSizeType) size-quantum-8) == MagickFalse) ThrowFileException(exception,CorruptImageError, "UnexpectedEndOfFile",image->filename); } @@ -2632,14 +2632,13 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,Image *image, else rounded_layer_info_size=layer_info_size; (void) SetPSDSize(&psd_info,image,rounded_layer_info_size); - if (next_image->alpha_trait == BlendPixelTrait) + if (base_image->alpha_trait == BlendPixelTrait) (void) WriteBlobMSBShort(image,-(unsigned short) layer_count); else (void) WriteBlobMSBShort(image,(unsigned short) layer_count); layer_count=1; compression=base_image->compression; - next_image=base_image; - while (next_image != NULL) + for (next_image=base_image; next_image != NULL; ) { next_image->compression=NoCompression; (void) WriteBlobMSBLong(image,(unsigned int) next_image->page.y); diff --git a/coders/pwp.c b/coders/pwp.c index ca2583772..83948b999 100644 --- a/coders/pwp.c +++ b/coders/pwp.c @@ -239,7 +239,8 @@ static Image *ReadPWPImage(const ImageInfo *image_info,ExceptionInfo *exception) if (status == MagickFalse) break; } - (void) close(unique_file); + if (unique_file != -1) + (void) close(unique_file); (void) RelinquishUniqueFileResource(read_info->filename); read_info=DestroyImageInfo(read_info); (void) CloseBlob(pwp_image); diff --git a/coders/wpg.c b/coders/wpg.c index 88110402b..6ee79e5ec 100644 --- a/coders/wpg.c +++ b/coders/wpg.c @@ -550,6 +550,7 @@ static int UnpackWPG2Raster(Image *image,int bpp,ExceptionInfo *exception) y; ssize_t + i, ldblk; unsigned int @@ -560,9 +561,6 @@ static int UnpackWPG2Raster(Image *image,int bpp,ExceptionInfo *exception) *BImgBuff, SampleBuffer[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - unsigned int - i; - x=0; y=0; ldblk=(ssize_t) ((bpp*image->columns+7)/8);