From 381b4d64dc20981d0019aa9c15692c3fa36e0292 Mon Sep 17 00:00:00 2001 From: Jiung Yu Date: Thu, 27 Apr 2017 17:44:14 +0900 Subject: Fix issues reported by a static analyzer Change-Id: Ia57fc4f8b8b2740728d6df2972463f66a48b7b67 Signed-off-by: Yu jiung --- vpn/plugins/ipsec.c | 12 ++++++++++-- vpn/plugins/vici-client.c | 10 ++++------ 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'vpn') diff --git a/vpn/plugins/ipsec.c b/vpn/plugins/ipsec.c index 5e347704..e4bbf2b3 100644 --- a/vpn/plugins/ipsec.c +++ b/vpn/plugins/ipsec.c @@ -719,10 +719,10 @@ static char *load_file_from_path(const char *path) struct stat st; FILE *fp = NULL; int fd = 0; - unsigned long long file_size = 0; + size_t file_size = 0; char *file_buff = NULL; - if (file_buff) { + if (path) { connman_error("File path is NULL\n"); return NULL; } @@ -839,6 +839,10 @@ static int ipsec_load_cert(struct vpn_provider *provider) flag = vpn_provider_get_string(provider, "IPsec.CertFlag"); data = load_file_from_path(vpn_provider_get_string(provider, "IPsec.CertData")); DBG("CertType: %s, CertFalg: %s,CertData: %s", type, flag, data); + if (!type || ! flag || !data) { + connman_error("invalid certification information"); + return -EINVAL; + } ret = vici_load_cert(type, flag, data); if (ret < 0) @@ -1024,6 +1028,10 @@ static int ipsec_connect(struct vpn_provider *provider, int err = 0; data = create_ipsec_private_data(provider, cb, user_data); + if (!data) { + connman_error("create ipsec private data failed"); + return -ENOMEM; + } /* * Start charon daemon using ipsec script of strongSwan. */ diff --git a/vpn/plugins/vici-client.c b/vpn/plugins/vici-client.c index befbd937..c312fede 100644 --- a/vpn/plugins/vici-client.c +++ b/vpn/plugins/vici-client.c @@ -264,7 +264,7 @@ static char *load_cert_from_path(const char *path) struct stat st; FILE *fp = NULL; int fd = 0; - unsigned long long file_size = 0; + size_t file_size = 0; char *file_buff = NULL; fp = fopen(path, "rb"); @@ -812,7 +812,6 @@ static int handle_vici_result(gboolean success, int cmd, char * err) if (success) return 0; - DBG(" %s failed with %s!\n", vici_cmd_str[cmd], err); g_free(err); switch (cmd) { @@ -838,6 +837,7 @@ static int handle_vici_result(gboolean success, int cmd, char * err) break; } + DBG(" %s failed with %d!\n", vici_cmd_str[cmd], ret); return ret; } @@ -999,15 +999,13 @@ static gboolean process_reply(GIOChannel *source, } ret = process_vici_response(req); - if (ret != 0) - vici_client->reply(ret, vici_client->ipsec_user_data); - vici_client->request_list = g_slist_remove(vici_client->request_list, req); destroy_vici_request(req); /* TODO :remove this after debug */ DBG("left request reply : %d", g_slist_length(vici_client->request_list)); - if(g_slist_length(vici_client->request_list) == 0) + + if (ret!= 0 || g_slist_length(vici_client->request_list) == 0) vici_client->reply(ret, vici_client->ipsec_user_data); return TRUE; -- cgit v1.2.3