iliaa Mon Dec 9 19:10:28 2002 EDT Modified files: /php4/ext/exif exif.c Log: Fixed bug #20907, patch by [EMAIL PROTECTED] Index: php4/ext/exif/exif.c diff -u php4/ext/exif/exif.c:1.123 php4/ext/exif/exif.c:1.124 --- php4/ext/exif/exif.c:1.123 Tue Nov 26 21:42:41 2002 +++ php4/ext/exif/exif.c Mon Dec 9 19:10:27 2002 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: exif.c,v 1.123 2002/11/27 02:42:41 helly Exp $ */ +/* $Id: exif.c,v 1.124 2002/12/10 00:10:27 iliaa Exp $ */ /* ToDos * @@ -89,7 +89,7 @@ }; /* }}} */ -#define EXIF_VERSION "1.4 $Id: exif.c,v 1.123 2002/11/27 02:42:41 helly Exp $" +#define EXIF_VERSION "1.4 $Id: exif.c,v 1.124 2002/12/10 00:10:27 iliaa Exp $" /* {{{ PHP_MINFO_FUNCTION */ @@ -765,8 +765,8 @@ { 0x0000, "GPSVersion"}, { 0x0001, "GPSLatitudeRef"}, { 0x0002, "GPSLatitude"}, - { 0x0003, "GPSLongitude"}, - { 0x0004, "GPSLongitudeRef"}, + { 0x0003, "GPSLongitudeRef"}, + { 0x0004, "GPSLongitude"}, { 0x0005, "GPSAltitudeRef"}, { 0x0006, "GPSAltitude"}, { 0x0007, "GPSTimeStamp"}, @@ -1520,6 +1520,7 @@ static void exif_iif_add_value(image_info_type *image_info, int section_index, char *name, int tag, int format, size_t length, void* value, int motorola_intel TSRMLS_DC) { size_t index; + void *vptr; image_info_value *info_value; image_info_data *info_data; image_info_data *list; @@ -1614,35 +1615,35 @@ } else { info_value = &info_data->value; } - for (index=0; index<length; index++) { + for (index=0,vptr=value; index<length; +index++,vptr+=php_tiff_bytes_per_format[format]) { if (length>1) { info_value = &info_data->value.list[index]; } switch (format) { case TAG_FMT_USHORT: - info_value->u = php_ifd_get16u(value, motorola_intel); + info_value->u = php_ifd_get16u(vptr, +motorola_intel); break; case TAG_FMT_ULONG: - info_value->u = php_ifd_get32u(value, motorola_intel); + info_value->u = php_ifd_get32u(vptr, +motorola_intel); break; case TAG_FMT_URATIONAL: - info_value->ur.num = php_ifd_get32u(value, motorola_intel); - info_value->ur.den = php_ifd_get32u(4+(char *)value, motorola_intel); + info_value->ur.num = +php_ifd_get32u(vptr, motorola_intel); + info_value->ur.den = +php_ifd_get32u(4+(char *)vptr, motorola_intel); break; case TAG_FMT_SSHORT: - info_value->i = php_ifd_get16s(value, motorola_intel); + info_value->i = php_ifd_get16s(vptr, +motorola_intel); break; case TAG_FMT_SLONG: - info_value->i = php_ifd_get32s(value, motorola_intel); + info_value->i = php_ifd_get32s(vptr, +motorola_intel); break; case TAG_FMT_SRATIONAL: - info_value->sr.num = php_ifd_get32u(value, motorola_intel); - info_value->sr.den = php_ifd_get32u(4+(char *)value, motorola_intel); + info_value->sr.num = +php_ifd_get32u(vptr, motorola_intel); + info_value->sr.den = +php_ifd_get32u(4+(char *)vptr, motorola_intel); break; case TAG_FMT_SINGLE:
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php