CVS update: php3/functions

From: Date: Mon, 14 Dec 1998 19:14:58 +0000
Subject: CVS update: php3/functions
Groups: php.dev 
Request: Send a blank email to php-dev+get-2797@lists.php.net to get a copy of this message
Date: Monday December 14, 1998 @ 14:14 Author: thies Update of /repository/php3/functions In directory asf:/u/temp/cvs-serv12883/functions Modified Files: iptc.c Log Message: break if the parser runs against invalid IPTC. Index: php3/functions/iptc.c diff -c php3/functions/iptc.c:1.3 php3/functions/iptc.c:1.4 *** php3/functions/iptc.c:1.3 Fri Dec 11 02:25:42 1998 --- php3/functions/iptc.c Mon Dec 14 14:14:57 1998 *************** *** 27,33 **** +----------------------------------------------------------------------+ */ ! /* $Id: iptc.c,v 1.3 1998/12/11 07:25:42 thies Exp $ */ /* * Functions to parse & compse IPTC data. --- 27,33 ---- +----------------------------------------------------------------------+ */ ! /* $Id: iptc.c,v 1.4 1998/12/14 19:14:57 thies Exp $ */ /* * Functions to parse & compse IPTC data. *************** *** 47,53 **** void php3_iptcparse(INTERNAL_FUNCTION_PARAMETERS) { ! int length,inx, len; unsigned char *buffer; unsigned char recnum, dataset; unsigned char key[ 16 ]; --- 47,53 ---- void php3_iptcparse(INTERNAL_FUNCTION_PARAMETERS) { ! unsigned int length,inx,len,inheader; unsigned char *buffer; unsigned char recnum, dataset; unsigned char key[ 16 ]; *************** *** 67,77 **** length = str->value.str.len; buffer = str->value.str.val; while (inx < length) { if (buffer[ inx++ ] != 0x1c) { /* skip all junk */ ! continue; } ! if ((inx + 4) >= length) break; --- 67,85 ---- length = str->value.str.len; buffer = str->value.str.val; + inheader = 0; /* have we already found the IPTC-Header??? */ + while (inx < length) { if (buffer[ inx++ ] != 0x1c) { /* skip all junk */ ! if (inheader) { ! break; /* we ran against some data which does not conform to IPTC - stop parsing! */ ! } else { ! continue; ! } ! } else { ! inheader = 1; } ! if ((inx + 4) >= length) break; *************** *** 86,92 **** len = (((unsigned short) buffer[ inx ])<<8) | (unsigned short)buffer[ inx+1 ]; inx += 2; } - sprintf(key,"%d#%03d",(unsigned int) dataset,(unsigned int) recnum); --- 94,99 ---- -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#2797) next »