From 4b451746501769daac3e0231ec5d350ed0012acd Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Mon, 9 Apr 2018 16:48:25 +0200 Subject: [PATCH] fix handling of empty buffer --- common/crypto/auth.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/common/crypto/auth.go b/common/crypto/auth.go index 2cf0eb15e..1f3a68f17 100644 --- a/common/crypto/auth.go +++ b/common/crypto/auth.go @@ -248,14 +248,6 @@ func (w *AuthenticationWriter) writeStream(mb buf.MultiBuffer) error { func (w *AuthenticationWriter) writePacket(mb buf.MultiBuffer) error { defer mb.Release() - if mb.IsEmpty() { - b := buf.New() - defer b.Release() - - eb, _ := w.seal(b) - return w.writer.WriteMultiBuffer(buf.NewMultiBufferValue(eb)) - } - mb2Write := buf.NewMultiBufferCap(int32(len(mb)) + 1) for !mb.IsEmpty() { @@ -276,6 +268,14 @@ func (w *AuthenticationWriter) writePacket(mb buf.MultiBuffer) error { } func (w *AuthenticationWriter) WriteMultiBuffer(mb buf.MultiBuffer) error { + if mb.IsEmpty() { + b := buf.New() + defer b.Release() + + eb, _ := w.seal(b) + return w.writer.WriteMultiBuffer(buf.NewMultiBufferValue(eb)) + } + if w.transferType == protocol.TransferTypeStream { return w.writeStream(mb) }