From 9090d40fc64d791bc7dd37a3298926b57b382f3c Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sun, 8 Nov 2020 13:15:15 -0800 Subject: [PATCH] Don't support back-to-back marks in markup parsing Addresses false-positive matches in URLs (e.g. https://minftn.net/) where the second slash was being interpreted as a the beginning of an italic markup. --- src/sbbs3/putmsg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sbbs3/putmsg.cpp b/src/sbbs3/putmsg.cpp index a18df8a2eb..b6fff7b98b 100644 --- a/src/sbbs3/putmsg.cpp +++ b/src/sbbs3/putmsg.cpp @@ -165,7 +165,7 @@ char sbbs_t::putmsgfrag(const char* buf, long* mode, long org_cols, JSObject* ob if(mark == 0) next = strchr(str + l + 1, str[l]); char *blank = strstr(str + l + 1, "\n\r"); - if(((l < 1 || IS_WHITESPACE(str[l - 1]) || IS_PUNCTUATION(str[l - 1])) + if(((l < 1 || ((IS_WHITESPACE(str[l - 1]) || IS_PUNCTUATION(str[l - 1])) && str[l - 1] != str[l])) && IS_ALPHANUMERIC(str[l + 1]) && mark == 0 && next != NULL && (*(next + 1) == '\0' || IS_WHITESPACE(*(next + 1)) || IS_PUNCTUATION(*(next+1))) && (blank == NULL || next < blank)) || str[l] == mark) { -- GitLab