summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--ext/interbase/interbase.c12
2 files changed, 11 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index 9f3dd9916a..749ca91a7a 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 7.3.5
+- interbase:
+ . Fixed bug #72175 (Impossibility of creating multiple connections to
+ Interbase with php 7.x). (Nikita)
+
- MySQLi:
. Fixed bug #77773 (Unbuffered queries leak memory - MySQLi / mysqlnd).
(Nikita)
diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c
index 478133296b..d62085ccdb 100644
--- a/ext/interbase/interbase.c
+++ b/ext/interbase/interbase.c
@@ -939,13 +939,15 @@ static void _php_ibase_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) /*
xlink = (zend_resource*) le->ptr;
if ((!persistent && xlink->type == le_link) || xlink->type == le_plink) {
- if (IBG(default_link)) {
- zend_list_close(IBG(default_link));
+ if (IBG(default_link) != xlink) {
+ GC_ADDREF(xlink);
+ if (IBG(default_link)) {
+ zend_list_delete(IBG(default_link));
+ }
+ IBG(default_link) = xlink;
}
GC_ADDREF(xlink);
- GC_ADDREF(xlink);
- IBG(default_link) = xlink;
- RETVAL_RES(xlink);
+ RETURN_RES(xlink);
} else {
zend_hash_str_del(&EG(regular_list), hash, sizeof(hash)-1);
}