]> granicus.if.org Git - php/commitdiff
fix #37531 (oci8 persistent connection corruption)
authorAntony Dovgal <tony2001@php.net>
Mon, 29 May 2006 10:59:15 +0000 (10:59 +0000)
committerAntony Dovgal <tony2001@php.net>
Mon, 29 May 2006 10:59:15 +0000 (10:59 +0000)
ext/oci8/oci8.c

index 06bfccfd4ed18551db0fc7167dcfbe191d980a19..8e66cac9923f7dea69f88c346fb78edd5a9afd14 100644 (file)
@@ -1055,10 +1055,14 @@ php_oci_connection *php_oci_do_connect_ex(char *username, int username_len, char
                                                        /* server died */
                                                }
                                                else {
+                                                       int rsrc_type;
+
                                                        /* okay, the connection is open and the server is still alive */
                                                        connection->used_this_request = 1;
                                                        smart_str_free_ex(&hashed_details, 0);
-                                                       if (zend_list_addref(connection->rsrc_id) == FAILURE) {
+                                                       if (zend_list_find(connection->rsrc_id, &rsrc_type) && (rsrc_type == le_pconnection) && zend_list_addref(connection->rsrc_id) == SUCCESS) {
+                                                               /* do nothing */
+                                                       } else {
                                                                connection->rsrc_id = zend_list_insert(connection, le_pconnection);
                                                        }
                                                        return connection;