c++ warns as error fixed 91/29491/11
authorOleksandr Dmytrenko <o.dmytrenko@samsung.com>
Tue, 14 May 2019 07:04:12 +0000 (10:04 +0300)
committerAleksey Volkov <a.volkov@samsung.com>
Mon, 20 May 2019 11:12:18 +0000 (11:12 +0000)
c++ warns as error fixed

Change-Id: I836560ef338ba385c4ef814963e683dd41d1c500
Signed-off-by: Oleksandr Dmytrenko <o.dmytrenko@samsung.com>
15 files changed:
resource/csdk/security/include/srmutility.h
resource/csdk/security/src/aclresource.c
resource/csdk/security/src/amaclresource.c
resource/csdk/security/src/certhelpers.c
resource/csdk/security/src/credresource.c
resource/csdk/security/src/crlresource.c
resource/csdk/security/src/deviceonboardingstate.c
resource/csdk/security/src/doxmresource.c
resource/csdk/security/src/occertutility.c
resource/csdk/security/src/ocsecurity.c
resource/csdk/security/src/policyengine.c
resource/csdk/security/src/psinterface.c
resource/csdk/security/src/pstatresource.c
resource/csdk/security/src/rolesresource.c
resource/csdk/security/src/spresource.c

index bea9420..d0af1c3 100644 (file)
@@ -124,23 +124,23 @@ struct OicParseQueryIter
 
 #define LOG_MBEDTLS_ERROR(ret) do{ \
     if (0!=(ret)) {\
-    char *buf = (char*)OICCalloc(2048, 1);\
-    if (buf)\
+    char *_buf = (char*)OICCalloc(2048, 1);\
+    if (_buf)\
     {\
-        mbedtls_strerror((ret), buf, 2048);                           \
-        OIC_LOG_V(ERROR, TAG, "mbedtls error:  %s", buf); \
-        OICFree(buf);\
+        mbedtls_strerror((ret), _buf, 2048);                           \
+        OIC_LOG_V(ERROR, TAG, "mbedtls error:  %s", _buf); \
+        OICFree(_buf);\
     }\
     } }while(0)
 
 #define LOG_MBEDTLS_VERIFY_ERROR(flags) do{ \
     if (0!=(flags)) {                       \
-    char *buf = (char*)OICCalloc(2048, 1);  \
-    if (buf)                                \
+    char *_buf = (char*)OICCalloc(2048, 1);  \
+    if (_buf)                                \
     {                                       \
-        mbedtls_x509_crt_verify_info(buf, 2048, "", flags); \
-        OIC_LOG_V(ERROR, TAG, "mbedtls verify error:  %s", buf); \
-        OICFree(buf);                       \
+        mbedtls_x509_crt_verify_info(_buf, 2048, "", flags); \
+        OIC_LOG_V(ERROR, TAG, "mbedtls verify error:  %s", _buf); \
+        OICFree(_buf);                       \
     }                                       \
     } }while(0)
 
@@ -243,6 +243,22 @@ bool IsNilUuid(const OicUuid_t *uuid);
 OCStackResult OC_CALL SetDeviceIdSeed(const uint8_t* seed, size_t seedSize);
 #endif
 
+/**
+ * cbor default init
+ */
+#define OC_DEFAULT_CBOR_VALUE {.parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0}
+
+#define OC_DEFAULT_CBOR_PARSER {.end = NULL, .flags = 0}
+
+#define OC_DEFAULT_OICPARSEQUWRYITER \
+{ \
+    .attrPos = NULL,\
+    .attrLen = 0,\
+    .valPos = NULL,\
+    .valLen = 0,\
+    .pi = {.n=0,.separator=NULL,.delim=NULL,.dlen=0,.pos=NULL,.segment_length=0}\
+}
+
 /**
  * Is the URI for a Security Virtual Resource as defined
  * by Security Specification.
index af7ae0f..cca1067 100644 (file)
@@ -34,7 +34,6 @@
 #include "oic_string.h"
 #include "experimental/ocrandom.h"
 #include "ocpayload.h"
-#include "utlist.h"
 #include "acl_logging.h"
 #include "experimental/payload_logging.h"
 #include "srmresourcestrings.h"
@@ -361,6 +360,7 @@ static size_t OicSecAclSize(const OicSecAcl_t *secAcl)
        size++;
        ace = ace->next;
     }
+    OIC_LOG_V(DEBUG, TAG, "%s: %lu", __func__, size);
     return size;
 }
 OCStackResult AclToCBORPayload(const OicSecAcl_t *secAcl,
@@ -440,7 +440,7 @@ OCStackResult AclToCBORPayloadPartial(const OicSecAcl_t *secAcl,
         VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborEncoderResult, "Failed Creating ACL Map.");
         OIC_LOG_V(DEBUG, TAG, "%s starting encoding of %s resource.",
             __func__, (OIC_SEC_ACL_V1 == aclVersion)?"v1 acl":"v2 acl2");
-    
+
     // v1 uses "aclist" as the top-level tag, containing an "aces" object
     if (OIC_SEC_ACL_V1 == aclVersion)
     {
@@ -522,6 +522,7 @@ OCStackResult AclToCBORPayloadPartial(const OicSecAcl_t *secAcl,
             {
                 aceMapSize++;
             }
+            validityElts = validityElts->next;
         }
 
 #ifdef MULTIPLE_OWNER
@@ -761,7 +762,7 @@ OCStackResult AclToCBORPayloadPartial(const OicSecAcl_t *secAcl,
                     rsrcMapSize++;
                 }
 
-                OIC_LOG_V(DEBUG, TAG, "%s resource map size = %"PRIuPTR, __func__, rsrcMapSize);
+                OIC_LOG_V(DEBUG, TAG, "%s resource map size = %" PRIuPTR, __func__, rsrcMapSize);
 
                 cborEncoderResult = cbor_encoder_create_map(&resources, &rMap, rsrcMapSize);
                 VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborEncoderResult, "Failed Adding Resource Map.");
@@ -1108,7 +1109,6 @@ exit:
 // It parses { "aclist" : [ { ... } ] } instead of { "aclist" : { "aces" : [ ] } }
 
 #if defined(TCP_ADAPTER) && defined(WITH_CLOUD)
-
 OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size)
 {
     if (NULL == cborPayload || 0 == size)
@@ -1116,8 +1116,8 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
         return NULL;
     }
     OCStackResult ret = OC_STACK_ERROR;
-    CborValue aclCbor = { .parser = NULL };
-    CborParser parser = { .end = NULL };
+    CborValue aclCbor = OC_DEFAULT_CBOR_VALUE;
+    CborParser parser = OC_DEFAULT_CBOR_PARSER;
     CborError cborFindResult = CborNoError;
     cbor_parser_init(cborPayload, size, 0, &parser, &aclCbor);
 
@@ -1125,7 +1125,7 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
     VERIFY_NOT_NULL_RETURN(TAG, acl, ERROR, NULL);
 
     // Enter ACL Map
-    CborValue aclMap = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
+    CborValue aclMap = OC_DEFAULT_CBOR_VALUE;
     cborFindResult = cbor_value_enter_container(&aclCbor, &aclMap);
     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering ACL Map.");
 
@@ -1146,7 +1146,7 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
             if (strcmp(tagName, OIC_JSON_ACLIST_NAME)  == 0)
             {
                 // Enter ACES Array
-                CborValue acesArray = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
+                CborValue acesArray = OC_DEFAULT_CBOR_VALUE;
                 cborFindResult = cbor_value_enter_container(&aclMap, &acesArray);
                 VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering ACES Array.");
 
@@ -1154,7 +1154,12 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
                 while (cbor_value_is_valid(&acesArray))
                 {
                     acesCount++;
-                    CborValue aceMap = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
+                    CborValue aceMap = OC_DEFAULT_CBOR_VALUE;
+                    if (!cbor_value_is_container(&acesArray))
+                    {
+                        OIC_LOG_V(WARNING, TAG, "%s: access array is not container", __func__);
+                        return NULL;
+                    }
                     cborFindResult = cbor_value_enter_container(&acesArray, &aceMap);
                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering ACE Map.");
 
@@ -1202,14 +1207,14 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
                             // Resources -- Mandatory
                             if (strcmp(name, OIC_JSON_RESOURCES_NAME) == 0)
                             {
-                                CborValue resources = { .parser = NULL };
+                                CborValue resources = OC_DEFAULT_CBOR_VALUE;
                                 cborFindResult = cbor_value_enter_container(&aceMap, &resources);
                                 VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering a Resource Array.");
 
                                 while (cbor_value_is_valid(&resources))
                                 {
                                     // rMap
-                                    CborValue rMap = { .parser = NULL  };
+                                    CborValue rMap = OC_DEFAULT_CBOR_VALUE;
                                     cborFindResult = cbor_value_enter_container(&resources, &rMap);
                                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering Resource Map");
 
@@ -1317,7 +1322,7 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
                             // Validity -- Not mandatory
                             if(strcmp(name, OIC_JSON_VALIDITY_NAME) == 0)
                             {
-                                CborValue validitiesMap = {.parser = NULL};
+                                CborValue validitiesMap = OC_DEFAULT_CBOR_VALUE;
                                 size_t validitySize = 0;
 
                                 cborFindResult = cbor_value_get_array_length(&aceMap, &validitySize);
@@ -1332,7 +1337,7 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
                                     VERIFY_NOT_NULL(TAG, validity, ERROR);
                                     LL_APPEND(ace->validities, validity);
 
-                                    CborValue validityMap  = {.parser = NULL};
+                                    CborValue validityMap = OC_DEFAULT_CBOR_VALUE;
                                     //period (string)
                                     cborFindResult = cbor_value_enter_container(&validitiesMap, &validityMap);
                                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding a validity Map.");
@@ -1342,7 +1347,7 @@ OicSecAcl_t* CBORPayloadToCloudAcl(const uint8_t *cborPayload, const size_t size
                                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding a Period value.");
 
                                     //recurrence (string array)
-                                    CborValue recurrenceMap  = {.parser = NULL};
+                                    CborValue recurrenceMap  = OC_DEFAULT_CBOR_VALUE ;
                                     cborFindResult = cbor_value_enter_container(&validityMap, &recurrenceMap);
                                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding a recurrence array.");
 
@@ -1438,8 +1443,8 @@ static OicSecAcl_t* CBORPayloadToAclVersionOpt(const uint8_t *cborPayload, const
     }
     OCStackResult ret = OC_STACK_ERROR;
     CborValue aclMap = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
-    CborValue aclCbor = { .parser = NULL };
-    CborParser parser = { .end = NULL };
+    CborValue aclCbor = OC_DEFAULT_CBOR_VALUE ;
+    CborParser parser = OC_DEFAULT_CBOR_PARSER ;
     CborError cborFindResult = CborNoError;
     char *tagName = NULL;
     char *subjectTag = NULL;
@@ -1796,7 +1801,7 @@ static OicSecAcl_t* CBORPayloadToAclVersionOpt(const uint8_t *cborPayload, const
                                 // Resources -- Mandatory
                                 if (0 == strcmp(name, OIC_JSON_RESOURCES_NAME))
                                 {
-                                    CborValue resources = { .parser = NULL };
+                                    CborValue resources = OC_DEFAULT_CBOR_VALUE;
                                     cborFindResult = cbor_value_enter_container(&aceMap, &resources);
                                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering a Resource Array.");
                                     OIC_LOG_V(DEBUG, TAG, "%s entered resources array.", __func__);
@@ -1805,7 +1810,7 @@ static OicSecAcl_t* CBORPayloadToAclVersionOpt(const uint8_t *cborPayload, const
                                     while (cbor_value_is_valid(&resources))
                                     {
                                         // rMap is the map of the current Resource being decoded
-                                        CborValue rMap = { .parser = NULL  };
+                                        CborValue rMap = OC_DEFAULT_CBOR_VALUE;
                                         cborFindResult = cbor_value_enter_container(&resources, &rMap);
                                         VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering Resource Map");
                                         resourceCount++;
@@ -1971,7 +1976,7 @@ static OicSecAcl_t* CBORPayloadToAclVersionOpt(const uint8_t *cborPayload, const
                                 // Validity -- Not mandatory
                                 if(strcmp(name, OIC_JSON_VALIDITY_NAME) == 0)
                                 {
-                                    CborValue validitiesMap = {.parser = NULL};
+                                    CborValue validitiesMap = OC_DEFAULT_CBOR_VALUE;
                                     size_t validitySize = 0;
 
                                     cborFindResult = cbor_value_get_array_length(&aceMap, &validitySize);
@@ -1986,7 +1991,7 @@ static OicSecAcl_t* CBORPayloadToAclVersionOpt(const uint8_t *cborPayload, const
                                         VERIFY_NOT_NULL(TAG, validity, ERROR);
                                         LL_APPEND(ace->validities, validity);
 
-                                        CborValue validityMap  = {.parser = NULL};
+                                        CborValue validityMap = OC_DEFAULT_CBOR_VALUE;
                                         //period (string)
                                         cborFindResult = cbor_value_enter_container(&validitiesMap, &validityMap);
                                         VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding a validity Map.");
@@ -1996,7 +2001,7 @@ static OicSecAcl_t* CBORPayloadToAclVersionOpt(const uint8_t *cborPayload, const
                                         VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding a Period value.");
 
                                         //recurrence (string array)
-                                        CborValue recurrenceMap  = {.parser = NULL};
+                                        CborValue recurrenceMap  = OC_DEFAULT_CBOR_VALUE;
                                         cborFindResult = cbor_value_enter_container(&validityMap, &recurrenceMap);
                                         VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding a recurrence array.");
 
@@ -2340,7 +2345,7 @@ static OCStackResult RemoveAceByAceIds(AceIdList_t *aceIdList)
  */
 static bool GetSubjectFromQueryString(const char *query, OicUuid_t *subject)
 {
-    OicParseQueryIter_t parseIter = { .attrPos = NULL };
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char *) query, &parseIter);
 
@@ -2379,7 +2384,7 @@ exit:
 static bool GetAceIdsFromQueryString(const char *query, AceIdList_t **aceid)
 {
     bool found = false;
-    OicParseQueryIter_t parseIter = { .attrPos = NULL };
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char *) query, &parseIter);
 
@@ -2440,7 +2445,7 @@ exit:
  */
 static bool GetResourceFromQueryString(const char *query, char *resource, size_t resourceSize)
 {
-    OicParseQueryIter_t parseIter = { .attrPos = NULL };
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char *) query, &parseIter);
 
@@ -3015,6 +3020,9 @@ static OCEntityHandlerResult HandleACL2PostRequest(const OCEntityHandlerRequest
     OIC_LOG(INFO, TAG, "HandleACLPostRequest processing the request");
     OCEntityHandlerResult ehRet = OC_EH_INTERNAL_SERVER_ERROR;
 
+    VERIFY_NOT_NULL_RETURN(TAG, ehRequest, ERROR, OC_EH_ERROR);
+    VERIFY_NOT_NULL_RETURN(TAG, ehRequest->payload, ERROR, OC_EH_ERROR);
+
     // Convert CBOR into ACL data and update to SVR buffers. This will also validate the ACL data received.
     uint8_t *payload = ((OCSecurityPayload *) ehRequest->payload)->securityData;
     size_t size = ((OCSecurityPayload *) ehRequest->payload)->payloadSize;
index 95b8b96..252d105 100644 (file)
@@ -91,7 +91,7 @@ OCStackResult AmaclToCBORPayload(const OicSecAmacl_t *amaclS, uint8_t **cborPayl
 
     CborEncoder encoder;
     CborEncoder amaclMap;
-    int64_t cborEncoderResult = CborNoError;
+    CborError cborEncoderResult = CborNoError;
     CborEncoder rsrcMap;
     CborEncoder rlistArray;
 
@@ -217,15 +217,15 @@ OCStackResult CBORPayloadToAmacl(const uint8_t *cborPayload, size_t size,
 
     OCStackResult ret = OC_STACK_ERROR;
 
-    CborValue amaclCbor = { .parser = NULL };
-    CborParser parser = { .end = NULL };
+    CborValue amaclCbor = OC_DEFAULT_CBOR_VALUE;
+    CborParser parser = OC_DEFAULT_CBOR_PARSER;
     CborError cborFindResult = CborNoError;
 
     cbor_parser_init(cborPayload, size, 0, &parser, &amaclCbor);
     OicSecAmacl_t *headAmacl = (OicSecAmacl_t *)OICCalloc(1, sizeof(OicSecAmacl_t));
     VERIFY_NOT_NULL_RETURN(TAG, headAmacl, ERROR, OC_STACK_NO_MEMORY);
 
-    CborValue amaclMap = { .parser = NULL };
+    CborValue amaclMap = OC_DEFAULT_CBOR_VALUE;
     cborFindResult = cbor_value_enter_container(&amaclCbor, &amaclMap);
     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering Amacl Map.");
 
@@ -244,7 +244,7 @@ OCStackResult CBORPayloadToAmacl(const uint8_t *cborPayload, size_t size,
         if (0 == strcmp(OIC_JSON_RESOURCES_NAME, name))
         {
             // resource map
-            CborValue rsrcMap = { .parser = NULL  };
+            CborValue rsrcMap = OC_DEFAULT_CBOR_VALUE;
             cborFindResult = cbor_value_enter_container(&amaclMap, &rsrcMap);
             VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering Resource Map");
 
@@ -266,7 +266,7 @@ OCStackResult CBORPayloadToAmacl(const uint8_t *cborPayload, size_t size,
                     cborFindResult = cbor_value_get_array_length(&rsrcMap, &headAmacl->resourcesLen);
                     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Finding Rlist Array Len.");
 
-                    CborValue rsrcArray = { .parser = NULL  };
+                    CborValue rsrcArray = OC_DEFAULT_CBOR_VALUE;
 
                     // rlist array
                     cborFindResult = cbor_value_enter_container(&rsrcMap, &rsrcArray);
@@ -279,7 +279,7 @@ OCStackResult CBORPayloadToAmacl(const uint8_t *cborPayload, size_t size,
                     while (cbor_value_is_valid(&rsrcArray))
                     {
                         // rMap
-                        CborValue rMap = { .parser = NULL  };
+                        CborValue rMap = OC_DEFAULT_CBOR_VALUE;
                         cborFindResult = cbor_value_enter_container(&rsrcArray, &rMap);
                         VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed Entering Rlist Map");
 
index 916d5df..340b720 100644 (file)
@@ -272,6 +272,7 @@ OCStackResult OCInternalIsValidRoleCertificate(const uint8_t *buf, size_t bufLen
 {
     OCStackResult res = OC_STACK_ERROR;
     mbedtls_x509_crt parsedCert;
+    bool valid = false;
 
     OIC_LOG(DEBUG, TAG, "OCInternalIsValidRoleCertificate IN");
 
@@ -310,7 +311,7 @@ OCStackResult OCInternalIsValidRoleCertificate(const uint8_t *buf, size_t bufLen
         goto exit;
     }
 
-    bool valid = false;
+    valid = false;
     /* Check for at least one subjAltName with a role in it. */
     for (const mbedtls_x509_general_names *nameCur = &parsedCert.subject_alt_names;
             NULL != nameCur;
@@ -446,16 +447,17 @@ OCStackResult OCInternalVerifyRoleCertificate(const OicSecKey_t *certificateChai
                                               OicSecRole_t **roles, size_t *rolesLength,
                                               struct tm *notValidAfter)
 {
-    bool freeData = false;
-    uint8_t *data = certificateChain->data;
-    size_t dataLength = certificateChain->len;
-
-    VERIFY_NOT_NULL_RETURN(TAG, certificateChain, ERROR, OC_STACK_INVALID_PARAM);
     VERIFY_NOT_NULL_RETURN(TAG, trustedCaCerts, ERROR, OC_STACK_INVALID_PARAM);
     VERIFY_NOT_NULL_RETURN(TAG, roles, ERROR, OC_STACK_INVALID_PARAM);
     VERIFY_NOT_NULL_RETURN(TAG, rolesLength, ERROR, OC_STACK_INVALID_PARAM);
     VERIFY_NOT_NULL_RETURN(TAG, notValidAfter, ERROR, OC_STACK_INVALID_PARAM);
+    VERIFY_NOT_NULL_RETURN(TAG, certificateChain, ERROR, OC_STACK_INVALID_PARAM);
 
+    bool freeData = false;
+    uint8_t *data = certificateChain->data;
+    size_t dataLength = certificateChain->len;
+    int count;
+    int errNum;
     OCStackResult res = OC_STACK_ERROR;
     int mbedRet;
     uint32_t flags = 0;
@@ -467,10 +469,10 @@ OCStackResult OCInternalVerifyRoleCertificate(const OicSecKey_t *certificateChai
 
     OIC_LOG(DEBUG, TAG, "OCInternalVerifyRoleCertificate IN");
 
-    if ((dataLength > 0) && (data[dataLength - 1] != 0))
+    if ((dataLength > 0) && (data[dataLength - 1] != '\0'))
     {
         /* mbedtls_x509_crt_parse requires null terminator */
-        data = OICMalloc(dataLength + 1);
+        data = (uint8_t*)OICMalloc(dataLength + 1);
 
         if (data == NULL)
         {
@@ -504,17 +506,14 @@ OCStackResult OCInternalVerifyRoleCertificate(const OicSecKey_t *certificateChai
         goto exit;
     }
 
-    int errNum;
-    int count = ParseChain(&trustedCas, trustedCaCerts, &errNum);
-    if (0 >= count)
-    {
-        OIC_LOG(WARNING, TAG, "Could not parse trusted CA certs");
-        res = OC_STACK_ERROR;
-        goto exit;
-    }
+    count = ParseChain(&trustedCas, trustedCaCerts, &errNum);
     if (0 != errNum)
     {
         OIC_LOG_V(WARNING, TAG, "Trusted CA certs parsing error: %d certs failed to parse", errNum);
+    }
+    if (0 >= count)
+    {
+        OIC_LOG(ERROR, TAG, "Could not parse trusted CA certs");
         res = OC_STACK_ERROR;
         goto exit;
     }
@@ -531,6 +530,8 @@ OCStackResult OCInternalVerifyRoleCertificate(const OicSecKey_t *certificateChai
     if (0 > mbedRet)
     {
         OIC_LOG_V(ERROR, TAG, "Failed to verify certificate: ret = %d, flags = %u", mbedRet, flags);
+        LOG_MBEDTLS_ERROR(mbedRet);
+        LOG_MBEDTLS_VERIFY_ERROR(flags);
         res = OC_STACK_INVALID_PARAM;
         goto exit;
     }
index f83922a..1cfd589 100644 (file)
@@ -274,6 +274,8 @@ static bool IsEmptyCred(const OicSecCred_t* cred)
 {
     OicUuid_t emptyUuid = OC_ZERO_UUID;
 
+    VERIFY_NOT_NULL(TAG, cred, ERROR);
+
     VERIFY_SUCCESS(TAG, (0 == memcmp(cred->subject.id, emptyUuid.id, sizeof(emptyUuid))), DEBUG);
     VERIFY_SUCCESS(TAG, !IsNonEmptyRole(&cred->roleId), DEBUG);
     VERIFY_SUCCESS(TAG, (0 == cred->credId), DEBUG);
@@ -1683,6 +1685,7 @@ bool IsSameSecOpt(const OicSecOpt_t* sk1, const OicSecOpt_t* sk2)
     VERIFY_SUCCESS(TAG, (sk1->len == sk2->len), INFO);
     VERIFY_SUCCESS(TAG, (sk1->encoding == sk2->encoding), INFO);
     VERIFY_SUCCESS(TAG, (0 == memcmp(sk1->data, sk2->data, sk1->len)), INFO);
+    VERIFY_SUCCESS(TAG, (sk1->revstat == sk2->revstat), INFO);
     return true;
 exit:
     return false;
@@ -1827,8 +1830,9 @@ OCStackResult AddCredential(OicSecCred_t * newCred)
         mbedtls_x509_crt_free(&crt);
     }
 #endif
-
-    OIC_LOG(DEBUG, TAG, "Adding New Cred");
+#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
+    OIC_LOG_V(DEBUG, TAG, "%s: adding cred: %d %s", __func__, newCred->credId, newCred->credUsage);
+#endif /* __WITH_DTLS__  or __WITH_TLS__*/
     LL_APPEND(gCred, newCred);
 
 saveToDB:
@@ -3329,7 +3333,6 @@ bool IsCredRowneruuidTheNilUuid()
 {
     return IsNilUuid(&gRownerId);
 }
-
 #if defined (__WITH_TLS__) || defined(__WITH_DTLS__)
 /* Caller must call OICFree on *der when finished. */
 static int ConvertPemCertToDer(const char *pem, size_t pemLen, uint8_t** der, size_t* derLen)
@@ -3348,7 +3351,8 @@ static int ConvertPemCertToDer(const char *pem, size_t pemLen, uint8_t** der, si
     ret = mbedtls_pem_read_buffer(&ctx, pemHeader, pemFooter, (const uint8_t*) pem, NULL, 0, &usedLen);
     if (ret != 0)
     {
-        OIC_LOG_V(ERROR, TAG, "%s: failed reading PEM cert", __func__);
+        LOG_MBEDTLS_ERROR(ret);
+        OIC_LOG_V(ERROR, TAG, "%s: failed reading PEM cert: %d", __func__, ret);
         goto exit;
     }
 
@@ -3818,6 +3822,10 @@ void GetCaCert(ByteArrayLL_t * chain, const char * usage)
 
     LL_FOREACH(gCred, temp)
     {
+#ifndef NDEBUG
+        OIC_LOG_V(DEBUG, TAG, "%s: cred: %d %s", __func__, temp->credId, temp->credUsage);
+        LogCert ( temp->publicData.data, temp->publicData.len, temp->publicData.encoding, TAG_LOG );
+#endif
         if ((SIGNED_ASYMMETRIC_KEY == temp->credType) &&
             (temp->credUsage != NULL) &&
             (0 == strcmp(temp->credUsage, usage)) && (false == temp->optionalData.revstat))
@@ -3836,6 +3844,15 @@ void GetCaCert(ByteArrayLL_t * chain, const char * usage)
                 OIC_LOG_V(ERROR, TAG, "%s: Failed to parse certificate chain", __func__);
             }
         }
+        else
+        {
+            OIC_LOG_V(DEBUG, TAG, "%s: cred: %d does not match by: %s",
+                __func__, temp->credId,
+                    SIGNED_ASYMMETRIC_KEY != temp->credType ? "not asym key" :
+                    temp->credUsage == NULL ? "null cred usage" :
+                    0 != strcmp(temp->credUsage, usage) ? "invalid cred usage" :
+                    "revstat is not false");
+        }
     }
     if(NULL == chain->cert)
     {
@@ -3910,6 +3927,7 @@ OCStackResult GetAllRoleCerts(RoleCertChain_t ** output)
             }
             LL_APPEND(*output, add);
             add->credId = temp->credId;
+            OIC_LOG_V(DEBUG, TAG, "%s: add: %d", __func__, add->credId);
             if (cloneSecKey(&add->certificate, &temp->publicData) != 0)
             {
                 OIC_LOG_V(ERROR, TAG, "%s failed to copy certificate data", __func__);
index 25d0b92..4f5fa83 100644 (file)
@@ -79,7 +79,7 @@ void DeleteCrl(OicSecCrl_t *crl)
 static bool copyByteArray(const uint8_t *in, size_t in_len, uint8_t **out, size_t *out_len)
 {
     OICFree(*out);
-    uint8_t *tmp = OICMalloc(in_len);
+    uint8_t *tmp = (uint8_t *)OICMalloc(in_len);
     if (!tmp)
     {
         return false;
@@ -128,13 +128,14 @@ static CborError setCrlData(CborEncoder *out, const char *name, const OicSecKey_
 
     CborError result = CborErrorInternalError;
 
+    size_t encodeBufferSize = 0;
     size_t len = 0;
     unsigned char *encodeBuffer = NULL;
     int b64result = mbedtls_base64_encode(NULL, 0, &len, value->data, value->len);
     VERIFY_SUCCESS(TAG, (MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL == b64result), ERROR);
 
-    size_t encodeBufferSize = len;
-    encodeBuffer = OICCalloc(1, encodeBufferSize);
+    encodeBufferSize = len;
+    encodeBuffer = (unsigned char *)OICCalloc(1, encodeBufferSize);
     VERIFY_NOT_NULL(TAG, encodeBuffer, ERROR);
 
     b64result = mbedtls_base64_encode(encodeBuffer, encodeBufferSize, &len, value->data, value->len);
@@ -161,7 +162,7 @@ static CborError getCrlData(CborValue *in, const char *name, OicSecKey_t *value)
     }
 
     CborError result = CborNoError;
-    CborValue crlNode = { .parser = NULL };
+    CborValue crlNode = OC_DEFAULT_CBOR_VALUE;
     unsigned char *decodeBuffer = NULL;
     size_t decodeBufferSize;
 
@@ -180,7 +181,7 @@ static CborError getCrlData(CborValue *in, const char *name, OicSecKey_t *value)
             return CborErrorInternalError;
         }
         value->len = outLen;
-        value->data = OICCalloc(1, value->len);
+        value->data = (uint8_t*)OICCalloc(1, value->len);
         VERIFY_NOT_NULL(TAG, value->data, ERROR);
 
         decodeResult = mbedtls_base64_decode(value->data, value->len, &outLen, decodeBuffer, decodeBufferSize);
@@ -338,12 +339,12 @@ OCStackResult CBORPayloadToCrl(const uint8_t *cborPayload, const size_t size,
     OCStackResult ret = OC_STACK_ERROR;
     OicSecCrl_t *crl = NULL;
 
-    CborValue crlCbor = {.parser = NULL};
-    CborParser parser = {.end = NULL};
+    CborValue crlCbor = OC_DEFAULT_CBOR_VALUE;
+    CborParser parser = OC_DEFAULT_CBOR_PARSER;
     CborError cborFindResult = CborNoError;
 
     cbor_parser_init(cborPayload, size, 0, &parser, &crlCbor);
-    CborValue crlMap = { .parser = NULL};
+    CborValue crlMap = OC_DEFAULT_CBOR_VALUE;
     cborFindResult = cbor_value_enter_container(&crlCbor, &crlMap);
     VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborFindResult, "Failed to enter Crl map");
 
@@ -465,7 +466,7 @@ static bool ValidateQuery(const char * query)
     bool bInterfaceQry = false;      // does querystring contains 'if' query ?
     bool bInterfaceMatch = false;    // does 'if' query matches with oic.if.baseline ?
 
-    OicParseQueryIter_t parseIter = {.attrPos = NULL};
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char*)query, &parseIter);
 
@@ -821,7 +822,7 @@ void GetDerCrl(ByteArray_t* out)
         }
 
         size_t decodeBufferSize = len;
-        unsigned char *decodeBuffer = OICCalloc(1, decodeBufferSize);
+        unsigned char *decodeBuffer = (unsigned char*)OICCalloc(1, decodeBufferSize);
         if (!decodeBuffer)
         {
             OIC_LOG(ERROR, TAG, "Can't allocate memory for base64 str");
@@ -844,7 +845,7 @@ void GetDerCrl(ByteArray_t* out)
 
     out->len = 0;
 
-    uint8_t *tmp = OICRealloc(out->data, crl->len);
+    uint8_t *tmp = (uint8_t*)OICRealloc(out->data, crl->len);
     if (tmp)
     {
         out->data = tmp;
index 280d836..db81fe9 100644 (file)
@@ -357,13 +357,17 @@ static bool EnterRFPRO(void)
 static bool EnterRESET(void)
 {
     bool ret = false;
-
+    OicSecDpm_t dpmZero = 0;
+#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
+    // Enable Anon DH cipher suite if appropriate
+    bool isAnonEnabled = false;
+#endif // __WITH_DTLS__ or __WITH_TLS__
     // Restore Mfr Defaults
     // "Mfr Defaults" is defined by manufacturer.  It could be "failsafe"
     // SVRs (e.g. the hard-coded SVRs in IoTivity) or it could be a backup
     // copy of the initally-provisioned SVRs (e.g. the ResetSecureResourceInPS
     // function in IoTivity).
-    // TODO [IOT-2633]: 
+    // TODO [IOT-2633]:
     VERIFY_SUCCESS(TAG, OC_STACK_OK == ResetSecureResources(), ERROR);
 
     // Set doxm.deviceuuid = Mfr Default (handled above)
@@ -386,7 +390,6 @@ static bool EnterRESET(void)
     VERIFY_SUCCESS(TAG, OC_STACK_OK == SetPstatRownerId(&THE_NIL_UUID), ERROR);
 
     // clear all bits in cm and tm before setting the 2 lsbs
-    OicSecDpm_t dpmZero = 0;
     VERIFY_SUCCESS(TAG, OC_STACK_OK == SetPstatCm(dpmZero), ERROR);
     VERIFY_SUCCESS(TAG, OC_STACK_OK == SetPstatTm(dpmZero), ERROR);
 
@@ -399,8 +402,6 @@ static bool EnterRESET(void)
         ERROR);
 
 #if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
-    // Enable Anon DH cipher suite if appropriate
-    bool isAnonEnabled = false;
     VERIFY_SUCCESS(TAG,
         OC_STACK_OK == EnableAnonCipherSuiteIfUnOwnedAndJustWorksSelected(&isAnonEnabled),
         ERROR);
index 5b343ac..cdf50dd 100644 (file)
@@ -846,7 +846,7 @@ static bool ValidateQuery(const char * query)
     bool bMotMatch = false;       // does 'mom' query value is not '0' && does query value matches with doxm.owned status?
 #endif //MULTIPLE_OWNER
 
-    OicParseQueryIter_t parseIter = {.attrPos = NULL};
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char*)query, &parseIter);
 
@@ -1399,7 +1399,7 @@ OCEntityHandlerResult StartOTMJustWorks(OCEntityHandlerRequest *ehRequest)
              sizeof(mutualVerifNum));
 
             //Wait for user confirmation
-            if (OC_STACK_OK != VerifyOwnershipTransfer(mutualVerifNum, DISPLAY_NUM | USER_CONFIRM))
+            if (OC_STACK_OK != VerifyOwnershipTransfer(mutualVerifNum, (VerifyOptionBitmask_t)(DISPLAY_NUM | USER_CONFIRM)))
             {
                 ehRet = OC_EH_NOT_ACCEPTABLE;
             }
@@ -1488,6 +1488,7 @@ OCEntityHandlerResult HandleDoxmPostRequestMfg(OicSecDoxm_t *newDoxm,
 {
     OIC_LOG_V(DEBUG, TAG, "%s: IN", __func__);
     OCEntityHandlerResult ehRet = OC_EH_OK;
+    CAResult_t caRes = CA_STATUS_OK;
 
         //In case of Confirm Manufacturer Cert, get user confirmation
         if (OIC_CON_MFG_CERT == newDoxm->oxmSel && false == newDoxm->owned &&
@@ -1509,7 +1510,7 @@ OCEntityHandlerResult HandleDoxmPostRequestMfg(OicSecDoxm_t *newDoxm,
         gDoxm->oxmSel = newDoxm->oxmSel;
 
         RegisterOTMSslHandshakeCallback(DoxmDTLSHandshakeCB);
-        CAResult_t caRes = CAEnableAnonECDHCipherSuite(false);
+        caRes = CAEnableAnonECDHCipherSuite(false);
         VERIFY_SUCCESS(TAG, caRes == CA_STATUS_OK, ERROR);
         OIC_LOG_V(INFO, TAG, "%s: ECDH_ANON CipherSuite is DISABLED", __func__);
 
@@ -1568,6 +1569,9 @@ static OCEntityHandlerResult HandleDoxmPostRequest(OCEntityHandlerRequest *ehReq
     bool roParsed = false;
     bool oxmselParsed = false;
     OicSecDostype_t dos;
+    size_t size =  0;
+    uint8_t *payload = NULL;
+    OCStackResult res = OC_STACK_OK;
 
     VERIFY_NOT_NULL(TAG, ehRequest, ERROR);
     VERIFY_NOT_NULL(TAG, ehRequest->payload, ERROR);
@@ -1586,10 +1590,10 @@ static OCEntityHandlerResult HandleDoxmPostRequest(OCEntityHandlerRequest *ehReq
 
     // Convert CBOR Doxm data into binary. This will also validate
     // the Doxm data received.
-    uint8_t *payload = ((OCSecurityPayload *)ehRequest->payload)->securityData;
+    payload = ((OCSecurityPayload *)ehRequest->payload)->securityData;
     VERIFY_NOT_NULL(TAG, payload, ERROR);
-    size_t size = ((OCSecurityPayload *)ehRequest->payload)->payloadSize;
-    OCStackResult res = CBORPayloadToDoxmBin(payload, size, &newDoxm, &roParsed,
+    size = ((OCSecurityPayload *)ehRequest->payload)->payloadSize;
+    res = CBORPayloadToDoxmBin(payload, size, &newDoxm, &roParsed,
                         &oxmselParsed, dos.state);
     VERIFY_SUCCESS(TAG, OC_STACK_OK == res, ERROR);
     VERIFY_NOT_NULL(TAG, newDoxm, ERROR);
index 199e1fe..0b21540 100644 (file)
@@ -177,7 +177,7 @@ OCStackResult OC_CALL OCGenerateRandomSerialNumber(char **serial, size_t *serial
     /* Get the needed string length and allocate. */
     ret = mbedtls_mpi_write_string(&serialMpi, 10, NULL, 0, serialLen);
     VERIFY_SUCCESS(TAG, ret == MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, ERROR);
-    *serial = OICCalloc(1, *serialLen);
+    *serial = (char*)OICCalloc(1, *serialLen);
     VERIFY_NOT_NULL(TAG, *serial, ERROR);
 
     /* Do the write for real. */
@@ -233,7 +233,7 @@ OCStackResult OC_CALL OCGenerateKeyPair(char **publicKey, size_t *publicKeyLen,
     }
 
     *publicKeyLen = strlen((char *)buf) + 1;
-    *publicKey = OICCalloc(1, *publicKeyLen);
+    *publicKey = (char*)OICCalloc(1, *publicKeyLen);
     if (NULL == *publicKey)
     {
         OIC_LOG(ERROR, TAG, "Could not allocate memory for public key");
@@ -250,7 +250,7 @@ OCStackResult OC_CALL OCGenerateKeyPair(char **publicKey, size_t *publicKeyLen,
     }
 
     *privateKeyLen = strlen((char *)buf) + 1;
-    *privateKey = OICCalloc(1, *privateKeyLen);
+    *privateKey = (char*)OICCalloc(1, *privateKeyLen);
     if (NULL == *privateKey)
     {
         OIC_LOG(ERROR, TAG, "Could not allocate memory for private key");
@@ -294,23 +294,24 @@ typedef enum {
 
 // write basic constraints to a cert
 // Same as mbedtls_x509write_crt_set_basic_constraints, with the added ability to set `critical` flag
-static OCStackResult OCWriteBasicConstraints( mbedtls_x509write_cert *ctx, int is_ca, int max_pathlen, int critical)
+static int writeBasicConstraints(mbedtls_x509write_cert *ctx, int is_ca, int max_pathlen, int critical)
 {
-
-    int ret;
+    int ret = 0;
     char mbedErrorBuf[256];
     unsigned char buf[9];
     unsigned char *c = buf + sizeof(buf);
     size_t len = 0;
 
-    memset( buf, 0, sizeof(buf) );
-
-    if( is_ca && max_pathlen > 127 )
-        return( MBEDTLS_ERR_X509_BAD_INPUT_DATA );
+    memset(buf, 0, sizeof(buf));
 
     if( is_ca )
     {
-        if( max_pathlen >= 0 )
+        if(max_pathlen > 127)
+        {
+            OIC_LOG_V(ERROR, TAG, "%s: mbedtls error: X509: bad input data: %d", __func__, max_pathlen);
+            return(OC_STACK_INVALID_PARAM);
+        }
+        else if(max_pathlen >= 0)
         {
             MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, max_pathlen ) );
         }
@@ -325,9 +326,13 @@ static OCStackResult OCWriteBasicConstraints( mbedtls_x509write_cert *ctx, int i
                                                    MBEDTLS_OID_SIZE( MBEDTLS_OID_BASIC_CONSTRAINTS ),
                                                    critical, buf + sizeof(buf) - len, len );
     LOG_MBED_ERROR(TAG, ret, mbedErrorBuf, sizeof(ret), ERROR);
-    return (0 == ret) ? OC_STACK_OK : OC_STACK_ERROR;
+    return ret;
 }
 
+static OCStackResult OCWriteBasicConstraints(mbedtls_x509write_cert *ctx, int is_ca, int max_pathlen, int critical)
+{
+    return (0 == writeBasicConstraints(ctx, is_ca, max_pathlen, critical)) ? OC_STACK_OK : OC_STACK_ERROR;
+}
 
 static OCStackResult GenerateCertificate(
     CertificateType_t certType,
@@ -360,6 +365,7 @@ static OCStackResult GenerateCertificate(
     if (NULL == subjectPublicKey || NULL == issuerPrivateKey || NULL == subject || NULL == serial ||
         NULL == notValidBefore || NULL == notValidAfter)
     {
+        OIC_LOG_V(ERROR, TAG, "%s: %s is NULL", __func__, !subjectPublicKey ? "subjectPublicKey" : !issuerPrivateKey ? "issuerPrivateKey" : !subject ? "subject" : !serial ? "serial" : !notValidBefore ? "not validBefore" : "notValidAfter");
         return OC_STACK_INVALID_PARAM;
     }
 
@@ -602,7 +608,7 @@ OCStackResult OC_CALL OCGenerateRootCACertificate(
     size_t *certificateLen)
 {
     OCStackResult res = OC_STACK_OK;
-    OCByteString byteStr = { 0 };
+    OCByteString byteStr = { NULL, 0 };
 
     res = GenerateCertificate(
         CERT_TYPE_ROOT_CA,
@@ -638,7 +644,7 @@ OCStackResult OC_CALL OCGenerateIntermediateCACertificate(
     size_t *certificateLen)
 {
     OCStackResult res = OC_STACK_OK;
-    OCByteString byteStr = { 0 };
+    OCByteString byteStr = { NULL, 0 };
 
     res = GenerateCertificate(
         CERT_TYPE_INTERMEDIATE_CA,
@@ -674,7 +680,7 @@ OCStackResult OC_CALL OCGenerateIdentityCertificate(
     size_t *certificateLen)
 {
     OCStackResult res = OC_STACK_OK;
-    OCByteString byteStr = { 0 };
+    OCByteString byteStr = { NULL, 0 };
     char uuidStr[UUID_STRING_SIZE] = { 0 } ;
     char subject[sizeof(uuidStr) + sizeof(SUBJECT_PREFIX)] = { 0 } ;
 
@@ -739,6 +745,7 @@ OCStackResult OC_CALL OCGenerateRoleCertificate(
 
     if (NULL == role || NULL == issuerCert)
     {
+        OIC_LOG_V(ERROR, TAG, "%s: %s is NULL", __func__, !role ? "role" : "isserCert");
         return OC_STACK_INVALID_PARAM;
     }
 
@@ -772,6 +779,10 @@ OCStackResult OC_CALL OCGenerateRoleCertificate(
         *certificate = (char *)byteStr.bytes;
         *certificateLen = byteStr.len;
     }
+    else
+    {
+        OIC_LOG_V(ERROR, TAG, "%s: GenerateCertificate", __func__);
+    }
 
     return res;
 }
@@ -875,42 +886,84 @@ OCStackResult OC_CALL OCVerifyCSRSignature(const char* csr)
 
 OCStackResult OC_CALL OCGetUuidFromCSR(const char* csr, OicUuid_t* uuid)
 {
+    OCStackResult res = OC_STACK_ERROR;
     mbedtls_x509_csr csrObj;
+    char *p = NULL;
+    char *dnStr = NULL;
+    size_t dnSize = UUID_STRING_SIZE + sizeof(SUBJECT_PREFIX) - 1;
 
     mbedtls_x509_csr_init(&csrObj);
+
     int ret = mbedtls_x509_csr_parse(&csrObj, (const unsigned char*)csr, strlen(csr) + 1);
     if (ret < 0)
     {
         OIC_LOG_V(ERROR, TAG, "Couldn't parse CSR: %d", ret);
-        mbedtls_x509_csr_free(&csrObj);
-        return OC_STACK_ERROR;
+        LOG_MBEDTLS_ERROR(ret);
+        goto exit;
     }
 
-    char uuidStr[UUID_STRING_SIZE + sizeof(SUBJECT_PREFIX) - 1] = { 0 };   // Both constants count NULL, subtract one
-    ret = mbedtls_x509_dn_gets(uuidStr, sizeof(uuidStr), &csrObj.subject);
-    if (ret != (sizeof(uuidStr) - 1))
+    dnStr = (char*)OICCalloc(dnSize, 1);
+    if (NULL == dnStr)
     {
-        OIC_LOG_V(ERROR, TAG, "mbedtls_x509_dn_gets returned length or error: %d, expected %" PRIuPTR, ret, sizeof(uuidStr) - 1);
-        mbedtls_x509_csr_free(&csrObj);
-        return OC_STACK_ERROR;
+        OIC_LOG_V(ERROR, TAG, "%s: allocate", __func__);
+        goto exit;
     }
 
-    if (!OCConvertStringToUuid(uuidStr + sizeof(SUBJECT_PREFIX) - 1, uuid->id))
+    ret = mbedtls_x509_dn_gets(dnStr, dnSize - 1, &csrObj.subject);
+    if (ret < 0)
     {
-        OIC_LOG_V(ERROR, TAG, "Failed to convert UUID: '%s'", uuidStr);
-        mbedtls_x509_csr_free(&csrObj);
-        return OC_STACK_ERROR;
+        while (MBEDTLS_ERR_X509_BUFFER_TOO_SMALL == ret && 8192 > dnSize)
+        {
+            dnSize += 512;
+            p = (char*)OICRealloc(dnStr, dnSize);
+            if (p == dnStr)
+            {
+                OIC_LOG_V(ERROR, TAG, "%s: allocate", __func__);
+                goto exit;
+            }
+            dnStr = p;
+            *(dnStr + dnSize) = '\0';
+            ret = mbedtls_x509_dn_gets(dnStr, dnSize - 1, &csrObj.subject);
+        }
+
+        if (ret < 0)
+        {
+            OIC_LOG_V(ERROR, TAG, "mbedtls_x509_dn_gets returned length or error: %d, expected %" PRIuPTR, ret, sizeof(dnStr) - 1);
+            LOG_MBEDTLS_ERROR(ret);
+            goto exit;
+        }
+    }
+
+    p = strstr(dnStr, "CN=");
+    if (NULL == p)
+    {
+        OIC_LOG_V(ERROR, TAG, "Failed to find: CN in: %s", dnStr);
+        goto exit;
+    }
+
+    p += 3;
+    *(p + UUID_STRING_SIZE - 1) = '\0';
+
+    if (!OCConvertStringToUuid(p, uuid->id))
+    {
+        OIC_LOG_V(ERROR, TAG, "Failed to convert UUID: %s", p);
+        goto exit;
     }
 
     if (memcmp(uuid->id, &WILDCARD_SUBJECT_ID, sizeof(uuid->id)) == 0)
     {
         OIC_LOG(ERROR, TAG, "Invalid UUID in CSR: '*'");
-        mbedtls_x509_csr_free(&csrObj);
-        return OC_STACK_ERROR;
+        goto exit;
     }
 
+    res = OC_STACK_OK;
+exit:
+    if (dnStr)
+    {
+        OICFree(dnStr);
+    }
     mbedtls_x509_csr_free(&csrObj);
-    return OC_STACK_OK;
+    return res;
 }
 
 OCStackResult OC_CALL OCGetPublicKeyFromCSR(const char* csr, char** publicKey)
@@ -922,6 +975,7 @@ OCStackResult OC_CALL OCGetPublicKeyFromCSR(const char* csr, char** publicKey)
     if (ret < 0)
     {
         OIC_LOG_V(ERROR, TAG, "Couldn't parse CSR: %d", ret);
+        LOG_MBEDTLS_ERROR(ret);
         mbedtls_x509_csr_free(&csrObj);
         return OC_STACK_ERROR;
     }
@@ -931,6 +985,7 @@ OCStackResult OC_CALL OCGetPublicKeyFromCSR(const char* csr, char** publicKey)
     if (ret != 0)
     {
         OIC_LOG_V(ERROR, TAG, "Failed to write subject public key as PEM: %d", ret);
+        LOG_MBEDTLS_ERROR(ret);
         mbedtls_x509_csr_free(&csrObj);
         return OC_STACK_ERROR;
     }
@@ -970,7 +1025,7 @@ OCStackResult OC_CALL OCConvertDerCSRToPem(const char* derCSR, size_t derCSRLen,
         return OC_STACK_ERROR;
     }
 
-    *pemCSR = OICCalloc(1, pemCSRLen + 1);
+    *pemCSR = (char*)OICCalloc(1, pemCSRLen + 1);
     if (*pemCSR == NULL)
     {
         OIC_LOG(ERROR, TAG, "Failed to allocate memory for PEM CSR");
index 9332d8f..3dd761f 100644 (file)
@@ -52,7 +52,7 @@ static OCConnectivityType endpointToConnType(const CAEndpoint_t* endpoint)
      * OCConnectivityType is CATransportAdapter_t | CATransportFlags_t (as 16-bit ints)
      * and CATransportFlags_t has some scope bits in the low byte that must be cleared.
      */
-    return (endpoint->adapter << CT_ADAPTER_SHIFT) | ((uint16_t)endpoint->flags & (~CA_SCOPE_MASK));
+    return (OCConnectivityType)(endpoint->adapter | ((uint16_t)endpoint->flags & (~CA_SCOPE_MASK)));
 }
 
 static bool GenerateQuery(bool isSecure,
@@ -103,7 +103,7 @@ static bool GenerateQuery(bool isSecure,
             break;
         }
         default:
-            OIC_LOG_V(ERROR, TAG, "Unknown address format. (conntype = %d)", connType);
+            OIC_LOG_V(ERROR, TAG, "Unknown address format. (conntype = 0x%X)", (connType & CT_MASK_FLAGS));
             return false;
         }
         break;
@@ -115,7 +115,7 @@ static bool GenerateQuery(bool isSecure,
         OIC_LOG(ERROR, TAG, "Not supported connectivity adapter.");
         return false;
     default:
-        OIC_LOG_V(ERROR, TAG, "Unknown connectivity adapter %d, (conntype = %d).", (connType & CT_MASK_ADAPTER), connType);
+        OIC_LOG_V(ERROR, TAG, "Unknown connectivity adapter 0x%X, (conntype = 0x%X).", (connType & CT_MASK_ADAPTER), connType);
         return false;
     }
 
@@ -180,8 +180,8 @@ OCStackResult OC_CALL OCAssertRoles(void *ctx, const OCDevAddr *devAddr, OCAsser
     CAEndpoint_t endpoint;
     CopyDevAddrToEndpoint(devAddr, &endpoint);
     OIC_LOG_V(DEBUG, TAG, "%s: Endpoint info: ", __func__);
-    OIC_LOG_V(DEBUG, TAG, "%s:     adapter: %d", __func__, endpoint.adapter);
-    OIC_LOG_V(DEBUG, TAG, "%s:     flags: %d", __func__, endpoint.flags);
+    OIC_LOG_V(DEBUG, TAG, "%s:     adapter: 0x%X", __func__, endpoint.adapter);
+    OIC_LOG_V(DEBUG, TAG, "%s:     flags: 0x%X", __func__, endpoint.flags);
     OIC_LOG_V(DEBUG, TAG, "%s:     port: %d", __func__, endpoint.port);
     OIC_LOG_V(DEBUG, TAG, "%s:     addr: %s", __func__, endpoint.addr);
     OIC_LOG_V(DEBUG, TAG, "%s:     index: %d", __func__, endpoint.ifindex);
@@ -256,7 +256,7 @@ OCStackResult OC_CALL OCAssertRoles(void *ctx, const OCDevAddr *devAddr, OCAsser
     OIC_LOG(DEBUG, TAG, "Sending roles to server");
     OCStackResult ret = OCDoRequest(&handle, method, query,
         devAddr, (OCPayload*)secPayload,
-        endpoint.adapter, OC_HIGH_QOS, &cbData, NULL, 0);
+        connType, OC_HIGH_QOS, &cbData, NULL, 0);
     if (ret != OC_STACK_OK)
     {
         OICFree(assertRolesData);
index aeded09..61a1d3f 100644 (file)
@@ -241,6 +241,9 @@ bool IsRequestFromResourceOwner(SRMRequestContext_t *context)
 {
     bool retVal = false;
     OicUuid_t resourceOwner;
+#ifndef NDEBUG // if debug build, log the IDs being used for matching
+    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
+#endif
 
     if (NULL == context)
     {
@@ -277,7 +280,6 @@ bool IsRequestFromResourceOwner(SRMRequestContext_t *context)
         }
 
 #ifndef NDEBUG // if debug build, log the IDs being used for matching rowner
-        char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
         if (OCConvertUuidToString(context->subjectUuid.id, strUuid))
         {
             OIC_LOG_V(DEBUG, TAG, "context->subjectUuid for request: %s.", strUuid);
@@ -314,6 +316,10 @@ exit:
 bool IsRequestFromDoxs(SRMRequestContext_t *context)
 {
     bool retVal = false;
+    OCStackResult res = OC_STACK_ERROR;
+#ifndef NDEBUG // if debug build, log the IDs being used for matching
+    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
+#endif
 
     if (NULL == context)
     {
@@ -335,13 +341,11 @@ bool IsRequestFromDoxs(SRMRequestContext_t *context)
         goto exit;
     }
 
-    OCStackResult res = OC_STACK_ERROR;
     OicUuid_t doxsUuid;
 
     res = GetDoxmRownerId(&doxsUuid);
 
 #ifndef NDEBUG // if debug build, log the IDs being used for matching
-    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
     if (OCConvertUuidToString(context->subjectUuid.id, strUuid))
     {
         OIC_LOG_V(DEBUG, TAG, "context->subjectUuid for request: %s.", strUuid);
@@ -378,6 +382,10 @@ exit:
 bool IsRequestFromAms(SRMRequestContext_t *context)
 {
     bool retVal = false;
+    OCStackResult res = OC_STACK_ERROR;
+#ifndef NDEBUG // if debug build, log the IDs being used for matching
+    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
+#endif
 
     if (NULL == context)
     {
@@ -399,13 +407,11 @@ bool IsRequestFromAms(SRMRequestContext_t *context)
         goto exit;
     }
 
-    OCStackResult res = OC_STACK_ERROR;
     OicUuid_t amsUuid;
 
     res = GetAclRownerId(&amsUuid);
 
 #ifndef NDEBUG // if debug build, log the IDs being used for matching
-    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
     if (OCConvertUuidToString(context->subjectUuid.id, strUuid))
     {
         OIC_LOG_V(DEBUG, TAG, "context->subjectUuid for request: %s.", strUuid);
@@ -442,6 +448,10 @@ exit:
 bool IsRequestFromCms(SRMRequestContext_t *context)
 {
     bool retVal = false;
+    OCStackResult res = OC_STACK_ERROR;
+#ifndef NDEBUG // if debug build, log the IDs being used for matching
+    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
+#endif
 
     if (NULL == context)
     {
@@ -463,13 +473,11 @@ bool IsRequestFromCms(SRMRequestContext_t *context)
         goto exit;
     }
 
-    OCStackResult res = OC_STACK_ERROR;
     OicUuid_t cmsUuid;
 
     res = GetCredRownerId(&cmsUuid);
 
 #ifndef NDEBUG // if debug build, log the IDs being used for matching
-    char strUuid[UUID_STRING_SIZE] = "UUID_ERROR";
     if (OCConvertUuidToString(context->subjectUuid.id, strUuid))
     {
         OIC_LOG_V(DEBUG, TAG, "context->subjectUuid for request: %s.", strUuid);
index ea77c30..c32f36d 100644 (file)
@@ -140,7 +140,7 @@ static size_t GetDatabaseSize(const OCPersistentStorage *ps, const char *databas
 
 /**
  * Reads the database from PS
- * 
+ *
  * @note Caller of this method MUST use OICFree() method to release memory
  *       referenced by the data argument.
  *
@@ -185,7 +185,7 @@ OCStackResult ReadDatabaseFromPS(const char *databaseName, const char *resourceN
                 CborParser parser;  // will be initialized in |cbor_parser_init|
                 CborValue cbor;     // will be initialized in |cbor_parser_init|
                 cbor_parser_init(fsData, fileSize, 0, &parser, &cbor);
-                CborValue cborValue = {0};
+                CborValue cborValue = OC_DEFAULT_CBOR_VALUE;
                 CborError cborFindResult = cbor_value_map_find_value(&cbor, resourceName, &cborValue);
                 if (CborNoError == cborFindResult && cbor_value_is_byte_string(&cborValue))
                 {
@@ -278,7 +278,7 @@ OCStackResult UpdateResourceInPS(const char *databaseName, const char *resourceN
             CborParser parser;  // will be initialized in |cbor_parser_init|
             CborValue cbor;     // will be initialized in |cbor_parser_init|
             cbor_parser_init(dbData, dbSize, 0, &parser, &cbor);
-            CborValue curVal = {0};
+            CborValue curVal = OC_DEFAULT_CBOR_VALUE;
             CborError cborFindResult = CborNoError;
 
             // Only search for and copy resources owned by the target database
@@ -581,7 +581,7 @@ OCStackResult ResetSecureResourceInPS(void)
             CborParser parser;  // will be initialized in |cbor_parser_init|
             CborValue cbor;     // will be initialized in |cbor_parser_init|
             cbor_parser_init(dbData, dbSize, 0, &parser, &cbor);
-            CborValue curVal = {0};
+            CborValue curVal = OC_DEFAULT_CBOR_VALUE;
             CborError cborFindResult = CborNoError;
             cborFindResult = cbor_value_map_find_value(&cbor, OIC_JSON_RESET_PF_NAME, &curVal);
             if (CborNoError == cborFindResult && cbor_value_is_byte_string(&curVal))
@@ -597,7 +597,7 @@ OCStackResult ResetSecureResourceInPS(void)
             CborParser parser;  // will be initialized in |cbor_parser_init|
             CborValue cbor;     // will be initialized in |cbor_parser_init|
             cbor_parser_init(resetPfCbor, resetPfCborLen, 0, &parser, &cbor);
-            CborValue curVal = {0};
+            CborValue curVal = OC_DEFAULT_CBOR_VALUE;
             CborError cborFindResult = CborNoError;
             cborFindResult = cbor_value_map_find_value(&cbor, OIC_JSON_ACL_NAME, &curVal);
             if (CborNoError == cborFindResult && cbor_value_is_byte_string(&curVal))
@@ -740,7 +740,7 @@ OCStackResult CreateResetProfile(void)
             CborParser parser;
             CborValue cbor;
             cbor_parser_init(dbData, dbSize, 0, &parser, &cbor);
-            CborValue curVal = {0};
+            CborValue curVal = OC_DEFAULT_CBOR_VALUE;
             CborError cborFindResult = CborNoError;
 
             // abort if reset profile exists
@@ -811,7 +811,7 @@ OCStackResult CreateResetProfile(void)
             VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborEncoderResult, "Failed Adding PSTAT Value.");
 
             cborEncoderResult |= cbor_encode_text_string(&secRsrc, OIC_JSON_DOXM_NAME, strlen(OIC_JSON_DOXM_NAME));
-            VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborEncoderResult, "Failed Adding Doxm Name.");
+            VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, (CborError)cborEncoderResult, "Failed Adding Doxm Name.");
             cborEncoderResult |= cbor_encode_byte_string(&secRsrc, doxmCbor, doxmCborLen);
             VERIFY_CBOR_SUCCESS_OR_OUT_OF_MEMORY(TAG, cborEncoderResult, "Failed Adding Doxm Value.");
 
index 1a8e1c8..e3cb663 100644 (file)
@@ -430,10 +430,10 @@ static OCStackResult CBORPayloadToPstatBin(const uint8_t *cborPayload,
     }
 
     OCStackResult ret = OC_STACK_ERROR;
-    CborValue pstatCbor = { .parser = NULL };
-    CborValue pstatMap = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
-    CborValue dosMap = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
-    CborParser parser = { .end = NULL };
+    CborValue pstatCbor = OC_DEFAULT_CBOR_VALUE;
+    CborValue pstatMap = OC_DEFAULT_CBOR_VALUE;
+    CborValue dosMap = OC_DEFAULT_CBOR_VALUE;
+    CborParser parser = OC_DEFAULT_CBOR_PARSER;
     CborError cborFindResult = CborNoError;
     char *strUuid = NULL;
     char *dosTagName = NULL;
@@ -744,7 +744,7 @@ static bool ValidateQuery(const char * query)
     bool bInterfaceQry = false;      // does querystring contains 'if' query ?
     bool bInterfaceMatch = false;    // does 'if' query matches with oic.if.baseline ?
 
-    OicParseQueryIter_t parseIter = {.attrPos = NULL};
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char*)query, &parseIter);
 
index 43086b6..13fff56 100644 (file)
@@ -121,7 +121,7 @@ static OCStackResult GetPeerPublicKeyFromEndpoint(const CAEndpoint_t *endpoint,
         return OC_STACK_NO_RESOURCE;
     }
 
-    *publicKey = OICCalloc(1, sep.publicKeyLength);
+    *publicKey = (uint8_t*)OICCalloc(1, sep.publicKeyLength);
     if (NULL == *publicKey)
     {
         OIC_LOG_V(ERROR, TAG, "%s: No memory for publicKey", __func__);
@@ -254,7 +254,11 @@ OCStackResult RegisterSymmetricCredentialRole(const OicSecCred_t *cred)
         curr->subject = cred->subject;
         curr->role = cred->roleId;
     }
-
+    else
+    {
+        OIC_LOG_V(ERROR, TAG, "%s not empty role id", __func__);
+        return OC_STACK_ERROR;
+    }
     return OC_STACK_OK;
 }
 
@@ -573,8 +577,8 @@ OCStackResult CBORPayloadToRoles(const uint8_t *cborPayload, size_t size, RoleCe
         return OC_STACK_INVALID_PARAM;
     }
 
-    CborValue rolesCbor = { .parser = NULL };
-    CborParser parser = { .end = NULL };
+    CborValue rolesCbor = OC_DEFAULT_CBOR_VALUE;
+    CborParser parser = OC_DEFAULT_CBOR_PARSER;
     CborError cborFindResult = CborNoError;
     RoleCertChain_t *headRoleCertChain = NULL;
     char* tagName = NULL;
@@ -816,6 +820,9 @@ static OCEntityHandlerResult HandlePostRequest(OCEntityHandlerRequest *ehRequest
 
     OIC_LOG(DEBUG, TAG, "Roles HandlePostRequest IN");
 
+    VERIFY_NOT_NULL_RETURN(TAG, ehRequest, ERROR, OC_EH_ERROR);
+    VERIFY_NOT_NULL_RETURN(TAG, ehRequest->payload, ERROR, OC_EH_ERROR);
+
     RoleCertChain_t *chains = NULL;
     uint8_t *payload = (((OCSecurityPayload*)ehRequest->payload)->securityData);
     size_t size = (((OCSecurityPayload*)ehRequest->payload)->payloadSize);
@@ -843,7 +850,7 @@ static OCEntityHandlerResult HandlePostRequest(OCEntityHandlerRequest *ehRequest
             if ((dataLength > 0) && (data[dataLength - 1] != 0))
             {
                 /* mbedtls_x509_crt_parse requires null terminator */
-                data = OICMalloc(dataLength + 1);
+                data = (uint8_t*)OICMalloc(dataLength + 1);
 
                 if (data == NULL)
                 {
@@ -926,8 +933,10 @@ static OCEntityHandlerResult HandleDeleteRequest(OCEntityHandlerRequest *ehReque
     OCEntityHandlerResult ehRet = OC_EH_ERROR;
     uint8_t *peerPubKey = NULL;
     size_t peerPubKeyLen = 0;
-    OicParseQueryIter_t parseIter = { .attrPos = NULL };
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
     uint32_t credId = 0;
+    RolesEntry_t *entry = NULL;
+    OCStackResult res = OC_STACK_ERROR;
 
     if (NULL == ehRequest->query)
     {
@@ -957,7 +966,7 @@ static OCEntityHandlerResult HandleDeleteRequest(OCEntityHandlerRequest *ehReque
         }
     }
 
-    OCStackResult res = GetPeerPublicKey(&ehRequest->devAddr, &peerPubKey, &peerPubKeyLen);
+    res = GetPeerPublicKey(&ehRequest->devAddr, &peerPubKey, &peerPubKeyLen);
     if (OC_STACK_OK != res)
     {
         OIC_LOG_V(ERROR, TAG, "Could not get peer's public key: %d", res);
@@ -965,7 +974,6 @@ static OCEntityHandlerResult HandleDeleteRequest(OCEntityHandlerRequest *ehReque
         goto exit;
     }
 
-    RolesEntry_t *entry = NULL;
     for (entry = gRoles; NULL != entry; entry = entry->next)
     {
         assert((0 < entry->publicKeyLength) && (NULL != entry->publicKey));
index 24c0108..6ee76bf 100644 (file)
@@ -45,13 +45,13 @@ static OicSecSp_t         *gSp        = NULL;
 
 // Default sp values
 // char * gSupportedProfiles[] = { "1.3.6.1.4.1.51414.0.0.1.0", "1.3.6.1.4.1.51414.0.0.2.0", "1.3.6.1.4.1.51414.0.0.3.0", "1.3.6.1.4.1.51414.0.0.4.0" };
-char * gSupportedProfiles[] = { "1.3.6.1.4.1.51414.0.0.1.0" };
+const char * gSupportedProfiles[] = { "1.3.6.1.4.1.51414.0.0.1.0" };
 OicSecSp_t gDefaultSp =
 {
     // 4,                      // supportedLen
     1,
-    gSupportedProfiles,        // supportedProfiles
-    "1.3.6.1.4.1.51414.0.0.1.0", // currentProfile
+    (char**)gSupportedProfiles,        // supportedProfiles
+    (char*)"1.3.6.1.4.1.51414.0.0.1.0", // currentProfile
 };
 
 bool gAllProps[SP_PROPERTY_COUNT] = { true, true };
@@ -250,8 +250,8 @@ static OCStackResult SupportedProfilesFromCBOR(CborValue *spMap,
     CborError cborResult = CborNoError;
     *supportedProfiles = NULL;
     *supportedLen = 0;
-
     size_t readLen = 0;
+    size_t numProfilesExtracted = 0;
 
     cborResult = cbor_value_get_array_length(spMap, supportedLen);
     VERIFY_OR_LOG_AND_EXIT(TAG, (CborNoError == cborResult) && (0 != supportedLen),
@@ -264,7 +264,6 @@ static OCStackResult SupportedProfilesFromCBOR(CborValue *spMap,
     cborResult = cbor_value_enter_container(spMap, &supportedProfilesCbor);
     VERIFY_CBOR_SUCCESS(TAG, cborResult, "Failed to enter SP supportedprofiles array");
 
-    size_t numProfilesExtracted = 0;
     for(size_t i = 0;
        cbor_value_is_valid(&supportedProfilesCbor) &&
        cbor_value_is_text_string(&supportedProfilesCbor); i++)
@@ -346,11 +345,13 @@ OCStackResult CBORPayloadToSp(const uint8_t *cborPayload,
     OCStackResult ret = OC_STACK_ERROR;
     CborError cborResult = CborNoError;
 
-    CborParser parser = { .end = NULL };
-    CborValue spCbor = { .parser = NULL };
-    CborValue spMap = { .parser = NULL, .ptr = NULL, .remaining = 0, .extra = 0, .type = 0, .flags = 0 };
+    CborParser parser = OC_DEFAULT_CBOR_PARSER;
+    CborValue spCbor = OC_DEFAULT_CBOR_VALUE;
+    CborValue spMap = OC_DEFAULT_CBOR_VALUE;
 
     OicSecSp_t *sp = NULL;
+    char* tagName = NULL;
+    size_t tagLen = 0;
 
     if (NULL != decodedProperties)
     {
@@ -369,9 +370,7 @@ OCStackResult CBORPayloadToSp(const uint8_t *cborPayload,
     VERIFY_CBOR_SUCCESS(TAG, cborResult, "Failed to enter the SP map");
 
     // loop over all cbor entries looking for known keys
-    char* tagName = NULL;
-    size_t tagLen = 0;
-    while (cbor_value_is_valid(&spMap))
+   while (cbor_value_is_valid(&spMap))
     {
         // Determine the next tag and advance to the corresponding value
         CborType type = cbor_value_get_type(&spMap);
@@ -520,7 +519,7 @@ static bool ValidateQuery(const char * query)
     bool bInterfaceQry = false;      // does querystring contains 'if' query ?
     bool bInterfaceMatch = false;    // does 'if' query matches with oic.if.baseline ?
 
-    OicParseQueryIter_t parseIter = {.attrPos = NULL};
+    OicParseQueryIter_t parseIter = OC_DEFAULT_OICPARSEQUWRYITER;
 
     ParseQueryIterInit((unsigned char*)query, &parseIter);