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 a28c4fccd2b8bd92e6922cf365a102c35f34d0d2..e40bb58be53e6bbb13145357a34208648697f850 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 3f0143e3592e46b94dad9b0dfd9207953a92f7a3..6efcc68bfeaaa18f5bdb7d021c459b78c16cbecd 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 e7800aecc2d0ce6ca903776a3ba4714652a6de5f..205c9d7df3d8442e9a98d0f58242dbe2389c8094 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 )