Hey Niels,
Niels Thykier [2013-01-20 12:50 +0100]:
> Test names are separated by whitespace and should contain only
> characters which are legal in package names, plus `/'.
> """
>
> First, it is unclear to me what exactly is meant by "only characters
> which are legal in package names". I read it as that any character
> legal in the package and addition to that the symbol "/".
Right, but that indeed seems to be an overzealous claim in the spec,
I'll fix that. The adt-run code explicity disallows this, presumably
to avoid directory traversal problems as you mentioned:
if '/' in tname:
raise Unsupported(base[' lno'],
'test name may not contain / character')
There is the "Tests-Directory:" field if you really want to put tests
into a different dir. That one must not be absolute; you can still do
tricks like "../../../etc/..", but as you say this is hardly a
security issue, so let's not overthink this.
But this also pointed out a different bug if you actually try this:
adt-run: unexpected, exceptional, error:
Traceback (most recent call last):
File "/home/martin/debian/autopkgtest/runner/adt-run", line 1962, in main
process_actions()
File "/home/martin/debian/autopkgtest/runner/adt-run", line 1935, in
process_actions
act, os.path.join(act.arg, 'debian/tests/control'))
File "/home/martin/debian/autopkgtest/runner/adt-run", line 1328, in
read_control
t = Test(tname, base, act)
File "/home/martin/debian/autopkgtest/runner/adt-run", line 1069, in __init__
raise Unsupported(base[' lno'],
KeyError: ' lno'
So, I'll write a test which reproduces this crash, makes sure that
tests with / are disallowed, and fix the spec.
Thanks,
Martin
--
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
signature.asc
Description: Digital signature