stas            Sat Feb 24 03:08:06 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/exif   exif.c 
  Log:
  use safe allocations
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/exif/exif.c?r1=1.173.2.5.2.12&r2=1.173.2.5.2.13&diff_format=u
Index: php-src/ext/exif/exif.c
diff -u php-src/ext/exif/exif.c:1.173.2.5.2.12 
php-src/ext/exif/exif.c:1.173.2.5.2.13
--- php-src/ext/exif/exif.c:1.173.2.5.2.12      Sat Feb 24 02:17:24 2007
+++ php-src/ext/exif/exif.c     Sat Feb 24 03:08:05 2007
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: exif.c,v 1.173.2.5.2.12 2007/02/24 02:17:24 helly Exp $ */
+/* $Id: exif.c,v 1.173.2.5.2.13 2007/02/24 03:08:05 stas Exp $ */
 
 /*  ToDos
  *
@@ -84,6 +84,9 @@
 #ifndef safe_emalloc
 # define safe_emalloc(a,b,c) emalloc((a)*(b)+(c))
 #endif
+#ifndef safe_erealloc
+# define safe_erealloc(p,a,b,c) erealloc(p, (a)*(b)+(c))
+#endif
 
 #ifndef TRUE
 #      define TRUE 1
@@ -139,7 +142,7 @@
 };
 /* }}} */
 
-#define EXIF_VERSION "1.4 $Id: exif.c,v 1.173.2.5.2.12 2007/02/24 02:17:24 
helly Exp $"
+#define EXIF_VERSION "1.4 $Id: exif.c,v 1.173.2.5.2.13 2007/02/24 03:08:05 
stas Exp $"
 
 /* {{{ PHP_MINFO_FUNCTION
  */
@@ -1597,7 +1600,7 @@
        file_section    *tmp;
        int             count = ImageInfo->file.count;
 
-       tmp = erealloc(ImageInfo->file.list, (count+1)*sizeof(file_section));
+       tmp = safe_erealloc(ImageInfo->file.list, (count+1), 
sizeof(file_section), 0);
        ImageInfo->file.list = tmp;
        ImageInfo->file.list[count].type = 0xFFFF;
        ImageInfo->file.list[count].data = NULL;
@@ -1629,7 +1632,7 @@
                EXIF_ERRLOG_FSREALLOC(ImageInfo)
                return -1;
        }
-       tmp = erealloc(ImageInfo->file.list[section_index].data, size);
+       tmp = safe_erealloc(ImageInfo->file.list[section_index].data, 1, size, 
0);
        ImageInfo->file.list[section_index].data = tmp;
        ImageInfo->file.list[section_index].size = size;
        return 0;
@@ -1669,7 +1672,7 @@
                return;
        }
 
-       list = erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1)*sizeof(image_info_data));
+       list = safe_erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1), sizeof(image_info_data), 0);
        image_info->info_list[section_index].list = list;
 
        info_data  = 
&image_info->info_list[section_index].list[image_info->info_list[section_index].count];
@@ -1807,7 +1810,7 @@
        image_info_data  *info_data;
        image_info_data  *list;
 
-       list = erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1)*sizeof(image_info_data));
+       list = safe_erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1), sizeof(image_info_data), 0);
        image_info->info_list[section_index].list = list;
 
        info_data  = 
&image_info->info_list[section_index].list[image_info->info_list[section_index].count];
@@ -1830,7 +1833,7 @@
        image_info_data  *list;
 
        if (value) {
-               list = erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1)*sizeof(image_info_data));
+               list = safe_erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1), sizeof(image_info_data), 0);
                image_info->info_list[section_index].list = list;
                info_data  = 
&image_info->info_list[section_index].list[image_info->info_list[section_index].count];
                info_data->tag    = TAG_NONE;
@@ -1875,7 +1878,7 @@
        image_info_data  *list;
 
        if (value) {
-               list = erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1)*sizeof(image_info_data));
+               list = safe_erealloc(image_info->info_list[section_index].list, 
(image_info->info_list[section_index].count+1), sizeof(image_info_data), 0);
                image_info->info_list[section_index].list = list;
                info_data  = 
&image_info->info_list[section_index].list[image_info->info_list[section_index].count];
                info_data->tag    = TAG_NONE;
@@ -2489,7 +2492,7 @@
                                }
                        }
                        new_move = new_size;
-                       new_data = erealloc(ImageInfo->Thumbnail.data, 
ImageInfo->Thumbnail.size+new_size);
+                       new_data = safe_erealloc(ImageInfo->Thumbnail.data, 1, 
ImageInfo->Thumbnail.size, new_size);
                        ImageInfo->Thumbnail.data = new_data;
                        memmove(ImageInfo->Thumbnail.data + new_move, 
ImageInfo->Thumbnail.data, ImageInfo->Thumbnail.size);
                        ImageInfo->Thumbnail.size += new_size;
@@ -2985,7 +2988,7 @@
                        case TAG_XP_AUTHOR:
                        case TAG_XP_KEYWORDS:
                        case TAG_XP_SUBJECT:
-                               tmp_xp = 
(xp_field_type*)erealloc(ImageInfo->xp_fields.list, 
sizeof(xp_field_type)*(ImageInfo->xp_fields.count+1));
+                               tmp_xp = 
(xp_field_type*)safe_erealloc(ImageInfo->xp_fields.list, 
(ImageInfo->xp_fields.count+1), sizeof(xp_field_type), 0);
                                ImageInfo->sections_found |= FOUND_WINXP;
                                ImageInfo->xp_fields.list = tmp_xp;
                                ImageInfo->xp_fields.count++;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to