From 8a15b85d8cd692be998caa1d46a9cd12c3963a59 Mon Sep 17 00:00:00 2001 From: "h.sandeep" Date: Wed, 19 Apr 2017 15:27:44 +0530 Subject: [PATCH] bt-ipsp: Modify _execute_command function This patch addresses the issue raised in the below link http://suprem.sec.samsung.net/jira/browse/TSAM-13214 Change-Id: Icac1765b8a42f283b0b73ce41a6b48c70411df1d Signed-off-by: h.sandeep --- bt-ipsp/bt-ipsp.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/bt-ipsp/bt-ipsp.c b/bt-ipsp/bt-ipsp.c index 533dacb..1e3972a 100644 --- a/bt-ipsp/bt-ipsp.c +++ b/bt-ipsp/bt-ipsp.c @@ -548,7 +548,7 @@ int __bt_ipsp_create_ipv6_remote_address(char *remote_address, char **ipv6_addre return BT_ERROR_NONE; } -int _execute_command(const char *cmd) +static int _execute_ip_command(const char *ip_args) { if (cmd == NULL) { BT_ERR("Invalid param\n"); @@ -559,10 +559,16 @@ int _execute_command(const char *cmd) int exit_status = 0; pid_t pid = 0; gchar **args = NULL; + char ip_cmd[MAX_BUF_SIZE] = {0, }; - BT_DBG("CMD : %s\n", cmd); + BT_DBG("Args : %s\n", ip_args); - args = g_strsplit_set(cmd, " ", -1); + snprintf(ip_cmd, sizeof(ip_cmd), "%s -6 neigh add %s", + IP_CMD, ip_args); + + BT_DBG("IP_CMD : %s\n", ip_cmd); + + args = g_strsplit_set(ip_cmd, " ", -1); if (!args) { BT_ERR("g_strsplit_set failed\n"); return -1; @@ -608,19 +614,18 @@ gboolean __bt_ipsp_add_ipv6_neigh_proxy(char *if_name, char *ip) return TRUE; } - char cmd[MAX_BUF_SIZE] = {0, }; + char args[MAX_BUF_SIZE] = {0, }; - snprintf(cmd, sizeof(cmd), "%s -6 neigh add "IPV6_NEIGH_PROXY, - IP_CMD, ip, if_name); + snprintf(args, sizeof(args), IPV6_NEIGH_PROXY, + ip, if_name); - if (_execute_command(cmd)) { - BT_ERR("%s is failed\n", cmd); + if (_execute_ip_command(args)) { + BT_ERR("%s is failed\n", args); return FALSE; } BT_DBG("--"); return TRUE; - } gboolean __bt_ipsp_add_ipv6_route(char *if_name, char *ip, int prefix) @@ -631,7 +636,7 @@ gboolean __bt_ipsp_add_ipv6_route(char *if_name, char *ip, int prefix) return TRUE; } - char cmd[MAX_BUF_SIZE] = {0, }; + char args[MAX_BUF_SIZE] = {0, }; char routing_ip[MH_MAX_IPV6_ADDRESS_STR_LEN] = {0, }; char *copied_ip = NULL; int len = (prefix % 4) + 4; @@ -641,22 +646,20 @@ gboolean __bt_ipsp_add_ipv6_route(char *if_name, char *ip, int prefix) g_snprintf(routing_ip, sizeof(routing_ip), "%s:", copied_ip); g_free(copied_ip); - snprintf(cmd, sizeof(cmd), "%s -6 route add "IPV6_INTERFACE_ROUTING, - IP_CMD, ip, prefix, if_name); + snprintf(args, sizeof(args), IPV6_INTERFACE_ROUTING, + ip, prefix, if_name); } else { - snprintf(cmd, sizeof(cmd), "%s -6 route add "IPV6_INTERFACE_ROUTING, - IP_CMD, ip, prefix, if_name); + snprintf(args, sizeof(args), IPV6_INTERFACE_ROUTING, + ip, prefix, if_name); } - if (_execute_command(cmd)) { - BT_ERR("%s is failed\n", cmd); + if (_execute_ip_command(args)) { + BT_ERR("%s is failed\n", args); return FALSE; } BT_DBG("--"); return TRUE; - - } static void __bt_ipsp_dbus_method(GDBusConnection *connection, -- 2.7.4