gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r11700 - in Extractor/src: common include main plugins


From: gnunet
Subject: [GNUnet-SVN] r11700 - in Extractor/src: common include main plugins
Date: Sun, 13 Jun 2010 00:57:40 +0200

Author: grothoff
Date: 2010-06-13 00:57:40 +0200 (Sun, 13 Jun 2010)
New Revision: 11700

Modified:
   Extractor/src/common/convert.c
   Extractor/src/include/platform.h
   Extractor/src/main/extractor.c
   Extractor/src/main/iconv.c
   Extractor/src/plugins/deb_extractor.c
   Extractor/src/plugins/dvi_extractor.c
   Extractor/src/plugins/flac_extractor.c
   Extractor/src/plugins/jpeg_extractor.c
   Extractor/src/plugins/pdf_extractor.cc
   Extractor/src/plugins/png_extractor.c
   Extractor/src/plugins/ps_extractor.c
   Extractor/src/plugins/qt_extractor.c
Log:
null malloc checks

Modified: Extractor/src/common/convert.c
===================================================================
--- Extractor/src/common/convert.c      2010-06-12 22:01:49 UTC (rev 11699)
+++ Extractor/src/common/convert.c      2010-06-12 22:57:40 UTC (rev 11700)
@@ -53,7 +53,7 @@
     return NULL;
   itmp = tmp;
   finSize = tmpSize;
-  if (iconv (cd, (char **) &input, &len, &itmp, &finSize) == (size_t) - 1)
+  if (iconv (cd, (char **) &input, &len, &itmp, &finSize) == SIZE_MAX)
     {
       iconv_close (cd);
       free (tmp);

Modified: Extractor/src/include/platform.h
===================================================================
--- Extractor/src/include/platform.h    2010-06-12 22:01:49 UTC (rev 11699)
+++ Extractor/src/include/platform.h    2010-06-12 22:57:40 UTC (rev 11700)
@@ -44,6 +44,7 @@
 #include <ctype.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdint.h>
 #include <fcntl.h>
 #include <time.h>
 #include <utime.h>
@@ -65,6 +66,10 @@
 #include <iconv.h>
 #include <langinfo.h>
 
+#ifndef SIZE_MAX
+#define SIZE_MAX ((size_t)-1)
+#endif
+
 #if DARWIN
 #include <mach-o/dyld.h>
 #include <mach-o/ldsyms.h>

Modified: Extractor/src/main/extractor.c
===================================================================
--- Extractor/src/main/extractor.c      2010-06-12 22:01:49 UTC (rev 11699)
+++ Extractor/src/main/extractor.c      2010-06-12 22:57:40 UTC (rev 11700)
@@ -1249,7 +1249,7 @@
 
 #ifndef WINDOWS
       if ( (-1 != (shmid = shm_open (fn, O_RDONLY, 0))) &&
-          (((size_t)-1) != (size = lseek (shmid, 0, SEEK_END))) &&
+          (SIZE_MAX != (size = lseek (shmid, 0, SEEK_END))) &&
           (NULL != (ptr = mmap (NULL, size, PROT_READ, MAP_SHARED, shmid, 0))) 
&&
           (ptr != (void*) -1) )
 #else

Modified: Extractor/src/main/iconv.c
===================================================================
--- Extractor/src/main/iconv.c  2010-06-12 22:01:49 UTC (rev 11699)
+++ Extractor/src/main/iconv.c  2010-06-12 22:57:40 UTC (rev 11700)
@@ -24,7 +24,8 @@
  */
 static char * 
 iconv_helper(iconv_t cd,
-            const char * in) {
+            const char * in) 
+{
   size_t inSize;
   char * buf;
   char * ibuf;
@@ -50,10 +51,11 @@
            (char**) &in,
            &inSize,
            &ibuf,
-           &outLeft) == (size_t)-1) {
-    /* conversion failed */
-    free(buf);
-    return strdup(i);
-  }
+           &outLeft) == SIZE_MAX)
+    {
+      /* conversion failed */
+      free(buf);
+      return strdup(i);
+    }
   return buf;
 }

Modified: Extractor/src/plugins/deb_extractor.c
===================================================================
--- Extractor/src/plugins/deb_extractor.c       2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/deb_extractor.c       2010-06-12 22:57:40 UTC (rev 
11700)
@@ -223,9 +223,6 @@
 }
 
 #define MAX_CONTROL_SIZE (1024 * 1024)
-#ifndef SIZE_MAX
-#define SIZE_MAX ((size_t)-1)
-#endif
 
 static voidpf
 Emalloc (voidpf opaque, uInt items, uInt size)

Modified: Extractor/src/plugins/dvi_extractor.c
===================================================================
--- Extractor/src/plugins/dvi_extractor.c       2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/dvi_extractor.c       2010-06-12 22:57:40 UTC (rev 
11700)
@@ -71,16 +71,23 @@
                     slen++;
                   slen = slen - pos;
                   value = malloc (slen + 1);
-                  value[slen] = '\0';
-                  memcpy (value, &data[pos], slen);
-                 if (0 != proc (proc_cls, 
-                                "dvi",
-                                tmap[i].type,
-                                EXTRACTOR_METAFORMAT_C_STRING,
-                                "text/plain",
-                                value,
-                                strlen (value) +1))
-                   return 1;
+                 if (value != NULL)
+                   {
+                     value[slen] = '\0';
+                     memcpy (value, &data[pos], slen);
+                     if (0 != proc (proc_cls, 
+                                    "dvi",
+                                    tmap[i].type,
+                                    EXTRACTOR_METAFORMAT_C_STRING,
+                                    "text/plain",
+                                    value,
+                                    strlen (value) +1))
+                       {
+                         free (value);
+                         return 1;
+                       }
+                     free (value);
+                   }
                   pos += slen + 1;
                 }
             }
@@ -119,8 +126,8 @@
 {
   unsigned int klen;
   char *comment;
-  unsigned int pos;
-  unsigned int opos;
+  uint32_t pos;
+  uint32_t opos;
   unsigned int len;
   unsigned int pageCount;
   char pages[16];
@@ -153,7 +160,7 @@
   pos = ntohl (getIntAt (&data[opos + 1]));
   while (1)
     {
-      if (pos == (unsigned int) -1)
+      if (pos == UINT32_MAX)
         break;
       if (pos + 45 > size)
         return 0;
@@ -162,7 +169,7 @@
       pageCount++;
       opos = pos;
       pos = ntohl (getIntAt (&data[opos + 41]));
-      if (pos == (unsigned int) -1)
+      if (pos == UINT32_MAX)
         break;
       if (pos >= opos)
         return 0;            /* invalid! */
@@ -171,6 +178,14 @@
   snprintf (pages, sizeof(pages), "%u", pageCount);
   if (0 != proc (proc_cls, 
                 "dvi",
+                EXTRACTOR_METATYPE_PAGE_COUNT,
+                EXTRACTOR_METAFORMAT_UTF8,
+                "text/plain",
+                pages,
+                strlen (pages) +1))
+    return 1;
+  if (0 != proc (proc_cls, 
+                "dvi",
                 EXTRACTOR_METATYPE_MIMETYPE,
                 EXTRACTOR_METAFORMAT_UTF8,
                 "text/plain",
@@ -178,28 +193,23 @@
                 strlen ("application/x-dvi") +1))
     return 1;
   comment = malloc (klen + 1);
-  comment[klen] = '\0';
-  memcpy (comment, &data[15], klen);
-  if (0 != proc (proc_cls, 
-                "dvi",
-                EXTRACTOR_METATYPE_COMMENT,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                comment,
-                strlen (comment) +1))
+  if (comment != NULL)
     {
+      comment[klen] = '\0';
+      memcpy (comment, &data[15], klen);
+      if (0 != proc (proc_cls, 
+                    "dvi",
+                    EXTRACTOR_METATYPE_COMMENT,
+                    EXTRACTOR_METAFORMAT_UTF8,
+                    "text/plain",
+                    comment,
+                    strlen (comment) +1))
+       {
+         free (comment);
+         return 1;
+       }
       free (comment);
-      return 1;
     }
-  free (comment);
-  if (0 != proc (proc_cls, 
-                "dvi",
-                EXTRACTOR_METATYPE_PAGE_COUNT,
-                EXTRACTOR_METAFORMAT_UTF8,
-                "text/plain",
-                pages,
-                strlen (pages) +1))
-    return 1;
   /* try to find PDF/ps special */
   pos = opos;
   while (pos < size - 100)

Modified: Extractor/src/plugins/flac_extractor.c
===================================================================
--- Extractor/src/plugins/flac_extractor.c      2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/flac_extractor.c      2010-06-12 22:57:40 UTC (rev 
11700)
@@ -134,6 +134,8 @@
   char * d;
 
   d= malloc(n+1);
+  if (d == NULL)
+    return NULL;
   memcpy(d,s,n);
   d[n]='\0';
   return d;
@@ -162,8 +164,11 @@
        {
          tmp = xstrndup(value,
                         value_length);
-         ADD (tmap[i].type, tmp);
-         free (tmp);
+         if (tmp != NULL)
+           {
+             ADD (tmap[i].type, tmp);
+             free (tmp);
+           }
          break;
        }
       i++;

Modified: Extractor/src/plugins/jpeg_extractor.c
===================================================================
--- Extractor/src/plugins/jpeg_extractor.c      2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/jpeg_extractor.c      2010-06-12 22:57:40 UTC (rev 
11700)
@@ -112,6 +112,8 @@
   if (length <= 0)
     return NULL;
   comment = malloc (length + 1);
+  if (comment == NULL)
+    return NULL;
   pos = 0;
   while (length > 0)
     {

Modified: Extractor/src/plugins/pdf_extractor.cc
===================================================================
--- Extractor/src/plugins/pdf_extractor.cc      2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/pdf_extractor.cc      2010-06-12 22:57:40 UTC (rev 
11700)
@@ -70,25 +70,25 @@
     } else {
       size_t len = strlen(s);
       
-      while(0 < len) {
-        /*
-         * Avoid outputting trailing spaces.
-         *
-         * The following expression might be rewritten as
-         * (! isspace(s[len - 1]) && 0xA0 != s[len - 1]).
-         * There seem to exist isspace() implementations
-         * which do return non-zero from NBSP (maybe locale-dependent).
-         * Remove ISO-8859 non-breaking space (NBSP, hex value 0xA0) from
-         * the expression if it looks suspicious (locale issues for instance).
-         *
-         * Squeezing out all non-printable characters might also be useful.
-         */
-          if ( (' '  != s[len - 1]) && ((char)0xA0 != s[len - 1]) &&
+      while(0 < len) 
+       {
+         /*
+          * Avoid outputting trailing spaces.
+          *
+          * The following expression might be rewritten as
+          * (! isspace(s[len - 1]) && 0xA0 != s[len - 1]).
+          * There seem to exist isspace() implementations
+          * which do return non-zero from NBSP (maybe locale-dependent).
+          * Remove ISO-8859 non-breaking space (NBSP, hex value 0xA0) from
+          * the expression if it looks suspicious (locale issues for instance).
+          *
+          * Squeezing out all non-printable characters might also be useful.
+          */
+         if ( (' '  != s[len - 1]) && (((char)0xA0) != s[len - 1]) &&
                ('\r' != s[len - 1]) && ('\n' != s[len - 1]) &&
                ('\t' != s[len - 1]) && ('\v' != s[len - 1]) &&
                ('\f' != s[len - 1]) )
-             break;
-
+           break;        
           else
             len --;
         }

Modified: Extractor/src/plugins/png_extractor.c
===================================================================
--- Extractor/src/plugins/png_extractor.c       2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/png_extractor.c       2010-06-12 22:57:40 UTC (rev 
11700)
@@ -28,6 +28,8 @@
 {
   char *tmp;
   tmp = malloc (n + 1);
+  if (tmp == NULL)
+    return NULL;
   tmp[n] = '\0';
   memcpy (tmp, str, n);
   return tmp;
@@ -79,7 +81,7 @@
 
 
 #define ADD(t,s) do { if (0 != (ret = proc (proc_cls, "tar", t, 
EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen(s)+1))) goto FINISH; } while 
(0)
-#define ADDF(t,s) do { if (0 != (ret = proc (proc_cls, "tar", t, 
EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen(s)+1))) { free(s); goto 
FINISH; } free (s); } while (0)
+#define ADDF(t,s) do { if ( (s != NULL) && (0 != (ret = proc (proc_cls, "tar", 
t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen(s)+1))) ) { free(s); goto 
FINISH; } if (s != NULL) free (s); } while (0)
 
 
 static int

Modified: Extractor/src/plugins/ps_extractor.c
===================================================================
--- Extractor/src/plugins/ps_extractor.c        2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/ps_extractor.c        2010-06-12 22:57:40 UTC (rev 
11700)
@@ -39,6 +39,8 @@
          (data[end] != (char) 0x0d) && (data[end] != (char) 0x0a))
     end++;
   res = malloc (end - pos + 1);
+  if (res == NULL)
+    return NULL;
   memcpy (res, &data[pos], end - pos);
   res[end - pos] = '\0';
 

Modified: Extractor/src/plugins/qt_extractor.c
===================================================================
--- Extractor/src/plugins/qt_extractor.c        2010-06-12 22:01:49 UTC (rev 
11699)
+++ Extractor/src/plugins/qt_extractor.c        2010-06-12 22:57:40 UTC (rev 
11700)
@@ -853,6 +853,8 @@
   addKeyword (EXTRACTOR_METATYPE_LANGUAGE, languages[lang], ec);
 
   meta = malloc (len + 1);
+  if (meta == NULL)
+    return 0;
   memcpy (meta, &txt[1], len);
   meta[len] = '\0';
   for (i = 0; i < len; i++)
@@ -951,6 +953,8 @@
   }
   else if (flags == 0x1) { /* text data */
     meta = malloc (len + 1);
+    if (meta == NULL)
+      return 0;
     memcpy (meta, &input[pos+16], len);
     meta[len] = '\0';
     for (i = 0; i < len; i++)




reply via email to

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