|
|
| version 1.1.1.1, 2012/02/21 23:48:02 | version 1.1.1.3, 2013/07/22 01:32:05 |
|---|---|
| Line 2 | Line 2 |
| +----------------------------------------------------------------------+ | +----------------------------------------------------------------------+ |
| | PHP Version 5 | | | PHP Version 5 | |
| +----------------------------------------------------------------------+ | +----------------------------------------------------------------------+ |
| | Copyright (c) 1997-2012 The PHP Group | | | Copyright (c) 1997-2013 The PHP Group | |
| +----------------------------------------------------------------------+ | +----------------------------------------------------------------------+ |
| | This source file is subject to version 3.01 of the PHP license, | | | This source file is subject to version 3.01 of the PHP license, | |
| | that is bundled with this package in the file LICENSE, and is | | | that is bundled with this package in the file LICENSE, and is | |
| Line 181 PHP_FUNCTION(iptcembed) | Line 181 PHP_FUNCTION(iptcembed) |
| int iptcdata_len, jpeg_file_len; | int iptcdata_len, jpeg_file_len; |
| long spool = 0; | long spool = 0; |
| FILE *fp; | FILE *fp; |
| unsigned int marker, done = 0, inx; | unsigned int marker, done = 0; |
| int inx; | |
| unsigned char *spoolbuf = NULL, *poi = NULL; | unsigned char *spoolbuf = NULL, *poi = NULL; |
| struct stat sb; | struct stat sb; |
| zend_bool written = 0; | zend_bool written = 0; |
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|l", &iptcdata, &iptcdata_len, &jpeg_file, &jpeg_file_len, &spool) != SUCCESS) { | if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sp|l", &iptcdata, &iptcdata_len, &jpeg_file, &jpeg_file_len, &spool) != SUCCESS) { |
| return; | return; |
| } | } |
| if (strlen(jpeg_file) != jpeg_file_len) { | |
| RETURN_FALSE; | |
| } | |
| if (PG(safe_mode) && (!php_checkuid(jpeg_file, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { | |
| RETURN_FALSE; | |
| } | |
| if (php_check_open_basedir(jpeg_file TSRMLS_CC)) { | if (php_check_open_basedir(jpeg_file TSRMLS_CC)) { |
| RETURN_FALSE; | RETURN_FALSE; |
| } | } |
| Line 303 PHP_FUNCTION(iptcembed) | Line 296 PHP_FUNCTION(iptcembed) |
| Parse binary IPTC-data into associative array */ | Parse binary IPTC-data into associative array */ |
| PHP_FUNCTION(iptcparse) | PHP_FUNCTION(iptcparse) |
| { | { |
| unsigned int inx = 0, len, tagsfound = 0; | int inx = 0, len; |
| unsigned int tagsfound = 0; | |
| unsigned char *buffer, recnum, dataset, key[ 16 ]; | unsigned char *buffer, recnum, dataset, key[ 16 ]; |
| char *str; | char *str; |
| int str_len; | int str_len; |
| Line 342 PHP_FUNCTION(iptcparse) | Line 336 PHP_FUNCTION(iptcparse) |
| len = (((unsigned short) buffer[ inx ])<<8) | (unsigned short)buffer[ inx+1 ]; | len = (((unsigned short) buffer[ inx ])<<8) | (unsigned short)buffer[ inx+1 ]; |
| inx += 2; | inx += 2; |
| } | } |
| snprintf(key, sizeof(key), "%d#%03d", (unsigned int) dataset, (unsigned int) recnum); | if ((len < 0) || (len > str_len) || (inx + len) > str_len) { |
| if ((len > str_len) || (inx + len) > str_len) { | |
| break; | break; |
| } | } |
| snprintf(key, sizeof(key), "%d#%03d", (unsigned int) dataset, (unsigned int) recnum); | |
| if (tagsfound == 0) { /* found the 1st tag - initialize the return array */ | if (tagsfound == 0) { /* found the 1st tag - initialize the return array */ |
| array_init(return_value); | array_init(return_value); |