diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-09-29 21:33:31 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-10-01 01:22:05 +0300 |
commit | 1b442d11b416b736323d2e5c79d1fca897eaba6f (patch) | |
tree | 31682854e4653e5d94b3c7c393837b5a412d0baa | |
parent | 7d49d1d2d77223a4f403cf0c723aa10ac15e8c59 (diff) | |
download | meson-1b442d11b416b736323d2e5c79d1fca897eaba6f.zip meson-1b442d11b416b736323d2e5c79d1fca897eaba6f.tar.gz meson-1b442d11b416b736323d2e5c79d1fca897eaba6f.tar.bz2 |
Prevent projects from grabbing other projects' options.
4 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 8197b5e..7641514 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1700,6 +1700,9 @@ class Interpreter(InterpreterBase): if len(args) != 1: raise InterpreterException('Argument required for get_option.') optname = args[0] + if ':' in optname: + raise InterpreterException('''Having a colon in option name is forbidden, projects are not allowed +to directly access options of other subprojects.''') try: return self.environment.get_coredata().base_options[optname].value except KeyError: diff --git a/test cases/failing/61 getoption prefix/meson.build b/test cases/failing/61 getoption prefix/meson.build new file mode 100644 index 0000000..8f85cff --- /dev/null +++ b/test cases/failing/61 getoption prefix/meson.build @@ -0,0 +1,5 @@ +project('getopt prefix') + +subproject('abc') + +get_option('abc:foo') diff --git a/test cases/failing/61 getoption prefix/subprojects/abc/meson.build b/test cases/failing/61 getoption prefix/subprojects/abc/meson.build new file mode 100644 index 0000000..aa9c3df --- /dev/null +++ b/test cases/failing/61 getoption prefix/subprojects/abc/meson.build @@ -0,0 +1 @@ +project('abc', 'c') diff --git a/test cases/failing/61 getoption prefix/subprojects/abc/meson_options.txt b/test cases/failing/61 getoption prefix/subprojects/abc/meson_options.txt new file mode 100644 index 0000000..89e624e --- /dev/null +++ b/test cases/failing/61 getoption prefix/subprojects/abc/meson_options.txt @@ -0,0 +1 @@ +option('foo', type : 'boolean') |