From 0099e0e552d4f513d6271cd9f2168f2b81e9fc5b Mon Sep 17 00:00:00 2001 From: Paul Larsen Date: Sat, 6 Jan 2024 17:06:28 +0000 Subject: [PATCH] Fix OOB error and improve tests --- md2htmlV2.go | 2 +- md2htmlV2_test.go | 3 +++ reverseV2_test.go | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/md2htmlV2.go b/md2htmlV2.go index 5265396..4ac4e05 100644 --- a/md2htmlV2.go +++ b/md2htmlV2.go @@ -178,7 +178,7 @@ func (cv ConverterV2) md2html(in []rune, enableButtons bool) (string, []ButtonV2 return out.String() + "<" + chars[item] + ">" + nestedT + "" + followT, append(nestedB, followB...) case '&': - if !(i+3 < len(in) && in[i+1] == 'g' && in[i+2] == 't' && in[i+3] == ';') { + if !(i+4 < len(in) && in[i+1] == 'g' && in[i+2] == 't' && in[i+3] == ';') { out.WriteRune(c) continue } diff --git a/md2htmlV2_test.go b/md2htmlV2_test.go index 1e6eac5..6d57c7d 100644 --- a/md2htmlV2_test.go +++ b/md2htmlV2_test.go @@ -114,6 +114,9 @@ func TestNotMD2HTMLV2(t *testing.T) { }, { in: "|noop|", out: "|noop|", + }, { + in: "end with >", + out: "end with >", }, { in: "no premium ! in text", // confirm that a '!' doesnt break premiums out: "no premium ! in text", diff --git a/reverseV2_test.go b/reverseV2_test.go index fe41219..0efa1b1 100644 --- a/reverseV2_test.go +++ b/reverseV2_test.go @@ -28,7 +28,9 @@ func TestReverseV2(t *testing.T) { for _, test := range []string{ "___________test_______", "|||||spoiler|||", - `![👍](tg://emoji?id=5368324170671202286)`, + "![👍](tg://emoji?id=5368324170671202286)", + ">", + "test\n>\ntest", } { out, err := tg_md2html.ReverseV2(tg_md2html.MD2HTMLV2(test), nil) assert.NoError(t, err, "Error for:\n%s", test)