Commit 2253f671 authored by Rob Pike's avatar Rob Pike

text/template/parse: fix bug handling /*/

Incorrect syntax for comment was erroneously accepted.
Fixes #3919.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6453105
parent 4f308edc
......@@ -264,16 +264,17 @@ func lexText(l *lexer) stateFn {
// lexLeftDelim scans the left delimiter, which is known to be present.
func lexLeftDelim(l *lexer) stateFn {
if strings.HasPrefix(l.input[l.pos:], l.leftDelim+leftComment) {
l.pos += len(l.leftDelim)
if strings.HasPrefix(l.input[l.pos:], leftComment) {
return lexComment
}
l.pos += len(l.leftDelim)
l.emit(itemLeftDelim)
return lexInsideAction
}
// lexComment scans a comment. The left comment marker is known to be present.
func lexComment(l *lexer) stateFn {
l.pos += len(leftComment)
i := strings.Index(l.input[l.pos:], rightComment+l.rightDelim)
if i < 0 {
return l.errorf("unclosed comment")
......
......@@ -203,6 +203,10 @@ var lexTests = []lexTest{
tRight,
tEOF,
}},
{"text with bad comment", "hello-{{/*/}}-world", []item{
{itemText, 0, "hello-"},
{itemError, 0, `unclosed comment`},
}},
}
// collect gathers the emitted items into a slice.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment