SPC: Fix static analysis Issues_v1
authorJounsun Beak <jounsun.beak@samsung.com>
Wed, 29 Mar 2017 09:44:09 +0000 (18:44 +0900)
committerJounsun Beak <jounsun.beak@samsung.com>
Thu, 30 Mar 2017 01:50:33 +0000 (10:50 +0900)
Change-Id: Ib18324f26cea975e370ebea59d96f124b48b3cd1
Signed-off-by: Jounsun Beak <jounsun.beak@samsung.com>
SPC/Inc/base/ecc.h
SPC/Src/SAKEP.cpp
SPC/Src/WhiteBox/SWAPv2_TblGen.c
SPC/Src/base/bignum.c
SPC/Src/base/ecc.c
SPC/Src/base/pkcs1_v21.c
SPC/Src/middle/symmetric.c

index 36eb61195bb8523daa6a772241064eb2a2cb3d8d..50799173bfe9277f5db4848e71bb43d3bcbc000f 100755 (executable)
@@ -33,7 +33,7 @@
 #define SDRM_EC_FREE(X)                        if (X) {free(X);}\r
 \r
 #define SDRM_EC_SET_ZERO(A)            do {                                                                                                                                                                            \\r
-                                                                       memset((A), 0, sizeof(SDRM_EC_POINT) + SDRM_ECC_ALLOC_SIZE * 5);                                                \\r
+                                                                       memset((A), 0, sizeof(SDRM_EC_POINT));                                          \\r
                                                                        (A)->IsInfinity = 0;                                                                                                                                    \\r
                                                                        A->x  = SDRM_BN_Alloc((cc_u8*)A     + sizeof(SDRM_EC_POINT), SDRM_ECC_BN_BUFSIZE);              \\r
                                                                        A->y  = SDRM_BN_Alloc((cc_u8*)A->x  + SDRM_ECC_ALLOC_SIZE,   SDRM_ECC_BN_BUFSIZE);              \\r
index 572059e41b384b892dc7ba5c6da868404c63c339..0c3d2d180c6ea5d681725e4acbfaadbda82e509e 100755 (executable)
@@ -1699,13 +1699,14 @@ SPC_INTERNAL int SAkepApi::SetMac(unsigned char* pMac,unsigned int nMacLen)
 {\r
        int reValue = 0;\r
        m_pMac = (unsigned char*) malloc (sizeof(unsigned char) * (nMacLen+1));\r
-       memset(m_pMac,0x00,(nMacLen+1));\r
        if(m_pMac == NULL)\r
        {       \r
                DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SetMac m_pMac memory allocate Error [ ErrorCode : %d ] \n",SAKEP_MEMROY_ALLOCATE_ERROR);\r
 \r
                return SAKEP_MEMROY_ALLOCATE_ERROR;\r
        }\r
+       memset(m_pMac,0x00,(nMacLen+1));\r
+\r
        memcpy(m_pMac,pMac,nMacLen);\r
        m_nMyMacLen =nMacLen; //Ãß°¡ 0314\r
        PRINT_BUFFER("[0217] Set Mac ",m_pMac,nMacLen);\r
@@ -1958,9 +1959,9 @@ SPC_INTERNAL int SAkepApi::ApplyPasswordTransform(unsigned char* pPwd, unsigned
        if (pTransPwdLen != NULL)\r
        {\r
                *pTransPwdLen = nOutLen;\r
+               DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ApplyPasswordTransform Password:" ,pTransPwd, *pTransPwdLen);\r
        }\r
 \r
-       DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ApplyPasswordTransform Password:" ,pTransPwd, *pTransPwdLen);\r
        DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ApplyPasswordTransform  OutLen:%d ",nOutLen);\r
        return SPC_SUCCESS;\r
 }\r
@@ -2011,9 +2012,9 @@ SPC_INTERNAL int SAkepApi::ReversePasswordTransform(unsigned char* pTransPwd, un
        if (pPwdLen != NULL)\r
        {\r
                *pPwdLen = nTransPwdLen - padLen;\r
+               DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ReversePasswordTransform Password:" ,pPwd, *pPwdLen);\r
        }\r
 \r
-       DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ReversePasswordTransform Password:" ,pPwd, *pPwdLen);\r
 \r
        memset(tmp, 0xAA, 16);\r
 \r
index 9fa26fbb66745b60dbb18b558cf6cd1ea7d55d70..0e7891407537f24bbc10a26d5a35a481c9e16fe1 100755 (executable)
@@ -1431,7 +1431,7 @@ ERROR_PROC:
                memset(RoundKey, 0x00, RoundKeySize);\r
                free(RoundKey);\r
        }\r
-\r
+#if 0\r
        //free TBox if not null\r
        if (pTBox != NULL)\r
        {\r
@@ -1439,6 +1439,7 @@ ERROR_PROC:
                memset(pTBox, 0x00, TBoxSize + PBoxSize + WPBoxSize + BPBoxSize);\r
                free(pTBox);\r
        }\r
+#endif\r
 \r
        if(pSBox != NULL)\r
        {\r
index 09e959b30af2cc0ad32fd3fc164bf768320b3b9e..7dbf248e76e821ca8afc000c193fcc15ced4111a 100755 (executable)
@@ -520,8 +520,11 @@ static cc_u32 SDRM_DWD_MulSub(cc_u32 *pdDest, cc_u32 dDstLen, cc_u32 *pdSrc, cc_
                {\r
                        pdDigit[1]++;\r
                }\r
-\r
-               pdDest[i] -= dTemp;\r
+               if(pdDest[i] > dTemp){\r
+                       pdDest[i] -= dTemp;\r
+               } else {\r
+                       pdDest[i] = dTemp - pdDest[i];\r
+               }\r
                dTemp = pdDigit[1];\r
        }\r
 \r
index b60b638755eb62a37bfab82cd4ced9b5a5bc4505..63675ed988d246e8a532651d8c0c958aea1cb18d 100755 (executable)
@@ -1088,7 +1088,7 @@ CRYPTOCORE_INTERNAL int SDRM_CTX_EC_2kP(SDRM_ECC_CTX *ctx, SDRM_EC_POINT *EC_Dst
                        Pw[i][j] =  SDRM_ECC_Init();\r
                }\r
        }\r
-       \r
+       SDRM_EC_SET_ZERO(Pw[0][0]);\r
        SDRM_EC_COPY(Pw[0][1], EC_Src1);\r
        SDRM_EC_COPY(Pw[1][1], EC_Src2);\r
 \r
index c4d759f37f5b3afd2ac82eec787366ccd00c679c..37305185a1675a0a0638c084a83639b8070f0b9e 100755 (executable)
@@ -294,6 +294,8 @@ CRYPTOCORE_INTERNAL int SDRM_Padding_Rsaes_oaep(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_
                                break;\r
 #endif //_OP64_NOTSUPPORTED\r
                        default :\r
+                               free(EM);\r
+                               free(Msg);\r
                                return CRYPTO_INVALID_ARGUMENT;\r
                }\r
 \r
index e00eb28b39adb95483333d55af776eb3a68ea65d..2fbb25ad9aecbf3f49c595b90c10bdbdf7f4d3c6 100755 (executable)
@@ -595,7 +595,8 @@ DECRYPTION:
                return CRYPTO_INVALID_ARGUMENT;\r
        }\r
 \r
-       memcpy(output, Block, SDRM_AES_BLOCK_SIZ -t);\r
+       size_t tmp = (size_t)SDRM_AES_BLOCK_SIZ - (size_t)t;\r
+       memcpy(output, Block, tmp);\r
 \r
        if (outputLen != NULL)\r
        {\r