summaryrefslogtreecommitdiff
path: root/rrdformat/rrdbinary/decode.go
diff options
context:
space:
mode:
Diffstat (limited to 'rrdformat/rrdbinary/decode.go')
-rw-r--r--rrdformat/rrdbinary/decode.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/rrdformat/rrdbinary/decode.go b/rrdformat/rrdbinary/decode.go
index 08c9141..c4f7760 100644
--- a/rrdformat/rrdbinary/decode.go
+++ b/rrdformat/rrdbinary/decode.go
@@ -251,6 +251,9 @@ func (obj *Unival) unmarshalRRD(d *Decoder, tag string) error {
if d.arch.UnivalWidth != 8 {
return archErrorf("rrdbinary does not support UnivalWidth=%d; only supports 8", d.arch.UnivalWidth)
}
+ if d.arch.ShortWidth != 2 && d.arch.ShortWidth != 4 {
+ return archErrorf("rrdbinary does not support ShortWidth=%d; only supports 2 or 4", d.arch.ShortWidth)
+ }
if tag != "" {
return typeErrorf("invalid rrdbinary struct tag for unival: %q", tag)
}
@@ -270,7 +273,10 @@ func (obj *Unival) unmarshalRRD(d *Decoder, tag string) error {
return d.binErrorf(d.arch.UnivalWidth, "unexpected end-of-file in %d-byte unival", d.arch.UnivalWidth)
}
- *obj = Unival(d.arch.ByteOrder.Uint64(data))
+ *obj = Unival{
+ arch: d.arch,
+ data: data,
+ }
d.pos += padding + d.arch.UnivalWidth
return nil
}