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 <dan...@iogearbox.net> Signed-off-by: Daniel Axtens <d...@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@z Thu Jan 1 00:00:00 1970 +Return-Path: <SRS0=vqEd=WQ=vger.kernel.org=netdev-ow...@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 <net...@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 <net...@archiver.kernel.org>; Tue, 20 Aug 2019 01:33:12 +0000 (UTC) +Received: (majord...@vger.kernel.org) by vger.kernel.org via listexpand + id S1728887AbfHTBdL (ORCPT <rfc822;net...@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;net...@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 <yuehaib...@huawei.com> +To: <bjorn.to...@intel.com>, <magnus.karls...@intel.com>, + <jonathan.le...@gmail.com>, <a...@kernel.org>, + <dan...@iogearbox.net>, <ka...@fb.com>, <songliubrav...@fb.com>, + <y...@fb.com>, <john.fastab...@gmail.com> +CC: YueHaibing <yuehaib...@huawei.com>, <net...@vger.kernel.org>, + <b...@vger.kernel.org>, <kernel-janit...@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-yuehaib...@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-ow...@vger.kernel.org +Precedence: bulk +List-ID: <netdev.vger.kernel.org> +X-Mailing-List: net...@vger.kernel.org +Archived-At: <https://lore.kernel.org/netdev/20190820013652.147041-1-yuehaib...@huawei.com/> +List-Archive: <https://lore.kernel.org/netdev/> +List-Post: <mailto:net...@vger.kernel.org> + +Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR + +Signed-off-by: YueHaibing <yuehaib...@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@z Thu Jan 1 00:00:00 1970 +Return-Path: <SRS0=vqEd=WQ=vger.kernel.org=netdev-ow...@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 <net...@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 <net...@archiver.kernel.org>; Tue, 20 Aug 2019 07:28:34 +0000 (UTC) +Received: (majord...@vger.kernel.org) by vger.kernel.org via listexpand + id S1729348AbfHTH2e (ORCPT <rfc822;net...@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;net...@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 <yuehaib...@huawei.com>, magnus.karls...@intel.com, + jonathan.le...@gmail.com, a...@kernel.org, dan...@iogearbox.net, + ka...@fb.com, songliubrav...@fb.com, y...@fb.com, + john.fastab...@gmail.com +Cc: net...@vger.kernel.org, b...@vger.kernel.org, + kernel-janit...@vger.kernel.org +References: <20190820013652.147041-1-yuehaib...@huawei.com> +From: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= <bjorn.to...@intel.com> +Message-ID: <93fafdab-8fb3-0f2b-8f36-0cf297db3...@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-yuehaib...@huawei.com> +Content-Type: text/plain; charset=utf-8; format=flowed +Content-Language: en-US +Content-Transfer-Encoding: 8bit +Sender: netdev-ow...@vger.kernel.org +Precedence: bulk +List-ID: <netdev.vger.kernel.org> +X-Mailing-List: net...@vger.kernel.org +Archived-At: <https://lore.kernel.org/netdev/93fafdab-8fb3-0f2b-8f36-0cf297db3...@intel.com/> +List-Archive: <https://lore.kernel.org/netdev/> +List-Post: <mailto:net...@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 <yuehaib...@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.to...@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 _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork