From cef66d42f91d934ce8bd058cd7c76b87f78628a7 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Sun, 23 Aug 2020 10:58:08 -0700
Subject: Add MAX_INDENT for xml.

Otherwise we can get quadratic increase in size with deeply
nested structures.

See #355.
---
 src/xml.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/xml.c b/src/xml.c
index 731bc01..f1dcfd2 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -10,6 +10,7 @@
 #include "houdini.h"
 
 #define BUFFER_SIZE 100
+#define MAX_INDENT 40
 
 // Functions to convert cmark_nodes to XML strings.
 
@@ -30,7 +31,7 @@ struct render_state {
 
 static CMARK_INLINE void indent(struct render_state *state) {
   int i;
-  for (i = 0; i < state->indent; i++) {
+  for (i = 0; i < state->indent && i < MAX_INDENT; i++) {
     cmark_strbuf_putc(state->xml, ' ');
   }
 }
-- 
cgit v1.2.3