From: Veronika Kabatova Date: Wed, 7 Feb 2018 13:23:15 +0000 (+0100) Subject: Fix CRLF newlines upon submission changes X-Git-Tag: v2.1.0-rc1~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f6685a2a0b12c08c39f9de84684de8d033c57f1;p=thirdparty%2Fpatchwork.git Fix CRLF newlines upon submission changes After changing submission via admin interface, CRLF newlines are suddenly present in the body. Replace them back to '\n'. The issue was found after modifying submission via admin interface using Python 2 and downloading the respective mbox file (git choked on downloaded patch because of malformed line endings). Python 3's mail module uses '\n' internally so the problem doesn't manifest there, but the content received by Django/JS is still saved in the database with CRLF line endings which shouldn't be there. Signed-off-by: Veronika Kabatova Reviewed-by: Stephen Finucane --- diff --git a/patchwork/models.py b/patchwork/models.py index 3bf7c72d..a8bb015b 100644 --- a/patchwork/models.py +++ b/patchwork/models.py @@ -328,6 +328,14 @@ class EmailMixin(models.Model): return ''.join([match.group(0) + '\n' for match in self.response_re.finditer(self.content)]) + def save(self, *args, **kwargs): + # Modifying a submission via admin interface changes '\n' newlines in + # message content to '\r\n'. We need to fix them to avoid problems, + # especially as git complains about malformed patches when PW runs + # on PY2 + self.content = self.content.replace('\r\n', '\n') + super(EmailMixin, self).save(*args, **kwargs) + class Meta: abstract = True