Browse Source

Fixes #1243: Catch ValueError in IP-based object filters

Jeremy Stretch 8 years ago
parent
commit
95fdb549d7
1 changed files with 5 additions and 5 deletions
  1. 5 5
      netbox/ipam/filters.py

+ 5 - 5
netbox/ipam/filters.py

@@ -85,7 +85,7 @@ class AggregateFilter(CustomFieldFilterSet, django_filters.FilterSet):
         try:
             prefix = str(IPNetwork(value.strip()).cidr)
             qs_filter |= Q(prefix__net_contains_or_equals=prefix)
-        except AddrFormatError:
+        except (AddrFormatError, ValueError):
             pass
         return queryset.filter(qs_filter)
 
@@ -172,7 +172,7 @@ class PrefixFilter(CustomFieldFilterSet, django_filters.FilterSet):
         try:
             prefix = str(IPNetwork(value.strip()).cidr)
             qs_filter |= Q(prefix__net_contains_or_equals=prefix)
-        except AddrFormatError:
+        except (AddrFormatError, ValueError):
             pass
         return queryset.filter(qs_filter)
 
@@ -183,7 +183,7 @@ class PrefixFilter(CustomFieldFilterSet, django_filters.FilterSet):
         try:
             query = str(IPNetwork(value).cidr)
             return queryset.filter(prefix__net_contained_or_equal=query)
-        except AddrFormatError:
+        except (AddrFormatError, ValueError):
             return queryset.none()
 
     def filter_mask_length(self, queryset, name, value):
@@ -259,7 +259,7 @@ class IPAddressFilter(CustomFieldFilterSet, django_filters.FilterSet):
         try:
             ipaddress = str(IPNetwork(value.strip()))
             qs_filter |= Q(address__net_host=ipaddress)
-        except AddrFormatError:
+        except (AddrFormatError, ValueError):
             pass
         return queryset.filter(qs_filter)
 
@@ -270,7 +270,7 @@ class IPAddressFilter(CustomFieldFilterSet, django_filters.FilterSet):
         try:
             query = str(IPNetwork(value.strip()).cidr)
             return queryset.filter(address__net_host_contained=query)
-        except AddrFormatError:
+        except (AddrFormatError, ValueError):
             return queryset.none()
 
     def filter_mask_length(self, queryset, name, value):