Quellcode durchsuchen

fix: output fix

Yeuoly vor 1 Jahr
Ursprung
Commit
5a88ddbf80

+ 1 - 1
internal/core/runner/nodejs/nodejs.go

@@ -151,9 +151,9 @@ func (p *NodeJsRunner) Run(code string, timeout time.Duration, stdin []byte) (ch
 
 		// read the output
 		go func() {
-			buf := make([]byte, 1024)
 			defer wg.Done()
 			for {
+				buf := make([]byte, 1024)
 				n, err := stdout_reader.Read(buf)
 				// exit if EOF
 				if err != nil {

+ 1 - 1
internal/core/runner/python/python.go

@@ -106,9 +106,9 @@ func (p *PythonRunner) Run(code string, timeout time.Duration, stdin []byte) (ch
 
 		// read the output
 		go func() {
-			buf := make([]byte, 1024)
 			defer wg.Done()
 			for {
+				buf := make([]byte, 1024)
 				n, err := stdout_reader.Read(buf)
 				// exit if EOF
 				if err != nil {

BIN
internal/core/runner/python/python.so


+ 7 - 5
internal/static/nodejs_syscall/syscalls_arm64.go

@@ -6,12 +6,9 @@ import "syscall"
 
 var ALLOW_SYSCALLS = []int{
 	// file
-	syscall.SYS_CLOSE, syscall.SYS_READ, syscall.SYS_WRITE, syscall.SYS_OPENAT,
+	syscall.SYS_CLOSE, syscall.SYS_WRITE,
 	syscall.SYS_FSTAT, syscall.SYS_FCNTL,
-	syscall.SYS_READLINKAT, syscall.SYS_FSTATAT,
-
-	// io
-	syscall.SYS_IOCTL,
+	syscall.SYS_READLINKAT,
 
 	// process
 	syscall.SYS_GETPID, syscall.SYS_TGKILL, syscall.SYS_FUTEX, syscall.SYS_EXIT_GROUP,
@@ -27,3 +24,8 @@ var ALLOW_SYSCALLS = []int{
 	// epoll
 	syscall.SYS_EPOLL_CTL, syscall.SYS_EPOLL_PWAIT,
 }
+
+var ERROR_CODE_SYSCALLS = []int{
+	// file io
+	syscall.SYS_OPENAT, syscall.SYS_FSTATAT, syscall.SYS_IOCTL, syscall.SYS_READ, syscall.SYS_LSEEK,
+}

+ 5 - 0
internal/static/python_syscall/syscalls_arm64.go

@@ -28,3 +28,8 @@ var ALLOW_SYSCALLS = []int{
 	syscall.SYS_EPOLL_CTL, syscall.SYS_CLOCK_NANOSLEEP, syscall.SYS_PSELECT6,
 	syscall.SYS_TIMERFD_CREATE, syscall.SYS_TIMERFD_SETTIME, syscall.SYS_TIMERFD_GETTIME,
 }
+
+var ERROR_CODE_SYSCALLS = []int{
+	// file io
+	syscall.SYS_OPENAT, syscall.SYS_FSTATAT, syscall.SYS_IOCTL, syscall.SYS_READ, syscall.SYS_LSEEK,
+}