diff --git a/syscall/fs_syscall.c b/syscall/fs_syscall.c index eec9b5b486c0704de3fcdc0f662f5112ec2710ee..d680cb22e9fb09d7121e63fc79713e3924fe1e64 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