gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r286 - Extractor/src/plugins


From: grothoff
Subject: [GNUnet-SVN] r286 - Extractor/src/plugins
Date: Sun, 20 Feb 2005 09:41:37 -0800 (PST)

Author: grothoff
Date: 2005-02-20 09:41:36 -0800 (Sun, 20 Feb 2005)
New Revision: 286

Modified:
   Extractor/src/plugins/pngextractor.c
Log:
pdf bugfix

Modified: Extractor/src/plugins/pngextractor.c
===================================================================
--- Extractor/src/plugins/pngextractor.c        2005-02-20 17:25:23 UTC (rev 
285)
+++ Extractor/src/plugins/pngextractor.c        2005-02-20 17:41:36 UTC (rev 
286)
@@ -1,6 +1,6 @@
 /*
      This file is part of libextractor.
-     (C) 2002, 2003, 2004 Vidyut Samanta and Christian Grothoff
+     (C) 2002, 2003, 2004, 2005 Vidyut Samanta and Christian Grothoff
 
      libextractor is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -46,7 +46,7 @@
   return result;
 }
 
-static int getIntAt(char * pos) {
+static int getIntAt(const char * pos) {
   char p[4];
 
   memcpy(p, pos, 4); /* ensure alignment! */
@@ -72,7 +72,7 @@
    { NULL, EXTRACTOR_UNKNOWN},
 };
 
-static struct EXTRACTOR_Keywords * processtEXt(unsigned char * data,
+static struct EXTRACTOR_Keywords * processtEXt(const unsigned char * data,
                                               unsigned int length,
                                               struct EXTRACTOR_Keywords * 
prev) {
   char * keyword;
@@ -100,13 +100,13 @@
                    prev);
 }
 
-static struct EXTRACTOR_Keywords * processiTXt(unsigned char * data,
+static struct EXTRACTOR_Keywords * processiTXt(const unsigned char * data,
                                               unsigned int length,
                                               struct EXTRACTOR_Keywords * 
prev) {
   unsigned int pos;
   char * keyword;
-  char * language;
-  char * translated;
+  const char * language;
+  const char * translated;
   int i;
   int compressed;
   char * buf;
@@ -182,7 +182,7 @@
                    prev);
 }
 
-static struct EXTRACTOR_Keywords * processIHDR(unsigned char * data,
+static struct EXTRACTOR_Keywords * processIHDR(const unsigned char * data,
                                               unsigned int length,
                                               struct EXTRACTOR_Keywords * 
prev) {
   char * tmp;
@@ -202,7 +202,7 @@
 }
 
 /* not supported... */
-static struct EXTRACTOR_Keywords * processzTXt(unsigned char * data,
+static struct EXTRACTOR_Keywords * processzTXt(const unsigned char * data,
                                               unsigned int length,
                                               struct EXTRACTOR_Keywords * 
prev) {
   char * keyword;
@@ -291,8 +291,11 @@
     if (pos+12 >= end)
       break;
     length = htonl(getIntAt(pos));  pos+=4;
-    if (pos+4+length+4 > end)
+    /* printf("Length: %u, pos %u\n", length, pos - data); */
+    if ( (pos+4+length+4 > end) ||
+        (pos+4+length+4 < pos + 4 + length) ) 
       break;
+    
     if (0 == strncmp(pos, "IHDR", 4))
       result = processIHDR(pos, length, result);
     if (0 == strncmp(pos, "iTXt", 4)) 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]