tony2001 Thu Jul 15 07:00:14 2004 EDT Modified files: /php-src/ext/oci8 oci8.c Log: fix #29012 (Potential race during first connection) thanks to cjbj at hotmail dot com http://cvs.php.net/diff.php/php-src/ext/oci8/oci8.c?r1=1.256&r2=1.257&ty=u Index: php-src/ext/oci8/oci8.c diff -u php-src/ext/oci8/oci8.c:1.256 php-src/ext/oci8/oci8.c:1.257 --- php-src/ext/oci8/oci8.c:1.256 Mon Jul 12 03:40:05 2004 +++ php-src/ext/oci8/oci8.c Thu Jul 15 07:00:14 2004 @@ -22,7 +22,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci8.c,v 1.256 2004/07/12 07:40:05 tony2001 Exp $ */ +/* $Id: oci8.c,v 1.257 2004/07/15 11:00:14 tony2001 Exp $ */ /* TODO list: * @@ -786,7 +786,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "OCI8 Support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.256 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.257 $"); sprintf(buf, "%ld", num_persistent); php_info_print_table_row(2, "Active Persistent Links", buf); @@ -2673,13 +2673,13 @@ smart_str_0(&hashed_details); if (!exclusive) { + mutex_lock(mx_lock); if (zend_ts_hash_find(persistent_sessions, hashed_details.c, hashed_details.len+1, (void **) &session_list) != SUCCESS) { zend_llist tmp; /* first session, set up a session list */ zend_llist_init(&tmp, sizeof(oci_session), (llist_dtor_func_t) _session_pcleanup, 1); zend_ts_hash_update(persistent_sessions, hashed_details.c, hashed_details.len+1, &tmp, sizeof(zend_llist), (void **) &session_list); } else { - mutex_lock(mx_lock); /* session list found, search for an idle session or an already opened session by the current thread */ session = zend_llist_get_first(session_list); @@ -2692,7 +2692,6 @@ session->thread = thread_id(); } - mutex_unlock(mx_lock); } if (session) { @@ -2707,6 +2706,7 @@ /* breakthru to open */ } } + mutex_unlock(mx_lock); } session = ecalloc(1,sizeof(oci_session));
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php