fix not enough buf error when decode date
diff --git a/date.go b/date.go
index e1af345..5fe83d4 100644
--- a/date.go
+++ b/date.go
@@ -81,7 +81,7 @@
return ZeroDate, nil
case tag == BC_DATE: //'d': //date
s = buf[:8]
- l, err = d.next(s)
+ l, err = d.nextFull(s)
if err != nil {
return t, err
}
@@ -94,7 +94,7 @@
case tag == BC_DATE_MINUTE:
s = buf[:4]
- l, err = d.next(s)
+ l, err = d.nextFull(s)
if err != nil {
return t, err
}
diff --git a/decode.go b/decode.go
index 25ae24a..b916703 100644
--- a/decode.go
+++ b/decode.go
@@ -129,6 +129,11 @@
return d.reader.Read(b)
}
+// read byte arr, and return the real length of b
+func (d *Decoder) nextFull(b []byte) (int, error) {
+ return io.ReadFull(d.reader, b)
+}
+
// peek n bytes, will not advance the read ptr
func (d *Decoder) peek(n int) []byte {
b, _ := d.reader.Peek(n)