mirror of
https://github.com/php/php-src.git
synced 2025-08-18 15:08:55 +02:00
free data in case of failure in the callee not in the caller
This commit is contained in:
parent
1a4456bb76
commit
e77b49bfd3
1 changed files with 3 additions and 5 deletions
|
@ -157,6 +157,7 @@ MYSQLND_METHOD(mysqlnd_conn, free_contents)(MYSQLND * conn TSRMLS_DC)
|
||||||
mnd_pefree(conn->unix_socket, pers);
|
mnd_pefree(conn->unix_socket, pers);
|
||||||
conn->unix_socket = NULL;
|
conn->unix_socket = NULL;
|
||||||
}
|
}
|
||||||
|
DBG_INF_FMT("scheme=%s", conn->scheme);
|
||||||
if (conn->scheme) {
|
if (conn->scheme) {
|
||||||
mnd_pefree(conn->scheme, pers);
|
mnd_pefree(conn->scheme, pers);
|
||||||
conn->scheme = NULL;
|
conn->scheme = NULL;
|
||||||
|
@ -717,7 +718,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn,
|
||||||
SET_OOM_ERROR(conn->error_info);
|
SET_OOM_ERROR(conn->error_info);
|
||||||
goto err; /* OOM */
|
goto err; /* OOM */
|
||||||
}
|
}
|
||||||
DBG_INF_FMT("transport=%s", transport);
|
DBG_INF_FMT("transport=%s conn->scheme=%s", transport, conn->scheme);
|
||||||
conn->scheme = mnd_pestrndup(transport, transport_len, conn->persistent);
|
conn->scheme = mnd_pestrndup(transport, transport_len, conn->persistent);
|
||||||
conn->scheme_len = transport_len;
|
conn->scheme_len = transport_len;
|
||||||
mnd_sprintf_free(transport);
|
mnd_sprintf_free(transport);
|
||||||
|
@ -936,7 +937,7 @@ err:
|
||||||
/* no mnd_ since we don't allocate it */
|
/* no mnd_ since we don't allocate it */
|
||||||
efree(errstr);
|
efree(errstr);
|
||||||
}
|
}
|
||||||
|
conn->m->free_contents(conn TSRMLS_CC);
|
||||||
MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CONNECT_FAILURE);
|
MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CONNECT_FAILURE);
|
||||||
|
|
||||||
DBG_RETURN(FAIL);
|
DBG_RETURN(FAIL);
|
||||||
|
@ -977,9 +978,6 @@ PHPAPI MYSQLND * mysqlnd_connect(MYSQLND * conn,
|
||||||
object - we are free to kill it!
|
object - we are free to kill it!
|
||||||
*/
|
*/
|
||||||
conn->m->dtor(conn TSRMLS_CC);
|
conn->m->dtor(conn TSRMLS_CC);
|
||||||
} else {
|
|
||||||
/* This will also close conn->net->stream if it has been opened */
|
|
||||||
conn->m->free_contents(conn TSRMLS_CC);
|
|
||||||
}
|
}
|
||||||
DBG_RETURN(NULL);
|
DBG_RETURN(NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue