|
From f182119e571a1b520b4e5ef4ee5e5b5cd243b931 Mon Sep 17 00:00:00 2001
|
|
From: Chul Lee <chuls.lee@samsung.com>
|
|
Date: Wed, 22 Jun 2016 12:40:21 +0900
|
|
Subject: [PATCH] Remove the endianness dependency in cbor conversion.
|
|
|
|
A similar bug reported from https://gerrit.iotivity.org/gerrit/#/c/8755/
|
|
|
|
Change-Id: I631bab77f7486f1f45eaff96c67d39606e37c6b6
|
|
Signed-off-by: Chul Lee <chuls.lee@samsung.com>
|
|
Reviewed-on: https://gerrit.iotivity.org/gerrit/8829
|
|
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
|
|
Reviewed-by: Hauke Mehrtens <hauke.mehrtens@intel.com>
|
|
Reviewed-by: Randeep Singh <randeep.s@samsung.com>
|
|
(cherry picked from commit 24474a8d2555229efb425b6cb63e19b3279ba810)
|
|
Reviewed-on: https://gerrit.iotivity.org/gerrit/9053
|
|
---
|
|
resource/csdk/security/src/credresource.c | 8 ++++++--
|
|
resource/csdk/security/src/pconfresource.c | 5 +++--
|
|
resource/csdk/stack/src/ocpayloadparse.c | 8 ++++++--
|
|
3 files changed, 15 insertions(+), 6 deletions(-)
|
|
|
|
--- a/resource/csdk/security/src/credresource.c
|
|
+++ b/resource/csdk/security/src/credresource.c
|
|
@@ -435,8 +435,10 @@ OCStackResult CBORPayloadToCred(const ui
|
|
//credid
|
|
if (strcmp(name, OIC_JSON_CREDID_NAME) == 0)
|
|
{
|
|
- cborFindResult = cbor_value_get_uint64(&credMap, (uint64_t *) &cred->credId);
|
|
+ uint64_t credId = 0;
|
|
+ cborFindResult = cbor_value_get_uint64(&credMap, &credId);
|
|
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding CredId.");
|
|
+ cred->credId = (uint16_t)credId;
|
|
}
|
|
// subjectid
|
|
if (strcmp(name, OIC_JSON_SUBJECTID_NAME) == 0)
|
|
@@ -451,8 +453,10 @@ OCStackResult CBORPayloadToCred(const ui
|
|
// credtype
|
|
if (strcmp(name, OIC_JSON_CREDTYPE_NAME) == 0)
|
|
{
|
|
- cborFindResult = cbor_value_get_uint64(&credMap, (uint64_t *) &cred->credType);
|
|
+ uint64_t credType = 0;
|
|
+ cborFindResult = cbor_value_get_uint64(&credMap, &credType);
|
|
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding CredType.");
|
|
+ cred->credType = (OicSecCredType_t)credType;
|
|
}
|
|
// privatedata
|
|
if (strcmp(name, OIC_JSON_PRIVATEDATA_NAME) == 0)
|
|
--- a/resource/csdk/security/src/pconfresource.c
|
|
+++ b/resource/csdk/security/src/pconfresource.c
|
|
@@ -642,8 +642,9 @@ OCStackResult CBORPayloadToPconf(const u
|
|
// Permissions -- Mandatory
|
|
if (strcmp(name, OIC_JSON_PERMISSION_NAME) == 0)
|
|
{
|
|
- cborFindResult = cbor_value_get_uint64(&pdAclMap,
|
|
- (uint64_t *) &pdacl->permission);
|
|
+ uint64_t permission = 0;
|
|
+ cborFindResult = cbor_value_get_uint64(&pdAclMap, &permission);
|
|
+ pdacl->permission = (uint16_t)permission;
|
|
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed to get value");
|
|
}
|
|
|
|
--- a/resource/csdk/stack/src/ocpayloadparse.c
|
|
+++ b/resource/csdk/stack/src/ocpayloadparse.c
|
|
@@ -1169,17 +1169,21 @@ static OCStackResult OCParsePresencePayl
|
|
if (cbor_value_is_map(rootValue))
|
|
{
|
|
CborValue curVal;
|
|
+ uint64_t temp = 0;
|
|
|
|
// Sequence Number
|
|
CborError err = cbor_value_map_find_value(rootValue, OC_RSRVD_NONCE, &curVal);
|
|
VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding nonce tag");
|
|
- err = cbor_value_get_uint64(&curVal, (uint64_t *)&payload->sequenceNumber);
|
|
+ err = cbor_value_get_uint64(&curVal, &temp);
|
|
+ payload->sequenceNumber = (uint32_t)temp;
|
|
VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding nonce value");
|
|
|
|
// Max Age
|
|
err = cbor_value_map_find_value(rootValue, OC_RSRVD_TTL, &curVal);
|
|
VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding ttl tag");
|
|
- err = cbor_value_get_uint64(&curVal, (uint64_t *)&payload->maxAge);
|
|
+ temp = 0;
|
|
+ err = cbor_value_get_uint64(&curVal, &temp);
|
|
+ payload->maxAge = (uint32_t)temp;
|
|
VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding ttl value");
|
|
|
|
// Trigger
|