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)

Attachment: signature.asc
Description: Digital signature

Reply via email to