From: Daira Hopwood Date: Mon, 28 Dec 2015 20:45:14 +0000 (+0000) Subject: Reject path arguments that start with '-' with a usage error. X-Git-Url: https://git.rkrishnan.org/specifications/%5B/%5D%20/architecture.txt?a=commitdiff_plain;h=refs%2Fpull%2F220%2Fhead;p=tahoe-lafs%2Ftahoe-lafs.git Reject path arguments that start with '-' with a usage error. Signed-off-by: Daira Hopwood --- diff --git a/src/allmydata/util/encodingutil.py b/src/allmydata/util/encodingutil.py index d14b08f6..61ce23ec 100644 --- a/src/allmydata/util/encodingutil.py +++ b/src/allmydata/util/encodingutil.py @@ -88,12 +88,16 @@ def argv_to_unicode(s): raise usage.UsageError("Argument %s cannot be decoded as %s." % (quote_output(s), io_encoding)) -def argv_to_abspath(s): +def argv_to_abspath(s, **kwargs): """ Convenience function to decode an argv element to an absolute path, with ~ expanded. If this fails, raise a UsageError. """ - return abspath_expanduser_unicode(argv_to_unicode(s)) + decoded = argv_to_unicode(s) + if decoded.startswith(u'-'): + raise usage.UsageError("Path argument %s cannot start with '-'.\nUse %s if you intended to refer to a file." + % (quote_output(s), quote_output(os.path.join('.', s)))) + return abspath_expanduser_unicode(decoded, **kwargs) def unicode_to_argv(s, mangle=False): """