abies Fri May 7 11:17:12 2004 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/interbase interbase.c
Log:
MFH: fixed unregistered pointer juggling bug
http://cvs.php.net/diff.php/php-src/ext/interbase/interbase.c?r1=1.91.2.31&r2=1.91.2.32&ty=u
Index: php-src/ext/interbase/interbase.c
diff -u php-src/ext/interbase/interbase.c:1.91.2.31
php-src/ext/interbase/interbase.c:1.91.2.32
--- php-src/ext/interbase/interbase.c:1.91.2.31 Tue Feb 17 15:57:26 2004
+++ php-src/ext/interbase/interbase.c Fri May 7 11:17:12 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interbase.c,v 1.91.2.31 2004/02/17 20:57:26 abies Exp $ */
+/* $Id: interbase.c,v 1.91.2.32 2004/05/07 15:17:12 abies Exp $ */
/* TODO: Arrays, roles?
@@ -643,7 +643,7 @@
php_info_print_table_start();
php_info_print_table_row(2, "Interbase Support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.91.2.31 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.91.2.32 $");
#ifdef COMPILE_DL_INTERBASE
php_info_print_table_row(2, "Dynamic Module", "yes");
#endif
@@ -1201,7 +1201,7 @@
/* {{{ _php_ibase_bind()
Bind parameter placeholders in a previously prepared query */
-static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_query
*ib_query TSRMLS_DC)
+static int _php_ibase_bind(XSQLDA *sqlda, zval ***b_vars, BIND_BUF *buf, ibase_query
*ib_query TSRMLS_DC)
{
int i , rv = SUCCESS;
@@ -1209,7 +1209,7 @@
for (i = 0; i < sqlda->sqld; ++var, ++i) { /* bound vars */
- zval *b_var = b_vars[i];
+ zval *b_var = *b_vars[i];
var->sqlind = &buf[i].sqlind;
@@ -1425,17 +1425,17 @@
/* }}} */
/* {{{ _php_ibase_exec() */
-static int _php_ibase_exec(ibase_result **ib_resultp, ibase_query *ib_query, int
argc, zval **args TSRMLS_DC)
+static int _php_ibase_exec(ibase_result **ib_resultp, ibase_query *ib_query, int
argc, zval ***args TSRMLS_DC)
{
#define IB_RESULT (*ib_resultp)
XSQLDA *in_sqlda = NULL, *out_sqlda = NULL;
BIND_BUF *bind_buf = NULL;
- int rv = FAILURE;
+ int i, rv = FAILURE;
IB_RESULT = NULL;
- if (argc > 0 && args != NULL) {
- SEPARATE_ZVAL(args);
+ for (i = 0; i < argc; ++i) {
+ SEPARATE_ZVAL(args[i]);
}
/* allocate sqlda and output buffers */
@@ -1699,7 +1699,7 @@
Execute a query */
PHP_FUNCTION(ibase_query)
{
- zval ***args, **bind_args = NULL, **dummy = NULL;
+ zval ***args, ***bind_args = NULL, **dummy = NULL;
int i, link_id = 0, trans_n = 0, bind_n = 0, trans_id = 0;
char *query;
ibase_db_link *ib_link;
@@ -1742,7 +1742,7 @@
absolutely no sense if not using a prepared SQL statement.
*/
bind_n = ZEND_NUM_ARGS() - i;
- bind_args = args[i];
+ bind_args = &args[i];
}
/* open default transaction */
@@ -2323,7 +2323,7 @@
Execute a previously prepared query */
PHP_FUNCTION(ibase_execute)
{
- zval ***args, **bind_args = NULL;
+ zval ***args, ***bind_args = NULL;
ibase_query *ib_query;
ibase_result *ib_result;
@@ -2342,7 +2342,7 @@
ZEND_FETCH_RESOURCE(ib_query, ibase_query *, args[0], -1, "InterBase query",
le_query);
if (ZEND_NUM_ARGS() > 1) { /* have variables to bind */
- bind_args = args[1];
+ bind_args = &args[1];
}
/* Have we used this cursor before and it's still open? */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php