diff options
Diffstat (limited to 'ecp/server/dir.c')
-rw-r--r-- | ecp/server/dir.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ecp/server/dir.c b/ecp/server/dir.c index c045599..b941050 100644 --- a/ecp/server/dir.c +++ b/ecp/server/dir.c @@ -497,7 +497,10 @@ int dir_open_conn(DIRNode *node, ECPSocket *sock) { ecp_conn_set_flags(node->conn, ECP_CONN_FLAG_VBOX); rv = ecp_conn_open(node->conn, &node->dir_item.node); - if (rv) node->conn = NULL; + if (rv) { + free(node->conn); + node->conn = NULL; + } return rv; } @@ -932,6 +935,7 @@ int dir_init_ann(ECPSocket *sock, ECPNode *node) { ecp_conn_set_flags(conn, ECP_CONN_FLAG_VBOX); rv = ecp_conn_open(conn, node); if (rv) { + free(conn); LOG(LOG_ERR, "dir_init_ann: conn open err:%d\n", rv); return rv; } |