提交 e4a06623 编写于 作者: L Leon Chan

fix: change the execFile field in TCB to execVnode

TEE需要借用TCB中的execFile来校验打开的文件,pagecache修改后,可执行程序在mmap之后,会被立即关闭,因此将execFile改为execVnode

close: #I4CLL9
Signed-off-by: NLeon Chan <chenwei26@huawei.com>
上级 c7da2369
...@@ -434,7 +434,6 @@ int VnodeLookupAt(const char *path, struct Vnode **result, uint32_t flags, struc ...@@ -434,7 +434,6 @@ int VnodeLookupAt(const char *path, struct Vnode **result, uint32_t flags, struc
currentVnode->filePath[vnodePathLen] = 0; currentVnode->filePath[vnodePathLen] = 0;
} }
} }
return ret;
OUT_FREE_PATH: OUT_FREE_PATH:
if (normalizedPath) { if (normalizedPath) {
......
...@@ -121,7 +121,7 @@ typedef struct ProcessCB { ...@@ -121,7 +121,7 @@ typedef struct ProcessCB {
TimerIdMap timerIdMap; TimerIdMap timerIdMap;
#endif #endif
#ifdef LOSCFG_DRIVERS_TZDRIVER #ifdef LOSCFG_DRIVERS_TZDRIVER
struct file *execFile; /**< Exec bin of the process */ struct Vnode *execVnode; /**< Exec bin of the process */
#endif #endif
mode_t umask; mode_t umask;
#ifdef LOSCFG_KERNEL_CPUP #ifdef LOSCFG_KERNEL_CPUP
......
...@@ -223,12 +223,14 @@ STATIC INT32 OsReadEhdr(const CHAR *fileName, ELFInfo *elfInfo, BOOL isExecFile) ...@@ -223,12 +223,14 @@ STATIC INT32 OsReadEhdr(const CHAR *fileName, ELFInfo *elfInfo, BOOL isExecFile)
#ifdef LOSCFG_DRIVERS_TZDRIVER #ifdef LOSCFG_DRIVERS_TZDRIVER
if (isExecFile) { if (isExecFile) {
ret = fs_getfilep(GetAssociatedSystemFd(elfInfo->procfd), &OsCurrProcessGet()->execFile); struct file *filep;
ret = fs_getfilep(GetAssociatedSystemFd(elfInfo->procfd), &filep);
if (ret) { if (ret) {
PRINT_ERR("%s[%d], Failed to get struct file %s!\n", __FUNCTION__, __LINE__, fileName); PRINT_ERR("%s[%d], Failed to get struct file %s!\n", __FUNCTION__, __LINE__, fileName);
/* File will be closed by OsLoadELFFile */ /* File will be closed by OsLoadELFFile */
return ret; return ret;
} }
OsCurrProcessGet()->execVnode = filep->f_vnode;
} }
#endif #endif
ret = OsReadELFInfo(elfInfo->procfd, (UINT8 *)&elfInfo->elfEhdr, sizeof(LD_ELF_EHDR), 0); ret = OsReadELFInfo(elfInfo->procfd, (UINT8 *)&elfInfo->elfEhdr, sizeof(LD_ELF_EHDR), 0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册