From 4ad6abb57a045c4fc90fdb3f35995def5638fd7b Mon Sep 17 00:00:00 2001 From: Aleksandr Lysikov <lysikov@inbox.ru> Date: Tue, 21 May 2019 22:44:06 +0500 Subject: [PATCH] added several checks --- dap_client.c | 17 +++++++++++------ dap_client_pvt.c | 2 ++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/dap_client.c b/dap_client.c index 134a0f1..201a74c 100755 --- a/dap_client.c +++ b/dap_client.c @@ -169,6 +169,8 @@ void dap_client_reset(dap_client_t * a_client) */ void dap_client_delete(dap_client_t * a_client) { + if(!a_client) + return; dap_client_disconnect(a_client); dap_client_pvt_delete(DAP_CLIENT_PVT(a_client)); @@ -288,13 +290,16 @@ void dap_client_request(dap_client_t * a_client, const char * a_full_path, void */ int dap_client_disconnect(dap_client_t * a_client) { - dap_client_pvt_t * l_client_internal = DAP_CLIENT_PVT(a_client); - if(l_client_internal->stream_socket){ - if ( l_client_internal->stream_es) - dap_events_socket_delete(l_client_internal->stream_es,false); - else if (l_client_internal->stream_socket ) + dap_client_pvt_t * l_client_internal = (a_client) ? DAP_CLIENT_PVT(a_client) : NULL; + if(l_client_internal && l_client_internal->stream_socket){ + if(l_client_internal->stream_es) { + dap_events_socket_delete(l_client_internal->stream_es, false); + l_client_internal->stream_es = NULL; + } + else if (l_client_internal->stream_socket ){ close (l_client_internal->stream_socket); - + l_client_internal->stream_socket = 0; + } return 1; } //l_client_internal->stream_socket = 0; diff --git a/dap_client_pvt.c b/dap_client_pvt.c index 78f3643..79800be 100755 --- a/dap_client_pvt.c +++ b/dap_client_pvt.c @@ -112,6 +112,8 @@ void dap_client_pvt_new(dap_client_pvt_t * a_client_internal) */ void dap_client_pvt_delete(dap_client_pvt_t * a_client_pvt) { + if(!a_client_pvt) + return; if(a_client_pvt->session_key_id) DAP_DELETE(a_client_pvt->session_key_id); if ( a_client_pvt->active_channels ) -- GitLab