cmark

My personal build of CMark ✏️

Commit
cef66d42f91d934ce8bd058cd7c76b87f78628a7
Parent
06e3af57a1ed7b07560974877b5280504eaefb63
Author
John MacFarlane <jgm@berkeley.edu>
Date

Add MAX_INDENT for xml.

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

See #355.

Diffstat

1 file changed, 2 insertions, 1 deletion

Status File Name N° Changes Insertions Deletions
Modified src/xml.c 3 2 1
diff --git 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, ' ');
   }
 }