Fix array out of bound access and mem err handling 33/51733/2
authorKyungwook Tak <k.tak@samsung.com>
Thu, 12 Nov 2015 11:45:11 +0000 (20:45 +0900)
committerkyungwook tak <k.tak@samsung.com>
Fri, 13 Nov 2015 09:04:58 +0000 (01:04 -0800)
Change-Id: I5584f33a3fa41b7b99301b6263c7f6f7e7cb3811
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
tadcore/TADCCore/TADC_Core.cpp
tappsd/src/rights/DTapps2Rights.cpp
tappsd/src/util/DTapps2Base64.cpp

index a28c4fc..e40bb58 100644 (file)
@@ -1001,6 +1001,8 @@ int TADC_GetResponseROInfo(IN LPBYTE pszXML,  T_RO *t_RO)
        if (t_RO->t_Permission.t_Individual.DUID == NULL)
        {
                DRM_TAPPS_EXCEPTION("TADC_IF_MemCmp Error Code = %x", TADC_MEMAlOC_ERROR);
+               nResult = -2;
+               goto finish;
        }
 
        TADC_IF_MemSet(t_RO->t_Permission.t_Individual.DUID, 0, length + 1);
index 3f0143e..6efcc68 100644 (file)
@@ -699,6 +699,8 @@ int DTappsGetROInfo(const char* pszXML, T_RO *t_RO, unsigned char* name)
        if (t_RO->t_Permission.t_Individual.DUID == NULL)
        {
                DRM_TAPPS_EXCEPTION("TADC_IF_MemCmp Error Code = %x", TADC_MEMAlOC_ERROR);
+               nResult = -2;
+               goto finish;
        }
 
        TADC_IF_MemSet(t_RO->t_Permission.t_Individual.DUID, 0, length + 1);
index e7800ae..205c9d7 100644 (file)
@@ -94,7 +94,7 @@ int DTappsB64Decode(unsigned char* in, int in_size, unsigned char* out, int& out
  
        for( i=j=k=0; i < in_size; i++ )
        {
-          if( in[i] > 128 )
+          if( in[i] >= 128 )
                  continue;
           c[j] = MAP[(unsigned char)in[i]];
           if( c[j] == 64 )