From: cristy Date: Mon, 23 Mar 2015 14:28:39 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~1174 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f67023c5ef20997c8599e2bd578b599084ddae0a;p=imagemagick --- diff --git a/coders/meta.c b/coders/meta.c index 11caa56a4..0bdd54ac4 100644 --- a/coders/meta.c +++ b/coders/meta.c @@ -140,7 +140,6 @@ static MagickBooleanType IsMETA(const unsigned char *magick,const size_t length) % o exception: return any errors or warnings in this structure. % */ -#define BUFFER_SZ 4096 typedef struct _html_code { @@ -286,7 +285,6 @@ static char *super_fgets(char **b, int *blen, Image *file) return((char *) p); } -#define BUFFER_SZ 4096 #define IPTC_ID 1028 #define THUMBNAIL_ID 1033 @@ -311,7 +309,7 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) recnum; int - inputlen = BUFFER_SZ; + inputlen = MaxTextExtent; MagickOffsetType savedpos, @@ -327,6 +325,8 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) dataset = 0; recnum = 0; line = (char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*line)); + if (line == (char *) NULL) + break; name = token = (char *) NULL; savedpos = 0; token_info=AcquireTokenInfo(); @@ -336,7 +336,11 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) next=0; token=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*token)); - newstr=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr)); + if (token == (char *) NULL) + break; + newstr=(newstr *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr)); + if (newstr == (char *) NULL) + break; while (Tokenizer(token_info,0,token,(size_t) inputlen,line,"","=","\"",0, &brkused,&next,"ed)==0) { @@ -490,8 +494,10 @@ static ssize_t parse8BIM(Image *ifile, Image *ofile) } state++; } - token=DestroyString(token); - newstr=DestroyString(newstr); + if (token != (char *) NULL) + token=DestroyString(token); + if (newstr != (char *) NULL) + newstr=DestroyString(newstr); if (name != (char *) NULL) name=DestroyString(name); } @@ -587,7 +593,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) recnum; int - inputlen = BUFFER_SZ; + inputlen = MaxTextExtent; ssize_t savedolen = 0L, @@ -603,6 +609,8 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) dataset = 0; recnum = 0; line=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*line)); + if (line == (char *) NULL) + return(-1); name = token = (char *) NULL; savedpos = 0; token_info=AcquireTokenInfo(); @@ -612,7 +620,11 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) next=0; token=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*token)); + if (token == (char *) NULL) + break; newstr=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr)); + if (newstr == (char *) NULL) + break; while (Tokenizer(token_info,0,token,(size_t) inputlen,line,"","=","\"",0, &brkused,&next,"ed)==0) { @@ -766,9 +778,12 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) } state++; } - token=DestroyString(token); - newstr=DestroyString(newstr); - name=DestroyString(name); + if (token != (char *) NULL) + token=DestroyString(token); + if (newstr != (char *) NULL) + newstr=DestroyString(newstr); + if (name != (char *) NULL) + name=DestroyString(name); } token_info=DestroyTokenInfo(token_info); line=DestroyString(line); @@ -789,7 +804,7 @@ static ssize_t parse8BIMW(Image *ifile, Image *ofile) return(-1); savedolen = 0L; } - return outputlen; + return(outputlen); } /* some defines for the different JPEG block types */