Changeset 6676 for ImageMagick/branches/ImageMagick-6.7.5/magick/property.c
- Timestamp:
- 02/03/12 11:40:43 (16 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ImageMagick/branches/ImageMagick-6.7.5/magick/property.c
r6668 r6676 444 444 } 445 445 446 static inline ssize_t MagickMin(const ssize_t x,const ssize_t y) 447 { 448 if (x < y) 449 return(x); 450 return(y); 451 } 452 446 453 static inline int ReadPropertyByte(const unsigned char **p,size_t *length) 447 454 { … … 578 585 if (ReadPropertyByte(&info,&length) != (unsigned char) 'M') 579 586 continue; 580 id=(ssize_t) ReadPropertyMSBShort(&info,&length);587 id=(ssize_t) ((int) ReadPropertyMSBShort(&info,&length)); 581 588 if (id < (ssize_t) start) 582 589 continue; … … 609 616 */ 610 617 info+=count; 611 length-= count;618 length-=MagickMin(count,(ssize_t) length); 612 619 continue; 613 620 } … … 619 626 sub_number--; 620 627 info+=count; 621 length-= count;628 length-=MagickMin(count,(ssize_t) length); 622 629 continue; 623 630 } … … 634 641 attribute[count]='\0'; 635 642 info+=count; 636 length-= count;643 length-=MagickMin(count,(ssize_t) length); 637 644 if ((id <= 1999) || (id >= 2999)) 638 645 (void) SetImageProperty((Image *) image,key,(const char *) … … 1254 1261 Determine how many entries there are in the current IFD. 1255 1262 */ 1256 number_entries= ReadPropertyShort(endian,directory);1263 number_entries=(size_t) ((int) ReadPropertyShort(endian,directory)); 1257 1264 for ( ; entry < number_entries; entry++) 1258 1265 { … … 1325 1332 { 1326 1333 EXIFMultipleValues(4,"%.20g",(double) 1327 ReadPropertyLong(endian,p1));1334 ((int) ReadPropertyLong(endian,p1))); 1328 1335 break; 1329 1336 } … … 1439 1446 } 1440 1447 if ((tag_value == TAG_EXIF_OFFSET) || 1441 (tag_value == TAG_INTEROP_OFFSET) || 1442 (tag_value == TAG_GPS_OFFSET)) 1448 (tag_value == TAG_INTEROP_OFFSET) || (tag_value == TAG_GPS_OFFSET)) 1443 1449 { 1444 1450 size_t … … 1463 1469 if ((directory+2+(12*number_entries)) > (exif+length)) 1464 1470 break; 1465 offset=(size_t) ReadPropertyLong(endian,directory+2+(12*1466 number_entries)) ;1471 offset=(size_t) ((int) ReadPropertyLong(endian,directory+2+(12* 1472 number_entries))); 1467 1473 if ((offset != 0) && (offset < length) && 1468 1474 (level < (MaxDirectoryStack-2))) … … 1619 1625 while (length > 0) 1620 1626 { 1621 selector=(ssize_t) ReadPropertyMSBShort(&blob,&length);1627 selector=(ssize_t) ((int) ReadPropertyMSBShort(&blob,&length)); 1622 1628 switch (selector) 1623 1629 { … … 1628 1634 { 1629 1635 blob+=24; 1630 length-= 24;1636 length-=MagickMin(24,(ssize_t) length); 1631 1637 break; 1632 1638 } … … 1634 1640 Expected subpath length record. 1635 1641 */ 1636 knot_count=(ssize_t) ReadPropertyMSBShort(&blob,&length);1642 knot_count=(ssize_t) ((int) ReadPropertyMSBShort(&blob,&length)); 1637 1643 blob+=22; 1638 length-= 22;1644 length-=MagickMin(22,(ssize_t) length); 1639 1645 break; 1640 1646 } … … 1650 1656 */ 1651 1657 blob+=24; 1652 length-= 24;1658 length-=MagickMin(24,(ssize_t) length); 1653 1659 break; 1654 1660 } … … 1662 1668 yy; 1663 1669 1664 yy= ReadPropertyMSBLong(&blob,&length);1665 xx= ReadPropertyMSBLong(&blob,&length);1670 yy=(size_t) ((int) ReadPropertyMSBLong(&blob,&length)); 1671 xx=(size_t) ((int) ReadPropertyMSBLong(&blob,&length)); 1666 1672 x=(ssize_t) xx; 1667 1673 if (xx > 2147483647) … … 1751 1757 { 1752 1758 blob+=24; 1753 length-= 24;1759 length-=MagickMin(24,(ssize_t) length); 1754 1760 break; 1755 1761 } … … 1816 1822 while (length != 0) 1817 1823 { 1818 selector=(ssize_t) ReadPropertyMSBShort(&blob,&length);1824 selector=(ssize_t) ((int) ReadPropertyMSBShort(&blob,&length)); 1819 1825 switch (selector) 1820 1826 { … … 1825 1831 { 1826 1832 blob+=24; 1827 length-= 24;1833 length-=MagickMin(24,(ssize_t) length); 1828 1834 break; 1829 1835 } … … 1831 1837 Expected subpath length record. 1832 1838 */ 1833 knot_count=(ssize_t) ReadPropertyMSBShort(&blob,&length);1839 knot_count=(ssize_t) ((int) ReadPropertyMSBShort(&blob,&length)); 1834 1840 blob+=22; 1835 length-= 22;1841 length-=MagickMin(22,(ssize_t) length); 1836 1842 break; 1837 1843 } … … 1847 1853 */ 1848 1854 blob+=24; 1849 length-= 24;1855 length-=MagickMin(24,(ssize_t) length); 1850 1856 break; 1851 1857 } … … 1922 1928 { 1923 1929 blob+=24; 1924 length-= 24;1930 length-=MagickMin(24,(ssize_t) length); 1925 1931 break; 1926 1932 }
Note: See TracChangeset
for help on using the changeset viewer.
