From: Daira Hopwood <daira@jacaranda.org>
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/%5B/frontends/flags/%22doc.html/rgr-080307.php?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 <daira@jacaranda.org>
---

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):
     """