diff options
author | Stefan Esser <sesser@php.net> | 2005-03-02 18:23:49 +0000 |
---|---|---|
committer | Stefan Esser <sesser@php.net> | 2005-03-02 18:23:49 +0000 |
commit | b7d81e26b1e8ada6bb78531f7d0e631c02ab92f2 (patch) | |
tree | 697c2db1ab1440e6c19f24a930f75cc412f27536 | |
parent | d8f6c856af5200d4b81d489ec25659912994fc70 (diff) | |
download | php-git-b7d81e26b1e8ada6bb78531f7d0e631c02ab92f2.tar.gz |
MFH
-rw-r--r-- | ext/exif/exif.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ext/exif/exif.c b/ext/exif/exif.c index 36b5a0fb17..7d7d4c9968 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -2712,6 +2712,11 @@ static int exif_process_IFD_TAG(image_info_type *ImageInfo, char *dir_entry, cha byte_count = components * php_tiff_bytes_per_format[format]; + if ((ssize_t)byte_count < 0) { + exif_error_docref("exif_read_data#error_ifd" EXIFERR_CC, ImageInfo, E_WARNING, "Process tag(x%04X=%s): Illegal byte_count(%ld)", tag, exif_get_tagname(tag, tagname, -12, tag_table TSRMLS_CC), byte_count); + return FALSE; + } + if (byte_count > 4) { offset_val = php_ifd_get32u(dir_entry+8, ImageInfo->motorola_intel); /* If its bigger than 4 bytes, the dir entry contains an offset. */ |