diff --git a/plugins/js/package-lock.json b/plugins/js/package-lock.json index cec88bf..c2ef2e0 100644 --- a/plugins/js/package-lock.json +++ b/plugins/js/package-lock.json @@ -1,6 +1,8 @@ { - "requires": true, + "name": "js", + "version": "1.0.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "esprima": { "version": "4.0.1", diff --git a/src/allow.rs b/src/allow.rs index a9c5ded..d8d6d8e 100644 --- a/src/allow.rs +++ b/src/allow.rs @@ -16,12 +16,14 @@ pub fn gen_rules() -> Vec { allow_syscall(libc::SYS_close), allow_syscall(libc::SYS_connect), allow_syscall(libc::SYS_copy_file_range), - allow_syscall(libc::SYS_epoll_create1), - allow_syscall(libc::SYS_epoll_ctl), - allow_syscall(libc::SYS_epoll_pwait), allow_syscall(libc::SYS_dup), allow_syscall(libc::SYS_dup2), allow_syscall(libc::SYS_dup3), + allow_syscall(libc::SYS_epoll_create1), + allow_syscall(libc::SYS_epoll_ctl), + allow_syscall(libc::SYS_epoll_pwait), + allow_syscall(libc::SYS_eventfd2), + allow_syscall(libc::SYS_epoll_wait), allow_syscall(libc::SYS_execve), allow_syscall(libc::SYS_exit), allow_syscall(libc::SYS_exit_group), diff --git a/src/judger.rs b/src/judger.rs index 0fe8870..4e29d1f 100644 --- a/src/judger.rs +++ b/src/judger.rs @@ -41,7 +41,7 @@ pub async fn judger( Some(Language::Cpp) => "./a.out", Some(Language::Python) => "/usr/bin/python3.8 main.py", Some(Language::Rust) => "./a.out", - Some(Language::Node) => "node main.js", + Some(Language::Node) => "/usr/bin/node main.js", Some(Language::TypeScript) => "node main.js", Some(Language::Go) => "./a.out", Some(Language::Java) => "/usr/bin/java -cp . Main", @@ -60,7 +60,10 @@ pub async fn judger( let mut runner = process.runner.clone(); // 为 Java 虚拟机取消内存限制和 trace(万恶的 JVM) // 看起来虚拟机语言都有同样的问题 - if request.language == Language::Java as i32 || request.language == Language::Go as i32 { + if request.language == Language::Java as i32 + || request.language == Language::Go as i32 + || request.language == Language::Node as i32 + { runner.memory_limit = -1; runner.traceme = false; } @@ -144,7 +147,7 @@ pub async fn compile( &v, // 编译的资源限制为固定的 10000, - 256 * 1024, + 1024 * 1024, )?; let mut runner = process.runner.clone();