public inbox for [email protected]
help / color / mirror / Atom feedFrom: Célestin Matte <[email protected]>
To: PostgreSQL WWW <[email protected]>
Subject: [PATCH] pgarchives: Fix crash when receiving a request with an incorrect If-Modified-Since header
Date: Fri, 12 Jun 2026 10:52:08 +0200
Message-ID: <[email protected]> (raw)
Django crashes when receiving a request containing a If-Modified-Since header with an incorrect date:
Traceback (most recent call last):
File "/path/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/path/lib/python3.13/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/path/archives/mailarchives/views.py", line 112, in __cache
resp = fn(request, *_args, **_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/path/archives/mailarchives/views.py", line 500, in message
if ims >= newest:
^^^^^^^^^^^^^
Exception Type: TypeError at /message-id/<redacted>
Exception Value: '>=' not supported between instances of 'NoneType' and 'int'
This patch adds a condition to avoid this.
(For some reason, archives on postgresql.org do NOT crash on this. Are headers filtered before reaching pgarchives there? When deploying upstream version of pgarchives locally, I do have this crash)
--
Célestin Matte
Attachments:
[text/x-patch] 0001-Fix-crash-when-receiving-a-request-with-an-incorrect.patch (1.0K, ../[email protected]/2-0001-Fix-crash-when-receiving-a-request-with-an-incorrect.patch)
download | inline diff:
From 0f1b7fd1b9c609811c05b8ee1c739b80d31ac491 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9lestin=20Matte?= <[email protected]>
Date: Thu, 11 Jun 2026 18:47:00 +0200
Subject: [PATCH] Fix crash when receiving a request with an incorrect
If-Modified-Since header
---
django/archives/mailarchives/views.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/django/archives/mailarchives/views.py b/django/archives/mailarchives/views.py
index fe74f7c..f258d5d 100644
--- a/django/archives/mailarchives/views.py
+++ b/django/archives/mailarchives/views.py
@@ -482,7 +482,7 @@ def message(request, msgid):
newest = calendar.timegm(max(threadstruct, key=lambda x: x['date'])['date'].utctimetuple())
if 'HTTP_IF_MODIFIED_SINCE' in request.META and not settings.DEBUG:
ims = parse_http_date_safe(request.META.get("HTTP_IF_MODIFIED_SINCE"))
- if ims >= newest:
+ if ims is not None and ims >= newest:
return HttpResponseNotModified()
responses = [t for t in threadstruct if t['parentid'] == m.id]
--
2.54.0
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: [PATCH] pgarchives: Fix crash when receiving a request with an incorrect If-Modified-Since header
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox