]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 23 Mar 2015 14:28:39 +0000 (14:28 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 23 Mar 2015 14:28:39 +0000 (14:28 +0000)
coders/meta.c

index 11caa56a4dcb2778366026978d5249e719e0e0aa..0bdd54ac4398bbbe984002ff865a4fc4069e59e3 100644 (file)
@@ -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,&quoted)==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,&quoted)==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 */