diff options
| author | Florian Apolloner <florian@apolloner.eu> | 2015-11-11 20:10:55 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-11-24 12:04:55 -0500 |
| commit | 3ebbda0aef9e7a90ac6208bb8f9bc21228e2c7da (patch) | |
| tree | d5ca8e7c58101e33c13b4a27c78a94b9901cd26a /django/utils | |
| parent | 11d54e8f0da96d355b8dff17af8d5aa6bb3386db (diff) | |
[1.9.x] Fixed a settings leak possibility in the date template filter.
This is a security fix.
Diffstat (limited to 'django/utils')
| -rw-r--r-- | django/utils/formats.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/django/utils/formats.py b/django/utils/formats.py index e93d5190c5..0ae8989409 100644 --- a/django/utils/formats.py +++ b/django/utils/formats.py @@ -30,6 +30,24 @@ ISO_INPUT_FORMATS = { } +FORMAT_SETTINGS = frozenset([ + 'DECIMAL_SEPARATOR', + 'THOUSAND_SEPARATOR', + 'NUMBER_GROUPING', + 'FIRST_DAY_OF_WEEK', + 'MONTH_DAY_FORMAT', + 'TIME_FORMAT', + 'DATE_FORMAT', + 'DATETIME_FORMAT', + 'SHORT_DATE_FORMAT', + 'SHORT_DATETIME_FORMAT', + 'YEAR_MONTH_FORMAT', + 'DATE_INPUT_FORMATS', + 'TIME_INPUT_FORMATS', + 'DATETIME_INPUT_FORMATS', +]) + + def reset_format_cache(): """Clear any cached formats. @@ -92,6 +110,8 @@ def get_format(format_type, lang=None, use_l10n=None): be localized (or not), overriding the value of settings.USE_L10N. """ format_type = force_str(format_type) + if format_type not in FORMAT_SETTINGS: + return format_type if use_l10n or (use_l10n is None and settings.USE_L10N): if lang is None: lang = get_language() |
