From nobody Tue Apr 16 06:17:58 2024 Delivered-To: importer2@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=patchew-devel-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=patchew-devel-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=bytedance.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1644921386820260.051093447648; Tue, 15 Feb 2022 02:36:26 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-399-GJ7awPiPOvOoWSGFDhDAkw-1; Tue, 15 Feb 2022 05:36:23 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0845D1006AA0; Tue, 15 Feb 2022 10:36:22 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 000926FB87; Tue, 15 Feb 2022 10:36:21 +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 ECC594BB7C; Tue, 15 Feb 2022 10:36:21 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 21FAaJnY013020 for ; Tue, 15 Feb 2022 05:36:20 -0500 Received: by smtp.corp.redhat.com (Postfix) id 99BC7407DEC5; Tue, 15 Feb 2022 10:36:19 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 952A5407DEC3 for ; Tue, 15 Feb 2022 10:36:19 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 7330B802319 for ; Tue, 15 Feb 2022 10:36:19 +0000 (UTC) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-668-pHBPydIUP0iSjuJV6Qo51w-1; Tue, 15 Feb 2022 05:36:17 -0500 Received: by mail-wm1-f45.google.com with SMTP id v129so11094253wme.2 for ; Tue, 15 Feb 2022 02:36:16 -0800 (PST) Received: from localhost ([46.69.19.210]) by smtp.gmail.com with ESMTPSA id b2sm8301379wri.35.2022.02.15.02.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Feb 2022 02:36:15 -0800 (PST) X-MC-Unique: GJ7awPiPOvOoWSGFDhDAkw-1 X-MC-Unique: pHBPydIUP0iSjuJV6Qo51w-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=51Gz8ZvRNAVJaI3GkhOPqrEDASFgOTiqAcNzY91l3iU=; b=xW21MGVRC29O2SLfRsv8gf3NZumtBn/5sw96TnR32uEdYvy7m3BU7YhiSyYrr++fHI zEXMwk/kuWO6eq+gcEffwwj4/Fa0s4pvl66ReqmMIk1HIZvjStC4b28vjDd7Jwdi07R5 DODKpWEYlu3+Q7LkrT4aVcseikNrWov4/MxnIUcpe+mzDoZMexXfYotKAV4VPYEeKmkV SNJN/+8DCRvHDakSO1UfQQlwyDL/0ntIhQIrWeYl24nErmVNIOJGD+gd4jG2NPxDjK/f IHIsI60EHAqRd6m1TbUUO9Sebrq4z+PvS3hSG7CK0436knWAUFtMCWwtMBpM61wHueFI tAGA== X-Gm-Message-State: AOAM533TnWzjjoZvqqZgwhpgnb1QLf3oXrpEnm2w/TkTscDLRPQdYflm J8P/l9YxTn6L7MhLquD49P8JveCWNLR+pQ== X-Google-Smtp-Source: ABdhPJwvVnyobnbYvimOBpcnZIZUezMysrifK472XMJYzWqBUOeKv4mx+Z4HYyUQgA5eiUC2uW7jDA== X-Received: by 2002:a05:600c:384c:b0:37b:c771:499c with SMTP id s12-20020a05600c384c00b0037bc771499cmr2423668wmr.141.1644921375766; Tue, 15 Feb 2022 02:36:15 -0800 (PST) From: Fam Zheng To: patchew-devel@redhat.com Date: Tue, 15 Feb 2022 10:36:14 +0000 Message-Id: <20220215103614.3002033-1-fam.zheng@bytedance.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.84 on 10.11.54.1 X-loop: patchew-devel@redhat.com Cc: Fam Zheng , Mat Martineau Subject: [Patchew-devel] [PATCH] import: Fix mailing list matching 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.15 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-ZM-MESSAGEID: 1644921389148100003 Content-Type: text/plain; charset="utf-8" If the mbox has no To: field, we have an empty addr in the returned address list. This is later used in Project.recognizes() as: if addr in self.mailing_list: ... Remove the empty result. Also preprocess the mailing_list before matching. Reported-by: Mat Martineau Signed-off-by: Fam Zheng Reviewed-by: Paolo Bonzini --- api/models.py | 6 +++++- mbox.py | 2 ++ tests/data/0036-patch-with-no-to-header.mbox.gz | Bin 0 -> 4783 bytes tests/test_import.py | 11 +++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/data/0036-patch-with-no-to-header.mbox.gz diff --git a/api/models.py b/api/models.py index 5879466..18392b1 100644 --- a/api/models.py +++ b/api/models.py @@ -265,11 +265,15 @@ class Project(models.Model): return True return False =20 + def get_mailing_lists(self): + r =3D self.mailing_list.split() + return [x.rstrip(',;') for x in r] + def recognizes(self, m): """Test if @m is considered a message in this project""" addr_ok =3D False for name, addr in m.get_to() + m.get_cc(): - if addr in self.mailing_list: + if addr in self.get_mailing_lists(): addr_ok =3D True break if addr_ok: diff --git a/mbox.py b/mbox.py index 20abca1..bcd3600 100644 --- a/mbox.py +++ b/mbox.py @@ -115,6 +115,8 @@ class MboxMessage(object): addrs =3D email.utils.getaddresses(f) for name, addr in addrs: name =3D name or addr + if not addr: + continue if text: ret.append(_addr_fmt_text(name, addr)) else: diff --git a/tests/data/0036-patch-with-no-to-header.mbox.gz b/tests/data/0= 036-patch-with-no-to-header.mbox.gz new file mode 100644 index 0000000000000000000000000000000000000000..32a33915a9317151845bec80e33= 49b7de8064ac5 GIT binary patch literal 4783 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