Fix for crash issue when SID is not available
authorAbhishek Sharma <ce.abhishek@samsung.com>
Thu, 7 Apr 2016 15:03:08 +0000 (20:33 +0530)
committerAshok Babu Channa <ashok.channa@samsung.com>
Mon, 11 Apr 2016 04:19:42 +0000 (04:19 +0000)
Change-Id: I583283e598c5eeb1e19e2a5c3ce6615070154d4c
Signed-off-by: Abhishek Sharma <ce.abhishek@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/7659
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Markus Jung <markus.jung85@gmail.com>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
resource/csdk/stack/src/ocresource.c

index 3c0ee58..d109ba3 100755 (executable)
@@ -707,7 +707,12 @@ static OCStackResult HandleVirtualResource (OCServerRequest *request, OCResource
                 OCDiscoveryPayload *discPayload = (OCDiscoveryPayload *)payload;
                 discPayload->sid = (char *)OICCalloc(1, UUID_STRING_SIZE);
                 VERIFY_NON_NULL(discPayload->sid, ERROR, OC_STACK_NO_MEMORY);
-                memcpy(discPayload->sid, OCGetServerInstanceIDString(), UUID_STRING_SIZE);
+                const char* uid = OCGetServerInstanceIDString();
+                if(uid)
+                {
+                    memcpy(discPayload->sid, uid, UUID_STRING_SIZE);
+                }
+
                 if (!resourceTypeQuery && interfaceQuery && (0 == strcmp(interfaceQuery, OC_RSRVD_INTERFACE_LL)))
                 {
                     for (; resource && discoveryResult == OC_STACK_OK; resource = resource->next)