Modify OCParseSecurityPayload() to prevent core-dump in debug mode.
authorleechul <chuls.lee@samsung.com>
Mon, 28 Dec 2015 23:19:33 +0000 (08:19 +0900)
committerSachin Agrawal <sachin.agrawal@intel.com>
Tue, 29 Dec 2015 08:16:06 +0000 (08:16 +0000)
   1. Add cbor value verification code
   2. Remove the cbor_value_leave_container() invoking.

Change-Id: Iaa0b784c1688eddff8d1a1eec6406f396e508db7
Signed-off-by: leechul <chuls.lee@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/4733
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Dmitriy Zhuravlev <d.zhuravlev@samsung.com>
Reviewed-by: Sachin Agrawal <sachin.agrawal@intel.com>
resource/csdk/stack/src/ocpayloadparse.c

index d2bbadf..50e43ce 100644 (file)
@@ -112,12 +112,14 @@ static OCStackResult OCParseSecurityPayload(OCPayload** outPayload, CborValue* r
 
     bool err = false;
     char * securityData = NULL;
 
     bool err = false;
     char * securityData = NULL;
-    CborValue map;
-    size_t len;
+    CborValue strVal = {0};
+    size_t len = 0;
 
 
-    err = err || cbor_value_enter_container(rootValue, &map);
-    err = err || cbor_value_dup_text_string(&map, &securityData, &len, NULL);
-    err = err || cbor_value_leave_container(rootValue, &map);
+    err = cbor_value_enter_container(rootValue, &strVal);
+    if(CborNoError == err && cbor_value_is_text_string(&strVal))
+    {
+        err = cbor_value_dup_text_string(&strVal, &securityData, &len, NULL);
+    }
 
     if(err)
     {
 
     if(err)
     {