diff options
Diffstat (limited to 'pkg/p9/server.go')
-rw-r--r-- | pkg/p9/server.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/pkg/p9/server.go b/pkg/p9/server.go index b2a86d8fa..f377a6557 100644 --- a/pkg/p9/server.go +++ b/pkg/p9/server.go @@ -395,7 +395,7 @@ func (cs *connState) handleRequest() { } // Receive a message. - tag, m, err := recv(cs.conn, messageSize, messageByType) + tag, m, err := recv(cs.conn, messageSize, msgRegistry.get) if errSocket, ok := err.(ErrSocket); ok { // Connection problem; stop serving. cs.recvDone <- errSocket.error @@ -458,6 +458,8 @@ func (cs *connState) handleRequest() { // Produce an ENOSYS error. r = newErr(syscall.ENOSYS) } + msgRegistry.put(m) + m = nil // 'm' should not be touched after this point. } func (cs *connState) handleRequests() { |