[PHP-CVS] cvs: php-src(PHP_5_3) /ext/oci8 oci8.c oci8_lob.c

2008-01-24 Thread Rob Richards
rrichards   Thu Jan 24 14:09:36 2008 UTC

  Modified files:  (Branch: PHP_5_3)
/php-src/ext/oci8   oci8.c oci8_lob.c 
  Log:
  MFH: fix zts build
  
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8.c?r1=1.269.2.16.2.38.2.5r2=1.269.2.16.2.38.2.6diff_format=u
Index: php-src/ext/oci8/oci8.c
diff -u php-src/ext/oci8/oci8.c:1.269.2.16.2.38.2.5 
php-src/ext/oci8/oci8.c:1.269.2.16.2.38.2.6
--- php-src/ext/oci8/oci8.c:1.269.2.16.2.38.2.5 Fri Jan 18 16:03:51 2008
+++ php-src/ext/oci8/oci8.c Thu Jan 24 14:09:36 2008
@@ -26,7 +26,7 @@
+--+
 */
 
-/* $Id: oci8.c,v 1.269.2.16.2.38.2.5 2008/01/18 16:03:51 sixd Exp $ */
+/* $Id: oci8.c,v 1.269.2.16.2.38.2.6 2008/01/24 14:09:36 rrichards Exp $ */
 /* TODO
  *
  * file://localhost/www/docs/oci10/ociaahan.htm#423823 - implement lob_empty() 
with OCI_ATTR_LOBEMPTY
@@ -674,7 +674,7 @@
php_info_print_table_start();
php_info_print_table_row(2, OCI8 Support, enabled);
php_info_print_table_row(2, Version, 1.2.4);
-   php_info_print_table_row(2, Revision, $Revision: 1.269.2.16.2.38.2.5 
$);
+   php_info_print_table_row(2, Revision, $Revision: 1.269.2.16.2.38.2.6 
$);
 
snprintf(buf, sizeof(buf), %ld, OCI_G(num_persistent));
php_info_print_table_row(2, Active Persistent Connections, buf);
@@ -1637,7 +1637,7 @@

lob_fetch_status = php_oci_lob_read(descriptor, -1, 0, 
lob_buffer, lob_length TSRMLS_CC);
 #ifdef HAVE_OCI8_TEMP_LOB
-   php_oci_temp_lob_close(descriptor);
+   php_oci_temp_lob_close(descriptor TSRMLS_CC);
 #endif
if (lob_fetch_status) {
ZVAL_FALSE(value);
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8_lob.c?r1=1.7.2.6.2.14.2.2r2=1.7.2.6.2.14.2.3diff_format=u
Index: php-src/ext/oci8/oci8_lob.c
diff -u php-src/ext/oci8/oci8_lob.c:1.7.2.6.2.14.2.2 
php-src/ext/oci8/oci8_lob.c:1.7.2.6.2.14.2.3
--- php-src/ext/oci8/oci8_lob.c:1.7.2.6.2.14.2.2Tue Jan 15 20:44:31 2008
+++ php-src/ext/oci8/oci8_lob.c Thu Jan 24 14:09:36 2008
@@ -25,7 +25,7 @@
+--+
 */
 
-/* $Id: oci8_lob.c,v 1.7.2.6.2.14.2.2 2008/01/15 20:44:31 sixd Exp $ */
+/* $Id: oci8_lob.c,v 1.7.2.6.2.14.2.3 2008/01/24 14:09:36 rrichards Exp $ */
 
 
 
@@ -579,7 +579,7 @@
return 1;
}
 
-   if (php_oci_temp_lob_close(descriptor)) {
+   if (php_oci_temp_lob_close(descriptor TSRMLS_CC)) {
return 1;
}

@@ -676,7 +676,7 @@
 
 #ifdef HAVE_OCI8_TEMP_LOB
if (descriptor-type == OCI_DTYPE_LOB) {
-   php_oci_temp_lob_close(descriptor);
+   php_oci_temp_lob_close(descriptor TSRMLS_CC);
}
 #endif
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_3) /ext/oci8 oci8.c oci8_lob.c php_oci8_int.h /ext/oci8/tests bug43497.phpt

2008-01-15 Thread Christopher Jones
sixdTue Jan 15 20:44:31 2008 UTC

  Added files: (Branch: PHP_5_3)
/php-src/ext/oci8/tests bug43497.phpt 

  Modified files:  
/php-src/ext/oci8   oci8.c oci8_lob.c php_oci8_int.h 
  Log:
  MFB: fix #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8.c?r1=1.269.2.16.2.38.2.3r2=1.269.2.16.2.38.2.4diff_format=u
Index: php-src/ext/oci8/oci8.c
diff -u php-src/ext/oci8/oci8.c:1.269.2.16.2.38.2.3 
php-src/ext/oci8/oci8.c:1.269.2.16.2.38.2.4
--- php-src/ext/oci8/oci8.c:1.269.2.16.2.38.2.3 Mon Dec 31 07:17:11 2007
+++ php-src/ext/oci8/oci8.c Tue Jan 15 20:44:31 2008
@@ -26,7 +26,7 @@
+--+
 */
 
-/* $Id: oci8.c,v 1.269.2.16.2.38.2.3 2007/12/31 07:17:11 sebastian Exp $ */
+/* $Id: oci8.c,v 1.269.2.16.2.38.2.4 2008/01/15 20:44:31 sixd Exp $ */
 /* TODO
  *
  * file://localhost/www/docs/oci10/ociaahan.htm#423823 - implement lob_empty() 
with OCI_ATTR_LOBEMPTY
@@ -674,7 +674,7 @@
php_info_print_table_start();
php_info_print_table_row(2, OCI8 Support, enabled);
php_info_print_table_row(2, Version, 1.2.4);
-   php_info_print_table_row(2, Revision, $Revision: 1.269.2.16.2.38.2.3 
$);
+   php_info_print_table_row(2, Revision, $Revision: 1.269.2.16.2.38.2.4 
$);
 
snprintf(buf, sizeof(buf), %ld, OCI_G(num_persistent));
php_info_print_table_row(2, Active Persistent Connections, buf);
@@ -1604,6 +1604,7 @@
ub4 lob_length;
int column_size;
char *lob_buffer;
+   int lob_fetch_status;

if (column-indicator == -1) { /* column is NULL */ 
ZVAL_NULL(value); 
@@ -1634,7 +1635,9 @@
if (column-data_type != SQLT_RDD  (mode  
PHP_OCI_RETURN_LOBS)) {
/* PHP_OCI_RETURN_LOBS means that we want the content 
of the LOB back instead of the locator */

-   if (php_oci_lob_read(descriptor, -1, 0, lob_buffer, 
lob_length TSRMLS_CC)) {
+   lob_fetch_status = php_oci_lob_read(descriptor, -1, 0, 
lob_buffer, lob_length TSRMLS_CC);
+   php_oci_temp_lob_close(descriptor);
+   if (lob_fetch_status) {
ZVAL_FALSE(value);
return 1;
} else {
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/oci8_lob.c?r1=1.7.2.6.2.14.2.1r2=1.7.2.6.2.14.2.2diff_format=u
Index: php-src/ext/oci8/oci8_lob.c
diff -u php-src/ext/oci8/oci8_lob.c:1.7.2.6.2.14.2.1 
php-src/ext/oci8/oci8_lob.c:1.7.2.6.2.14.2.2
--- php-src/ext/oci8/oci8_lob.c:1.7.2.6.2.14.2.1Mon Dec 31 07:17:11 2007
+++ php-src/ext/oci8/oci8_lob.c Tue Jan 15 20:44:31 2008
@@ -25,7 +25,7 @@
+--+
 */
 
-/* $Id: oci8_lob.c,v 1.7.2.6.2.14.2.1 2007/12/31 07:17:11 sebastian Exp $ */
+/* $Id: oci8_lob.c,v 1.7.2.6.2.14.2.2 2008/01/15 20:44:31 sixd Exp $ */
 
 
 
@@ -570,7 +570,6 @@
 int php_oci_lob_close (php_oci_descriptor *descriptor TSRMLS_DC)
 {
php_oci_connection *connection = descriptor-connection;
-   int is_temporary;

PHP_OCI_CALL_RETURN(connection-errcode, OCILobClose, (connection-svc, 
connection-err, descriptor-descriptor));
 
@@ -579,7 +578,21 @@
PHP_OCI_HANDLE_ERROR(connection, connection-errcode);
return 1;
}
+
+   if (php_oci_temp_lob_close(descriptor)) {
+   return 1;
+   }

+   return 0;
+} /* }}} */
+
+/* {{{ php_oci_temp_lob_close() 
+   Close Temporary LOB */
+int php_oci_temp_lob_close (php_oci_descriptor *descriptor TSRMLS_DC)
+{
+   php_oci_connection *connection = descriptor-connection;
+   int is_temporary;
+
PHP_OCI_CALL_RETURN(connection-errcode, OCILobIsTemporary, 
(connection-env,connection-err, descriptor-descriptor, is_temporary));

if (connection-errcode != OCI_SUCCESS) {
@@ -589,7 +602,6 @@
}

if (is_temporary) {
-   
PHP_OCI_CALL_RETURN(connection-errcode, OCILobFreeTemporary, 
(connection-svc, connection-err, descriptor-descriptor));

if (connection-errcode != OCI_SUCCESS) {
@@ -601,6 +613,7 @@
return 0;
 } /* }}} */
 
+
 /* {{{ php_oci_lob_flush() 
  Flush buffers for the LOB (only if they have been used) */
 int php_oci_lob_flush(php_oci_descriptor *descriptor, long flush_flag 
TSRMLS_DC)
@@ -647,7 +660,6 @@
  Close LOB descriptor and free associated resources */
 void php_oci_lob_free (php_oci_descriptor *descriptor TSRMLS_DC)
 {
-
if (!descriptor || !descriptor-connection) {
return;
}
@@ -662,6 +674,12 @@
php_oci_lob_flush(descriptor, OCI_LOB_BUFFER_FREE TSRMLS_CC);
}
 
+#ifdef HAVE_OCI8_TEMP_LOB
+   if