Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Giving a big number as input for AccountLogSearchForm causes a 500 error #3247

Open
stveit opened this issue Nov 25, 2024 · 0 comments
Labels

Comments

@stveit
Copy link
Contributor

stveit commented Nov 25, 2024

Describe the bug

If you set Time options to Day(s) and input a large number, it will cause a 500 error. The error will change based on how big the number is. 123123123123 will give an InvalidTimeZoneDisplacementValue error with the message

time zone displacement out of range: "-337097637-05-20 16:00"
LINE 18:                         acctstoptime >= timestamp '-33709763...

while 123123123123123 gives an OverflowError with the message timestamp out of range for platform time_t

To Reproduce

Steps to reproduce the behavior

  1. Go to /radius/acctsearch
  2. Enter a username (doesnt have to be real) in the box beneath where it says Username
  3. Change Time options to Day(s)
  4. Put 123123123123 in the box beneath where it says Day(s)
  5. Click Search
  6. See error

Expected behavior

If there is a logical limit to how big the number should be, then either the form shouldnt allow you to
click Search until you enter a valid number, or an error should be shown saying something along the lines of Days must be between X and Y after you click the button.

If there shouldnt be a limit on how big the number can be, then it should work the same as it does with a smaller number.

Tracebacks

Traceback (most recent call last):
  File "/opt/venvs/nav/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/opt/venvs/nav/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/source/python/nav/web/radius/views.py", line 246, in account_search
    query.execute()
  File "/source/python/nav/web/radius/db.py", line 512, in execute
    super(AcctSearchQuery, self).execute()
  File "/source/python/nav/web/radius/db.py", line 56, in execute
    cursor.execute(self.query, self.parameters)

Exception Type: InvalidTimeZoneDisplacementValue at /radius/acctsearch
Exception Value: time zone displacement out of range: "-337097637-05-20 16:01"
LINE 18:                         acctstoptime >= timestamp '-33709763...
                                                           ^
Traceback (most recent call last):
  File "/opt/venvs/nav/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/opt/venvs/nav/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/source/python/nav/web/radius/views.py", line 233, in account_search
    query = AcctSearchQuery(
  File "/source/python/nav/web/radius/db.py", line 405, in __init__
    DATEFORMAT_SEARCH, time.localtime(time.time() - searchtime)

Exception Type: OverflowError at /radius/acctsearch
Exception Value: timestamp out of range for platform time_t


@stveit stveit added the bug label Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant