From e77b49bfd367fb8e39bafc3f26c22d926eaba6f1 Mon Sep 17 00:00:00 2001 From: Andrey Hristov Date: Tue, 5 Jul 2011 20:31:53 +0000 Subject: [PATCH] free data in case of failure in the callee not in the caller --- ext/mysqlnd/mysqlnd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index a927018dd1..e6072e3201 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -157,6 +157,7 @@ MYSQLND_METHOD(mysqlnd_conn, free_contents)(MYSQLND * conn TSRMLS_DC) mnd_pefree(conn->unix_socket, pers); conn->unix_socket = NULL; } + DBG_INF_FMT("scheme=%s", conn->scheme); if (conn->scheme) { mnd_pefree(conn->scheme, pers); conn->scheme = NULL; @@ -717,7 +718,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn, SET_OOM_ERROR(conn->error_info); 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_len = transport_len; mnd_sprintf_free(transport); @@ -936,7 +937,7 @@ err: /* no mnd_ since we don't allocate it */ efree(errstr); } - + conn->m->free_contents(conn TSRMLS_CC); MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CONNECT_FAILURE); DBG_RETURN(FAIL); @@ -977,9 +978,6 @@ PHPAPI MYSQLND * mysqlnd_connect(MYSQLND * conn, object - we are free to kill it! */ 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); } -- 2.40.0