diff mbox series

mbox: do not copy Content-Type into exported mbox

Message ID 20190821051544.28867-1-dja@axtens.net
State Accepted
Headers show
Series mbox: do not copy Content-Type into exported mbox | expand

Commit Message

Daniel Axtens Aug. 21, 2019, 5:15 a.m. UTC
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@iogearbox.net>
Signed-off-by: Daniel Axtens <dja@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

Comments

Daniel Axtens Aug. 23, 2019, 5:02 a.m. UTC | #1
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@iogearbox.net>
> Signed-off-by: Daniel Axtens <dja@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-owner@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@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@archiver.kernel.org>; Tue, 20 Aug 2019 01:33:12 +0000 (UTC)
> +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
> +        id S1728887AbfHTBdL (ORCPT <rfc822;netdev@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@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@huawei.com>
> +To:     <bjorn.topel@intel.com>, <magnus.karlsson@intel.com>,
> +        <jonathan.lemon@gmail.com>, <ast@kernel.org>,
> +        <daniel@iogearbox.net>, <kafai@fb.com>, <songliubraving@fb.com>,
> +        <yhs@fb.com>, <john.fastabend@gmail.com>
> +CC:     YueHaibing <yuehaibing@huawei.com>, <netdev@vger.kernel.org>,
> +        <bpf@vger.kernel.org>, <kernel-janitors@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@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@vger.kernel.org
> +Precedence: bulk
> +List-ID: <netdev.vger.kernel.org>
> +X-Mailing-List: netdev@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@vger.kernel.org>
> +
> +Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
> +
> +Signed-off-by: YueHaibing <yuehaibing@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-owner@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@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@archiver.kernel.org>; Tue, 20 Aug 2019 07:28:34 +0000 (UTC)
> +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
> +        id S1729348AbfHTH2e (ORCPT <rfc822;netdev@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@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@huawei.com>, magnus.karlsson@intel.com,
> +        jonathan.lemon@gmail.com, ast@kernel.org, daniel@iogearbox.net,
> +        kafai@fb.com, songliubraving@fb.com, yhs@fb.com,
> +        john.fastabend@gmail.com
> +Cc:     netdev@vger.kernel.org, bpf@vger.kernel.org,
> +        kernel-janitors@vger.kernel.org
> +References: <20190820013652.147041-1-yuehaibing@huawei.com>
> +From:   =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= <bjorn.topel@intel.com>
> +Message-ID: <93fafdab-8fb3-0f2b-8f36-0cf297db3cd9@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@huawei.com>
> +Content-Type: text/plain; charset=utf-8; format=flowed
> +Content-Language: en-US
> +Content-Transfer-Encoding: 8bit
> +Sender: netdev-owner@vger.kernel.org
> +Precedence: bulk
> +List-ID: <netdev.vger.kernel.org>
> +X-Mailing-List: netdev@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@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@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@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
diff mbox series

Patch

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-owner@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@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@archiver.kernel.org>; Tue, 20 Aug 2019 01:33:12 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1728887AbfHTBdL (ORCPT <rfc822;netdev@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@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@huawei.com>
+To:     <bjorn.topel@intel.com>, <magnus.karlsson@intel.com>,
+        <jonathan.lemon@gmail.com>, <ast@kernel.org>,
+        <daniel@iogearbox.net>, <kafai@fb.com>, <songliubraving@fb.com>,
+        <yhs@fb.com>, <john.fastabend@gmail.com>
+CC:     YueHaibing <yuehaibing@huawei.com>, <netdev@vger.kernel.org>,
+        <bpf@vger.kernel.org>, <kernel-janitors@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@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@vger.kernel.org
+Precedence: bulk
+List-ID: <netdev.vger.kernel.org>
+X-Mailing-List: netdev@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@vger.kernel.org>
+
+Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
+
+Signed-off-by: YueHaibing <yuehaibing@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-owner@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@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@archiver.kernel.org>; Tue, 20 Aug 2019 07:28:34 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1729348AbfHTH2e (ORCPT <rfc822;netdev@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@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@huawei.com>, magnus.karlsson@intel.com,
+        jonathan.lemon@gmail.com, ast@kernel.org, daniel@iogearbox.net,
+        kafai@fb.com, songliubraving@fb.com, yhs@fb.com,
+        john.fastabend@gmail.com
+Cc:     netdev@vger.kernel.org, bpf@vger.kernel.org,
+        kernel-janitors@vger.kernel.org
+References: <20190820013652.147041-1-yuehaibing@huawei.com>
+From:   =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= <bjorn.topel@intel.com>
+Message-ID: <93fafdab-8fb3-0f2b-8f36-0cf297db3cd9@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@huawei.com>
+Content-Type: text/plain; charset=utf-8; format=flowed
+Content-Language: en-US
+Content-Transfer-Encoding: 8bit
+Sender: netdev-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <netdev.vger.kernel.org>
+X-Mailing-List: netdev@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@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@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@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