Skip to content
Snippets Groups Projects
Commit 84fd8316 authored by GitLab Release Tools Bot's avatar GitLab Release Tools Bot
Browse files

Merge branch 'security-mermaid-block-12-1' into '12-1-stable'

Only render fixed number of mermaid blocks

See merge request gitlab/gitlabhq!3413
parents 61d21609 308ab9fb
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -35,6 +35,8 @@ export default function renderMermaid($els) {
},
});
 
let renderedChars = 0;
$els.each((i, el) => {
// Mermaid doesn't like `<br />` tags, so collapse all like tags into `<br>`, which is parsed correctly.
const source = el.textContent.replace(/<br\s*\/>/g, '<br>');
Loading
Loading
@@ -44,7 +46,7 @@ export default function renderMermaid($els) {
* prevent mermaidjs from hanging up the entire thread and
* causing a DoS.
*/
if (source && source.length > MAX_CHAR_LIMIT) {
if ((source && source.length > MAX_CHAR_LIMIT) || renderedChars > MAX_CHAR_LIMIT) {
el.textContent = sprintf(
__(
'Cannot render the image. Maximum character count (%{charLimit}) has been exceeded.',
Loading
Loading
@@ -54,6 +56,7 @@ export default function renderMermaid($els) {
return;
}
 
renderedChars += source.length;
// Remove any extra spans added by the backend syntax highlighting.
Object.assign(el, { textContent: source });
 
Loading
Loading
---
title: Only render fixed number of mermaid blocks
merge_request:
author:
type: security
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment