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