diff options
Diffstat (limited to 'pkg/ipc')
| -rw-r--r-- | pkg/ipc/ipc_linux.go | 2 | ||||
| -rw-r--r-- | pkg/ipc/ipc_simple.go | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/pkg/ipc/ipc_linux.go b/pkg/ipc/ipc_linux.go index 793611b91..0279b0ee8 100644 --- a/pkg/ipc/ipc_linux.go +++ b/pkg/ipc/ipc_linux.go @@ -128,7 +128,7 @@ func (env *Env) Close() error { func (env *Env) Exec(opts *ExecOpts, p *prog.Prog) (output []byte, info []CallInfo, failed, hanged bool, err0 error) { if p != nil { // Copy-in serialized program. - if err := p.SerializeForExec(env.in, env.pid); err != nil { + if _, err := p.SerializeForExec(env.in, env.pid); err != nil { err0 = fmt.Errorf("executor %v: failed to serialize: %v", env.pid, err) return } diff --git a/pkg/ipc/ipc_simple.go b/pkg/ipc/ipc_simple.go index 4c2ac6925..50dcce661 100644 --- a/pkg/ipc/ipc_simple.go +++ b/pkg/ipc/ipc_simple.go @@ -70,7 +70,8 @@ func (env *Env) Exec(opts *ExecOpts, p *prog.Prog) (output []byte, info []CallIn defer os.RemoveAll(dir) data := make([]byte, prog.ExecBufferSize) - if err := p.SerializeForExec(data, env.pid); err != nil { + n, err := p.SerializeForExec(data, env.pid) + if err != nil { err0 = err return } @@ -78,7 +79,7 @@ func (env *Env) Exec(opts *ExecOpts, p *prog.Prog) (output []byte, info []CallIn binary.Write(inbuf, binary.LittleEndian, uint64(env.config.Flags)) binary.Write(inbuf, binary.LittleEndian, uint64(opts.Flags)) binary.Write(inbuf, binary.LittleEndian, uint64(env.pid)) - inbuf.Write(data) + inbuf.Write(data[:n]) cmd := exec.Command(env.bin[0], env.bin[1:]...) cmd.Env = []string{} |
