[PATCH] mbox: do not copy Content-Type into exported mbox
Daniel Axtens
dja at axtens.net
Fri Aug 23 15:02:15 AEST 2019
Applied to master and stable/2.1.
> Daniel reports a patch + comment combination that breaks in
> git am. The patch reports a Content-Type of US-ASCII, while
> the comment adds a Ack with UTF-8 characters. The exported
> mbox contains both the original Content-Type, and a UTF-8
> Content-Type that we set. However, because the US-ASCII one
> occurs later, git am honours it instead of ours, and chokes
> on the UTF-8 characters.
>
> Strip out any subsequent Content-Type:s. We normalise things
> to UTF-8 and should not allow it to be overridden.
>
> Add a test for this, based on the original report.
>
> Reported-by: Daniel Borkmann <daniel at iogearbox.net>
> Signed-off-by: Daniel Axtens <dja at axtens.net>
>
> --
>
> This should go to stable too.
> ---
> .../series/bugs-multiple-content-types.mbox | 172 ++++++++++++++++++
> patchwork/tests/test_series.py | 11 ++
> patchwork/views/utils.py | 4 +-
> 3 files changed, 185 insertions(+), 2 deletions(-)
> create mode 100644 patchwork/tests/series/bugs-multiple-content-types.mbox
>
> diff --git a/patchwork/tests/series/bugs-multiple-content-types.mbox b/patchwork/tests/series/bugs-multiple-content-types.mbox
> new file mode 100644
> index 000000000000..f7006b4474ff
> --- /dev/null
> +++ b/patchwork/tests/series/bugs-multiple-content-types.mbox
> @@ -0,0 +1,172 @@
> +From mboxrd at z Thu Jan 1 00:00:00 1970
> +Return-Path: <SRS0=vqEd=WQ=vger.kernel.org=netdev-owner at kernel.org>
> +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
> + aws-us-west-2-korg-lkml-1.web.codeaurora.org
> +X-Spam-Level:
> +X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,
> + INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,
> + URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no
> + version=3.4.0
> +Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
> + by smtp.lore.kernel.org (Postfix) with ESMTP id A702DC3A5A2
> + for <netdev at archiver.kernel.org>; Tue, 20 Aug 2019 01:33:12 +0000 (UTC)
> +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
> + by mail.kernel.org (Postfix) with ESMTP id 8717B22DA7
> + for <netdev at archiver.kernel.org>; Tue, 20 Aug 2019 01:33:12 +0000 (UTC)
> +Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
> + id S1728887AbfHTBdL (ORCPT <rfc822;netdev at archiver.kernel.org>);
> + Mon, 19 Aug 2019 21:33:11 -0400
> +Received: from szxga05-in.huawei.com ([45.249.212.191]:4731 "EHLO huawei.com"
> + rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP
> + id S1728627AbfHTBdL (ORCPT <rfc822;netdev at vger.kernel.org>);
> + Mon, 19 Aug 2019 21:33:11 -0400
> +Received: from DGGEMS411-HUB.china.huawei.com (unknown [172.30.72.59])
> + by Forcepoint Email with ESMTP id EF227A58CA1FC4ADCFA3;
> + Tue, 20 Aug 2019 09:33:03 +0800 (CST)
> +Received: from localhost.localdomain.localdomain (10.175.113.25) by
> + DGGEMS411-HUB.china.huawei.com (10.3.19.211) with Microsoft SMTP Server id
> + 14.3.439.0; Tue, 20 Aug 2019 09:32:56 +0800
> +From: YueHaibing <yuehaibing at huawei.com>
> +To: <bjorn.topel at intel.com>, <magnus.karlsson at intel.com>,
> + <jonathan.lemon at gmail.com>, <ast at kernel.org>,
> + <daniel at iogearbox.net>, <kafai at fb.com>, <songliubraving at fb.com>,
> + <yhs at fb.com>, <john.fastabend at gmail.com>
> +CC: YueHaibing <yuehaibing at huawei.com>, <netdev at vger.kernel.org>,
> + <bpf at vger.kernel.org>, <kernel-janitors at vger.kernel.org>
> +Subject: [PATCH -next] bpf: Use PTR_ERR_OR_ZERO in xsk_map_inc()
> +Date: Tue, 20 Aug 2019 01:36:52 +0000
> +Message-ID: <20190820013652.147041-1-yuehaibing at huawei.com>
> +X-Mailer: git-send-email 2.20.1
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=US-ASCII
> +Content-Transfer-Encoding: 7BIT
> +X-Originating-IP: [10.175.113.25]
> +X-CFilter-Loop: Reflected
> +Sender: netdev-owner at vger.kernel.org
> +Precedence: bulk
> +List-ID: <netdev.vger.kernel.org>
> +X-Mailing-List: netdev at vger.kernel.org
> +Archived-At: <https://lore.kernel.org/netdev/20190820013652.147041-1-yuehaibing@huawei.com/>
> +List-Archive: <https://lore.kernel.org/netdev/>
> +List-Post: <mailto:netdev at vger.kernel.org>
> +
> +Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
> +
> +Signed-off-by: YueHaibing <yuehaibing at huawei.com>
> +---
> + kernel/bpf/xskmap.c | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/kernel/bpf/xskmap.c b/kernel/bpf/xskmap.c
> +index 4cc28e226398..942c662e2eed 100644
> +--- a/kernel/bpf/xskmap.c
> ++++ b/kernel/bpf/xskmap.c
> +@@ -21,7 +21,7 @@ int xsk_map_inc(struct xsk_map *map)
> + struct bpf_map *m = &map->map;
> +
> + m = bpf_map_inc(m, false);
> +- return IS_ERR(m) ? PTR_ERR(m) : 0;
> ++ return PTR_ERR_OR_ZERO(m);
> + }
> +
> + void xsk_map_put(struct xsk_map *map)
> +
> +
> +From mboxrd at z Thu Jan 1 00:00:00 1970
> +Return-Path: <SRS0=vqEd=WQ=vger.kernel.org=netdev-owner at kernel.org>
> +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
> + aws-us-west-2-korg-lkml-1.web.codeaurora.org
> +X-Spam-Level:
> +X-Spam-Status: No, score=-8.2 required=3.0 tests=FROM_EXCESS_BASE64,
> + HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
> + SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable
> + autolearn_force=no version=3.4.0
> +Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
> + by smtp.lore.kernel.org (Postfix) with ESMTP id 02AB1C3A59E
> + for <netdev at archiver.kernel.org>; Tue, 20 Aug 2019 07:28:35 +0000 (UTC)
> +Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
> + by mail.kernel.org (Postfix) with ESMTP id CC7942082F
> + for <netdev at archiver.kernel.org>; Tue, 20 Aug 2019 07:28:34 +0000 (UTC)
> +Received: (majordomo at vger.kernel.org) by vger.kernel.org via listexpand
> + id S1729348AbfHTH2e (ORCPT <rfc822;netdev at archiver.kernel.org>);
> + Tue, 20 Aug 2019 03:28:34 -0400
> +Received: from mga18.intel.com ([134.134.136.126]:58020 "EHLO mga18.intel.com"
> + rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
> + id S1729047AbfHTH2e (ORCPT <rfc822;netdev at vger.kernel.org>);
> + Tue, 20 Aug 2019 03:28:34 -0400
> +X-Amp-Result: SKIPPED(no attachment in message)
> +X-Amp-File-Uploaded: False
> +Received: from orsmga007.jf.intel.com ([10.7.209.58])
> + by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Aug 2019 00:28:33 -0700
> +X-ExtLoop1: 1
> +X-IronPort-AV: E=Sophos;i="5.64,408,1559545200";
> + d="scan'208";a="169001452"
> +Received: from arappl-mobl2.ger.corp.intel.com (HELO btopel-mobl.ger.intel.com) ([10.252.53.140])
> + by orsmga007.jf.intel.com with ESMTP; 20 Aug 2019 00:28:27 -0700
> +Subject: Re: [PATCH -next] bpf: Use PTR_ERR_OR_ZERO in xsk_map_inc()
> +To: YueHaibing <yuehaibing at huawei.com>, magnus.karlsson at intel.com,
> + jonathan.lemon at gmail.com, ast at kernel.org, daniel at iogearbox.net,
> + kafai at fb.com, songliubraving at fb.com, yhs at fb.com,
> + john.fastabend at gmail.com
> +Cc: netdev at vger.kernel.org, bpf at vger.kernel.org,
> + kernel-janitors at vger.kernel.org
> +References: <20190820013652.147041-1-yuehaibing at huawei.com>
> +From: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= <bjorn.topel at intel.com>
> +Message-ID: <93fafdab-8fb3-0f2b-8f36-0cf297db3cd9 at intel.com>
> +Date: Tue, 20 Aug 2019 09:28:26 +0200
> +User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
> + Thunderbird/60.8.0
> +MIME-Version: 1.0
> +In-Reply-To: <20190820013652.147041-1-yuehaibing at huawei.com>
> +Content-Type: text/plain; charset=utf-8; format=flowed
> +Content-Language: en-US
> +Content-Transfer-Encoding: 8bit
> +Sender: netdev-owner at vger.kernel.org
> +Precedence: bulk
> +List-ID: <netdev.vger.kernel.org>
> +X-Mailing-List: netdev at vger.kernel.org
> +Archived-At: <https://lore.kernel.org/netdev/93fafdab-8fb3-0f2b-8f36-0cf297db3cd9@intel.com/>
> +List-Archive: <https://lore.kernel.org/netdev/>
> +List-Post: <mailto:netdev at vger.kernel.org>
> +
> +On 2019-08-20 03:36, YueHaibing wrote:
> +> Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
> +>
> +> Signed-off-by: YueHaibing <yuehaibing at huawei.com>
> +> ---
> +> kernel/bpf/xskmap.c | 2 +-
> +> 1 file changed, 1 insertion(+), 1 deletion(-)
> +>
> +> diff --git a/kernel/bpf/xskmap.c b/kernel/bpf/xskmap.c
> +> index 4cc28e226398..942c662e2eed 100644
> +> --- a/kernel/bpf/xskmap.c
> +> +++ b/kernel/bpf/xskmap.c
> +> @@ -21,7 +21,7 @@ int xsk_map_inc(struct xsk_map *map)
> +> struct bpf_map *m = &map->map;
> +>
> +> m = bpf_map_inc(m, false);
> +> - return IS_ERR(m) ? PTR_ERR(m) : 0;
> +> + return PTR_ERR_OR_ZERO(m);
> +> }
> +>
> +> void xsk_map_put(struct xsk_map *map)
> +>
> +
> +Acked-by: Björn Töpel <bjorn.topel at intel.com>
> +
> +Thanks for the patch!
> +
> +For future patches: Prefix AF_XDP socket work with "xsk:" and use "PATCH
> +bpf-next" to let the developers know what tree you're aiming for.
> +
> +
> +
> +Cheers!
> +Björn
> +
> +
> +>
> +>
> +
> +
> +
> diff --git a/patchwork/tests/test_series.py b/patchwork/tests/test_series.py
> index f5e6b5b07220..d78f7dc8b89b 100644
> --- a/patchwork/tests/test_series.py
> +++ b/patchwork/tests/test_series.py
> @@ -11,6 +11,7 @@ from django.test import TestCase
> from patchwork import models
> from patchwork import parser
> from patchwork.tests import utils
> +from patchwork.views.utils import patch_to_mbox
>
>
> TEST_SERIES_DIR = os.path.join(os.path.dirname(__file__), 'series')
> @@ -267,6 +268,16 @@ class BaseSeriesTest(_BaseTestCase):
> self.assertSerialized(patches, [2])
> self.assertSerialized(covers, [1])
>
> + def test_multiple_content_types(self):
> + """Test what happens when a patch and comment have different
> + Content-Type headers."""
> +
> + _, patches, _ = self._parse_mbox(
> + 'bugs-multiple-content-types.mbox', [0, 1, 1])
> +
> + patch = patches[0]
> + self.assertEqual(patch_to_mbox(patch).count('Content-Type:'), 1)
> +
>
> class RevisedSeriesTest(_BaseTestCase):
> """Tests for a series plus a single revision.
> diff --git a/patchwork/views/utils.py b/patchwork/views/utils.py
> index 1da1aaabf503..d65aa5816336 100644
> --- a/patchwork/views/utils.py
> +++ b/patchwork/views/utils.py
> @@ -84,8 +84,8 @@ def _submission_to_mbox(submission):
>
> orig_headers = HeaderParser().parsestr(str(submission.headers))
> for key, val in orig_headers.items():
> - # we set this ourselves
> - if key == 'Content-Transfer-Encoding':
> + # we set these ourselves
> + if key in ['Content-Type', 'Content-Transfer-Encoding']:
> continue
> # we don't save GPG signatures described in RFC1847 [1] so this
> # Content-Type value is invalid
> --
> 2.20.1
More information about the Patchwork
mailing list