summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/d5/tengo/objects/string.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/d5/tengo/objects/string.go')
-rw-r--r--vendor/github.com/d5/tengo/objects/string.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/vendor/github.com/d5/tengo/objects/string.go b/vendor/github.com/d5/tengo/objects/string.go
index 6a53b44d..c25b0502 100644
--- a/vendor/github.com/d5/tengo/objects/string.go
+++ b/vendor/github.com/d5/tengo/objects/string.go
@@ -3,6 +3,7 @@ package objects
import (
"strconv"
+ "github.com/d5/tengo"
"github.com/d5/tengo/compiler/token"
)
@@ -28,9 +29,16 @@ func (o *String) BinaryOp(op token.Token, rhs Object) (Object, error) {
case token.Add:
switch rhs := rhs.(type) {
case *String:
+ if len(o.Value)+len(rhs.Value) > tengo.MaxStringLen {
+ return nil, ErrStringLimit
+ }
return &String{Value: o.Value + rhs.Value}, nil
default:
- return &String{Value: o.Value + rhs.String()}, nil
+ rhsStr := rhs.String()
+ if len(o.Value)+len(rhsStr) > tengo.MaxStringLen {
+ return nil, ErrStringLimit
+ }
+ return &String{Value: o.Value + rhsStr}, nil
}
}