Merge pull request #73 from johnsto/bugfix/fenced-code-append Fix fenced code extension modifying data beyond slice
Vytautas Ĺ altenis vytas@rtfb.lt
Sat, 03 May 2014 15:15:44 +0300
1 files changed,
4 insertions(+),
1 deletions(-)
jump to
M
markdown.go
→
markdown.go
@@ -331,7 +331,10 @@
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 }