Fix SVACE defects: fallthrough, strerror, usleep 44/206144/2
authorKonrad Lipinski <k.lipinski2@partner.samsung.com>
Tue, 14 May 2019 14:58:33 +0000 (16:58 +0200)
committerDariusz Michaluk <d.michaluk@samsung.com>
Wed, 19 Jun 2019 12:15:53 +0000 (12:15 +0000)
Change-Id: I1bbac2fd5614ad9c79adf90aa02eb7c760ae498c

TEECLib/src/teec_api.c
TEEStub/TACommands/SharedMemoryMap.cpp
osal/OsaSem.c
simulatordaemon/src/ControlConnectionHandler.cpp
simulatordaemon/src/TABinaryManager/TABinaryManager.cpp
simulatordaemon/src/TABinaryManager/TAUnpack.cpp
simulatordaemon/src/TAFactory.cpp
ssflib/dep/time/ssf_time.cpp

index 0054e452c14011d10787ff149962464e3e3063f3..89003936754fa06ad93a2f3c7fe537d4e983ded3 100644 (file)
@@ -106,8 +106,8 @@ static int32_t set_shm_permissions(int fd_shm, const char *shm_name)
        res = fchmod(fd_shm, SHM_FILE_MODE);
        if (res == -1) {
                LOGE(MODULE_TEEC_LIB,
-                    "Cannot change permission of the %s shared memory file, error: %s",
-                    shm_name, strerror(errno));
+                    "Cannot change permission of the %s shared memory file, error: %m",
+                    shm_name);
                     return TEEC_ERROR_GENERIC;
        }
 
@@ -120,16 +120,15 @@ static int32_t set_shm_permissions(int fd_shm, const char *shm_name)
                             TEE_USER_GROUP_NAME);
                } else {
                        LOGE(MODULE_TEEC_LIB,
-                            "Failed to set TEE group, error: %s",
-                            strerror(errno));
+                            "Failed to set TEE group, error: %m");
                }
                return TEEC_ERROR_GENERIC;
        }
        res = fchown(fd_shm, -1, tee_group->gr_gid);
        if (res == -1) {
                LOGE(MODULE_TEEC_LIB,
-                    "Failed to set TEE group of the %s shared memory file, error: %s",
-                    shm_name, strerror(errno));
+                    "Failed to set TEE group of the %s shared memory file, error: %m",
+                    shm_name);
                return errno == EPERM ? TEEC_ERROR_ACCESS_DENIED : TEEC_ERROR_GENERIC;
        }
        return TEEC_SUCCESS;
@@ -165,8 +164,8 @@ static int32_t allocateSharedMemory(TEEC_SharedMemory *shm)
 
                fd_shm = shm_open(shm_name, O_RDWR | O_CREAT | O_EXCL, SHM_FILE_MODE);
                if (fd_shm < 0 && errno != EEXIST) {
-                       LOGE(MODULE_TEEC_LIB, "Cannot create shared memory object '%s', error: %s",
-                            shm_name, strerror(errno));
+                       LOGE(MODULE_TEEC_LIB, "Cannot create shared memory object '%s', error: %m",
+                            shm_name);
                        tee_result = TEEC_ERROR_GENERIC;
                        goto exit;
                }
@@ -186,7 +185,7 @@ static int32_t allocateSharedMemory(TEEC_SharedMemory *shm)
 
        size = alignSize(size);
        if (ftruncate(fd_shm, size) == -1) {
-               LOGE(MODULE_TEEC_LIB, "ftruncate failed, error: %s", strerror(errno));
+               LOGE(MODULE_TEEC_LIB, "ftruncate failed, error: %m");
                tee_result = TEEC_ERROR_OUT_OF_MEMORY;
                goto cleanup_shm;
        }
@@ -195,7 +194,7 @@ static int32_t allocateSharedMemory(TEEC_SharedMemory *shm)
                                    fd_shm, 0);
 
        if (shm->buffer == MAP_FAILED) {
-               LOGE(MODULE_TEEC_LIB, "shmat failed, error: %s", strerror(errno));
+               LOGE(MODULE_TEEC_LIB, "shmat failed, error: %m");
                tee_result = TEEC_ERROR_OUT_OF_MEMORY;
                goto cleanup_shm;
        }
@@ -232,7 +231,7 @@ static void freeSharedMemory(TEEC_SharedMemory *shm)
        TEEC_SharedMemoryImp *sharedMem_imp = (TEEC_SharedMemoryImp *)shm->imp;
 
        if (munmap(sharedMem_imp->allocPtr, sharedMem_imp->size) == -1) {
-               LOGE(MODULE_TEEC_LIB, "munmap failed, error: %s", strerror(errno));
+               LOGE(MODULE_TEEC_LIB, "munmap failed, error: %m");
                return;
        }
 
@@ -243,8 +242,7 @@ static void freeSharedMemory(TEEC_SharedMemory *shm)
        }
 
        if (shm_unlink(shm_name) == -1) {
-               LOGE(MODULE_TEEC_LIB, "shm_unlink failed for %s, error: %s", shm_name,
-                        strerror(errno));
+               LOGE(MODULE_TEEC_LIB, "shm_unlink failed for %s, error: %m", shm_name);
                return;
        }
 
index a37e28955105d29ead4bb1c03bf4fd1d5b8c8df4..3a5cd9e745f8fd5809a31577de06945ad069a9a7 100644 (file)
@@ -95,7 +95,7 @@ bool SharedMemoryMap::deleteFromMap(uint32_t key) {
                }
 
                if (munmap(item.pBuffer, item.size) == -1) {
-                       LOGE(MODULE_TEE_STUB, "cannot munmap buffer %p, error: %s", item.pBuffer, strerror(errno));
+                       LOGE(MODULE_TEE_STUB, "cannot munmap buffer %p, error: %m", item.pBuffer);
                        return false;
                }
 
@@ -134,8 +134,8 @@ void* SharedMemoryMap::newOnceSharedMemory(uint32_t size) {
                }
 
                if (errno != EEXIST) {
-                       LOGE(MODULE_TEE_STUB, "Cannot create shared memory object %s, error: %s",
-                                       shm_name.c_str(), strerror(errno));
+                       LOGE(MODULE_TEE_STUB, "Cannot create shared memory object %s, error: %m",
+                                       shm_name.c_str());
                        return NULL;
                }
 
@@ -151,15 +151,14 @@ void* SharedMemoryMap::newOnceSharedMemory(uint32_t size) {
 
        if (ftruncate(fd_shm, size) == -1) {
                close(fd_shm);
-               LOGE(MODULE_TEE_STUB, "ftruncate failed, error: %s", strerror(errno));
+               LOGE(MODULE_TEE_STUB, "ftruncate failed, error: %m");
                return NULL;
        }
 
        void *buffer = (void *) mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd_shm, 0);
        if (buffer == NULL) {
                close(fd_shm);
-               LOGE(MODULE_TEE_STUB, "newOnceSharedMemory mmap failed, size: %u error: %s",
-                        size, strerror(errno));
+               LOGE(MODULE_TEE_STUB, "newOnceSharedMemory mmap failed, size: %u error: %m", size);
                return NULL;
        }
 
@@ -188,14 +187,12 @@ bool SharedMemoryMap::deleteOnceSharedMemory(void* buffer) {
                        std::string shm_name(SHM_NAME_PREFIX + std::to_string(it->first));
 
                        if (munmap(item.pBuffer, item.size) == -1) {
-                               LOGE(MODULE_TEE_STUB, "can not find munmap buffer %p, error: %s",
-                                               buffer, strerror(errno));
+                               LOGE(MODULE_TEE_STUB, "can not find munmap buffer %p, error: %m", buffer);
                                return false;
                        }
 
                        if (shm_unlink(shm_name.c_str()) == -1) {
-                               LOGE(MODULE_TEE_STUB, "cannot shm_unlink %s, error: %s",
-                                               shm_name.c_str(), strerror(errno));
+                               LOGE(MODULE_TEE_STUB, "cannot shm_unlink %s, error: %m", shm_name.c_str());
                                return false;
                        }
 
@@ -234,7 +231,7 @@ bool SharedMemoryMap::allocateSharedMemory(Operation &op) {
 
                                int fd_shm = shm_open(shm_name.c_str(), O_RDWR, 0);
                                if (fd_shm == -1) {
-                                       LOGE(MODULE_TEE_STUB, "shm_open %s failed, error: %s", shm_name.c_str(), strerror(errno));
+                                       LOGE(MODULE_TEE_STUB, "shm_open %s failed, error: %m", shm_name.c_str());
                                        return false;
                                }
 
@@ -245,8 +242,7 @@ bool SharedMemoryMap::allocateSharedMemory(Operation &op) {
                                close(fd_shm);
 
                                if (op.params[i].memref.buffer == MAP_FAILED) {
-                                       LOGE(MODULE_TEE_STUB, "allocateSharedMemory mmap failed, size: %u error: %s",
-                                                size, strerror(errno));
+                                       LOGE(MODULE_TEE_STUB, "allocateSharedMemory mmap failed, size: %u error: %m", size);
                                        return false;
                                }
 
@@ -312,14 +308,12 @@ bool SharedMemoryMap::deleteAllSharedMemory() {
                std::string shm_name(SHM_NAME_PREFIX + std::to_string(it->first));
 
                if (munmap(item.pBuffer, item.size) == -1) {
-                       LOGE(MODULE_TEE_STUB, "cannot munmap buffer %p, error: %s",
-                            item.pBuffer, strerror(errno));
+                       LOGE(MODULE_TEE_STUB, "cannot munmap buffer %p, error: %m", item.pBuffer);
                        return false;
                }
 
                if (shm_unlink(shm_name.c_str()) == -1) {
-                       LOGE(MODULE_TEE_STUB, "cannot shm_unlink %s, error: %s",
-                            shm_name.c_str(), strerror(errno));
+                       LOGE(MODULE_TEE_STUB, "cannot shm_unlink %s, error: %m", shm_name.c_str());
                        return false;
                }
 
index a4baef19e7b9f0eff9c2a25b2bf2d7a3942f02c5..c981b165c825c0136c3e9441c32c240271b26d26 100644 (file)
@@ -111,8 +111,9 @@ static int UlOsaSemGet(void *uiSmid, int iFlags, int iTimeout)
                        ret = sem_trywait(&sem->sem);
 
                        if (ret != 0 && errno == EAGAIN) {
-                               usleep(10000);
-                               iTimeout -= 10000;
+                               if (usleep(10000) == 0) {
+                                       iTimeout -= 10000;
+                               }
                        } else     // No-Error + Error without EAGAIN
                                break;
                } while (iTimeout > 0);
index 7b347de2ff8e65b8585af4687540f7a9350b2a5f..77825701fdcf5b18b549ae92cfe3d1f2e0c3570f 100644 (file)
@@ -63,6 +63,7 @@ void ControlConnectionHandler::handleRead(enum ControlCommand header,
                break;
        case CTL_QUERY_PORT:
                handleQueryPortCommand(data);
+               break;
        default:
                handleInvalidCommand();
                break;
index 3cb6a0bcd38fa6b6c4f3080f3a477d00bc371cb6..de79dae8969b901cdd0d7cb9690aa32627766ede 100644 (file)
@@ -295,7 +295,7 @@ bool TABinaryManager::unpackBinary(const TEEC_UUID &uuid, const string& tapath,
                        result = chmod(info.imagePath.c_str(), st.st_mode|S_IXUSR|S_IXGRP|S_IXOTH);
                }
                if (result != 0) {
-                       LOGE(MODULE_SIM_DAEMON, "Unpacking executable TA failed: %s", strerror(errno));
+                       LOGE(MODULE_SIM_DAEMON, "Unpacking executable TA failed: %m");
                }
 
                ret = true;
index 2dd96d4c198edcc0f1785cef38bb506b7e4537d1..ae8d2a0e751cff4b97584cfcf66845c5b88e19bb 100644 (file)
@@ -114,7 +114,7 @@ int TAUnpack::unpackTA(const string& path, const string& uuid) {
 
                ofstream image(imageFile.c_str(), ios::out | ios::binary);
                if (image.fail()) {
-                       LOGE(MODULE_SIM_DAEMON, "Open failed %s %s", imageFile.c_str(), strerror(errno));
+                       LOGE(MODULE_SIM_DAEMON, "Open failed %s %m", imageFile.c_str());
                        return -1;
                }
                image.write(imagedump.get(), packageHeader.image_size);
@@ -131,7 +131,7 @@ int TAUnpack::unpackTA(const string& path, const string& uuid) {
 
                ofstream manifest(manifestFile.c_str(), ios::out | ios::binary);
                if (manifest.fail()) {
-                       LOGE(MODULE_SIM_DAEMON, "Open failed %s %s", manifestFile.c_str(), strerror(errno));
+                       LOGE(MODULE_SIM_DAEMON, "Open failed %s %m", manifestFile.c_str());
                        return -1;
                }
                manifest.write(manifestdump.get(), packageHeader.manifest_size);
index 6101e36796f38a3b99412e85233a677b973d77df..b4a2c12e19ed21dcf4a28b357bb90730201ff511 100644 (file)
@@ -425,7 +425,7 @@ bool TAFactory::launchTA(TEEC_UUID TAUUID, std::stringstream& str, pid_t& pid, b
                        LOGD(MODULE_SIM_DAEMON, "Launched Trusted Application");
                } else {
                        ret = errno;
-                       LOGE(MODULE_SIM_DAEMON, "Launching Trusted Application FAILED %s(%d)", strerror(ret), ret);
+                       LOGE(MODULE_SIM_DAEMON, "Launching Trusted Application FAILED %m(%d)", ret);
                        pthread_mutex_unlock(&TABin->taLock);
                        return false;
                }
@@ -490,7 +490,8 @@ clean_socket:
                        err = errno;
                        close(sock);
 exit:
-                       LOGE(MODULE_SIM_DAEMON, "Launching Trusted Application FAILED: %s", strerror(err));
+                       errno = err;
+                       LOGE(MODULE_SIM_DAEMON, "Launching Trusted Application FAILED: %m");
                        pthread_mutex_unlock(&lock);
                        return false;
                }
index fa1a4606cb5642e4c244ba1724eb3f13406ab7a5..3be34e0860549be44622927fdbd18424642563d7 100644 (file)
@@ -86,19 +86,16 @@ void TEE_GetSystemTime(TEE_Time* time) {
  * @param timeout The number of milliseconds to wait, or TEE_TIMEOUT_INFINITE
  */
 TEE_Result TEE_Wait(uint32_t timeout) {
-       bool isNeedCancel = false;
        uint32_t decreaseTimeoutMillis = 500;
        uint32_t remainTimeout = timeout;
        while (1) {
+               TEMP_FAILURE_RETRY(usleep(decreaseTimeoutMillis * 1000));
                if (timeout != TEE_TIMEOUT_INFINITE) {
-                       remainTimeout = remainTimeout - decreaseTimeoutMillis;
-                       if (remainTimeout <= 0) break;
+                       if (remainTimeout <= decreaseTimeoutMillis) return TEE_SUCCESS;
+                       remainTimeout -= decreaseTimeoutMillis;
                }
-               usleep(decreaseTimeoutMillis * 1000);
-               if (TEE_GetCancellationFlag()) isNeedCancel = true;
+               if (TEE_GetCancellationFlag()) return TEE_ERROR_CANCEL;
        }
-       if (isNeedCancel == true) return TEE_ERROR_CANCEL;
-       return TEE_SUCCESS;
 }
 
 /**