From nobody Fri Mar 29 08:58:52 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=patchew-devel-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=patchew-devel-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1629137997; cv=none; d=zohomail.com; s=zohoarc; b=NgHqnj1KC9qbrHZACuOZGb9YlJdmW6ZWZdrTc0XsTZPkn+Vked2aS+weEYSmZEThUq/O2vsPYdEIWoDWEs1i9pW/cJ0L6CD2KyOd8LEZWGGfd+ZwrjfDbXuYXyooH8ZHKgmQ4hFAgnpwctopIsjNEl3YNVM+exZJ2r0XZZbrggg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629137997; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=eTz6+w8n3avvZgin7zAEPsJDJQHCSC0Ybhg5MnfT9Pg=; b=OgI0pGvNuHcwyhLOao/XKPLHipVmtClRiEugrLgLpO3L1wO9+xfCUG7bYYWwteEDPH45grlgkfY3M8RyzaoPsCBnR3RveuosaQN9y5V73wBvwd1RKlcNieT9taLBixhmB3I5PsZKv69n4CFATUbe4EC5W1QQRCxLWcvceRV+zZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=patchew-devel-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1629137997531459.3104188612531; Mon, 16 Aug 2021 11:19:57 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-520-Oc8UArToM-aq2mSSacP_xg-1; Mon, 16 Aug 2021 14:19:52 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0C4691008065; Mon, 16 Aug 2021 18:19:52 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 025075D9DD; Mon, 16 Aug 2021 18:19:51 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id BE1B4181A3E9; Mon, 16 Aug 2021 18:19:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 17GIJolM006438 for ; Mon, 16 Aug 2021 14:19:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 357762144B31; Mon, 16 Aug 2021 18:19:50 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 304112144B30 for ; Mon, 16 Aug 2021 18:19:46 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B9F76100B8D4 for ; Mon, 16 Aug 2021 18:19:46 +0000 (UTC) Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-237-Ci6iaZLmPdGzCkg823NDxw-1; Mon, 16 Aug 2021 14:19:42 -0400 Received: by mail-ej1-f49.google.com with SMTP id b15so33360965ejg.10; Mon, 16 Aug 2021 11:19:42 -0700 (PDT) Received: from avogadro.lan ([2001:b07:6468:f312:5e2c:eb9a:a8b6:fd3e]) by smtp.gmail.com with ESMTPSA id f12sm3968534ejz.99.2021.08.16.11.19.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Aug 2021 11:19:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1629137996; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=eTz6+w8n3avvZgin7zAEPsJDJQHCSC0Ybhg5MnfT9Pg=; b=UeQjuM0qrLCpoIoO0SNZ6EFKtk8Tgx9shWG1q9Q+Xk8aDiZ5gGeLFUU71XY9PeHLIHaMaJ kfMzjHjQb/X237VMZE5t3/Qn0VNYtYFXL64GWZ8tx7RAlquGymceQpckyr2ThRZAotkUjA mhrDzjZ+fiSer8cowyhsxCIen3E0z20= X-MC-Unique: Oc8UArToM-aq2mSSacP_xg-1 X-MC-Unique: Ci6iaZLmPdGzCkg823NDxw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=zdRTEaGA8KcwoXwN4HExqCGaAdV+CqR9fhMw81P4TPM=; b=Sx9khHSagC0OId8//KTvqlJbFskygs8VRj8zgi5BUOH8G2pUosMGQxTw1sFhZNetpF iI+BUNhn0KB93fimYFvJXvUSLl6peY9MiaxIHg0dw99YtcX8RxWkv4w+QwMVJx6jImSU Wdreprj+1nCs2BlnCDNTsjET64I7IyjNDGs0+DlHXZROJZz6jigrLTvcVmhWxJ8wVGyO qhc5Ria46OArxHxO696Ds+OgQ1cX4XYP72YTnBhL6yL9ZfRprdW3d2HTJSDw4l7zth+G yWPGZqMSOZsOk0wjqh2BO3cgxYUThkaGCBc8mcT9IOxn45irfqR5bhaOr+UgUZ1ldZT/ 9inQ== X-Gm-Message-State: AOAM532aOeE/W7/Urg1uQCingQYs6tVerKjtk7y6ntrpw8v7wAoVebNh ukJIJRkccHsuhGL1X7yQyCuqmVNTjLmrBg== X-Google-Smtp-Source: ABdhPJytCwkFqK+hkdV9A8c2+t0wU9+ASZ71c6k8gAOfnafTBycHKI6vbJEHwgjUdRC3hdDATTwF2A== X-Received: by 2002:a17:906:b0c8:: with SMTP id bk8mr17238215ejb.412.1629137981054; Mon, 16 Aug 2021 11:19:41 -0700 (PDT) From: Paolo Bonzini To: patchew-devel@redhat.com Date: Mon, 16 Aug 2021 20:19:39 +0200 Message-Id: <20210816181939.7142-1-pbonzini@redhat.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: patchew-devel@redhat.com Cc: John Snow Subject: [Patchew-devel] [PATCH] fix parsing of RFC2047 headers X-BeenThere: patchew-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Patchew development and discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: patchew-devel-bounces@redhat.com Errors-To: patchew-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=patchew-devel-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1629137997893100001 Content-Type: text/plain; charset="utf-8" Quoting : > NOTE: Decoding and display of encoded-words occurs *after* a > structured field body is parsed into tokens. It is therefore > possible to hide special characters in encoded-words which, when > displayed, will be indistinguishable from special characters in the > surrounding text. For this and other reasons, it is NOT generally > possible to translate a message header containing encoded-words to > an unencoded form which can be parsed by an RFC 822 mail reader. So do not use decode_header() on the whole From header, instead parse the header first, then decode the name which could be RFC2047 encoded. Reported-by: John Snow Signed-off-by: Paolo Bonzini --- mbox.py | 3 ++- tests/data/0035-rfc2047-from.mbox.gz | Bin 0 -> 8188 bytes tests/test_mbox.py | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tests/data/0035-rfc2047-from.mbox.gz diff --git a/mbox.py b/mbox.py index be10166..20abca1 100644 --- a/mbox.py +++ b/mbox.py @@ -28,7 +28,8 @@ def _parse_header(header): =20 =20 def parse_address(addr_str): - name, addr =3D email.utils.parseaddr(_parse_header(addr_str)) + name, addr =3D email.utils.parseaddr(addr_str) + name =3D _parse_header(name) return name, addr =20 =20 diff --git a/tests/data/0035-rfc2047-from.mbox.gz b/tests/data/0035-rfc2047= -from.mbox.gz new file mode 100644 index 0000000000000000000000000000000000000000..1e59ea710ee9cf10c199c8b45ad= a078a103052fd GIT binary patch literal 8188 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 it(Z{4Z_WB>qomDp$i literal 0 HcmV?d00001 diff --git a/tests/test_mbox.py b/tests/test_mbox.py index 8a86d11..4312a2e 100755 --- a/tests/test_mbox.py +++ b/tests/test_mbox.py @@ -62,6 +62,12 @@ Virtualization: qemu.org | libvirt.org msg =3D mbox.MboxMessage(f.read()) self.assertTrue(msg.is_patch()) =20 + def test_rfc2047_from(self): + dp =3D self.get_data_path("0035-rfc2047-from.mbox.gz") + with open(dp, "r") as f: + msg =3D mbox.MboxMessage(f.read()) + self.assertTrue(msg.get_from()[1] =3D=3D 'AIERPATIJIANG1@kingsoft.= com') + def test_get_json(self): dp =3D self.get_data_path("0001-simple-patch.mbox.gz") with open(dp, "r") as f: --=20 2.31.1 _______________________________________________ Patchew-devel mailing list Patchew-devel@redhat.com https://listman.redhat.com/mailman/listinfo/patchew-devel