Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

Commit 5932d6f

Browse files
committed
sandbox improvements
- remove needless string/bytes conversion - remove Code member
1 parent a5cc092 commit 5932d6f

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

docker/main.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"os/exec"
1414
"path"
1515
"strconv"
16-
"strings"
1716
"time"
1817
)
1918

@@ -23,15 +22,14 @@ type Response struct {
2322
Output string `json:"output"`
2423
Error string `json:"error"`
2524
ExecutionTime int64 `json:"time"`
26-
Code string `json:"code"`
2725
}
2826

2927
func (r Response) toJSON() string {
3028
data, _ := json.Marshal(r)
3129
return string(data)
3230
}
3331

34-
func execSandbox(interpreter string, timeout time.Duration, code *string) *Response {
32+
func execSandbox(interpreter string, timeout time.Duration, code []byte) *Response {
3533
res := Response{}
3634
ApplySyscallRestrictions()
3735

@@ -40,8 +38,7 @@ func execSandbox(interpreter string, timeout time.Duration, code *string) *Respo
4038
defer cancel()
4139

4240
cmd := exec.CommandContext(ctx, interpreter)
43-
cmd.Stdin = strings.NewReader(*code)
44-
res.Code = *code
41+
cmd.Stdin = bytes.NewReader(code)
4542

4643
var errBuffer bytes.Buffer
4744
cmd.Stderr = &errBuffer
@@ -95,15 +92,15 @@ func main() {
9592

9693
debug("reading file: %s", filename)
9794
code, err := ioutil.ReadFile(filename)
98-
data := string(code)
95+
// data := string(code)
9996

10097
if err != nil {
10198
panic(err.Error())
10299
}
103100

104101
var (
105102
interpreter string
106-
response Response
103+
response *Response
107104
)
108105

109106
switch language {
@@ -115,12 +112,12 @@ func main() {
115112
case "node":
116113
interpreter = "node"
117114
default:
118-
response.Error = fmt.Sprintf("unrecognized language %q", language)
115+
response = &Response{Error: "unrecognized language: " + language}
119116
fmt.Print(response.toJSON())
120117
return
121118
}
122119

123-
response = *execSandbox(interpreter, duration, &data)
120+
response = execSandbox(interpreter, duration, code)
124121

125122
fmt.Print(response.toJSON())
126123
}

0 commit comments

Comments
 (0)