]> git.pld-linux.org Git - packages/php.git/commitdiff
- up to 1.173.2.5.2.10
authorElan Ruusamäe <glen@pld-linux.org>
Wed, 10 Jan 2007 13:22:04 +0000 (13:22 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    php-bug-40073.patch -> 1.4

php-bug-40073.patch

index 54ad0b59a38fafc7b4a9400255ed287051463ac9..1c35a414192bf85fc53091e8fed90de3f650a294 100644 (file)
@@ -1,5 +1,5 @@
---- php-5.2/ext/exif/exif.c    2006/10/10 22:22:43     1.173.2.5.2.4
-+++ php-5.2/ext/exif/exif.c    2007/01/09 11:37:17     1.173.2.5.2.9
+--- exif.c     2006/10/10 22:22:43     1.173.2.5.2.4
++++ exif.c     2007/01/09 17:55:29     1.173.2.5.2.10
 @@ -2,7 +2,7 @@
     +----------------------------------------------------------------------+
     | PHP Version 5                                                        |
  
  /* {{{ PHP_MINFO_FUNCTION
   */
-@@ -1599,6 +1599,7 @@
+@@ -1150,6 +1150,80 @@
+ }
+ /* }}} */
++#ifdef EXIF_DEBUG
++char * exif_dump_data(int *dump_free, int format, int components, int length, int motorola_intel, char *value_ptr TSRMLS_DC) /* {{{ */
++{
++      char *dump;
++      int len;
++
++      *dump_free = 0;
++      if (format == TAG_FMT_STRING) {
++              return value_ptr ? value_ptr : "<no data>";
++      }
++      if (format == TAG_FMT_UNDEFINED) {
++              return "<undefined>\n";
++      }
++      if (format == TAG_FMT_IFD) {
++              return "";
++      }
++      if (format == TAG_FMT_SINGLE || format == TAG_FMT_DOUBLE) {
++              return "<not implemented>";
++      }
++      *dump_free = 1;
++      if (components > 1) {
++              len = spprintf(&dump, 0, "(%d,%d) {", components, length);
++      } else {
++              len = spprintf(&dump, 0, "{");
++      }
++      while(components > 0) {
++              switch(format) {
++                      case TAG_FMT_BYTE:
++                      case TAG_FMT_UNDEFINED:
++                      case TAG_FMT_STRING:
++                      case TAG_FMT_SBYTE:
++                              dump = erealloc(dump, len + 4);
++                              sprintf(dump + len, "0x%02X", *value_ptr);
++                              len += 4;
++                              value_ptr++;
++                              break;
++                      case TAG_FMT_USHORT:
++                      case TAG_FMT_SSHORT:
++                              dump = erealloc(dump, len + 6);
++                              sprintf(dump + len, "0x%04X", php_ifd_get16s(value_ptr, motorola_intel));
++                              len += 6;
++                              value_ptr += 2;
++                              break;
++                      case TAG_FMT_ULONG:
++                      case TAG_FMT_SLONG:
++                              dump = erealloc(dump, len + 6);
++                              sprintf(dump + len, "0x%04X", php_ifd_get32s(value_ptr, motorola_intel));
++                              len += 6;
++                              value_ptr += 4;
++                              break;
++                      case TAG_FMT_URATIONAL:
++                      case TAG_FMT_SRATIONAL:
++                              dump = erealloc(dump, len + 13);
++                              sprintf(dump + len, "0x%04X/0x%04X", php_ifd_get32s(value_ptr, motorola_intel), php_ifd_get32s(value_ptr+4, motorola_intel));
++                              len += 13;
++                              value_ptr += 8;
++                              break;
++              }
++              if (components > 0) {
++                      dump = erealloc(dump, len + 2);
++                      sprintf(dump + len, ", ");
++                      len += 2;                       
++                      components--;
++              } else{
++                      break;
++              }
++      }
++      dump = erealloc(dump, len + 2);
++      sprintf(dump + len, "}");
++      return dump;
++}
++/* }}} */
++#endif
++
+ /* {{{ exif_convert_any_format
+  * Evaluate number, be it int, rational, or float from directory. */
+ static double exif_convert_any_format(void *value, int format, int motorola_intel TSRMLS_DC)
+@@ -1599,6 +1673,7 @@
        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;
        info_data->format = format;
        info_data->length = length;
-@@ -3590,7 +3591,7 @@
+@@ -2746,10 +2821,14 @@
+       char *value_ptr, tagname[64], cbuf[32], *outside=NULL;
+       size_t byte_count, offset_val, fpos, fgot;
+       xp_field_type *tmp_xp;
++#ifdef EXIF_DEBUG
++      char *dump_data;
++      int dump_free;
++#endif /* EXIF_DEBUG */
+       /* Protect against corrupt headers */
+       if (ImageInfo->ifd_nesting_level > MAX_IFD_NESTING_LEVEL) {
+-              exif_error_docref("exif_read_data#error_ifd" TSRMLS_CC, ImageInfo, E_WARNING, "corrupt EXIF header: maximum directory nesting level reached");
++              exif_error_docref("exif_read_data#error_ifd" EXIFERR_CC, ImageInfo, E_WARNING, "corrupt EXIF header: maximum directory nesting level reached");
+               return FALSE;
+       }
+       ImageInfo->ifd_nesting_level++;
+@@ -2834,7 +2913,11 @@
+       ImageInfo->sections_found |= FOUND_ANY_TAG;
+ #ifdef EXIF_DEBUG
+-      exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "Process tag(x%04X=%s,@x%04X + x%04X(=%d)): %s%s", tag, exif_get_tagname(tag, tagname, -12, tag_table TSRMLS_CC), offset_val+displacement, byte_count, byte_count, (components>1)&&format!=TAG_FMT_UNDEFINED&&format!=TAG_FMT_STRING?"ARRAY OF ":"", format==TAG_FMT_STRING?(value_ptr?value_ptr:"<no data>"):exif_get_tagformat(format));
++      dump_data = exif_dump_data(&dump_free, format, components, length, ImageInfo->motorola_intel, value_ptr TSRMLS_CC);
++      exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "Process tag(x%04X=%s,@x%04X + x%04X(=%d)): %s%s %s", tag, exif_get_tagname(tag, tagname, -12, tag_table TSRMLS_CC), offset_val+displacement, byte_count, byte_count, (components>1)&&format!=TAG_FMT_UNDEFINED&&format!=TAG_FMT_STRING?"ARRAY OF ":"", exif_get_tagformat(format), dump_data);
++      if (dump_free) {
++              efree(dump_data);
++      }
+ #endif
+       if (section_index==SECTION_THUMBNAIL) {
+               if (!ImageInfo->Thumbnail.data) {
+@@ -3023,7 +3106,9 @@
+                                               exif_error_docref("exif_read_data#error_ifd" EXIFERR_CC, ImageInfo, E_WARNING, "Illegal IFD Pointer");
+                                               return FALSE;
+                                       }
+-                                      exif_process_IFD_in_JPEG(ImageInfo, Subdir_start, offset_base, IFDlength, displacement, sub_section_index TSRMLS_CC);
++                                      if (!exif_process_IFD_in_JPEG(ImageInfo, Subdir_start, offset_base, IFDlength, displacement, sub_section_index TSRMLS_CC)) {
++                                              return FALSE;
++                                      }
+ #ifdef EXIF_DEBUG
+                                       exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "Subsection %s done", exif_get_sectionname(sub_section_index));
+ #endif
+@@ -3590,7 +3675,7 @@
                                                                exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "%s THUMBNAIL @0x%04X + 0x%04X", ImageInfo->Thumbnail.data ? "Ignore" : "Read", ImageInfo->Thumbnail.offset, ImageInfo->Thumbnail.size);
  #endif
                                                                if (!ImageInfo->Thumbnail.data) {
                                                                        php_stream_seek(ImageInfo->infile, ImageInfo->Thumbnail.offset, SEEK_SET);
                                                                        fgot = php_stream_read(ImageInfo->infile, ImageInfo->Thumbnail.data, ImageInfo->Thumbnail.size);
                                                                        if (fgot < ImageInfo->Thumbnail.size) {
-@@ -3623,7 +3624,7 @@
+@@ -3623,7 +3708,7 @@
                                        exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "%s THUMBNAIL @0x%04X + 0x%04X", ImageInfo->Thumbnail.data ? "Ignore" : "Read", ImageInfo->Thumbnail.offset, ImageInfo->Thumbnail.size);
  #endif
                                        if (!ImageInfo->Thumbnail.data && ImageInfo->Thumbnail.offset && ImageInfo->Thumbnail.size && ImageInfo->read_thumbnail) {
                                                php_stream_seek(ImageInfo->infile, ImageInfo->Thumbnail.offset, SEEK_SET);
                                                fgot = php_stream_read(ImageInfo->infile, ImageInfo->Thumbnail.data, ImageInfo->Thumbnail.size);
                                                if (fgot < ImageInfo->Thumbnail.size) {
-@@ -3914,7 +3915,7 @@
+@@ -3914,7 +3999,7 @@
                exif_iif_add_int(&ImageInfo, SECTION_COMPUTED, "ByteOrderMotorola", ImageInfo.motorola_intel TSRMLS_CC);
        }
        if (ImageInfo.FocalLength) {
                if(ImageInfo.CCDWidth) {
                        exif_iif_add_fmt(&ImageInfo, SECTION_COMPUTED, "35mmFocalLength" TSRMLS_CC, "%dmm", (int)(ImageInfo.FocalLength/ImageInfo.CCDWidth*35+0.5));
                }
-@@ -3924,19 +3925,19 @@
+@@ -3924,19 +4009,19 @@
        }
        if(ImageInfo.ExposureTime>0) {
                if(ImageInfo.ExposureTime <= 0.5) {
                }
        }
        if (ImageInfo.UserComment) {
-@@ -4005,7 +4006,7 @@
+@@ -4005,7 +4090,7 @@
     Reads the embedded thumbnail */
  PHP_FUNCTION(exif_thumbnail)
  {
This page took 0.055662 seconds and 4 git commands to generate.