Changeset 6998 for ImageMagick/branches/ImageMagick-6.7.5/magick/profile.c
- Timestamp:
- 02/29/12 20:41:19 (15 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ImageMagick/branches/ImageMagick-6.7.5/magick/profile.c
r6994 r6998 6626 6626 number_entries; 6627 6627 6628 SplayTreeInfo 6629 *exif_resources; 6630 6628 6631 ssize_t 6629 6632 id, … … 6687 6690 level=0; 6688 6691 entry=0; 6692 exif_resources=NewSplayTree((int (*)(const void *,const void *)) NULL, 6693 (void *(*)(void *)) NULL,(void *(*)(void *)) NULL); 6689 6694 do 6690 6695 { … … 6716 6721 6717 6722 q=(unsigned char *) (directory+2+(12*entry)); 6723 if (GetValueFromSplayTree(exif_resources,q) == q) 6724 break; 6725 (void) AddValueToSplayTree(exif_resources,q,q); 6718 6726 tag_value=(ssize_t) ReadProfileShort(endian,q); 6719 6727 format=(ssize_t) ReadProfileShort(endian,q+2); … … 6733 6741 */ 6734 6742 offset=(ssize_t) ((int) ReadProfileLong(endian,q+8)); 6743 if ((offset+number_bytes) < offset) 6744 continue; /* prevent overflow */ 6735 6745 if ((size_t) (offset+number_bytes) > length) 6736 6746 continue; 6737 if (~length < number_bytes)6738 continue; /* prevent overflow */6739 6747 p=(unsigned char *) (exif+offset); 6740 6748 } … … 6798 6806 } 6799 6807 } while (level > 0); 6808 exif_resources=DestroySplayTree(exif_resources); 6800 6809 return(MagickTrue); 6801 6810 }
Note: See TracChangeset
for help on using the changeset viewer.
