summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pevzner <pzz@apevzner.com>2020-01-13 21:40:06 +0300
committerAlexander Pevzner <pzz@apevzner.com>2020-01-13 21:40:06 +0300
commitd253af206ef70d7085dda9106e6aa7a902b39c47 (patch)
tree4aa5a0051f33cc187acb8b4317a1ccdc702b2fe2
parent51dea516d0d88df617eed5bbdc2ccf19c72be6ff (diff)
Fixed decoder, if io.Reader returns n > 0 and err != nil in a same time
-rw-r--r--decoder.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/decoder.go b/decoder.go
index dfd892e..0509c52 100644
--- a/decoder.go
+++ b/decoder.go
@@ -304,13 +304,14 @@ func (md *messageDecoder) read(data []byte) error {
for len(data) > 0 {
n, err := md.in.Read(data)
- if err != nil {
+ if n > 0 {
+ md.cnt += n
+ data = data[n:]
+ } else if err != nil {
md.off = md.cnt
return err
}
- md.cnt += n
- data = data[n:]
}
return nil