From d28de22ef07a370458c64c35c7ac0955d42246b0 Mon Sep 17 00:00:00 2001 From: Tw Date: Mon, 8 Jun 2015 15:31:55 +0800 Subject: [PATCH] fix index out of range panic in reference link Add checking before accessing the input data. Fix #172 and #173 issues. Signed-off-by: Tw --- markdown.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/markdown.go b/markdown.go index 3ca79d9..c61b006 100644 --- a/markdown.go +++ b/markdown.go @@ -541,7 +541,7 @@ func isReference(p *parser, data []byte, tabSize int) int { } i++ if p.flags&EXTENSION_FOOTNOTES != 0 { - if data[i] == '^' { + if i < len(data) && data[i] == '^' { // we can set it to anything here because the proper noteIds will // be assigned later during the second pass. It just has to be != 0 noteId = 1 @@ -631,6 +631,9 @@ func scanLinkRef(p *parser, data []byte, i int) (linkOffset, linkEnd, titleOffse for i < len(data) && data[i] != ' ' && data[i] != '\t' && data[i] != '\n' && data[i] != '\r' { i++ } + if i == len(data) { + return + } linkEnd = i if data[linkOffset] == '<' && data[linkEnd-1] == '>' { linkOffset++