From e1686cb83cb7f4877d1265cf0b68cea98b6dca4c Mon Sep 17 00:00:00 2001 From: Vadym Slizov Date: Sat, 13 Feb 2021 23:07:35 +0200 Subject: [PATCH] [#98] fix panic when heredoc is not closed --- internal/scanner/lexer.go | 4 ++++ internal/scanner/scanner_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/internal/scanner/lexer.go b/internal/scanner/lexer.go index eea6e16..6725ce6 100644 --- a/internal/scanner/lexer.go +++ b/internal/scanner/lexer.go @@ -140,6 +140,10 @@ func (lex *Lexer) isHeredocEndSince73(p int) bool { return false } + if p == len(lex.data) { + return false + } + for lex.data[p] == ' ' || lex.data[p] == '\t' { p++ } diff --git a/internal/scanner/scanner_test.go b/internal/scanner/scanner_test.go index af6da1f..6f26368 100644 --- a/internal/scanner/scanner_test.go +++ b/internal/scanner/scanner_test.go @@ -1091,6 +1091,34 @@ CAT;` assert.DeepEqual(t, expected, actual) } +func TestHereDocUnclosed(t *testing.T) { + src := " test