diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-02-14 18:54:12 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-02-14 18:54:12 +0200 |
commit | bbe4656c51012bd13da44c00ec6c5af6caa93351 (patch) | |
tree | a9061c5e2473e5c6de118d07bea53fefafded2e4 | |
parent | 819da091c260cc85757d5b90c6e906a2f33dde1f (diff) | |
download | meson-bbe4656c51012bd13da44c00ec6c5af6caa93351.zip meson-bbe4656c51012bd13da44c00ec6c5af6caa93351.tar.gz meson-bbe4656c51012bd13da44c00ec6c5af6caa93351.tar.bz2 |
Guard against subdir segments in output files.
-rw-r--r-- | mesonbuild/interpreter.py | 2 | ||||
-rw-r--r-- | test cases/failing/27 output subdir/foo.in | 1 | ||||
-rw-r--r-- | test cases/failing/27 output subdir/meson.build | 5 | ||||
-rw-r--r-- | test cases/failing/27 output subdir/subdir/dummy.txt | 2 |
4 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 238c96c..a633917 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1816,6 +1816,8 @@ class Interpreter(): raise InterpreterException('Input must be a string.') if not isinstance(output, str): raise InterpreterException('Output must be a string.') + if os.path.split(output)[0] != '': + raise InterpreterException('Output file name must not contain a subdirectory.') if 'configuration' in kwargs: conf = kwargs['configuration'] if not isinstance(conf, ConfigurationDataHolder): diff --git a/test cases/failing/27 output subdir/foo.in b/test cases/failing/27 output subdir/foo.in new file mode 100644 index 0000000..3d1bf19 --- /dev/null +++ b/test cases/failing/27 output subdir/foo.in @@ -0,0 +1 @@ +Nothing here. diff --git a/test cases/failing/27 output subdir/meson.build b/test cases/failing/27 output subdir/meson.build new file mode 100644 index 0000000..282d0b7 --- /dev/null +++ b/test cases/failing/27 output subdir/meson.build @@ -0,0 +1,5 @@ +project('outdir path', 'c') + +configure_file(input : 'foo.in', + output : 'subdir/foo', + configuration : configuration_data()) diff --git a/test cases/failing/27 output subdir/subdir/dummy.txt b/test cases/failing/27 output subdir/subdir/dummy.txt new file mode 100644 index 0000000..f10acf3 --- /dev/null +++ b/test cases/failing/27 output subdir/subdir/dummy.txt @@ -0,0 +1,2 @@ +I'm only here because Git is stupid about empty dirs. + |