daemon_deprecated_rpc: fix misc leaks and potential uses after free

This commit is contained in:
moneromooo-monero 2015-10-17 13:03:58 +01:00
parent 3ca7c008db
commit 19c844f623
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

View File

@ -995,12 +995,18 @@ namespace RPC
int start() { int start() {
server = new RPC::Json_rpc_http_server("127.0.0.1", "9997", "daemon_json_rpc", &ev_handler); server = new RPC::Json_rpc_http_server("127.0.0.1", "9997", "daemon_json_rpc", &ev_handler);
if (!server->start()) { if (!server->start()) {
delete server;
server = NULL;
return FAILURE_HTTP_SERVER; return FAILURE_HTTP_SERVER;
} }
std::cout << "Started Daemon server at 127.0.0.1/daemon_json_rpc:9997\n"; std::cout << "Started Daemon server at 127.0.0.1/daemon_json_rpc:9997\n";
ipc_client = wap_client_new(); ipc_client = wap_client_new();
wap_client_connect(ipc_client, "ipc://@/monero", 200, "wallet identity"); wap_client_connect(ipc_client, "ipc://@/monero", 200, "wallet identity");
if (!check_connection_to_daemon()) { if (!check_connection_to_daemon()) {
wap_client_destroy(&ipc_client); // this sets ipc_client to NULL
server->stop();
delete server;
server = NULL;
return FAILURE_DAEMON_NOT_RUNNING; return FAILURE_DAEMON_NOT_RUNNING;
} }
return SUCCESS; return SUCCESS;
@ -1013,6 +1019,7 @@ namespace RPC
if (server) { if (server) {
server->stop(); server->stop();
delete server; delete server;
server = NULL;
} }
if (ipc_client) { if (ipc_client) {
wap_client_destroy(&ipc_client); wap_client_destroy(&ipc_client);