From 58dd044ca1ea8316f4f4b6034eec12d204cc6913 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 11 Nov 2019 12:38:52 -0800 Subject: Don't allow link destinations with unbalanced unescaped parentheses. See commonmark/commonmark.js#177. --- src/inlines.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/inlines.c') diff --git a/src/inlines.c b/src/inlines.c index e6b491f..d9301c8 100644 --- a/src/inlines.c +++ b/src/inlines.c @@ -439,8 +439,9 @@ static int scan_delims(subject *subj, unsigned char c, bool *can_open, *can_close = right_flanking && (!left_flanking || cmark_utf8proc_is_punctuation(after_char)); } else if (c == '\'' || c == '"') { - *can_open = left_flanking && !right_flanking && - before_char != ']' && before_char != ')'; + *can_open = left_flanking && + (!right_flanking || before_char == '(' || before_char == '[') && + before_char != ']' && before_char != ')'; *can_close = right_flanking; } else { *can_open = left_flanking; @@ -954,7 +955,7 @@ static bufsize_t manual_scan_link_url_2(cmark_chunk *input, bufsize_t offset, } } - if (i >= input->len) + if (i >= input->len || nb_p != 0) return -1; { -- cgit v1.2.3