Markdown.ToHtml throws InvalidOperationException "A block is already being replaced" #710

Open
opened 2026-01-29 14:43:40 +00:00 by claunia · 0 comments
Owner

Originally created by @mschessler on GitHub (Jan 2, 2025).

Tested Version: newest commit d1233ffe66 on main

grafik

grafik

Reproducer:

var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
var result = Markdown.ToHtml(">[!kk]\r\n[!kk]", pipeline);

Stacktrace:

at Markdig.Parsers.InlineProcessor.ReplaceParentContainer(ContainerBlock previousParentContainer, ContainerBlock newParentContainer) in \src\Markdig\Parsers\InlineProcessor.cs:line 219
at Markdig.Extensions.Alerts.AlertInlineParser.Match(InlineProcessor processor, StringSlice& slice) in \src\Markdig\Extensions\Alerts\AlertInlineParser.cs:line 123
at Markdig.Parsers.InlineProcessor.ProcessInlineLeaf(LeafBlock leafBlock) in \src\Markdig\Parsers\InlineProcessor.cs:line 273
at Markdig.Parsers.MarkdownParser.ProcessInlines(InlineProcessor inlineProcessor, MarkdownDocument document) in \src\Markdig\Parsers\MarkdownParser.cs:line 172
at Markdig.Parsers.MarkdownParser.Parse(String text, MarkdownPipeline pipeline, MarkdownParserContext context) in \src\Markdig\Parsers\MarkdownParser.cs:line 75
at Markdig.Markdown.ToHtml(String markdown, MarkdownPipeline pipeline, MarkdownParserContext context) in \src\Markdig\Markdown.cs:line 101
at FuzzTest.Program.Main(String[] args) in \FuzzingTargets\MarkdigFuzzer\Program.cs:line 13

Credit: Found with Sharpfuzz

Originally created by @mschessler on GitHub (Jan 2, 2025). Tested Version: newest commit https://github.com/xoofx/markdig/commit/d1233ffe66dae3944375b78d2b05d966cd597070 on main ![grafik](https://github.com/user-attachments/assets/de06517a-d2c4-4a8d-b72c-5859039807b4) ![grafik](https://github.com/user-attachments/assets/3bd06cd5-548d-4874-9647-1015386da8ab) ### **Reproducer:** ``` var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build(); var result = Markdown.ToHtml(">[!kk]\r\n[!kk]", pipeline); ``` ### **Stacktrace:** > at Markdig.Parsers.InlineProcessor.ReplaceParentContainer(ContainerBlock previousParentContainer, ContainerBlock newParentContainer) in \src\Markdig\Parsers\InlineProcessor.cs:line 219 > at Markdig.Extensions.Alerts.AlertInlineParser.Match(InlineProcessor processor, StringSlice& slice) in \src\Markdig\Extensions\Alerts\AlertInlineParser.cs:line 123 > at Markdig.Parsers.InlineProcessor.ProcessInlineLeaf(LeafBlock leafBlock) in \src\Markdig\Parsers\InlineProcessor.cs:line 273 > at Markdig.Parsers.MarkdownParser.ProcessInlines(InlineProcessor inlineProcessor, MarkdownDocument document) in \src\Markdig\Parsers\MarkdownParser.cs:line 172 > at Markdig.Parsers.MarkdownParser.Parse(String text, MarkdownPipeline pipeline, MarkdownParserContext context) in \src\Markdig\Parsers\MarkdownParser.cs:line 75 > at Markdig.Markdown.ToHtml(String markdown, MarkdownPipeline pipeline, MarkdownParserContext context) in \src\Markdig\Markdown.cs:line 101 > at FuzzTest.Program.Main(String[] args) in \FuzzingTargets\MarkdigFuzzer\Program.cs:line 13 Credit: Found with [Sharpfuzz](https://github.com/Metalnem/sharpfuzz)
claunia added the bugPR Welcome! labels 2026-01-29 14:43:40 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/markdig#710