2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-19 13:35:40 +00:00

Catch invalid decimal conversion ()

- Thanks to  fuzzers reported by sentry.io
This commit is contained in:
Oliver
2024-11-12 19:56:00 +11:00
committed by GitHub
parent 9ab532a067
commit 1eae56ff1e

@ -4,6 +4,7 @@ import sys
from decimal import Decimal from decimal import Decimal
from django import forms from django import forms
from django.core.exceptions import ValidationError
from django.db import models from django.db import models
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -152,7 +153,10 @@ class DatePickerFormField(forms.DateField):
def round_decimal(value, places, normalize=False): def round_decimal(value, places, normalize=False):
"""Round value to the specified number of places.""" """Round value to the specified number of places."""
if type(value) in [Decimal, float]: if type(value) in [Decimal, float]:
value = round(value, places) try:
value = round(value, places)
except Exception:
raise ValidationError(_('Invalid decimal value') + f' ({value})')
if normalize: if normalize:
# Remove any trailing zeroes # Remove any trailing zeroes