tony2001 Fri Jan 26 15:07:45 2007 UTC
Modified files: (Branch: PHP_5_2)
/php-src/ext/pdo_oci oci_statement.c
Log:
fix leak
readuce size of the buffer to prevent ORA-01461
http://cvs.php.net/viewvc.cgi/php-src/ext/pdo_oci/oci_statement.c?r1=1.16.2.10.2.4&r2=1.16.2.10.2.5&diff_format=u
Index: php-src/ext/pdo_oci/oci_statement.c
diff -u php-src/ext/pdo_oci/oci_statement.c:1.16.2.10.2.4
php-src/ext/pdo_oci/oci_statement.c:1.16.2.10.2.5
--- php-src/ext/pdo_oci/oci_statement.c:1.16.2.10.2.4 Mon Jan 22 12:49:22 2007
+++ php-src/ext/pdo_oci/oci_statement.c Fri Jan 26 15:07:45 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci_statement.c,v 1.16.2.10.2.4 2007/01/22 12:49:22 tony2001 Exp $ */
+/* $Id: oci_statement.c,v 1.16.2.10.2.5 2007/01/26 15:07:45 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -150,6 +150,23 @@
(S->stmt, OCI_HTYPE_STMT, &colcount, 0,
OCI_ATTR_PARAM_COUNT, S->err));
stmt->column_count = (int)colcount;
+
+ if (S->cols) {
+ int i;
+ for (i = 0; i < stmt->column_count; i++) {
+ if (S->cols[i].data) {
+ switch (S->cols[i].dtype) {
+ case SQLT_BLOB:
+ case SQLT_CLOB:
+ /* do nothing */
+ break;
+ default:
+ efree(S->cols[i].data);
+ }
+ }
+ }
+ efree(S->cols);
+ }
S->cols = ecalloc(colcount, sizeof(pdo_oci_column));
}
@@ -274,7 +291,7 @@
P->oci_type = SQLT_CHR;
value_sz = param->max_value_len;
if (param->max_value_len == 0) {
- value_sz = 4000; /*
maximum size before value is interpreted as a LONG value */
+ value_sz = 1332; /*
maximum size before value is interpreted as a LONG value */
}
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php