]> granicus.if.org Git - php/commitdiff
show list of PDO drivers in phpinfo.
authorWez Furlong <wez@php.net>
Sat, 12 Mar 2005 01:16:59 +0000 (01:16 +0000)
committerWez Furlong <wez@php.net>
Sat, 12 Mar 2005 01:16:59 +0000 (01:16 +0000)
Highlight a possible problem area; iterator leaks when used in foreach(),
at least with sqlite2 driver.

ext/pdo/pdo.c
ext/pdo/pdo_stmt.c

index 4043b90f6347e4d6d79099c106e4a6cd701deabe..a925d534d72322eb0ab6cc26ec76fda79da4efee 100755 (executable)
@@ -389,8 +389,21 @@ PHP_RSHUTDOWN_FUNCTION(pdo)
 /* {{{ PHP_MINFO_FUNCTION */
 PHP_MINFO_FUNCTION(pdo)
 {
+       HashPosition pos;
+       ulong num_key;
+       char *name;
+       int namelen;
+       
        php_info_print_table_start();
        php_info_print_table_header(2, "pdo support", "enabled");
+       php_info_print_table_header(1, "Available PDO Drivers");
+
+       zend_hash_internal_pointer_reset_ex(&pdo_driver_hash, &pos);
+       while (HASH_KEY_IS_STRING == zend_hash_get_current_key_ex(&pdo_driver_hash, &name, &namelen, &num_key, 0, &pos)) {
+               php_info_print_table_row(1, name);
+               zend_hash_move_forward_ex(&pdo_driver_hash, &pos);
+       }
+       
        php_info_print_table_end();
 
 #if 0
index ec7182e17bada64de9e4cb2c8527c884c1059914..cc84eef89636dbc2e05ca2f8b7c76322b30f02ad 100755 (executable)
@@ -1939,7 +1939,7 @@ static void pdo_stmt_iter_get_data(zend_object_iterator *iter, zval ***data TSRM
                return;
        }
 
-       ptr_ptr = emalloc(sizeof(*ptr_ptr));
+       ptr_ptr = emalloc(sizeof(*ptr_ptr)); /* leaks somewhere */
        *ptr_ptr = I->fetch_ahead;
        ZVAL_ADDREF(I->fetch_ahead);