aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek.chauhan@gmail.com>2016-04-18 01:21:25 +0530
committerJussi Pakkanen <jpakkane@gmail.com>2016-04-17 22:51:25 +0300
commit8cd359acbb238447e9de7792544fbe613a807466 (patch)
tree5f4361d8a7a900e7ff9488a2d5a40bb29b223a9f
parent22f8824afb972b364b871bcdc9a5a2dbcbe4fae6 (diff)
downloadmeson-8cd359acbb238447e9de7792544fbe613a807466.zip
meson-8cd359acbb238447e9de7792544fbe613a807466.tar.gz
meson-8cd359acbb238447e9de7792544fbe613a807466.tar.bz2
Regex used for configuration data substitution was too broad (#520)
-rw-r--r--mesonbuild/mesonlib.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py
index 2ac0932..fe831bd 100644
--- a/mesonbuild/mesonlib.py
+++ b/mesonbuild/mesonlib.py
@@ -252,7 +252,9 @@ def do_mesondefine(line, confdata):
def do_conf_file(src, dst, confdata):
data = open(src).readlines()
- regex = re.compile('@(.*?)@')
+ # Only allow (a-z, A-Z, 0-9, _, -) as valid characters for a define
+ # Also allow escaping '@' with '\@'
+ regex = re.compile(r'[^\\]?@([-a-zA-Z0-9_]+)@')
result = []
for line in data:
if line.startswith('#mesondefine'):