cvs: php4 /ext/odbc php_odbc.c php_odbc.h
| From: | Wez Furlong | Date: | Wed, 30 Apr 2003 10:45:45 +0000 |
| Subject: | cvs: php4 /ext/odbc php_odbc.c php_odbc.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-20607@lists.php.net to get a copy of this message | ||
wez Wed Apr 30 06:45:45 2003 EDT
Modified files:
/php4/ext/odbc php_odbc.c php_odbc.h
Log:
Fix memory leak in odbc_fetch_(array|object).
Enable those functions for IBM DB2.
Index: php4/ext/odbc/php_odbc.c
diff -u php4/ext/odbc/php_odbc.c:1.159 php4/ext/odbc/php_odbc.c:1.160
--- php4/ext/odbc/php_odbc.c:1.159 Tue Mar 18 07:06:01 2003
+++ php4/ext/odbc/php_odbc.c Wed Apr 30 06:45:45 2003
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_odbc.c,v 1.159 2003/03/18 12:06:01 ssb Exp $ */
+/* $Id: php_odbc.c,v 1.160 2003/04/30 10:45:45 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -84,7 +84,7 @@
PHP_FE(odbc_error, NULL)
PHP_FE(odbc_errormsg, NULL)
PHP_FE(odbc_exec, NULL)
-#if defined(HAVE_DBMAKER) || defined(PHP_WIN32)
+#ifdef PHP_ODBC_HAVE_FETCH_HASH
PHP_FE(odbc_fetch_array, NULL)
PHP_FE(odbc_fetch_object, NULL)
#endif
@@ -1328,7 +1328,7 @@
}
/* }}} */
-#if defined(HAVE_DBMAKER) || defined(PHP_WIN32)
+#ifdef PHP_ODBC_HAVE_FETCH_HASH
#define ODBC_NUM 1
#define ODBC_OBJECT 2
@@ -1378,8 +1378,6 @@
RETURN_FALSE;
}
- array_init(return_value);
-
#ifdef HAVE_SQL_EXTENDED_FETCH
if (result->fetch_abs) {
if (rownum > 0)
@@ -1394,6 +1392,8 @@
RETURN_FALSE;
}
+ array_init(return_value);
+
#ifdef HAVE_SQL_EXTENDED_FETCH
if (rownum > 0 && result->fetch_abs)
result->fetched = rownum;
@@ -1402,8 +1402,7 @@
result->fetched++;
for(i = 0; i < result->numcols; i++) {
- ALLOC_ZVAL(tmp);
- tmp->refcount = 1;
+ ALLOC_INIT_ZVAL(tmp);
Z_TYPE_P(tmp) = IS_STRING;
Z_STRLEN_P(tmp) = 0;
sql_c_type = SQL_C_CHAR;
Index: php4/ext/odbc/php_odbc.h
diff -u php4/ext/odbc/php_odbc.h:1.52 php4/ext/odbc/php_odbc.h:1.53
--- php4/ext/odbc/php_odbc.h:1.52 Tue Mar 18 07:06:01 2003
+++ php4/ext/odbc/php_odbc.h Wed Apr 30 06:45:45 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_odbc.h,v 1.52 2003/03/18 12:06:01 ssb Exp $ */
+/* $Id: php_odbc.h,v 1.53 2003/04/30 10:45:45 wez Exp $ */
#ifndef PHP_ODBC_H
#define PHP_ODBC_H
@@ -33,6 +33,10 @@
extern zend_module_entry odbc_module_entry;
#define odbc_module_ptr &odbc_module_entry
+#if defined(HAVE_DBMAKER) || defined(PHP_WIN32) || defined(HAVE_IBMDB2)
+# define PHP_ODBC_HAVE_FETCH_HASH 1
+#endif
+
/* user functions */
PHP_MINIT_FUNCTION(odbc);
PHP_MSHUTDOWN_FUNCTION(odbc);
@@ -54,7 +58,7 @@
PHP_FUNCTION(odbc_do);
PHP_FUNCTION(odbc_exec);
PHP_FUNCTION(odbc_execute);
-#if defined(HAVE_DBMAKER) || defined(PHP_WIN32)
+#ifdef PHP_ODBC_HAVE_FETCH_HASH
PHP_FUNCTION(odbc_fetch_array);
PHP_FUNCTION(odbc_fetch_object);
#endif