Add Failure check for OCGetResourceIns() in OCRDDeleteWithDeviceId().
authorZiran Sun <ziran.sun@samsung.com>
Tue, 23 May 2017 10:33:53 +0000 (11:33 +0100)
committerZiran Sun <ziran.sun@samsung.com>
Fri, 26 May 2017 09:13:12 +0000 (09:13 +0000)
Bug: https://jira.iotivity.org/browse/IOT-1809
Change-Id: I1aac3d7fae0dfc5fbee4d9715b328d18bd492b14
Signed-off-by: Ziran Sun <ziran.sun@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/20317
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Todd Malsbary <todd.malsbary@intel.com>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
resource/csdk/resource-directory/src/rd_client.c
resource/csdk/stack/src/ocstack.c

index d550ef2..66f8127 100644 (file)
@@ -450,15 +450,17 @@ OCStackResult OCRDDeleteWithDeviceId(OCDoHandle *handle, const char *host,
     {
         OCResource *handle = (OCResource *) resourceHandles[j];
         int64_t ins = 0;
-        OCGetResourceIns(handle, &ins);
-        int lenBufferRequired = snprintf((queryParam + queryLength),
-                                         (MAX_URI_LENGTH - queryLength), "&ins=%" PRId64, ins);
-        if (lenBufferRequired >= (MAX_URI_LENGTH - queryLength) || lenBufferRequired < 0)
+        if (OC_STACK_OK == OCGetResourceIns(handle, &ins))
         {
-            return OC_STACK_INVALID_URI;
+            int lenBufferRequired = snprintf((queryParam + queryLength),
+                    (MAX_URI_LENGTH - queryLength), "&ins=%" PRId64, ins);
+            if (lenBufferRequired >= (MAX_URI_LENGTH - queryLength) || lenBufferRequired < 0)
+            {
+                return OC_STACK_INVALID_URI;
+            }
+            queryLength += lenBufferRequired;
+            OIC_LOG_V(DEBUG, TAG, "queryParam [%s]", queryParam);
         }
-        queryLength += lenBufferRequired;
-        OIC_LOG_V(DEBUG, TAG, "queryParam [%s]", queryParam);
     }
 
     if (targetUriBufferRequired + queryLength + 1 > MAX_URI_LENGTH)
index 6ec0c37..984158d 100755 (executable)
@@ -5997,11 +5997,17 @@ OCStackResult OCUpdateResourceInsWithResponse(const char *requestUri,
                          if (resHandle)
                          {
                              int64_t resIns = 0;
-                             OCGetResourceIns(resHandle, &resIns);
-                             if (queryIns && queryIns == resIns)
+                             if (OC_STACK_OK == OCGetResourceIns(resHandle, &resIns))
                              {
-                                 OCBindResourceInsToResource(resHandle, 0);
-                                 break;
+                                 if (queryIns && queryIns == resIns)
+                                 {
+                                     OCBindResourceInsToResource(resHandle, 0);
+                                     break;
+                                 }
+                             }
+                             else
+                             {
+                                 OIC_LOG(ERROR, TAG, "Get resource instance failed!");
                              }
                          }
                      }