aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/ipc
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/ipc')
-rw-r--r--pkg/ipc/ipc_linux.go2
-rw-r--r--pkg/ipc/ipc_simple.go5
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{}