Fix dereferencing before NULL check issue. 91/259591/3
authorrohit singh <rohit.singh@samsung.com>
Thu, 10 Jun 2021 05:21:07 +0000 (10:51 +0530)
committerrohit singh <rohit.singh@samsung.com>
Thu, 10 Jun 2021 08:03:25 +0000 (13:33 +0530)
Change-Id: Ib106ef87a6d64baeebd4f803434ea4ff49595dac
Signed-off-by: rohit.singh <rohit.singh@samsung.com>
src/user-awareness-payload.c

index d7f66f787a645fe51bc4d7ad7074bd83438f4420..ac116b6b0c2f16abddda7f36caad52aa1713e034 100755 (executable)
@@ -419,19 +419,25 @@ ua_payload_info_s* _ua_payload_clone(ua_payload_info_s *org_payload)
        payload->extension_value2 = org_payload->extension_value2;
 
        payload->device_uid_len = org_payload->device_uid_len;
-       payload->device_uid = g_memdup(org_payload->device_uid, org_payload->device_uid_len);
-       if (!payload->device_uid && org_payload->device_uid) {
-               UA_ERR("g_malloc0 failed");
-               _ua_free_ua_payload_info_s(payload);
-               return NULL;
+
+       if (org_payload->device_uid) {
+               payload->device_uid = g_memdup(org_payload->device_uid, org_payload->device_uid_len);
+               if (!payload->device_uid) {
+                       UA_ERR("g_memdup failed");
+                       _ua_free_ua_payload_info_s(payload);
+                       return NULL;
+               }
        }
 
        user_data_len = UA_BLE_PAYLOAD_DEVICE_UID_MAX_LEN - 1 - org_payload->device_uid_len;
-       payload->user_data = g_memdup(org_payload->user_data, user_data_len);
-       if (!payload->user_data && org_payload->user_data) {
-               UA_ERR("g_malloc0 failed");
-               _ua_free_ua_payload_info_s(payload);
-               return NULL;
+
+       if (org_payload->user_data) {
+               payload->user_data = g_memdup(org_payload->user_data, user_data_len);
+               if (!payload->user_data) {
+                       UA_ERR("g_memdup failed");
+                       _ua_free_ua_payload_info_s(payload);
+                       return NULL;
+               }
        }
 
        FUNC_EXIT;