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

Reply via email to