From f636f0bb86a5ff3a61401f5ec7ea5d3392edd30f Mon Sep 17 00:00:00 2001 From: Fabio Bonelli Date: Thu, 14 Sep 2017 15:58:32 +0200 Subject: Fixed #29007 -- Fixed DecimalValidator crash on NaN, SNan, Inf, and Infinity values. --- django/core/validators.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'django/core') diff --git a/django/core/validators.py b/django/core/validators.py index 15a8beafe2..3e39b9db93 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -391,6 +391,7 @@ class DecimalValidator: expected, otherwise raise ValidationError. """ messages = { + 'invalid': _('Enter a number.'), 'max_digits': ngettext_lazy( 'Ensure that there are no more than %(max)s digit in total.', 'Ensure that there are no more than %(max)s digits in total.', @@ -414,6 +415,8 @@ class DecimalValidator: def __call__(self, value): digit_tuple, exponent = value.as_tuple()[1:] + if exponent in {'F', 'n', 'N'}: + raise ValidationError(self.messages['invalid']) if exponent >= 0: # A positive exponent adds that many trailing zeros. digits = len(digit_tuple) + exponent -- cgit v1.3