summaryrefslogtreecommitdiff
path: root/vpn/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'vpn/plugins')
-rw-r--r--vpn/plugins/ipsec.c12
-rw-r--r--vpn/plugins/vici-client.c10
2 files changed, 14 insertions, 8 deletions
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;