From: Christopher Jones Date: Fri, 15 Feb 2008 23:05:19 +0000 (+0000) Subject: Bug #44113 (New collection creation can fail with OCI-22303) X-Git-Tag: php-5.2.6RC1~63 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c0abfe077468985b07e515f4329a3e4da2b62b5;p=php Bug #44113 (New collection creation can fail with OCI-22303) --- diff --git a/ext/oci8/oci8_collection.c b/ext/oci8/oci8_collection.c index 9095c5d2c6..5f56e376b1 100644 --- a/ext/oci8/oci8_collection.c +++ b/ext/oci8/oci8_collection.c @@ -44,9 +44,9 @@ /* {{{ php_oci_collection_create() Create and return connection handle */ -php_oci_collection * php_oci_collection_create(php_oci_connection* connection, char *tdo, int tdo_len, char *schema, int schema_len TSRMLS_DC) +php_oci_collection * php_oci_collection_create(php_oci_connection *connection, char *tdo, int tdo_len, char *schema, int schema_len TSRMLS_DC) { - dvoid *dschp1; + dvoid *dschp1 = NULL; dvoid *parmp1; dvoid *parmp2; php_oci_collection *collection; @@ -219,11 +219,17 @@ php_oci_collection * php_oci_collection_create(php_oci_connection* connection, c goto CLEANUP; } + /* free the describe handle (Bug #44113) */ + PHP_OCI_CALL(OCIHandleFree, ((dvoid *) dschp1, OCI_HTYPE_DESCRIBE)); PHP_OCI_REGISTER_RESOURCE(collection, le_collection); return collection; CLEANUP: + if (dschp1) { + /* free the describe handle (Bug #44113) */ + PHP_OCI_CALL(OCIHandleFree, ((dvoid *) dschp1, OCI_HTYPE_DESCRIBE)); + } php_oci_error(connection->err, connection->errcode TSRMLS_CC); php_oci_collection_close(collection TSRMLS_CC); return NULL; diff --git a/ext/oci8/tests/bug44113.phpt b/ext/oci8/tests/bug44113.phpt new file mode 100644 index 0000000000..646f09b7c7 --- /dev/null +++ b/ext/oci8/tests/bug44113.phpt @@ -0,0 +1,53 @@ +--TEST-- +Bug #44113 (New collection creation can fail with OCI-22303) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +Completed 70000 +Done