abies Sun May 30 13:51:20 2004 EDT
Modified files:
/php-src/ext/interbase ibase_query.c
Log:
Fix unregistered bug (segfault on uninitialised pointer)
Return string("0 ") from ibase_query() if query succeeded but did not affect any rows
http://cvs.php.net/diff.php/php-src/ext/interbase/ibase_query.c?r1=1.8&r2=1.9&ty=u
Index: php-src/ext/interbase/ibase_query.c
diff -u php-src/ext/interbase/ibase_query.c:1.8 php-src/ext/interbase/ibase_query.c:1.9
--- php-src/ext/interbase/ibase_query.c:1.8 Fri May 21 10:24:34 2004
+++ php-src/ext/interbase/ibase_query.c Sun May 30 13:51:19 2004
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ibase_query.c,v 1.8 2004/05/21 14:24:34 abies Exp $ */
+/* $Id: ibase_query.c,v 1.9 2004/05/30 17:51:19 abies Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -307,6 +307,8 @@
ib_query->dialect = dialect;
ib_query->query = estrdup(query);
ib_query->trans_res_id = trans_res_id;
+ ib_query->out_sqlda = NULL;
+ ib_query->in_sqlda = NULL;
if (isc_dsql_allocate_statement(IB_STATUS, &link->handle, &ib_query->stmt)) {
_php_ibase_error(TSRMLS_C);
@@ -989,10 +991,16 @@
i += len+3;
}
}
- if (affected_rows > 0) {
- ib_query->trans->affected_rows = affected_rows;
- RETVAL_LONG(affected_rows);
- break;
+
+ ib_query->trans->affected_rows = affected_rows;
+
+ if (!ib_query->out_sqlda) { /* no result set is being returned
*/
+ if (affected_rows) {
+ RETVAL_LONG(affected_rows);
+ } else {
+ /* this return value evaluates to bool(true)
and to int(0) */
+ RETVAL_STRINGL("0 ",2,1);
+ }
}
default:
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php