cvs: php-src /ext/pdo pdo_stmt.c
| From: | Antony Dovgal | Date: | Wed, 03 Dec 2008 10:11:04 +0000 |
| Subject: | cvs: php-src /ext/pdo pdo_stmt.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-54640@lists.php.net to get a copy of this message | ||
tony2001 Wed Dec 3 10:11:04 2008 UTC
Modified files:
/php-src/ext/pdo pdo_stmt.c
Log:
fix possible invalid read
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo_stmt.c?r1=1.212&r2=1.213&diff_format=u
Index: php-src/ext/pdo/pdo_stmt.c
diff -u php-src/ext/pdo/pdo_stmt.c:1.212 php-src/ext/pdo/pdo_stmt.c:1.213
--- php-src/ext/pdo/pdo_stmt.c:1.212 Thu Nov 27 19:02:44 2008
+++ php-src/ext/pdo/pdo_stmt.c Wed Dec 3 10:11:04 2008
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_stmt.c,v 1.212 2008/11/27 19:02:44 dmitry Exp $ */
+/* $Id: pdo_stmt.c,v 1.213 2008/12/03 10:11:04 tony2001 Exp $ */
/* The PDO Statement Handle Class */
@@ -2202,11 +2202,15 @@
zstr str;
uint len;
ulong num;
+ int res;
- if (zend_hash_get_current_key_ex(stmt->bound_params, &str, &len, &num, 0,
&pos) == HASH_KEY_IS_LONG) {
+ res = zend_hash_get_current_key_ex(stmt->bound_params, &str, &len, &num, 0,
&pos);
+ if (res == HASH_KEY_IS_LONG) {
php_stream_printf(out TSRMLS_CC, "Key: Position #%ld:\n", num);
- } else {
- php_stream_printf(out TSRMLS_CC, "Key: Name: [%d] %.*s\n", len, len, str);
+ } else if (res == HASH_KEY_IS_STRING) {
+ php_stream_printf(out TSRMLS_CC, "Key: Name: [%d] %.*s\n", len, len, str.s);
+ } else if (res == HASH_KEY_IS_UNICODE) {
+ php_stream_printf(out TSRMLS_CC, "Key: Name: [%d] %.*r\n", len, len, str.u);
}
php_stream_printf(out TSRMLS_CC, "paramno=%d\nname=[%d]
\"%.*s\"\nis_param=%d\nparam_type=%d\n",