Bump reva

This commit is contained in:
André Duffeck
2025-03-19 12:21:58 +01:00
parent 38c521e54a
commit 38857f0b27
6 changed files with 44 additions and 22 deletions
+16 -3
View File
@@ -24,21 +24,24 @@ func (d *decoder) asBinWithCode(code byte, k reflect.Kind) ([]byte, error) {
if err != nil {
return emptyBytes, err
}
return d.readSizeN(int(l))
// avoid common buffer reference
return d.copySizeN(int(l))
case def.Bin16:
bs, err := d.readSize2()
if err != nil {
return emptyBytes, err
}
return d.readSizeN(int(binary.BigEndian.Uint16(bs)))
// avoid common buffer reference
return d.copySizeN(int(binary.BigEndian.Uint16(bs)))
case def.Bin32:
bs, err := d.readSize4()
if err != nil {
return emptyBytes, err
}
return d.readSizeN(int(binary.BigEndian.Uint32(bs)))
// avoid common buffer reference
return d.copySizeN(int(binary.BigEndian.Uint32(bs)))
}
return emptyBytes, d.errorTemplate(code, k)
@@ -48,3 +51,13 @@ func (d *decoder) asBinStringWithCode(code byte, k reflect.Kind) (string, error)
bs, err := d.asBinWithCode(code, k)
return *(*string)(unsafe.Pointer(&bs)), err
}
func (d *decoder) copySizeN(n int) ([]byte, error) {
bs, err := d.readSizeN(n)
if err != nil {
return emptyBytes, err
}
v := make([]byte, n)
copy(v, bs)
return v, nil
}
+3 -2
View File
@@ -83,6 +83,7 @@ func (d *decoder) asStringByteByLength(l int, _ reflect.Kind) ([]byte, error) {
if l < 1 {
return emptyBytes, nil
}
return d.readSizeN(l)
// avoid common buffer reference
return d.copySizeN(l)
}