cvs: ZendEngine2 / zend_unicode.c

From: Date: Fri, 15 Dec 2006 22:33:28 +0000
Subject: cvs: ZendEngine2 / zend_unicode.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-5470@lists.php.net to get a copy of this message
andrei Fri Dec 15 22:33:28 2006 UTC Modified files: /ZendEngine2 zend_unicode.c Log: Fix potential buffer overflow in default conversion error handler. http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_unicode.c?r1=1.29&r2=1.30&diff_format=u Index: ZendEngine2/zend_unicode.c diff -u ZendEngine2/zend_unicode.c:1.29 ZendEngine2/zend_unicode.c:1.30 --- ZendEngine2/zend_unicode.c:1.29 Fri Sep 29 20:59:26 2006 +++ ZendEngine2/zend_unicode.c Fri Dec 15 22:33:28 2006 @@ -419,7 +419,7 @@ zend_error(E_WARNING, message_fmt, message, conv_name?conv_name:"", codepoint, error_char_offset-1); } else { char err_char[8]; /* UTF-8 uses up to 8 bytes */ - char buf[32]; /* 4x number of error bytes */ + char buf[40]; /* 4x number of error bytes + 7 separators + 1 for safety */ int8_t err_char_len = sizeof(err_char); char *message_fmt = "%s (converter %s failed on bytes (%s) at offset %d)"; char *p; @@ -429,8 +429,9 @@ p = buf; for (i = 0; i < err_char_len; i++) { sprintf(p, "0x%02X%s", (unsigned char)err_char[i], (i+1<err_char_len)?",":""); - p += 5; + p += 4 + (i+1<err_char_len?1:0); } + *p = 0; zend_error(E_WARNING, message_fmt, message, conv_name?conv_name:"", buf, error_char_offset-err_char_len); }

« previous php.zend-engine.cvs (#5470) next »