From 34df61db58fcf9c9eb02d20fc9d2f05249c47418 Mon Sep 17 00:00:00 2001 From: wmin0 Date: Mon, 8 Apr 2019 16:55:48 +0800 Subject: core: vm: sqlvm: ast: copy data before decimal decode Because decimalDecode modifies input data, we should make a copy first to prevent side effect. --- core/vm/sqlvm/ast/types.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/vm/sqlvm/ast/types.go b/core/vm/sqlvm/ast/types.go index 7d29a5c49..9bb48bc65 100644 --- a/core/vm/sqlvm/ast/types.go +++ b/core/vm/sqlvm/ast/types.go @@ -337,6 +337,8 @@ func decimalEncode(size int, d decimal.Decimal) []byte { func decimalDecode(signed bool, bs []byte) decimal.Decimal { neg := false if signed && (bs[0]&0x80 != 0) { + newbs := make([]byte, 0, len(bs)) + bs = append(newbs, bs...) neg = true for idx := range bs { bs[idx] = ^bs[idx] -- cgit v1.2.3