Răsfoiți Sursa

format_line: whitelist instead of checking against blacklist

Marian Beermann 8 ani în urmă
părinte
comite
cc24fa2064
1 a modificat fișierele cu 2 adăugiri și 4 ștergeri
  1. 2 4
      src/borg/helpers.py

+ 2 - 4
src/borg/helpers.py

@@ -787,12 +787,10 @@ def format_line(format, data):
     for _, key, _, conversion in Formatter().parse(format):
         if not key:
             continue
-        if '.' in key or '__' in key or conversion:
+        if conversion or key not in data:
             raise InvalidPlaceholder(key, format)
     try:
-        return format.format(**data)
-    except KeyError as ke:
-        raise InvalidPlaceholder(ke.args[0], format)
+        return format.format_map(data)
     except Exception as e:
         raise PlaceholderError(format, data, e.__class__.__name__, str(e))