php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | |
Patch 52958-PHP-5.4-20120623.patch for PDO OCI Bug #52958Patch version 2012-06-23 09:26 UTC Return to Bug #52958 | Download this patchThis patch renders other patches obsolete Obsolete patches:
Developer: hswong3i@gmail.comFrom 86a102878e6dec750414df517911cde801fa24c6 Mon Sep 17 00:00:00 2001 From: Wong Hoi Sing Edison <hswong3i@gmail.com> Date: Sat, 23 Jun 2012 16:51:36 +0800 Subject: [PATCH 1/2] Bug #52958 Segfault in PDO_OCI on cleanup after running a long testsuite. --- ext/pdo_oci/oci_driver.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ext/pdo_oci/oci_driver.c b/ext/pdo_oci/oci_driver.c index cb920ab..3e2040e 100755 --- a/ext/pdo_oci/oci_driver.c +++ b/ext/pdo_oci/oci_driver.c @@ -227,8 +227,10 @@ static int oci_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */ H->server = NULL; } - OCIHandleFree(H->err, OCI_HTYPE_ERROR); - H->err = NULL; + if (H->err) { + OCIHandleFree(H->err, OCI_HTYPE_ERROR); + H->err = NULL; + } if (H->charset && H->env) { OCIHandleFree(H->env, OCI_HTYPE_ENV); -- 1.7.9.5 From d4c5648da21602253e66b96eadcadd31c81e62a6 Mon Sep 17 00:00:00 2001 From: Wong Hoi Sing Edison <hswong3i@gmail.com> Date: Sat, 23 Jun 2012 17:16:31 +0800 Subject: [PATCH 2/2] Bug #52958 Segfault in PDO_OCI on cleanup after running a long testsuite (Part 2). --- ext/pdo_oci/oci_driver.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ext/pdo_oci/oci_driver.c b/ext/pdo_oci/oci_driver.c index 3e2040e..e43eeb4 100755 --- a/ext/pdo_oci/oci_driver.c +++ b/ext/pdo_oci/oci_driver.c @@ -201,7 +201,7 @@ static int oci_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */ if (H->svc) { /* rollback any outstanding work */ - OCITransRollback(H->svc, H->err, 0); + OCISessionEnd(H->svc, H->err, H->session, 0); } if (H->session) { @@ -209,11 +209,6 @@ static int oci_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */ H->session = NULL; } - if (H->svc) { - OCIHandleFree(H->svc, OCI_HTYPE_SVCCTX); - H->svc = NULL; - } - if (H->server && H->attached) { H->last_err = OCIServerDetach(H->server, H->err, OCI_DEFAULT); if (H->last_err) { @@ -222,6 +217,11 @@ static int oci_handle_closer(pdo_dbh_t *dbh TSRMLS_DC) /* {{{ */ H->attached = 0; } + if (H->svc) { + OCIHandleFree(H->svc, OCI_HTYPE_SVCCTX); + H->svc = NULL; + } + if (H->server) { OCIHandleFree(H->server, OCI_HTYPE_SERVER); H->server = NULL; -- 1.7.9.5 |
Copyright © 2001-2024 The PHP Group All rights reserved. |
Last updated: Sat Nov 23 10:01:28 2024 UTC |