[PATCH 07/10] parser: Don't pass a message-id longer than 255 chars to the db

Daniel Axtens dja at axtens.net
Wed Jun 28 17:48:49 AEST 2017


The db limit is 255: we need to make sure we don't pass anything
longer in or it will throw an exception.

Signed-off-by: Daniel Axtens <dja at axtens.net>
---
 patchwork/parser.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/patchwork/parser.py b/patchwork/parser.py
index 80450c2e4860..46e6ca161574 100644
--- a/patchwork/parser.py
+++ b/patchwork/parser.py
@@ -225,7 +225,7 @@ def _find_series_by_references(project, mail):
     for ref in refs:
         try:
             return SeriesReference.objects.get(
-                msgid=ref, series__project=project).series
+                msgid=ref[:255], series__project=project).series
         except SeriesReference.DoesNotExist:
             continue
 
@@ -557,6 +557,7 @@ def find_comment_content(mail):
 
 def find_submission_for_comment(project, refs):
     for ref in refs:
+        ref = ref[:255]
         # first, check for a direct reply
         try:
             submission = Submission.objects.get(project=project, msgid=ref)
@@ -934,7 +935,7 @@ def parse_mail(mail, list_id=None):
     msgid = clean_header(mail.get('Message-Id'))
     if not msgid:
         raise ValueError("Broken 'Message-Id' header")
-    msgid = msgid.strip()
+    msgid = msgid.strip()[:255]
 
     author = find_author(mail)
     subject = mail.get('Subject')
@@ -993,6 +994,7 @@ def parse_mail(mail, list_id=None):
             # be possible to identify the relationship between patches
             # as the earlier patch does not reference the later one.
             for ref in refs + [msgid]:
+                ref = ref[:255]
                 # we don't want duplicates
                 try:
                     # we could have a ref to a previous series. (For
-- 
2.11.0



More information about the Patchwork mailing list