444e02
From 179281dfed46f26d3fcc76d0600ee6728a7e493c Mon Sep 17 00:00:00 2001
444e02
From: Lumir Balhar <lbalhar@redhat.com>
444e02
Date: Thu, 22 Apr 2021 13:39:00 +0200
444e02
Subject: [PATCH] CVE-2021-27291
444e02
444e02
---
444e02
 pygments/lexers/archetype.py | 2 +-
444e02
 pygments/lexers/factor.py    | 4 ++--
444e02
 pygments/lexers/jvm.py       | 1 -
444e02
 pygments/lexers/matlab.py    | 6 +++---
444e02
 pygments/lexers/objective.py | 4 ++--
444e02
 pygments/lexers/templates.py | 2 +-
444e02
 pygments/lexers/varnish.py   | 2 +-
444e02
 7 files changed, 10 insertions(+), 11 deletions(-)
444e02
444e02
diff --git a/pygments/lexers/archetype.py b/pygments/lexers/archetype.py
444e02
index 5d4eb9a..82f3b12 100644
444e02
--- a/pygments/lexers/archetype.py
444e02
+++ b/pygments/lexers/archetype.py
444e02
@@ -58,7 +58,7 @@ class AtomsLexer(RegexLexer):
444e02
             (r'P((\d*(\.\d+)?[YyMmWwDd]){1,3}(T(\d*(\.\d+)?[HhMmSs]){,3})?|'
444e02
              r'T(\d*(\.\d+)?[HhMmSs]){,3})', Literal.Date),
444e02
             (r'[+-]?(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
444e02
-            (r'[+-]?(\d+)*\.\d+%?', Number.Float),
444e02
+            (r'[+-]?\d*\.\d+%?', Number.Float),
444e02
             (r'0x[0-9a-fA-F]+', Number.Hex),
444e02
             (r'[+-]?\d+%?', Number.Integer),
444e02
         ],
444e02
diff --git a/pygments/lexers/factor.py b/pygments/lexers/factor.py
444e02
index 09d85c2..7eb3993 100644
444e02
--- a/pygments/lexers/factor.py
444e02
+++ b/pygments/lexers/factor.py
444e02
@@ -265,7 +265,7 @@ class FactorLexer(RegexLexer):
444e02
             (r'(?:<PRIVATE|PRIVATE>)\s', Keyword.Namespace),
444e02
 
444e02
             # strings
444e02
-            (r'"""\s+(?:.|\n)*?\s+"""', String),
444e02
+            (r'"""\s(?:.|\n)*?\s"""', String),
444e02
             (r'"(?:\\\\|\\"|[^"])*"', String),
444e02
             (r'\S+"\s+(?:\\\\|\\"|[^"])*"', String),
444e02
             (r'CHAR:\s+(?:\\[\\abfnrstv]|[^\\]\S*)\s', String.Char),
444e02
@@ -322,7 +322,7 @@ class FactorLexer(RegexLexer):
444e02
         'slots': [
444e02
             (r'\s+', Text),
444e02
             (r';\s', Keyword, '#pop'),
444e02
-            (r'(\{\s+)(\S+)(\s+[^}]+\s+\}\s)',
444e02
+            (r'(\{\s+)(\S+)(\s[^}]+\s\}\s)',
444e02
              bygroups(Text, Name.Variable, Text)),
444e02
             (r'\S+', Name.Variable),
444e02
         ],
444e02
diff --git a/pygments/lexers/jvm.py b/pygments/lexers/jvm.py
444e02
index f439283..668eed7 100644
444e02
--- a/pygments/lexers/jvm.py
444e02
+++ b/pygments/lexers/jvm.py
444e02
@@ -963,7 +963,6 @@ class CeylonLexer(RegexLexer):
444e02
             (r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
444e02
             (r'"(\\\\|\\"|[^"])*"', String),
444e02
             (r"'\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'", String.Char),
444e02
-            (r'".*``.*``.*"', String.Interpol),
444e02
             (r'(\.)([a-z_]\w*)',
444e02
              bygroups(Operator, Name.Attribute)),
444e02
             (r'[a-zA-Z_]\w*:', Name.Label),
444e02
diff --git a/pygments/lexers/matlab.py b/pygments/lexers/matlab.py
444e02
index 56a0f6d..abfb9f0 100644
444e02
--- a/pygments/lexers/matlab.py
444e02
+++ b/pygments/lexers/matlab.py
444e02
@@ -124,7 +124,7 @@ class MatlabLexer(RegexLexer):
444e02
             (r'.', Comment.Multiline),
444e02
         ],
444e02
         'deffunc': [
444e02
-            (r'(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
444e02
+            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
444e02
              bygroups(Whitespace, Text, Whitespace, Punctuation,
444e02
                       Whitespace, Name.Function, Punctuation, Text,
444e02
                       Punctuation, Whitespace), '#pop'),
444e02
@@ -585,7 +585,7 @@ class OctaveLexer(RegexLexer):
444e02
             (r"[^']*'", String, '#pop'),
444e02
         ],
444e02
         'deffunc': [
444e02
-            (r'(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
444e02
+            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
444e02
              bygroups(Whitespace, Text, Whitespace, Punctuation,
444e02
                       Whitespace, Name.Function, Punctuation, Text,
444e02
                       Punctuation, Whitespace), '#pop'),
444e02
@@ -653,7 +653,7 @@ class ScilabLexer(RegexLexer):
444e02
             (r'.', String, '#pop'),
444e02
         ],
444e02
         'deffunc': [
444e02
-            (r'(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
444e02
+            (r'(\s*)(?:(\S+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
444e02
              bygroups(Whitespace, Text, Whitespace, Punctuation,
444e02
                       Whitespace, Name.Function, Punctuation, Text,
444e02
                       Punctuation, Whitespace), '#pop'),
444e02
diff --git a/pygments/lexers/objective.py b/pygments/lexers/objective.py
444e02
index 7807255..e4b9f1e 100644
444e02
--- a/pygments/lexers/objective.py
444e02
+++ b/pygments/lexers/objective.py
444e02
@@ -261,11 +261,11 @@ class LogosLexer(ObjectiveCppLexer):
444e02
              'logos_classname'),
444e02
             (r'(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)',
444e02
              bygroups(Keyword, Text, Name.Class)),
444e02
-            (r'(%config)(\s*\(\s*)(\w+)(\s*=\s*)(.*?)(\s*\)\s*)',
444e02
+            (r'(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)',
444e02
              bygroups(Keyword, Text, Name.Variable, Text, String, Text)),
444e02
             (r'(%ctor)(\s*)(\{)', bygroups(Keyword, Text, Punctuation),
444e02
              'function'),
444e02
-            (r'(%new)(\s*)(\()(\s*.*?\s*)(\))',
444e02
+            (r'(%new)(\s*)(\()(.*?)(\))',
444e02
              bygroups(Keyword, Text, Keyword, String, Keyword)),
444e02
             (r'(\s*)(%end)(\s*)', bygroups(Text, Keyword, Text)),
444e02
             inherit,
444e02
diff --git a/pygments/lexers/templates.py b/pygments/lexers/templates.py
444e02
index 83c57db..066dad7 100644
444e02
--- a/pygments/lexers/templates.py
444e02
+++ b/pygments/lexers/templates.py
444e02
@@ -1428,7 +1428,7 @@ class EvoqueLexer(RegexLexer):
444e02
             # see doc for handling first name arg: /directives/evoque/
444e02
             # + minor inconsistency: the "name" in e.g. $overlay{name=site_base}
444e02
             # should be using(PythonLexer), not passed out as String
444e02
-            (r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+[^=,%}]+?)?'
444e02
+            (r'(\$)(evoque|overlay)(\{(%)?)(\s*[#\w\-"\'.]+)?'
444e02
              r'(.*?)((?(4)%)\})',
444e02
              bygroups(Punctuation, Name.Builtin, Punctuation, None,
444e02
                       String, using(PythonLexer), Punctuation)),
444e02
diff --git a/pygments/lexers/varnish.py b/pygments/lexers/varnish.py
444e02
index 4452142..f4c9a88 100644
444e02
--- a/pygments/lexers/varnish.py
444e02
+++ b/pygments/lexers/varnish.py
444e02
@@ -61,7 +61,7 @@ class VCLLexer(RegexLexer):
444e02
              bygroups(Name.Attribute, Operator, Name.Variable.Global, Punctuation)),
444e02
             (r'(\.probe)(\s*=\s*)(\{)',
444e02
              bygroups(Name.Attribute, Operator, Punctuation), 'probe'),
444e02
-            (r'(\.\w+\b)(\s*=\s*)([^;]*)(\s*;)',
444e02
+            (r'(\.\w+\b)(\s*=\s*)([^;\s]*)(\s*;)',
444e02
              bygroups(Name.Attribute, Operator, using(this), Punctuation)),
444e02
             (r'\{', Punctuation, '#push'),
444e02
             (r'\}', Punctuation, '#pop'),
444e02
-- 
444e02
2.30.2
444e02