EndianType
endian;
- int
- offset;
-
size_t
entry,
length,
ssize_t
id,
- level;
+ level,
+ offset;
static int
format_bytes[] = {0, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8};
/*
This the offset to the first IFD.
*/
- offset=(int) ReadProfileLong(endian,exif+4);
- if ((size_t) offset >= length)
+ offset=(ssize_t) ((int) ReadProfileLong(endian,exif+4));
+ if (offset >= length)
return(MagickFalse);
directory=exif+offset;
level=0;
p=q+8;
else
{
- int
+ ssize_t
offset;
/*
The directory entry contains an offset.
*/
- offset=(int) ReadProfileLong(endian,q+8);
- if ((size_t) (offset+number_bytes) > length)
+ offset=(ssize_t) ((int) ReadProfileLong(endian,q+8));
+ if ((offset+number_bytes) > length)
continue;
p=(unsigned char *) (exif+offset);
}
{
case 0x011a:
{
- (void) WriteProfileLong(endian,(size_t)
- (image->resolution.x+0.5),p);
+ (void) WriteProfileLong(endian,(size_t) (image->resolution.x+0.5),p);
(void) WriteProfileLong(endian,1UL,p+4);
break;
}
case 0x011b:
{
- (void) WriteProfileLong(endian,(size_t)
- (image->resolution.y+0.5),p);
+ (void) WriteProfileLong(endian,(size_t) (image->resolution.y+0.5),p);
(void) WriteProfileLong(endian,1UL,p+4);
break;
}
case 0x0112:
{
- (void) WriteProfileShort(endian,(unsigned short)
- image->orientation,p);
+ (void) WriteProfileShort(endian,(unsigned short) image->orientation,
+ p);
break;
}
case 0x0128:
{
- (void) WriteProfileShort(endian,(unsigned short)
- (image->units+1),p);
+ (void) WriteProfileShort(endian,(unsigned short) (image->units+1),p);
break;
}
default:
}
if ((tag_value == TAG_EXIF_OFFSET) || (tag_value == TAG_INTEROP_OFFSET))
{
- size_t
+ ssize_t
offset;
- offset=(size_t) ReadProfileLong(endian,p);
+ offset=(ssize_t) ((int) ReadProfileLong(endian,p));
if ((offset < length) && (level < (MaxDirectoryStack-2)))
{
directory_stack[level].directory=directory;
level++;
if ((directory+2+(12*number_entries)) > (exif+length))
break;
- offset=(size_t) ReadProfileLong(endian,directory+2+(12*
- number_entries));
+ offset=(ssize_t) ((int) ReadProfileLong(endian,directory+2+(12*
+ number_entries)));
if ((offset != 0) && (offset < length) &&
(level < (MaxDirectoryStack-2)))
{