Fix TA name passed to check. 60/137060/1
authoru.harbuz <u.harbuz@samsung.com>
Fri, 23 Jun 2017 09:40:50 +0000 (11:40 +0200)
committerLukasz Kostyra <l.kostyra@samsung.com>
Tue, 4 Jul 2017 08:27:20 +0000 (10:27 +0200)
Change-Id: I02b928d40a64bbb7a77c36b4195055c324597453

simulatordaemon/inc/Session.h
simulatordaemon/src/Session.cpp
simulatordaemon/src/security.c

index 8569059..da37b37 100755 (executable)
@@ -24,6 +24,7 @@
  *-----------------------------------------------------------------------------*/
 #include <pthread.h>
 #include <cstdlib>
+#include <algorithm>
 #include "ISession.h"
 
 /*-----------------------------------------------------------------------------
index e6340e1..1500539 100755 (executable)
@@ -102,8 +102,10 @@ TEEC_Result Session::createSession(OpenSessionData data) {
        string TAUUID = TABin->getUUIDAsString(data.uuid);
        string argvPort = TABin->getPort(TAUUID);
 
+        string TAName(TAUUID);
+        std::transform(TAName.begin(), TAName.end(), TAName.begin(), ::toupper);
         if(!mContext->nConnSecChecker.clientHasAccessToTa(TAUUID)){
-               LOGE(SIM_DAEMON, "Client has no permission for access TA: %s ", TAUUID.c_str());
+               LOGE(SIM_DAEMON, "Client has no permission for access TA: %s ", TAName.c_str());
                return TEEC_ERROR_ACCESS_DENIED;
         }
 
index ae73646..7ae3958 100644 (file)
@@ -99,8 +99,7 @@ bool ca_has_access_to_ta(int ca_fd, const char* ta_name){
 
         /* Check if any of system ta directories contains our ta */
         for(int i = 0; i < N_SYS_TA_PATHS; ++i){
-            strcpy(ta_full_path, system_ta_paths[i]);
-            strcat(ta_full_path, ta_name);
+            snprintf(ta_full_path, MAX_PATH_LENGTH, "%s/%s", system_ta_paths[i], ta_name);
 
             if(file_exists(ta_full_name)){
                 return true;