1 files changed, 16 insertions, 1 deletions
diff --git a/src/Utils.cpp b/src/Utils.cpp
index 5c664b7c..8c02b1c2 100644
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -324,10 +324,25 @@ utils::linkifyMessage(const QString &body)
return doc;
}
+QByteArray escapeRawHtml(const QByteArray &data) {
+ QByteArray buffer;
+ const size_t length = data.size();
+ buffer.reserve(length);
+ for(size_t pos = 0; pos != length; ++pos) {
+ switch(data.at(pos)) {
+ case '&': buffer.append("&"); break;
+ case '<': buffer.append("<"); break;
+ case '>': buffer.append(">"); break;
+ default: buffer.append(data.at(pos)); break;
+ }
+ }
+ return buffer;
+}
+
QString
utils::markdownToHtml(const QString &text)
{
- const auto str = text.toUtf8();
+ const auto str = escapeRawHtml(text.toUtf8());
const char *tmp_buf =
cmark_markdown_to_html(str.constData(), str.size(), CMARK_OPT_DEFAULT);
|