Merge pull request #73 from johnsto/bugfix/fenced-code-append

Fix fenced code extension modifying data beyond slice
This commit is contained in:
Vytautas Šaltenis 2014-05-03 15:15:44 +03:00
commit 7b5191107e
1 changed files with 4 additions and 1 deletions

View File

@ -331,7 +331,10 @@ func firstPass(p *parser, input []byte) []byte {
if p.flags&EXTENSION_FENCED_CODE != 0 {
// when last line was none blank and a fenced code block comes after
if beg >= lastFencedCodeBlockEnd {
if i := p.fencedCode(&out, append(input[beg:], '\n'), false); i > 0 {
// tmp var so we don't modify beyond bounds of `input`
var tmp = make([]byte, len(input[beg:]), len(input[beg:]) + 1)
copy(tmp, input[beg:])
if i := p.fencedCode(&out, append(tmp, '\n'), false); i > 0 {
if !lastLineWasBlank {
out.WriteByte('\n') // need to inject additional linebreak
}