Coverity issues fix 86/200686/3 accepted/tizen/unified/20190228.165022 submit/tizen/20190228.094953
authorsrinivasa.m <srinivasa.m@samsung.com>
Thu, 28 Feb 2019 07:09:26 +0000 (12:39 +0530)
committersrinivasa.m <srinivasa.m@samsung.com>
Thu, 28 Feb 2019 09:08:16 +0000 (14:38 +0530)
Change-Id: I5d024182b56c2e62f447d0ac0fba92ba314da458

silent_auth/silent_auth_entry.cpp

index 5cfbaf3..ac77e87 100755 (executable)
@@ -545,12 +545,29 @@ processAuthenticate(unsigned char *assert_req)
                        int ret = AsmCrypto::genHash256(getAuthReqInfo->tc, strlen(getAuthReqInfo->tc), tcHash);
                        if (ret == false) {
                                _ERR("processAuthenticate:: Failed to create Transaction content hash.");
-                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                               SAFE_DELETE(getAuthRespInfo->authAssertion);
+
+                               if(getAuthRespInfo != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion != NULL)
+                                       {
+                                               if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                                       if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                                       {
+                                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                                       }
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                                       if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                                       {
+                                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                                       }
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion);
+                                       }
+                               }
                                SAFE_DELETE(getAuthRespInfo);
                                SAFE_DELETE(keyId_b64_enc);
                                return NULL;
@@ -591,16 +608,34 @@ processAuthenticate(unsigned char *assert_req)
                                                                                        &outputSz)) {
                        _ERR("Failed to decode base64.");
                        free(output);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       if(getAuthRespInfo != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                               }
+                       }
                        SAFE_DELETE(getAuthRespInfo);
                        return NULL;
                }
@@ -619,16 +654,34 @@ processAuthenticate(unsigned char *assert_req)
 
                if (dec_len <= 0) {
                        _ERR("AESDecryptof keyhandle failed");
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       if(getAuthRespInfo != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                               }
+                       }
                        SAFE_DELETE(getAuthRespInfo);
                        return NULL;
                }
@@ -650,16 +703,34 @@ processAuthenticate(unsigned char *assert_req)
                        SAFE_DELETE(pri_key);
                        SAFE_DELETE(khA);
                        SAFE_DELETE(user_name);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       if(getAuthRespInfo != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                               }
+                       }
                        SAFE_DELETE(getAuthRespInfo);
                        return NULL;
                }
@@ -674,16 +745,34 @@ processAuthenticate(unsigned char *assert_req)
                        _INFO("setEncoder EID_UAFV1_SIGN_DATA_RESP PASS");
                } else {
                        _INFO("setEncoder EID_UAFV1_SIGN_DATA_RESP FAIL");
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       if(getAuthRespInfo != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                               }
+                       }
                        SAFE_DELETE(getAuthRespInfo);
                        SAFE_DELETE(pri_key);
                        SAFE_DELETE(khA);
@@ -696,16 +785,34 @@ processAuthenticate(unsigned char *assert_req)
                        _INFO("encode EID_UAFV1_SIGN_DATA_RESP PASS");
                } else {
                        _INFO("encode EID_UAFV1_SIGN_DATA_RESP FAIL");
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       if(getAuthRespInfo != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                               }
+                       }
                        SAFE_DELETE(getAuthRespInfo);
                        SAFE_DELETE(pri_key);
                        SAFE_DELETE(khA);
@@ -724,16 +831,34 @@ processAuthenticate(unsigned char *assert_req)
 
                if (sig_str == NULL) {
                        _ERR("SignRSA failed for signature");
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
-                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       if(getAuthRespInfo != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion != NULL)
+                               {
+                                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                               {
+                                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                               }
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+                               }
+                       }
                        SAFE_DELETE(getAuthRespInfo);
                        SAFE_DELETE(pri_key);
                        SAFE_DELETE(khA);
@@ -755,17 +880,39 @@ processAuthenticate(unsigned char *assert_req)
 
        if (response_parsed == false) {
                _ERR("processAuthenticate:: Failed to Get Sign Response");
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
-               SAFE_DELETE(getAuthRespInfo->authAssertion);
+               if(getAuthRespInfo != NULL)
+               {
+                       if(getAuthRespInfo->authAssertion != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion->sigData != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                       if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                       if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                       if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                               if(getAuthRespInfo->authAssertion->sig != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
+                               SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       }
+               }
                SAFE_DELETE(getAuthRespInfo);
                return NULL;
        }
@@ -787,17 +934,39 @@ processAuthenticate(unsigned char *assert_req)
                _INFO("setEncoder EID_UAFV1_SIGN_RESP PASS \n");
        } else {
                _INFO("setEncoder EID_UAFV1_SIGN_RESP FAIL \n");
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
-               SAFE_DELETE(getAuthRespInfo->authAssertion);
+               if(getAuthRespInfo != NULL)
+               {
+                       if(getAuthRespInfo->authAssertion != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion->sigData != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                       if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                       if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                       if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                               if(getAuthRespInfo->authAssertion->sig != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
+                               SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       }
+               }
                SAFE_DELETE(getAuthRespInfo);
                return NULL;
        }
@@ -807,17 +976,39 @@ processAuthenticate(unsigned char *assert_req)
        if (getAuthRespInfoBuff != NULL) {
                _INFO("encode EID_UAFV1_SIGN_RESP PASS \n");
        } else {
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
-               SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
-               SAFE_DELETE(getAuthRespInfo->authAssertion);
+               if(getAuthRespInfo != NULL)
+               {
+                       if(getAuthRespInfo->authAssertion != NULL)
+                       {
+                               if(getAuthRespInfo->authAssertion->sigData != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                                       if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                                       if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                                       if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                                       {
+                                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                                       }
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                               if(getAuthRespInfo->authAssertion->sig != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
+                               SAFE_DELETE(getAuthRespInfo->authAssertion);
+                       }
+               }
                SAFE_DELETE(getAuthRespInfo);
                _INFO("encode EID_UAFV1_SIGN_RESP FAIL \n");
                return NULL;
@@ -826,17 +1017,39 @@ processAuthenticate(unsigned char *assert_req)
        _INFO("===========================AUTHENTICATE REPONSE ENCODE=============================");
 
        _INFO("========ProcessAuthenticate end PIN Auth=========");
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
-       SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
-       SAFE_DELETE(getAuthRespInfo->authAssertion);
+       if(getAuthRespInfo != NULL)
+       {
+               if(getAuthRespInfo->authAssertion != NULL)
+               {
+                       if(getAuthRespInfo->authAssertion->sigData != NULL)
+                       {
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->assrtInfo);
+                               if(getAuthRespInfo->authAssertion->sigData->authNonce != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce->data);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->authNonce);
+                               if(getAuthRespInfo->authAssertion->sigData->tcHash != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash->data);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->tcHash);
+                               if(getAuthRespInfo->authAssertion->sigData->keyId != NULL)
+                               {
+                                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId->data);
+                               }
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->keyId);
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sigData->counter);
+                       }
+                       SAFE_DELETE(getAuthRespInfo->authAssertion->sigData);
+                       if(getAuthRespInfo->authAssertion->sig != NULL)
+                       {
+                               SAFE_DELETE(getAuthRespInfo->authAssertion->sig->data);
+                       }
+                       SAFE_DELETE(getAuthRespInfo->authAssertion->sig);
+                       SAFE_DELETE(getAuthRespInfo->authAssertion);
+               }
+       }
        SAFE_DELETE(getAuthRespInfo);
        return getAuthRespInfoBuff;
 }