diff --git a/syscall/fs_syscall.c b/syscall/fs_syscall.c index eec9b5b4..d680cb22 100644 --- a/syscall/fs_syscall.c +++ b/syscall/fs_syscall.c @@ -641,6 +641,9 @@ OUT: #ifdef LOSCFG_KERNEL_DYNLOAD int SysExecve(const char *fileName, char *const *argv, char *const *envp) { + if (!LOS_IsUserAddress((vaddr_t)(UINTPTR)fileName)) { + return -EFAULT; + } return LOS_DoExecveFile(fileName, argv, envp); } #endif