From 6a86924e60f5fd7e19ce775785e586a4112355a1 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 18 Sep 2014 16:15:37 +0200 Subject: [PATCH] safe_shlex_split: Give up after 3 tries. --- qutebrowser/utils/utils.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index 96070fc6b..820b0086d 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -113,9 +113,11 @@ def safe_shlex_split(s): """ if s is None: raise TypeError("Can't split None!") - while True: + tokens = None + orig_s = s + for i in range(3): try: - return shlex.split(s) + tokens = shlex.split(s) except ValueError as e: if str(e) == "No closing quotation": # e.g. eggs "bacon ham @@ -127,6 +129,11 @@ def safe_shlex_split(s): s += '\\' else: raise + if tokens is None: + raise AssertionError("Gave up splitting >{}< after {} tries. " + "Attempted fixup: >{}<. This is a bug.".format( + orig_s, i, s)) + return tokens def pastebin(text):