From 676c87f9a581a52d925511c35dc0ff8258631d7a Mon Sep 17 00:00:00 2001 From: Tolga Ceylan Date: Wed, 9 May 2018 08:48:55 -0700 Subject: [PATCH] fn: pure-runner violates io Writer contract (#981) We must copy the data slice. --- api/agent/pure_runner.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/agent/pure_runner.go b/api/agent/pure_runner.go index 65816fd29..d7622797e 100644 --- a/api/agent/pure_runner.go +++ b/api/agent/pure_runner.go @@ -400,10 +400,14 @@ func (ch *callHandle) Write(data []byte) (int, error) { return 0, err } + // we cannot retain 'data' + cpData := make([]byte, len(data)) + copy(cpData, data) + err = ch.enqueueMsg(&runner.RunnerMsg{ Body: &runner.RunnerMsg_Data{ Data: &runner.DataFrame{ - Data: data, + Data: cpData, Eof: false, }, },