pipermerriam/ethereum-function-signature-registry

Null bytes crashing server

Opened this issue · 0 comments

What is wrong?

Traceback (most recent call last):
  File "/home/web/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python3.7/contextlib.py", line 74, in inner
    return func(*args, **kwds)
  File "/home/web/venv/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/home/web/venv/lib/python3.7/site-packages/rest_framework/viewsets.py", line 87, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/web/venv/lib/python3.7/site-packages/rest_framework/views.py", line 466, in dispatch
    response = self.handle_exception(exc)
  File "/home/web/venv/lib/python3.7/site-packages/rest_framework/views.py", line 463, in dispatch
    response = handler(request, *args, **kwargs)
  File "/home/web/venv/lib/python3.7/site-packages/rest_framework/mixins.py", line 42, in list
    page = self.paginate_queryset(queryset)
  File "/home/web/venv/lib/python3.7/site-packages/rest_framework/generics.py", line 172, in paginate_queryset
    return self.paginator.paginate_queryset(queryset, self.request, view=self)
  File "/home/web/venv/lib/python3.7/site-packages/rest_framework/pagination.py", line 206, in paginate_queryset
    self.page = paginator.page(page_number)
  File "/home/web/venv/lib/python3.7/site-packages/django/core/paginator.py", line 50, in page
    number = self.validate_number(number)
  File "/home/web/venv/lib/python3.7/site-packages/django/core/paginator.py", line 39, in validate_number
    if number > self.num_pages:
  File "/home/web/venv/lib/python3.7/site-packages/django/core/paginator.py", line 86, in _get_num_pages
    if self.count == 0 and not self.allow_empty_first_page:
  File "/home/web/venv/lib/python3.7/site-packages/django/core/paginator.py", line 72, in _get_count
    self._count = self.object_list.count()
  File "/home/web/venv/lib/python3.7/site-packages/django/db/models/query.py", line 371, in count
    return self.query.get_count(using=self.db)
  File "/home/web/venv/lib/python3.7/site-packages/django/db/models/sql/query.py", line 483, in get_count
    number = obj.get_aggregation(using, ['__count'])['__count']
  File "/home/web/venv/lib/python3.7/site-packages/django/db/models/sql/query.py", line 464, in get_aggregation
    result = compiler.execute_sql(SINGLE)
  File "/home/web/venv/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 848, in execute_sql
    cursor.execute(sql, params)
  File "/home/web/venv/lib/python3.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
ValueError: A string literal cannot contain NUL (0x00) characters.

This bubbled out of production causing a 500 error

How can it be fixed

Exception handling or maybe better database normalization.