wifi-direct-event.c: Before processing event, NULL check on input should be done 56/47356/2
authorNishant Chaprana <n.chaprana@samsung.com>
Wed, 2 Sep 2015 12:43:39 +0000 (18:13 +0530)
committerNishant Chaprana <n.chaprana@samsung.com>
Wed, 2 Sep 2015 12:48:21 +0000 (18:18 +0530)
Change-Id: I17bc18db30427833a01955c14281c9706e328dcb
Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
packaging/wifi-direct-manager.spec
src/wifi-direct-event.c

index 419d2f3..fccbdce 100755 (executable)
@@ -1,6 +1,6 @@
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.96
+Version:       1.2.97
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index 4caddca..d7a252c 100644 (file)
@@ -134,6 +134,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
 
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        memset(&noti, 0x0, sizeof(wifi_direct_client_noti_s));
        noti.event = WIFI_DIRECT_CLI_EVENT_DEACTIVATION;
        noti.error = WIFI_DIRECT_ERROR_NONE;
@@ -160,6 +165,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        int res = 0;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        edata = (wfd_oem_dev_data_s*) event->edata;
        if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
                WDS_LOGE("Invalid event data");
@@ -192,6 +202,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
 
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        wfd_remove_peer(manager, event->dev_addr);
 
        memset(&noti, 0x0, sizeof(wifi_direct_client_noti_s));
@@ -210,6 +225,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
 
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        if (manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
                        manager->state != WIFI_DIRECT_STATE_ACTIVATED) {
                WDS_LOGE("Notify finding stopped when discovering or activated. [%d]", manager->state);
@@ -246,6 +266,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_device_s *peer = NULL;
        int res = 0;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
 #ifdef CTRL_IFACE_DBUS
        wfd_oem_dev_data_s *edata = NULL;
 
@@ -289,6 +314,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_device_s *peer = NULL;
        int res = 0;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
 #ifdef CTRL_IFACE_DBUS
        wfd_oem_dev_data_s *edata = NULL;
 
@@ -333,6 +363,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        unsigned char *peer_addr = NULL;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        session = (wfd_session_s*) manager->session;
        if (!session) {
                WDS_LOGE("Unexpected event. Session not exist");
@@ -391,6 +426,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_session_s *session = NULL;
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
 #ifdef CTRL_IFACE_DBUS
        wfd_oem_dev_data_s *edata = NULL;
 
@@ -466,6 +506,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        unsigned char *peer_addr = NULL;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        session = (wfd_session_s*) manager->session;
        if (!session) {
                WDS_LOGE("Unexpected event. Session not exist");
@@ -515,8 +560,13 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_oem_conn_data_s *edata = NULL;
        wfd_device_s *peer = NULL;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        edata = (wfd_oem_conn_data_s*) event->edata;
-       if (event == NULL || edata == NULL) {
+       if (edata == NULL) {
                WDS_LOGE("Invalid event data");
                return;
        }
@@ -541,6 +591,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        unsigned char *peer_addr = NULL;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        session = (wfd_session_s*) manager->session;
        if (!session) {
                WDS_LOGE("Unexpected event. Session not exist");
@@ -610,6 +665,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        unsigned char *peer_addr = NULL;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        session = (wfd_session_s*) manager->session;
        if (!session) {
                WDS_LOGE("Unexpected event. Session not exist");
@@ -693,6 +753,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_session_s *session = NULL;
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        group = (wfd_group_s*) manager->group;
        session = (wfd_session_s*)manager->session;
 #ifdef CTRL_IFACE_DBUS
@@ -761,6 +826,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
 
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        memset(&noti, 0x0, sizeof(wifi_direct_client_noti_s));
        if (manager->state == WIFI_DIRECT_STATE_DISCONNECTING) {
                noti.event = WIFI_DIRECT_CLI_EVENT_DISCONNECTION_RSP;
@@ -800,6 +870,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        int res = 0;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
        if (!peer) {
                WDS_LOGD("Invitation from unknown peer. Add new peer");
@@ -859,6 +934,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_group_s *group = NULL;
        wifi_direct_client_noti_s noti;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        // FIXME: Move this code to plugin
        if (!memcmp(event->intf_addr, manager->local->intf_addr, MACADDR_LEN)) {
                WDS_LOGD("Ignore this event");
@@ -936,6 +1016,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        unsigned char peer_addr[MACADDR_LEN] = {0, };
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        group = (wfd_group_s*) manager->group;
        if (!group) {
                WDS_LOGE("Group not found");
@@ -1020,6 +1105,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wfd_device_s *peer = NULL;
        wfd_group_s *group = NULL;
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        // FIXME: Move this code to plugin
        if (!memcmp(event->intf_addr, manager->local->intf_addr, MACADDR_LEN)) {
                WDS_LOGD("Ignore this event");
@@ -1073,6 +1163,11 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        wifi_direct_client_noti_s noti;
        unsigned char peer_addr[MACADDR_LEN] = {0, };
 
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        group = (wfd_group_s*) manager->group;
        if (!group) {
                WDS_LOGE("Group not found");
@@ -1163,6 +1258,12 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
        __WDS_LOG_FUNC_ENTER__;
 
        wifi_direct_client_noti_s noti;
+
+       if (event == NULL || manager == NULL) {
+               WDS_LOGE("Invalid parameter");
+               return;
+       }
+
        wfd_update_peer_time(manager, event->dev_addr);
 
        if (event->edata_type == WFD_OEM_EDATA_TYPE_NEW_SERVICE) {