From 1c8e10bcebe7f39ca238a5dfbd1bd92c9faa39b8 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 22 Nov 2022 10:37:05 +0000 Subject: prog: handle broken base64 strings Currently it can fail if there's never a closing quote. Add a test to verify this behavior. --- prog/encoding.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'prog/encoding.go') diff --git a/prog/encoding.go b/prog/encoding.go index 33983fb47..5c4be432e 100644 --- a/prog/encoding.go +++ b/prog/encoding.go @@ -978,15 +978,15 @@ func (p *parser) deserializeData() ([]byte, bool, error) { // Read Base64 data. p.consume() var rawData []byte - for p.Char() != '"' { + for !p.EOF() && p.Char() != '"' { v := p.consume() rawData = append(rawData, v) } + p.Parse('"') decoded, err := DecodeB64(rawData) if err != nil { return nil, false, fmt.Errorf("data arg is corrupt: %v", err) } - p.Parse('"') return decoded, true, nil } val := "" -- cgit mrf-deployment