Prechádzať zdrojové kódy

execute elf add executable permissions check. (#7769)

geniusgogo 1 rok pred
rodič
commit
2aa4510aa8
2 zmenil súbory, kde vykonal 10 pridanie a 0 odobranie
  1. 5 0
      components/lwp/lwp.c
  2. 5 0
      components/lwp/lwp_syscall.c

+ 5 - 0
components/lwp/lwp.c

@@ -1150,6 +1150,11 @@ pid_t lwp_execve(char *filename, int debug, int argc, char **argv, char **envp)
         return -RT_ERROR;
     }
 
+    if (access(filename, X_OK) != 0)
+    {
+        return -EACCES;
+    }
+
     lwp = lwp_new();
 
     if (lwp == RT_NULL)

+ 5 - 0
components/lwp/lwp_syscall.c

@@ -2246,6 +2246,11 @@ sysret_t sys_execve(const char *path, char *const argv[], char *const envp[])
     int i;
     struct lwp_args_info args_info;
 
+    if (access(path, X_OK) != 0)
+    {
+        return -EACCES;
+    }
+
     lwp = lwp_self();
     thread = rt_thread_self();
     uni_thread = 1;