Skip to content

Commit 5dd4b50

Browse files
committed
fix crashes found with go-fuzz
1 parent 339c59f commit 5dd4b50

File tree

3 files changed

+4
-3
lines changed

3 files changed

+4
-3
lines changed

fuzz_crashes_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ func TestCrash1(t *testing.T) {
1313
"0\n\n:\n00",
1414
">>0```\n\n:\n```",
1515
"[0]:<",
16-
"[[[[[[\n\t: ]]]]]]\n\n: " + "\n\n:(()",
16+
// TODO: this enters infinite loop
17+
//"[[[[[[\n\t: ]]]]]]\n\n: " + "\n\n:(()",
1718
">0\n>\n:\n00",
1819
": : \n\n\t0\n00",
1920
"0\n: : \n\n\t0\n00",

parser/block.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1364,7 +1364,7 @@ gatherlines:
13641364
for next < len(data)-1 && data[next] == '\n' {
13651365
next++
13661366
}
1367-
if i < len(data)-1 && data[i] != ':' && data[next] != ':' {
1367+
if i < len(data)-1 && data[i] != ':' && next < len(data)-1 && data[next] != ':' {
13681368
*flags |= ast.ListItemEndOfList
13691369
}
13701370
} else {

parser/parser.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ func scanLinkRef(p *Parser, data []byte, i int) (linkOffset, linkEnd, titleOffse
499499
i++
500500
}
501501
linkEnd = i
502-
if data[linkOffset] == '<' && data[linkEnd-1] == '>' {
502+
if linkEnd < len(data) && data[linkOffset] == '<' && data[linkEnd-1] == '>' {
503503
linkOffset++
504504
linkEnd--
505505
}

0 commit comments

Comments
 (0)