diff options
| -rw-r--r-- | src/cmark.c | 10 | ||||
| -rw-r--r-- | src/cmark.h | 2 | 
2 files changed, 8 insertions, 4 deletions
diff --git a/src/cmark.c b/src/cmark.c index 064c080..ef98d79 100644 --- a/src/cmark.c +++ b/src/cmark.c @@ -5,15 +5,19 @@  #include "cmark.h"  #include "buffer.h" -extern unsigned char *cmark_markdown_to_html(unsigned char *text) +extern unsigned char *cmark_markdown_to_html(unsigned char *text, int len)  {  	node_block *blocks;  	strbuf htmlbuf = GH_BUF_INIT; +	unsigned char *result; -	blocks = cmark_parse_document(text, sizeof(text)); +	blocks = cmark_parse_document(text, len);  	cmark_render_html(&htmlbuf, blocks);  	cmark_free_nodes(blocks); -	return strbuf_detach(&htmlbuf); +	result = strbuf_detach(&htmlbuf); +	strbuf_free(&htmlbuf); + +	return result;  } diff --git a/src/cmark.h b/src/cmark.h index 6347901..5f0d5f7 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -118,7 +118,7 @@ void cmark_free_nodes(node_block *e);  void cmark_debug_print(node_block *root);  void cmark_render_html(strbuf *html, node_block *root); -unsigned char *cmark_markdown_to_html(unsigned char *text); +unsigned char *cmark_markdown_to_html(unsigned char *text, int len);  #ifdef __cplusplus  }  | 
