From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: RFE: pcre2 support Resent-From: Jaroslav Skarvada Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Fri, 19 Mar 2021 15:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: 47264@debbugs.gnu.org X-Debbugs-Original-To: bug-grep@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161616734717947 (code B ref -1); Fri, 19 Mar 2021 15:23:01 +0000 Received: (at submit) by debbugs.gnu.org; 19 Mar 2021 15:22:27 +0000 Received: from localhost ([127.0.0.1]:50794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNGxG-0004fP-MQ for submit@debbugs.gnu.org; Fri, 19 Mar 2021 11:22:26 -0400 Received: from lists.gnu.org ([209.51.188.17]:48414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNGxE-0004fH-09 for submit@debbugs.gnu.org; Fri, 19 Mar 2021 11:22:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35648) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNGxD-0002bh-MP for bug-grep@gnu.org; Fri, 19 Mar 2021 11:22:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:47645) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNGxA-0005So-Bs for bug-grep@gnu.org; Fri, 19 Mar 2021 11:22:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616167338; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JCMYod21YrIqh4+Q7qs127C94x7ijA8z3wYFhi6aLZU=; b=S3clHBE3J7qu79pv/lM+WeiVHRbxDAcr+gRbxF4usl95bpL6uKNC4/1mZiF5hhfoGzvYGc S8/QbVnH0gswLvUY5+g+diTnjYj1PN6p1EUuox5BR7uYCoQRbThEx6J0oqd2CgajuM6vf5 904B+ZtoJ7jYUNkHX4MlpzGFzXDJQM4= 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-304-34uLR2J6MQeYdAMOhM-Zrw-1; Fri, 19 Mar 2021 11:22:16 -0400 X-MC-Unique: 34uLR2J6MQeYdAMOhM-Zrw-1 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 E2A05104FB61 for ; Fri, 19 Mar 2021 15:22:15 +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 D9EF85D72E for ; Fri, 19 Mar 2021 15:22:15 +0000 (UTC) Received: from zmail22.collab.prod.int.phx2.redhat.com (zmail22.collab.prod.int.phx2.redhat.com [10.5.83.26]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D26DF1809C81 for ; Fri, 19 Mar 2021 15:22:15 +0000 (UTC) Date: Fri, 19 Mar 2021 11:22:15 -0400 (EDT) From: Jaroslav Skarvada Message-ID: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> MIME-Version: 1.0 X-Originating-IP: [10.40.195.17, 10.4.195.1] Thread-Topic: pcre2 support Thread-Index: hMluk8ct9QnBjP6GsGqSBy4hZtmJhg== X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jskarvad@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=63.128.21.124; envelope-from=jskarvad@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.251, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Hi, PCRE library has been superseded with PCRE2 project by PCRE upstream in 2015. PCRE upstream considers PCRE obsolete now and does not devote any resources to PCRE except of critical bugs. Please consider adding PCRE2 support. Downstream Fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=1755491 thanks & regards Jaroslav From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: RFE: pcre2 support Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Fri, 19 Mar 2021 21:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.161618785620568 (code B ref 47264); Fri, 19 Mar 2021 21:05:02 +0000 Received: (at 47264) by debbugs.gnu.org; 19 Mar 2021 21:04:16 +0000 Received: from localhost ([127.0.0.1]:51112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNMI3-0005Lf-Tq for submit@debbugs.gnu.org; Fri, 19 Mar 2021 17:04:16 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:57400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNMHx-0005LM-Ve for 47264@debbugs.gnu.org; Fri, 19 Mar 2021 17:04:14 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 42A87160091; Fri, 19 Mar 2021 14:04:03 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ZHlXezzdDMRn; Fri, 19 Mar 2021 14:04:02 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 8BBA416012D; Fri, 19 Mar 2021 14:04:02 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2jK-fp02hTTv; Fri, 19 Mar 2021 14:04:02 -0700 (PDT) Received: from [192.168.1.9] (cpe-23-243-218-95.socal.res.rr.com [23.243.218.95]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 5D432160091; Fri, 19 Mar 2021 14:04:02 -0700 (PDT) References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Fri, 19 Mar 2021 14:04:01 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) On 3/19/21 8:22 AM, Jaroslav Skarvada wrote: > Please consider adding PCRE2 support. Patches would be welcome. As I understand it, they're not trivial. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: RFE: pcre2 support Resent-From: L A Walsh Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 05 Apr 2021 08:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.16176109008881 (code B ref 47264); Mon, 05 Apr 2021 08:22:02 +0000 Received: (at 47264) by debbugs.gnu.org; 5 Apr 2021 08:21:40 +0000 Received: from localhost ([127.0.0.1]:36883 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTKUO-0002JB-0A for submit@debbugs.gnu.org; Mon, 05 Apr 2021 04:21:40 -0400 Received: from ishtar.tlinx.org ([173.164.175.65]:45910 helo=Ishtar.sc.tlinx.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTKUL-0002J3-W4 for 47264@debbugs.gnu.org; Mon, 05 Apr 2021 04:21:39 -0400 Received: from [192.168.3.12] (Athenae [192.168.3.12]) by Ishtar.sc.tlinx.org (8.14.7/8.14.4/SuSE Linux 0.8) with ESMTP id 1358LQ5f039303; Mon, 5 Apr 2021 01:21:29 -0700 Message-ID: <606AC888.5000207@tlinx.org> Date: Mon, 05 Apr 2021 01:21:28 -0700 From: L A Walsh User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 2021/03/19 14:04, Paul Eggert wrote: > On 3/19/21 8:22 AM, Jaroslav Skarvada wrote: > >> Please consider adding PCRE2 support. >> > > Patches would be welcome. As I understand it, they're not trivial. > --- What are differences from 1->2 and wondering why they are so non-trivial? I guess there are some benefits in moving to 2? Mostly curious... thanks > > > From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: RFE: pcre2 support Resent-From: Jeffrey Walton Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 05 Apr 2021 08:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: L A Walsh Cc: 47264@debbugs.gnu.org Reply-To: noloader@gmail.com Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.16176115369907 (code B ref 47264); Mon, 05 Apr 2021 08:33:01 +0000 Received: (at 47264) by debbugs.gnu.org; 5 Apr 2021 08:32:16 +0000 Received: from localhost ([127.0.0.1]:36894 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTKee-0002Zj-6f for submit@debbugs.gnu.org; Mon, 05 Apr 2021 04:32:16 -0400 Received: from mail-il1-f171.google.com ([209.85.166.171]:37875) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTKea-0002ZU-VA for 47264@debbugs.gnu.org; Mon, 05 Apr 2021 04:32:15 -0400 Received: by mail-il1-f171.google.com with SMTP id z9so9581164ilb.4 for <47264@debbugs.gnu.org>; Mon, 05 Apr 2021 01:32:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=nA1bedIMj5T5vu4/KhZ4vK7r/P4fuaN3Y6npLB9MuGw=; b=tkMA172UD5WzP1Om4cZmLnQSgkZX/2lf9bNHR+tpmPODwY5nOkiH6e/7V7hbJOteVT /X1UhGoUi7DzmK54IKuynI+aL6QghIS+9j0K4WrPPXxMH2oZJWL6fXUZztN6Pw7wwie4 vWuSgRsO/bXqBZgjERmJgeNmAPDnIrHfTnePc3XfXYsLg50PQdHmhSFnk/Y6M3J5xCyd lSDRsZBazPIvzmLlhuzLjX8gVLhd4w45JIU1XHMJoKIaQ/3enKxWuzQbPUNmPZZdxkSF SldAHbc7HrmP9rONJjOMXbdaYhfsPhDOc0YWbSuilg6cJsZTTHqdx+H6ch8WDHydEBm3 Fgnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=nA1bedIMj5T5vu4/KhZ4vK7r/P4fuaN3Y6npLB9MuGw=; b=gpuA6FEwskdZRfTdQR0bv4dNot6lIxbT74+c8H/pap50lx9U0fqnDGl26nYFrBxvIz bPax7hH+D1ygbLN4tRxoe5C9Ks4nekw5E/LbltqcqEkfOwzK5850YkqIG0pK1X9RpLir XAOdBTxd1ij+fbFXdlpTbf72S1vgWyEocxJtaF/4dVVd4pDMrq11wnOwis09nUqV4BkH JfndXoMcjCcFPREUem3R043ysZ2ZZVIG7iAfOIiR2S6KAPlChMCLMcpEvoQUk1RlN0zB 0VNckvTwd6RXV1V/iCU3kfsbyv2muGpcRQpHI7lFhNprrH8Dl/EUJeyw1jMIP5wBkYsb 2M4A== X-Gm-Message-State: AOAM531HJjpO+ZBYJTvmxdZwiUr7mCpnd573GmSddwdTx2D1ixXiHIw0 98smCx7E4eiECUJpywX/0ZXYwC9SWLS1fYQ6/Xk= X-Google-Smtp-Source: ABdhPJzYVXLGm6U+fi49TN31gcgSRfBNmOZ93Jt88tlKFKAeHW3ZtyNlg/yo1sIGyNhwmZx9ggoRuMLu48I9f0VM0Ho= X-Received: by 2002:a92:1943:: with SMTP id e3mr5800126ilm.166.1617611527382; Mon, 05 Apr 2021 01:32:07 -0700 (PDT) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <606AC888.5000207@tlinx.org> In-Reply-To: <606AC888.5000207@tlinx.org> From: Jeffrey Walton Date: Mon, 5 Apr 2021 04:31:38 -0400 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Mon, Apr 5, 2021 at 4:22 AM L A Walsh wrote: > > On 2021/03/19 14:04, Paul Eggert wrote: > > On 3/19/21 8:22 AM, Jaroslav Skarvada wrote: > > > >> Please consider adding PCRE2 support. > >> > > > > Patches would be welcome. As I understand it, they're not trivial. > > > --- > What are differences from 1->2 and wondering why they are > so non-trivial? I guess there are some benefits in moving > to 2? > > Mostly curious... I took a crack at converting grep to PCRE2 a couple of months ago. There are lots of API differences. I estimate about 80% of the code was going to be modified or changed for PCRE2. There's also a data structure that needs to be modified. I could not find a good document explaining the conversion process from PCRE to PCRE2. I finally gave up after about 4 hours because I lacked the necessary PCRE experience. Someone more experienced with PCRE or PCRE2 can probably perform the task in a few hours. Jeff From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: RFE: pcre2 support Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 05 Apr 2021 16:59:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: 47264@debbugs.gnu.org Cc: Jaroslav Skarvada X-Debbugs-Original-To: bug-grep@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161764192929726 (code B ref -1); Mon, 05 Apr 2021 16:59:01 +0000 Received: (at submit) by debbugs.gnu.org; 5 Apr 2021 16:58:49 +0000 Received: from localhost ([127.0.0.1]:38503 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTSYr-0007jM-Ck for submit@debbugs.gnu.org; Mon, 05 Apr 2021 12:58:49 -0400 Received: from lists.gnu.org ([209.51.188.17]:48266) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTSYp-0007jE-0e for submit@debbugs.gnu.org; Mon, 05 Apr 2021 12:58:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51124) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTSYo-0006S5-O6 for bug-grep@gnu.org; Mon, 05 Apr 2021 12:58:46 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:54738) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTSYl-00039H-1f for bug-grep@gnu.org; Mon, 05 Apr 2021 12:58:46 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 904CE1600D0; Mon, 5 Apr 2021 09:58:40 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id JA72_KrCCZ0N; Mon, 5 Apr 2021 09:58:39 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E01A51600DA; Mon, 5 Apr 2021 09:58:39 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id CBuWhjgKr-2d; Mon, 5 Apr 2021 09:58:39 -0700 (PDT) Received: from [192.168.1.9] (cpe-23-243-218-95.socal.res.rr.com [23.243.218.95]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id BB2F01600D0; Mon, 5 Apr 2021 09:58:39 -0700 (PDT) References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <606AC888.5000207@tlinx.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <9abea667-4c69-4016-3877-97a31f76c1f4@cs.ucla.edu> Date: Mon, 5 Apr 2021 09:58:39 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=131.179.128.68; envelope-from=eggert@cs.ucla.edu; helo=zimbra.cs.ucla.edu X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On 4/5/21 1:31 AM, Jeffrey Walton wrote: > I could not find a good document explaining the conversion process > from PCRE to PCRE2. I finally gave up after about 4 hours because I > lacked the necessary PCRE experience. I had a similar experience years ago. Part of my worry was that PCRE is squirrelly about dealing with improperly-coded data - it has undefined behavior in that case, which is unacceptable for 'grep'. So one must be verrrry careful in doing any API conversion. I didn't have the time, at the time. Still don't. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 18:39:03 2021 Received: (at control) by debbugs.gnu.org; 9 Aug 2021 22:39:03 +0000 Received: from localhost ([127.0.0.1]:58005 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDDvD-00019s-Mj for submit@debbugs.gnu.org; Mon, 09 Aug 2021 18:39:03 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:34908) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDDvC-00019O-I5 for control@debbugs.gnu.org; Mon, 09 Aug 2021 18:39:02 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 370CC160051 for ; Mon, 9 Aug 2021 15:38:57 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ncD77m4zDG_q for ; Mon, 9 Aug 2021 15:38:56 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 7A6D61600AD for ; Mon, 9 Aug 2021 15:38:56 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id nSwsHjbhKgpI for ; Mon, 9 Aug 2021 15:38:56 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 5A631160051 for ; Mon, 9 Aug 2021 15:38:56 -0700 (PDT) To: control@debbugs.gnu.org From: Paul Eggert Subject: merge PCRE2 wishlist items for grep Organization: UCLA Computer Science Department Message-ID: <5dbd0503-ca1a-4919-0f00-c300e1035ed8@cs.ucla.edu> Date: Mon, 9 Aug 2021 15:38:56 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) severity 22345 wishlist severity 47264 wishlist merge 22345 40395 47264 From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH] pcre: migrate to pcre2 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> In-Reply-To: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> Resent-From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sun, 07 Nov 2021 19:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: 47264@debbugs.gnu.org Cc: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.16363132363207 (code B ref 47264); Sun, 07 Nov 2021 19:28:02 +0000 Received: (at 47264) by debbugs.gnu.org; 7 Nov 2021 19:27:16 +0000 Received: from localhost ([127.0.0.1]:54825 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjnow-0000pe-Ud for submit@debbugs.gnu.org; Sun, 07 Nov 2021 14:27:15 -0500 Received: from mail-qk1-f169.google.com ([209.85.222.169]:40913) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjnor-0000pO-HF for 47264@debbugs.gnu.org; Sun, 07 Nov 2021 14:27:14 -0500 Received: by mail-qk1-f169.google.com with SMTP id x23so7070580qkf.7 for <47264@debbugs.gnu.org>; Sun, 07 Nov 2021 11:27:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=8JtGVAtqUBH/ak8nBYwAbdqv5HEcjJYcUDBto7Mx8Uo=; b=Ci4u/2+Y1gUFjhBmRnpX7dwa4e3FrFYsOmd+DjBfe6809zb7CbzZTdZ0n/8TJpLIO5 rJeYybk2OWdy1rJNtQZ2chl2JITEs0zvkuA+aAVNZLDoOS59LcPNPQuF+wlFERZi5SqO iMMvk34Eq4eG9xVavpF6yUPrrjCYkV6ztd/nAq5q8wSdz0Os8adv/wC9Irslak+3gfK+ 8990lqxBurI0L9JOHlvHN0eIxnECSbMC7QR8Y00VuQlzhjM2F4dBjyA510t4ckLLMdOk 1adTP00ux1z661pbbf1fG6U9wY3aze4TesFCYHXP9TsVqUp7DeHlz1PwzHYWwR2wPH3M Ln4A== 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=8JtGVAtqUBH/ak8nBYwAbdqv5HEcjJYcUDBto7Mx8Uo=; b=L8qIxzjWNEFRZkqxa90nwkp2zTIC7b2Q0ri+H3IijcvKznYyYCN6iRQUGSZ9MB4Ob6 MOK8whBXmBwc/x0AD7CFSsq7rxGgPe2RLuG4A7N5CF198GfP6I0GVfG17otD/t9mlymm Y0a+sAMMhDJiXY+RjGuDp0T9/wszb+mFVSfJL3PNpxKFI764pexjEci1JG9uAorXROXa jphcXqFElazXs6vgnSEOJK2XwP8VALBAv0IRrHwXXoetOF99O+7FvPyRAtGqV8G1XBcM vQJoVn2hQZwzM83BtX0SbO5PBfRkivtENpCTAlN+Q8TmDh6WbMZZ1f0V/PMW6faqW0k1 RxJQ== X-Gm-Message-State: AOAM532zxLIsFlV/SiDkWoshPj9t8sXzNRpee2uktyvRo3lRoUhSTAp9 VhpuAVG7s4b2O1ZtUmxtINc7VGgu8lM= X-Google-Smtp-Source: ABdhPJy9h4+ryVw4UckSjN2S4cSy4b9HpeArCgi7btG3uD+8Zm0KLi7qC2ipdJB+rOGWd/AhG+kPsQ== X-Received: by 2002:a05:620a:29c4:: with SMTP id s4mr59904213qkp.510.1636313223533; Sun, 07 Nov 2021 11:27:03 -0800 (PST) Received: from carlos-mbp.lan (104-1-92-200.lightspeed.sntcca.sbcglobal.net. [104.1.92.200]) by smtp.gmail.com with ESMTPSA id i6sm9555077qkn.14.2021.11.07.11.27.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 07 Nov 2021 11:27:03 -0800 (PST) From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Date: Sun, 7 Nov 2021 11:26:28 -0800 Message-Id: <20211107192628.88250-1-carenas@gmail.com> X-Mailer: git-send-email 2.34.0.rc0.327.g197905bccb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Mostly a bug by bug translation of the original code to the PCRE2 API. but includes a couple of fixes as well that might be worth doing in independent patches, if a straight translation is preferable. Code still could do with some optimizations but should be good as a starting point. The API changes the sign of some types and therefore some ugly casts were needed, some of the changes are just to make sure all variables fit into the newer types better. Includes backward compatibility and could be made to build all the way to 10.00, but assumes a recent version ~10.30; the configure rule sets a strict minimum of 10.34 as that is required to pass all tests, even if the issues are minimal and likely to be real bugs that the old PCRE just hide, there is likely more work pending in this area. Performance seems equivalent, and it also seems functionally complete. Signed-off-by: Carlo Marcelo Arenas Belón --- configure.ac | 2 +- doc/grep.in.1 | 8 +- doc/grep.texi | 2 +- m4/{pcre.m4 => pcre2.m4} | 23 ++-- src/pcresearch.c | 235 ++++++++++++++++++--------------------- tests/filename-lineno.pl | 4 +- 6 files changed, 126 insertions(+), 148 deletions(-) rename m4/{pcre.m4 => pcre2.m4} (66%) diff --git a/configure.ac b/configure.ac index c49ec4a..9291cee 100644 --- a/configure.ac +++ b/configure.ac @@ -197,7 +197,7 @@ if test "$ac_use_included_regex" = no; then AC_MSG_WARN([Included lib/regex.c not used]) fi -gl_FUNC_PCRE +gl_FUNC_PCRE2 AM_CONDITIONAL([USE_PCRE], [test $use_pcre = yes]) case $host_os in diff --git a/doc/grep.in.1 b/doc/grep.in.1 index b014f65..208cb76 100644 --- a/doc/grep.in.1 +++ b/doc/grep.in.1 @@ -756,7 +756,7 @@ In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards. Perl-compatible regular expressions give additional functionality, and are -documented in B(3) and B(3), but work only if +documented in B(3) and B(3), but work only if PCRE support is enabled. .PP The fundamental building blocks are the regular expressions @@ -1360,9 +1360,9 @@ from the globbing syntax that the shell uses to match file names. .BR sort (1), .BR xargs (1), .BR read (2), -.BR pcre (3), -.BR pcresyntax (3), -.BR pcrepattern (3), +.BR pcre2 (3), +.BR pcre2syntax (3), +.BR pcre2pattern (3), .BR terminfo (5), .BR glob (7), .BR regex (7) diff --git a/doc/grep.texi b/doc/grep.texi index e5b9fd8..c3c4bbf 100644 --- a/doc/grep.texi +++ b/doc/grep.texi @@ -1168,7 +1168,7 @@ In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards. Perl-compatible regular expressions give additional functionality, and -are documented in the @i{pcresyntax}(3) and @i{pcrepattern}(3) manual +are documented in the @i{pcre2syntax}(3) and @i{pcre2pattern}(3) manual pages, but work only if PCRE is available in the system. @menu diff --git a/m4/pcre.m4 b/m4/pcre2.m4 similarity index 66% rename from m4/pcre.m4 rename to m4/pcre2.m4 index 78b7fda..6822500 100644 --- a/m4/pcre.m4 +++ b/m4/pcre2.m4 @@ -1,15 +1,15 @@ -# pcre.m4 - check for libpcre support +# pcre2.m4 - check for libpcre2 support # Copyright (C) 2010-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -AC_DEFUN([gl_FUNC_PCRE], +AC_DEFUN([gl_FUNC_PCRE2], [ AC_ARG_ENABLE([perl-regexp], AS_HELP_STRING([--disable-perl-regexp], - [disable perl-regexp (pcre) support]), + [disable perl-regexp (pcre2) support]), [case $enableval in yes|no) test_pcre=$enableval;; *) AC_MSG_ERROR([invalid value $enableval for --disable-perl-regexp]);; @@ -21,24 +21,25 @@ AC_DEFUN([gl_FUNC_PCRE], use_pcre=no if test $test_pcre != no; then - PKG_CHECK_MODULES([PCRE], [libpcre], [], [: ${PCRE_LIBS=-lpcre}]) + PKG_CHECK_MODULES([PCRE], [libpcre2-8], [], [: ${PCRE_LIBS=-lpcre2-8}]) - AC_CACHE_CHECK([for pcre_compile], [pcre_cv_have_pcre_compile], + AC_CACHE_CHECK([for pcre2_compile], [pcre_cv_have_pcre2_compile], [pcre_saved_CFLAGS=$CFLAGS pcre_saved_LIBS=$LIBS CFLAGS="$CFLAGS $PCRE_CFLAGS" LIBS="$PCRE_LIBS $LIBS" AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include + [AC_LANG_PROGRAM([[#define PCRE2_CODE_UNIT_WIDTH 8 + #include ]], - [[pcre *p = pcre_compile (0, 0, 0, 0, 0); + [[pcre2_code *p = pcre2_compile (0, 0, PCRE2_MATCH_INVALID_UTF, 0, 0, 0); return !p;]])], - [pcre_cv_have_pcre_compile=yes], - [pcre_cv_have_pcre_compile=no]) + [pcre_cv_have_pcre2_compile=yes], + [pcre_cv_have_pcre2_compile=no]) CFLAGS=$pcre_saved_CFLAGS LIBS=$pcre_saved_LIBS]) - if test "$pcre_cv_have_pcre_compile" = yes; then + if test "$pcre_cv_have_pcre2_compile" = yes; then use_pcre=yes elif test $test_pcre = maybe; then AC_MSG_WARN([AC_PACKAGE_NAME will be built without pcre support.]) @@ -50,7 +51,7 @@ AC_DEFUN([gl_FUNC_PCRE], if test $use_pcre = yes; then AC_DEFINE([HAVE_LIBPCRE], [1], [Define to 1 if you have the Perl Compatible Regular Expressions - library (-lpcre).]) + library (-lpcre2).]) else PCRE_CFLAGS= PCRE_LIBS= diff --git a/src/pcresearch.c b/src/pcresearch.c index 3bdaee9..36171ed 100644 --- a/src/pcresearch.c +++ b/src/pcresearch.c @@ -17,41 +17,21 @@ 02110-1301, USA. */ /* Written August 1992 by Mike Haertel. */ +/* Updated for PCRE2 by Carlo Arenas. */ #include #include "search.h" #include "die.h" -#include - -/* This must be at least 2; everything after that is for performance - in pcre_exec. */ -enum { NSUB = 300 }; - -#ifndef PCRE_EXTRA_MATCH_LIMIT_RECURSION -# define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0 -#endif -#ifndef PCRE_STUDY_JIT_COMPILE -# define PCRE_STUDY_JIT_COMPILE 0 -#endif -#ifndef PCRE_STUDY_EXTRA_NEEDED -# define PCRE_STUDY_EXTRA_NEEDED 0 -#endif +#define PCRE2_CODE_UNIT_WIDTH 8 +#include struct pcre_comp { /* Compiled internal form of a Perl regular expression. */ - pcre *cre; - - /* Additional information about the pattern. */ - pcre_extra *extra; - -#if PCRE_STUDY_JIT_COMPILE - /* The JIT stack and its maximum size. */ - pcre_jit_stack *jit_stack; - int jit_stack_size; -#endif - + pcre2_code *cre; + pcre2_match_context *mcontext; + pcre2_match_data *data; /* Table, indexed by ! (flag & PCRE_NOTBOL), of whether the empty string matches when that flag is used. */ int empty_match[2]; @@ -60,51 +40,50 @@ struct pcre_comp /* Match the already-compiled PCRE pattern against the data in SUBJECT, of size SEARCH_BYTES and starting with offset SEARCH_OFFSET, with - options OPTIONS, and storing resulting matches into SUB. Return - the (nonnegative) match location or a (negative) error number. */ + options OPTIONS. + Return the (nonnegative) match count or a (negative) error number. */ static int jit_exec (struct pcre_comp *pc, char const *subject, int search_bytes, - int search_offset, int options, int *sub) + int search_offset, uint32_t options) { while (true) { - int e = pcre_exec (pc->cre, pc->extra, subject, search_bytes, - search_offset, options, sub, NSUB); + bool dynamic_jit_stack = false; + int e = pcre2_match (pc->cre, (PCRE2_SPTR8)subject, search_bytes, + search_offset, options, pc->data, pc->mcontext); + + if (e == PCRE2_ERROR_JIT_STACKLIMIT && dynamic_jit_stack) + return e; -#if PCRE_STUDY_JIT_COMPILE - if (e == PCRE_ERROR_JIT_STACKLIMIT - && 0 < pc->jit_stack_size && pc->jit_stack_size <= INT_MAX / 2) + if (e == PCRE2_ERROR_JIT_STACKLIMIT) { - int old_size = pc->jit_stack_size; - int new_size = pc->jit_stack_size = old_size * 2; - if (pc->jit_stack) - pcre_jit_stack_free (pc->jit_stack); - pc->jit_stack = pcre_jit_stack_alloc (old_size, new_size); - if (!pc->jit_stack) + /* The PCRE documentation says that a 32 KiB stack is the default. */ + pcre2_jit_stack *s = pcre2_jit_stack_create (64 << 10, INT_MAX, NULL); + + if (!pc->mcontext) + pc->mcontext = pcre2_match_context_create (NULL); + + if (!pc->mcontext || !s) die (EXIT_TROUBLE, 0, _("failed to allocate memory for the PCRE JIT stack")); - pcre_assign_jit_stack (pc->extra, NULL, pc->jit_stack); + pcre2_jit_stack_assign (pc->mcontext, NULL, s); + dynamic_jit_stack = true; continue; } -#endif - -#if PCRE_EXTRA_MATCH_LIMIT_RECURSION - if (e == PCRE_ERROR_RECURSIONLIMIT - && (PCRE_STUDY_EXTRA_NEEDED || pc->extra)) + if (e == PCRE2_ERROR_DEPTHLIMIT) { - unsigned long lim - = (pc->extra->flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION - ? pc->extra->match_limit_recursion - : 0); - if (lim <= ULONG_MAX / 2) - { - pc->extra->match_limit_recursion = lim ? 2 * lim : (1 << 24) - 1; - pc->extra->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; - continue; - } - } -#endif + uint32_t lim; + pcre2_config (PCRE2_CONFIG_DEPTHLIMIT, &lim); + if (lim > INT32_MAX) + return e; + lim *= 2; + if (!pc->mcontext) + pc->mcontext = pcre2_match_context_create (NULL); + + pcre2_set_depth_limit (pc->mcontext, lim); + continue; + } return e; } } @@ -115,27 +94,35 @@ jit_exec (struct pcre_comp *pc, char const *subject, int search_bytes, void * Pcompile (char *pattern, idx_t size, reg_syntax_t ignored, bool exact) { - int e; - char const *ep; + PCRE2_SIZE e; + int ec; + PCRE2_UCHAR8 ep[128]; static char const wprefix[] = "(?cre = pcre_compile (re, flags, &ep, &e, pcre_maketables ()); + pcre2_set_character_tables (ccontext, pcre2_maketables (NULL)); + pc->cre = pcre2_compile (re, n - (char *)re, flags, &ec, &e, ccontext); if (!pc->cre) - die (EXIT_TROUBLE, 0, "%s", ep); + { + pcre2_get_error_message (ec, ep, 128); + die (EXIT_TROUBLE, 0, "%s", ep); + } - int pcre_study_flags = PCRE_STUDY_EXTRA_NEEDED | PCRE_STUDY_JIT_COMPILE; - pc->extra = pcre_study (pc->cre, pcre_study_flags, &ep); - if (ep) - die (EXIT_TROUBLE, 0, "%s", ep); + pc->data = pcre2_match_data_create_from_pattern (pc->cre, NULL); -#if PCRE_STUDY_JIT_COMPILE - if (pcre_fullinfo (pc->cre, pc->extra, PCRE_INFO_JIT, &e)) - die (EXIT_TROUBLE, 0, _("internal error (should never happen)")); - - /* The PCRE documentation says that a 32 KiB stack is the default. */ - if (e) - pc->jit_stack_size = 32 << 10; -#endif + ec = pcre2_jit_compile (pc->cre, PCRE2_JIT_COMPLETE); + if (ec && ec != PCRE2_ERROR_JIT_BADOPTION && ec != PCRE2_ERROR_NOMEMORY) + die (EXIT_TROUBLE, 0, _("JIT internal error: %d"), ec); free (re); - int sub[NSUB]; - pc->empty_match[false] = pcre_exec (pc->cre, pc->extra, "", 0, 0, - PCRE_NOTBOL, sub, NSUB); - pc->empty_match[true] = pcre_exec (pc->cre, pc->extra, "", 0, 0, 0, sub, - NSUB); + pc->empty_match[false] = jit_exec (pc, "", 0, 0, PCRE2_NOTBOL); + pc->empty_match[true] = jit_exec (pc, "", 0, 0, 0); return pc; } @@ -206,15 +174,15 @@ ptrdiff_t Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, char const *start_ptr) { - int sub[NSUB]; char const *p = start_ptr ? start_ptr : buf; bool bol = p[-1] == eolbyte; char const *line_start = buf; - int e = PCRE_ERROR_NOMATCH; + int e = PCRE2_ERROR_NOMATCH; char const *line_end; struct pcre_comp *pc = vcp; + PCRE2_SIZE *sub = pcre2_get_ovector_pointer(pc->data); - /* The search address to pass to pcre_exec. This is the start of + /* The search address to pass to PCRE. This is the start of the buffer, or just past the most-recently discovered encoding error or line end. */ char const *subject = buf; @@ -226,14 +194,14 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, better and the correctness issues were too puzzling. See Bug#22655. */ line_end = rawmemchr (p, eolbyte); - if (INT_MAX < line_end - p) + if (PCRE2_SIZE_MAX < line_end - p) die (EXIT_TROUBLE, 0, _("exceeded PCRE's line length limit")); for (;;) { /* Skip past bytes that are easily determined to be encoding errors, treating them as data that cannot match. This is - faster than having pcre_exec check them. */ + faster than having PCRE check them. */ while (localeinfo.sbclen[to_uchar (*p)] == -1) { p++; @@ -241,10 +209,10 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, bol = false; } - int search_offset = p - subject; + PCRE2_SIZE search_offset = p - subject; /* Check for an empty match; this is faster than letting - pcre_exec do it. */ + PCRE do it. */ if (p == line_end) { sub[0] = sub[1] = search_offset; @@ -252,15 +220,15 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, break; } - int options = 0; + uint32_t options = 0; if (!bol) - options |= PCRE_NOTBOL; + options |= PCRE2_NOTBOL; - e = jit_exec (pc, subject, line_end - subject, search_offset, - options, sub); - if (e != PCRE_ERROR_BADUTF8) + e = jit_exec (pc, subject, line_end - subject, + search_offset, options); + if (PCRE2_ERROR_UTF8_ERR1 <= e || e < PCRE2_ERROR_UTF8_ERR21) break; - int valid_bytes = sub[0]; + PCRE2_SIZE valid_bytes = sub[0]; if (search_offset <= valid_bytes) { @@ -275,9 +243,9 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, } else e = jit_exec (pc, subject, valid_bytes, search_offset, - options | PCRE_NO_UTF8_CHECK | PCRE_NOTEOL, sub); + options | PCRE2_NO_UTF_CHECK | PCRE2_NOTEOL); - if (e != PCRE_ERROR_NOMATCH) + if (e != PCRE2_ERROR_NOMATCH) break; /* Treat the encoding error as data that cannot match. */ @@ -288,7 +256,7 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, subject += valid_bytes + 1; } - if (e != PCRE_ERROR_NOMATCH) + if (e != PCRE2_ERROR_NOMATCH) break; bol = true; p = subject = line_start = line_end + 1; @@ -299,26 +267,35 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, { switch (e) { - case PCRE_ERROR_NOMATCH: + case PCRE2_ERROR_NOMATCH: break; - case PCRE_ERROR_NOMEMORY: + case PCRE2_ERROR_NOMEMORY: die (EXIT_TROUBLE, 0, _("%s: memory exhausted"), input_filename ()); -#if PCRE_STUDY_JIT_COMPILE - case PCRE_ERROR_JIT_STACKLIMIT: + case PCRE2_ERROR_JIT_STACKLIMIT: die (EXIT_TROUBLE, 0, _("%s: exhausted PCRE JIT stack"), input_filename ()); -#endif - case PCRE_ERROR_MATCHLIMIT: + case PCRE2_ERROR_MATCHLIMIT: die (EXIT_TROUBLE, 0, _("%s: exceeded PCRE's backtracking limit"), input_filename ()); - case PCRE_ERROR_RECURSIONLIMIT: - die (EXIT_TROUBLE, 0, _("%s: exceeded PCRE's recursion limit"), + case PCRE2_ERROR_DEPTHLIMIT: + die (EXIT_TROUBLE, 0, + _("%s: exceeded PCRE's nested backtracking limit"), input_filename ()); + case PCRE2_ERROR_RECURSELOOP: + die (EXIT_TROUBLE, 0, _("%s: PCRE detected recurse loop"), + input_filename ()); + +#ifdef PCRE2_ERROR_HEAPLIMIT + case PCRE2_ERROR_HEAPLIMIT: + die (EXIT_TROUBLE, 0, _("%s: exceeded PCRE's heap limit"), + input_filename ()); +#endif + default: /* For now, we lump all remaining PCRE failures into this basket. If anyone cares to provide sample grep usage that can trigger diff --git a/tests/filename-lineno.pl b/tests/filename-lineno.pl index 1e84b45..1ff3d6a 100755 --- a/tests/filename-lineno.pl +++ b/tests/filename-lineno.pl @@ -101,13 +101,13 @@ my @Tests = ], ['invalid-re-P-paren', '-P ")"', {EXIT=>2}, {ERR => $ENV{PCRE_WORKS} == 1 - ? "$prog: unmatched parentheses\n" + ? "$prog: unmatched closing parenthesis\n" : $no_pcre }, ], ['invalid-re-P-star-paren', '-P "a.*)"', {EXIT=>2}, {ERR => $ENV{PCRE_WORKS} == 1 - ? "$prog: unmatched parentheses\n" + ? "$prog: unmatched closing parenthesis\n" : $no_pcre }, ], -- 2.34.0.rc0.327.g197905bccb From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH] pcre: migrate to pcre2 Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 08 Nov 2021 00:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163633144119821 (code B ref 47264); Mon, 08 Nov 2021 00:31:01 +0000 Received: (at 47264) by debbugs.gnu.org; 8 Nov 2021 00:30:41 +0000 Received: from localhost ([127.0.0.1]:55304 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjsYb-000598-2E for submit@debbugs.gnu.org; Sun, 07 Nov 2021 19:30:41 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:49520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjsYX-0004zq-Np for 47264@debbugs.gnu.org; Sun, 07 Nov 2021 19:30:39 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 933EE1600BB; Sun, 7 Nov 2021 16:30:31 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 6-RCZRwVkQky; Sun, 7 Nov 2021 16:30:30 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id AF15F1600C4; Sun, 7 Nov 2021 16:30:30 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 27Nsy-OACYbd; Sun, 7 Nov 2021 16:30:30 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 87ABB1600BB; Sun, 7 Nov 2021 16:30:30 -0800 (PST) Message-ID: Date: Sun, 7 Nov 2021 16:30:30 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <20211107192628.88250-1-carenas@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <20211107192628.88250-1-carenas@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) On 11/7/21 11:26, Carlo Marcelo Arenas Bel=C3=B3n wrote: > Mostly a bug by bug translation of the original code to the PCRE2 API. > but includes a couple of fixes as well that might be worth doing in > independent patches, if a straight translation is preferable. Yes, that might be preferable so that if there are problems we can=20 bisect better. > The API changes the sign of some types and therefore some ugly casts > were needed, I see one ugly cast from char const * to PCRE2_SPTR8; it seems=20 unavoidable unless we go through void * (and I see little point to doing=20 that). Were there some other ugly casts that I missed? > some of the changes are just to make sure all variables > fit into the newer types better. Yes, we do want to avoid overflow bugs. > Includes backward compatibility and could be made to build all the way > to 10.00, but assumes a recent version ~10.30; the configure rule sets > a strict minimum of 10.34 as that is required to pass all tests, even > if the issues are minimal and likely to be real bugs that the old PCRE > just hide, there is likely more work pending in this area. pcre2 10.34 is two years old. Seems old enough to me (tho perhaps others=20 can chime in). > - int search_offset, int options, int *sub) > + int search_offset, uint32_t options) Let's stick with 'int' unless we absolutely need uint32_t. uint32_t is=20 ugly and is not required by the C standard and although PCRE2 evidently=20 requires it, I'd rather stick to signed types for the usual reasons. > + if (lim > INT32_MAX) > + return e; > + lim *=3D 2; This should use UINT32_MAX / 2 instead of INT32_MAX (the two expressions=20 have different values on some oddball platforms). Better yet, replace=20 the whole thing with "if (INT_MULTIPLY_WRAPV (lim, 2, &lim)) return e;". > + unsigned char *re =3D xnmalloc (4, size + (fix_len_max + 4 - 1) / 4)= ; We don't need to multiply by 4 any more, right? Because we no longer=20 need to do the trick of replacing NUL with \000 in the pattern. > + flags |=3D PCRE2_UTF; > +#ifdef PCRE2_NEVER_BACKSLASH_C > + /* do not match individual code units but only UTF-8 */ > + flags |=3D PCRE2_NEVER_BACKSLASH_C; > +#endif > +#ifdef PCRE2_MATCH_INVALID_UTF > + /* consider invalid UTF-8 as a barrier, instead of error */ > + flags |=3D PCRE2_MATCH_INVALID_UTF; > +#endif Which versions of PCRE2 lack these flags? Should we bother to support=20 these old versions? If memory serves grep currently takes care to not pass invalid UTF-8 in=20 the buffer or pattern. Does PCRE2_MATCH_INVALID_UTF make this work obsole= te? > + PCRE2_UCHAR8 ep[128]; How do we know 128 is long enough? Deserves a comment. > Performance seems equivalent, and it also seems functionally complete. Very good news. Thanks for working on this. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH] pcre: migrate to pcre2 Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 08 Nov 2021 03:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163634186827187 (code B ref 47264); Mon, 08 Nov 2021 03:25:01 +0000 Received: (at 47264) by debbugs.gnu.org; 8 Nov 2021 03:24:28 +0000 Received: from localhost ([127.0.0.1]:55533 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjvGj-00074O-Lo for submit@debbugs.gnu.org; Sun, 07 Nov 2021 22:24:28 -0500 Received: from mail-yb1-f181.google.com ([209.85.219.181]:45766) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjvGd-000746-Dp for 47264@debbugs.gnu.org; Sun, 07 Nov 2021 22:24:24 -0500 Received: by mail-yb1-f181.google.com with SMTP id s186so39802486yba.12 for <47264@debbugs.gnu.org>; Sun, 07 Nov 2021 19:24:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dynFjbTLXBUC1QX8Dr6uneWpLqaLY+wGRYm7lwmuQhg=; b=msoS/muC7u55SSvc2X+grIoHFs06BpHLaFizPCRk5zunWwh2Sew4WI44v4whULQxu5 BvNvFo8EwIqnO1V00HP6uzbO1RGarpgNc1S68grRiszUENB/StlKkgtGRoSnHZiiiUAP WiG7LGe0wJanMTarIpEVvDXiK8Z7y1h66Ig7pgTaSFJ6JPuDNeQzFrO3PHefwBvi0nvR qYqXq7SSIc9lFvCz3LRY43NP6N9K0J6HvFbTskW25spUiUTtqNS6RFBNncwkf8GmWMYo /0k9AuM7jo2/5tN0hOB59uz4XLfgiD9KLq4yPaRWtVKIq5P9PzDSgmsGGbsSrC1sq8Wu eq+w== X-Gm-Message-State: AOAM5334eDkAFsk9FH5Eu7fccs/YSH9emzso0pKqgyAWqZ1vdZGp7vn2 NPExh9BhcZ6WnanIb8h8GPGcPycqmWrCnQ7T24c= X-Google-Smtp-Source: ABdhPJyacb3Fgxy2E2DUKh688/wudzUdVwsV9nm7crQW7UJnD6AoDABXyft+2T4EwxQrrf5vLjz+rTLxN68W5tKIhtw= X-Received: by 2002:a25:e4c7:: with SMTP id b190mr60407286ybh.204.1636341853878; Sun, 07 Nov 2021 19:24:13 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <20211107192628.88250-1-carenas@gmail.com> In-Reply-To: From: Jim Meyering Date: Sun, 7 Nov 2021 19:24:02 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Thanks Carlos for working on that and Paul for the speedy feedback! I won't be able to spend time on this for the next couple of weeks. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH] pcre: migrate to pcre2 Resent-From: Carlo Arenas Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 08 Nov 2021 09:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163636486419846 (code B ref 47264); Mon, 08 Nov 2021 09:48:02 +0000 Received: (at 47264) by debbugs.gnu.org; 8 Nov 2021 09:47:44 +0000 Received: from localhost ([127.0.0.1]:56455 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mk1Fg-0005A1-29 for submit@debbugs.gnu.org; Mon, 08 Nov 2021 04:47:44 -0500 Received: from mail-ua1-f51.google.com ([209.85.222.51]:34458) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mk1Fd-00059C-S7 for 47264@debbugs.gnu.org; Mon, 08 Nov 2021 04:47:42 -0500 Received: by mail-ua1-f51.google.com with SMTP id b3so30302782uam.1 for <47264@debbugs.gnu.org>; Mon, 08 Nov 2021 01:47:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=1UVtkop662a8jgk7MqDlKRB4dsjGqQRoq0RdjogIdc4=; b=ZfV445rd4Mhmp/k7b4oopl72QfCc/c1timKdLr0SQvRtfm9GGShW+A+WQ9A5zPe/ch zlx8JR3e8u18B8vAVUnsgQF/n6SXLkNgCX1BUtYEK9EnhG2gOvXS3YX3ea7b2A1NgFQe roZvJQltTCzeg3QdPvNwmlPyP7a+qsIGO3Ind6g1lrYyNWXLEJXdZV/RHF/BlO7Exm38 rk5TSIGoZiwnWJeHTDv6v1aK/GK39V2PkRRJtvF7Afz6kPviPAb1xXJc76kPVBU0iJ8O wdA1lpRJoZdzKz+NIbbDpYIsCKejvkgHf2oR3qTiSvRlLUWoSCtthrarRnmbyeeuXDEk DPJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=1UVtkop662a8jgk7MqDlKRB4dsjGqQRoq0RdjogIdc4=; b=hqpMxVuwxQ7ZoQPeb0hSe+dl/g2Y7fEoTX8mRLb9cQwcLCrjZk92tZYe+7dlqZAgHt 5tLfAlPJg6caYcxJdusrl6QnFI5qcD5UfKeVyb9IkbjJj/8DL6CwvaonnPBuExF1ICL6 IQoB4XT+vCiC55wtqT/xA2uMNxFXICZhiMYDdL8ihv1HrYveLiInX1Vl6SS1j4thTvqD yj74WCSGlHSHvd/qmpqrIAjxFofUC23vyaV3NtJSWu1YPxNSoBPMqln/2dkEdVZzB3ug 82k2HYEb+CSJaLuIZSLq7p1Uiw8Kj/ews36x2Io0vUxHO0nWf/bklwkTQtV7TWNUVJfY u/Vw== X-Gm-Message-State: AOAM5318b4lyhZ93dwPDVPV7rbwJqaJ7/SBLAlnDkbVnqz+/wIwSBsTW b/LIZKfy/NXHXIjJb6SmNQ6tIUQY0gsNmIcqEIXqJWWL X-Google-Smtp-Source: ABdhPJzpw+1v5VSMYk4hwsDjQIKL+UMR2lM206fK0FMV3QD7h06hLGjRuS9S5dbLyk3CvQp3SgSOGWM19l6T57kpemg= X-Received: by 2002:ab0:7c65:: with SMTP id h5mr8468489uax.138.1636364856122; Mon, 08 Nov 2021 01:47:36 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <20211107192628.88250-1-carenas@gmail.com> In-Reply-To: From: Carlo Arenas Date: Mon, 8 Nov 2021 01:47:25 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 7, 2021 at 4:30 PM Paul Eggert wrote: > > On 11/7/21 11:26, Carlo Marcelo Arenas Bel=C3=B3n wrote: > > Mostly a bug by bug translation of the original code to the PCRE2 API. > > but includes a couple of fixes as well that might be worth doing in > > independent patches, if a straight translation is preferable. > > Yes, that might be preferable so that if there are problems we can > bisect better. Working on it, I will open independent bugs then for them, but I have to admit I am a little concerned that since they are all touching the same code it might be more difficult to keep track of the end result and the need to merge conflict resolution. Let me know how to help otherwise. > > Includes backward compatibility and could be made to build all the way > > to 10.00, but assumes a recent version ~10.30; the configure rule sets > > a strict minimum of 10.34 as that is required to pass all tests, even > > if the issues are minimal and likely to be real bugs that the old PCRE > > just hide, there is likely more work pending in this area. > > pcre2 10.34 is two years old. Seems old enough to me (tho perhaps others > can chime in). Ironically, I am the user of one of those, as my debian10 developer box uses 10.32, and indeed CentOS 7 is on even an older 10.23. Forcing 10.34 to compile would allow us to clean up the code significantly, and was what I was aiming for originally, but it seems that the added support needed for older versions isn't that difficult either. I didn't want anyone hitting on those old PCRE2 bugs though with this first release, hence why the configure rule is there for now (even if I am likely going to remove it for the next version) > > + unsigned char *re =3D xnmalloc (4, size + (fix_len_max + 4 - 1) / 4)= ; > > We don't need to multiply by 4 any more, right? Because we no longer > need to do the trick of replacing NUL with \000 in the pattern. I couldn't find a rationale for it in the emails or commit history, but will clean it up with the other suggestions for next release. > > + flags |=3D PCRE2_UTF; > > +#ifdef PCRE2_NEVER_BACKSLASH_C > > + /* do not match individual code units but only UTF-8 */ > > + flags |=3D PCRE2_NEVER_BACKSLASH_C; > > +#endif > > +#ifdef PCRE2_MATCH_INVALID_UTF > > + /* consider invalid UTF-8 as a barrier, instead of error */ > > + flags |=3D PCRE2_MATCH_INVALID_UTF; > > +#endif > > Which versions of PCRE2 lack these flags? Should we bother to support > these old versions? PCRE2_NEVER_BACKSLASH_C is from 10.20 (~2015) and likely to be everywhere, the #ifdef is just to help backporters to even earlier versions (10.00 requires even more of those which I didn't include here). Interestingly enough, the CentOS 7 test (which was patched on top of 10.37, because current git doesn't build there anymore) passed all tests, and only needed a few more of those. \C is supported with -P in the PCRE version now though, is removing that ok= ? > If memory serves grep currently takes care to not pass invalid UTF-8 in > the buffer or pattern. Does PCRE2_MATCH_INVALID_UTF make this work obsole= te? not sure I understand what you mean, but PCRE2_MATCH_INVALID_UTF is definitely something that helps with binary search because it will try harder to do matches in the text found, instead of bailing out with an error. it still has to do a scan and verify UTF-8 is valid, so you still have the performance hit that doing binary matching with a C locale avoids. Carlo From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH] pcre: migrate to pcre2 Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 08 Nov 2021 19:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Arenas Cc: 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163640124124303 (code B ref 47264); Mon, 08 Nov 2021 19:54:02 +0000 Received: (at 47264) by debbugs.gnu.org; 8 Nov 2021 19:54:01 +0000 Received: from localhost ([127.0.0.1]:59581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkAiO-0006Jv-LQ for submit@debbugs.gnu.org; Mon, 08 Nov 2021 14:54:00 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:40076) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkAiJ-0006Jb-VG for 47264@debbugs.gnu.org; Mon, 08 Nov 2021 14:53:59 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id AA5F41600FD; Mon, 8 Nov 2021 11:53:48 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id qk7i2aUYZsb9; Mon, 8 Nov 2021 11:53:47 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id D67561600C5; Mon, 8 Nov 2021 11:53:47 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7PcWz7yrpQGX; Mon, 8 Nov 2021 11:53:47 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id B150A1600C4; Mon, 8 Nov 2021 11:53:47 -0800 (PST) Message-ID: <809cfaf4-0d6a-ae56-1be5-27b9dc428ae1@cs.ucla.edu> Date: Mon, 8 Nov 2021 11:53:47 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <20211107192628.88250-1-carenas@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) On 11/8/21 01:47, Carlo Arenas wrote: > On Sun, Nov 7, 2021 at 4:30 PM Paul Eggert wrote: > Let me know how to help otherwise. The main thing from my point of view is that I'd like to know what those other bugs are. I can split out the patch into pieces if I know what to look for. > I didn't want anyone hitting on those old PCRE2 bugs though with this > first release, hence why the configure rule is there for now (even if > I am likely going to remove it for the next version) If it's a PCRE2 bug we can ask people to fix it in their PCRE2 library. Possibly we should continue to support PCRE1 as a configure-time option; that would assuage concerns about bugs in PCRE2. More work for us, though. > \C is supported with -P in the PCRE version now though, is removing that ok? I guess I don't see the harm of supporting \C; why disable it? >> If memory serves grep currently takes care to not pass invalid UTF-8 in >> the buffer or pattern. Does PCRE2_MATCH_INVALID_UTF make this work obsolete? > > not sure I understand what you mean I guess I was thinking about an older grep version. Currently grep compiles with PCRE_UTF8 and checks for PCRE_ERROR_BADUTF8 returns from pcre_exec, so it's relying on the count of bytes that this pcre_exec returns in sub[0] before calling pcre_exec with PCRE_NO_UTF8_CHECK. So, effectively it's using pcre_exec to check that a buffer contains valid UTF-8. I don't see how this works with the proposed patch. It uses sub[0] but I don't see how it's set. What am I missing? One more thing I just noticed: this test: if (PCRE2_ERROR_UTF8_ERR1 <= e || e < PCRE2_ERROR_UTF8_ERR21) is logically equivalent to the following (which is clearer to me): if (! (PCRE2_ERROR_UTF8_ERR21 <= e && e < PCRE2_ERROR_UTF8_ERR1)) Shouldn't that be the following instead? if (! (PCRE2_ERROR_UTF8_ERR21 <= e && e <= PCRE2_ERROR_UTF8_ERR1)) From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH] pcre: migrate to pcre2 Resent-From: Carlo Arenas Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 08 Nov 2021 22:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.16364106107775 (code B ref 47264); Mon, 08 Nov 2021 22:31:01 +0000 Received: (at 47264) by debbugs.gnu.org; 8 Nov 2021 22:30:10 +0000 Received: from localhost ([127.0.0.1]:59786 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkD9W-00021L-A4 for submit@debbugs.gnu.org; Mon, 08 Nov 2021 17:30:10 -0500 Received: from mail-ua1-f47.google.com ([209.85.222.47]:46886) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkD9S-0001zN-Bb for 47264@debbugs.gnu.org; Mon, 08 Nov 2021 17:30:08 -0500 Received: by mail-ua1-f47.google.com with SMTP id az37so34652215uab.13 for <47264@debbugs.gnu.org>; Mon, 08 Nov 2021 14:30:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wUlzRdDeIRJMlgi1b90GNfRAeFUouVqedJkIQ/Gx1hw=; b=cTcUqLSbKl+BmChCgGZkz0aa8//HS5418Zl0mCtX0/j8qGLUSZHxiyqDyl2w79iasc ozN1/0r6cct1oFUjtOrAK+VNJDQcJYvrqbR0nEZo6Pa3hsSV6nS2jvg0oHnydfFytdC2 fBvdlSIbnV5SnXZLy7fh4zU4r2TQqQ5YpojT58ViwfSZhYt941wpY42jNpRF9v6rigxh 6f8BD4enHez0hvF6MkdPENSmvvZyEmsuaJ8B1WbhxOLtVRMQvlPLQb/ji4V+HezCuFST FzElhFGaU3DHFGJvpk+17YkPRcH235ptpqw3+6mhOiE2MDGdZCTLt/Swqgpc+k5NYFTr jXew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wUlzRdDeIRJMlgi1b90GNfRAeFUouVqedJkIQ/Gx1hw=; b=XAo+2xFlGWU7UyY4k9amzBw3yxa8VJmP6gfvidZK8xHzuoQEAgZlrjOMUiZrwJ0vqp lBqEftf9cVJogBjikt3A0OPdcKLAUmCPuqHXG+nNKQN7Siv0nRWMEQ5wT9k9mgvvqYOk fZ6+dGbqHqdVZhRhZY/4iTygGOEA9DS4Y5ZxPDAosyN9glTpJ1BGedlcNr6/kH93j86e d0pIjS7DHDHARn/WspOWP8MjgqVwm0DvPFklDxcVFcXBLNaoT/jYHP55JMSj3u8pGKSp xLXxtsYOOh3ReNj4U/slZUAGanITNeTsSqXD+SNry8faicCQYGm4S8SST9uxqKQOA03X qNeQ== X-Gm-Message-State: AOAM531JIZE9QpqKlad41nj6WT9BSFCmgDaAMhxqFjMhctBKAa5Y//3N 4wSaSQQAXe06iev25tsLjp6ol474y/6I2eESsfheY9VHROk= X-Google-Smtp-Source: ABdhPJylZ1AbFxQPFdAAQbu9WFbfju2Vv4j+vW/pVGJYNZxSSLLUlS/kwBpiBQ9+SgNpCoJwwWCR2I1rLmVLZuC6Whw= X-Received: by 2002:a67:e40d:: with SMTP id d13mr55205771vsf.11.1636410600648; Mon, 08 Nov 2021 14:30:00 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <20211107192628.88250-1-carenas@gmail.com> <809cfaf4-0d6a-ae56-1be5-27b9dc428ae1@cs.ucla.edu> In-Reply-To: <809cfaf4-0d6a-ae56-1be5-27b9dc428ae1@cs.ucla.edu> From: Carlo Arenas Date: Mon, 8 Nov 2021 14:28:11 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Mon, Nov 8, 2021 at 11:53 AM Paul Eggert wrote: > > On 11/8/21 01:47, Carlo Arenas wrote: > > On Sun, Nov 7, 2021 at 4:30 PM Paul Eggert wrote: > > > Let me know how to help otherwise. > > The main thing from my point of view is that I'd like to know what those > other bugs are. I can split out the patch into pieces if I know what to > look for. The way pcre_jit_stack_alloc is called is incorrect and could leak if new_size is not enough and PCRE_ERROR_JIT_STACKLIMIT is triggered again. The new code calls it only once and sets the maximum to the same maximum the old code would do after looping. It doesn't handle silent failures from pcre_study() from old versions, where JIT might need to be disabled because no RWX page could be allocated (ex: SELinux enabled and enforcing). This last one might be better to fix in PCRE2 as it is also version dependent and behaves differently between PCRE and PCRE2 and the PCRE version hasn't been needed and won't be needed after the migration, though. > > I didn't want anyone hitting on those old PCRE2 bugs though with this > > first release, hence why the configure rule is there for now (even if > > I am likely going to remove it for the next version) > > If it's a PCRE2 bug we can ask people to fix it in their PCRE2 library. agree, but it might be worth adding some functionality to allow workarounds (ex: disabling JIT, which is currently enabled unconditionally) > Possibly we should continue to support PCRE1 as a configure-time option; > that would assuage concerns about bugs in PCRE2. More work for us, though. We did that in git for a while, but I wouldn't do it now, considering that PCRE1 is no longer maintained and is arguably more buggy than PCRE2. Chances are there is a bugfix available in PCRE2 already that needs backporting if upgrading their version is not possible. > > \C is supported with -P in the PCRE version now though, is removing that ok? > > I guess I don't see the harm of supporting \C; why disable it? It is not very useful and interacts badly with the state of UTF-8 matching as it will leave with a partial codeset, which is then incorrect UTF-8 (if lucky) or could be interpreted incorrectly. my assumption was that it wasn't disabled by accident, since old PCRE also default to non UTF-8 by default at compile time, unlike what was done in PCRE2. > >> If memory serves grep currently takes care to not pass invalid UTF-8 in > >> the buffer or pattern. Does PCRE2_MATCH_INVALID_UTF make this work obsolete? > > > > not sure I understand what you mean > > I guess I was thinking about an older grep version. > > Currently grep compiles with PCRE_UTF8 and checks for PCRE_ERROR_BADUTF8 > returns from pcre_exec, so it's relying on the count of bytes that this > pcre_exec returns in sub[0] before calling pcre_exec with > PCRE_NO_UTF8_CHECK. So, effectively it's using pcre_exec to check that a > buffer contains valid UTF-8. note that it does its own skipping first, but could rely on PCRE2 and PCRE2_MATCH_INVALID_UTF instead. > I don't see how this works with the proposed patch. It uses sub[0] but I > don't see how it's set. What am I missing? a fix that was on my next version, but I got stuck in the refactoring, should be (from master) : - int valid_bytes = sub[0]; + PCRE2_SIZE valid_bytes = sub[0] = pcre2_get_startchar (pc->data); it is set by the pcre2_match() call (which is equivalent to pcre-exec), but setting it on bad UTF-8 (which is only reported in versions that don't have PCRE2_MATCH_INVALID_UTF > One more thing I just noticed: this test: > > if (PCRE2_ERROR_UTF8_ERR1 <= e || e < PCRE2_ERROR_UTF8_ERR21) > > is logically equivalent to the following (which is clearer to me): > > if (! (PCRE2_ERROR_UTF8_ERR21 <= e && e < PCRE2_ERROR_UTF8_ERR1)) > > Shouldn't that be the following instead? > > if (! (PCRE2_ERROR_UTF8_ERR21 <= e && e <= PCRE2_ERROR_UTF8_ERR1)) Makes sense, will include and add a comment to explain better the translation. Carlo [1] https://www.pcre.org/original/doc/html/pcre_jit_stack_alloc.html From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> In-Reply-To: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> Resent-From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Tue, 09 Nov 2021 11:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.16364555447284 (code B ref 47264); Tue, 09 Nov 2021 11:00:02 +0000 Received: (at 47264) by debbugs.gnu.org; 9 Nov 2021 10:59:04 +0000 Received: from localhost ([127.0.0.1]:60975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkOqF-0001tP-JQ for submit@debbugs.gnu.org; Tue, 09 Nov 2021 05:59:04 -0500 Received: from mail-ot1-f46.google.com ([209.85.210.46]:34767) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkOq9-0001sr-VL for 47264@debbugs.gnu.org; Tue, 09 Nov 2021 05:59:02 -0500 Received: by mail-ot1-f46.google.com with SMTP id x19-20020a9d7053000000b0055c8b39420bso9670957otj.1 for <47264@debbugs.gnu.org>; Tue, 09 Nov 2021 02:58:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:subject:message-id:mime-version:content-disposition :content-transfer-encoding; bh=0GPvM8CQMnnSWO2lc+NDxsUpFv9cdh0+q4nKlxWehCc=; b=XkwD2QxGTGn6JDWygnOEZb6kspjSKtibWKpWLZCGQhkeyaj26lQY4TWcteE3RlLfsp P3aAWAj6g1GF8WqNI3Om7Kr9AUvb84ZBx1gOjIhQ8OC3kZmrjHR3DxMsoJ7r20cmszmq e4S1or3EE2xRrQ8H6u7VBz3CFbIyqn6F6ozhyMscsOCb2afzjkt9o/OpF8tzA1U+T/CV Hqp5Z0S7032qbd7XcnnEO5dKzzxDTeBOVPhqSL5DFuOF3yD6QbucS3mq0mixomPV6OT4 qUTM2kH8Ib7JCsA50q/rY4yeHJBXOm8hfRmmEIKYto6qRaKGwVOuqEtzfBj5oHBjO1pC vsRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:content-transfer-encoding; bh=0GPvM8CQMnnSWO2lc+NDxsUpFv9cdh0+q4nKlxWehCc=; b=MKbXVrOy5HZw5xDJ9uWxLYTjzHZtPTPN906+TEkrjzzXRAYoXs6/PpLhK/rd7r1SQz IGe9pPHxoZrNVSK1jF8dEIpNiBiwq5Lh3n6yqrAq9Pb0PNd4PJlGvbBcxIhWp8NoiNwf 2E6PKoLsHOynTxcd1CD9fjGY+tdLkFpjVquQUObdYgrDDTI8mI3LIQDUdQonbylqiWmD iREJrTT6I2k5Mzdr1jlDy5ey1Wc6HZna8zXSXOrTX6O2upijYZN8sD8aL66fpcgVr9vM mTdTcWfLj6+lerwK1eG5ZdBRx6V+GHWN2AJbzN5HO21zx5ZfOv5Z616LEhgX9fqP93Zt omuw== X-Gm-Message-State: AOAM531TxmXlP+t8gzNnI4A4YA58Zcsv/8q9QUW/Zxg4rPF4INRedSwz R7zk9JOEeGt33eleFiHIIQnu6GUhElY= X-Google-Smtp-Source: ABdhPJx/LqGRLfzabUw+Ty/9AHYnVXxk697HhsPOb6aDvKK4fONM3o6vwe36B2h5kxs1MeY58pneyA== X-Received: by 2002:a9d:d53:: with SMTP id 77mr5156164oti.156.1636455531980; Tue, 09 Nov 2021 02:58:51 -0800 (PST) Received: from carlos-mbp.lan (104-1-92-200.lightspeed.sntcca.sbcglobal.net. [104.1.92.200]) by smtp.gmail.com with ESMTPSA id g15sm7273514oiy.8.2021.11.09.02.58.50 for <47264@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Nov 2021 02:58:51 -0800 (PST) Date: Tue, 9 Nov 2021 02:58:49 -0800 From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="/FczUpUc4VbLuSdU" Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --/FczUpUc4VbLuSdU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sadly, hadn't been able to generate a release, so testing is somehow limited to platforms where I can hack a bootstrap (macOS / a few Linux), but it seems to be ready for some broader testing, specially if the attached patch is applied on top of a 10.37 release (tested that way in OpenBSD i386) Changes since v1: Resolved: * Most of the suggested changes by Paul * no more version restrictions (should work with >~10.20) * BUG in handling of malformed UTF-8 for PCRE2 < 10.34 Pending: * what to do with the current support of \C (enabled for now) * merge of non critical bugfix in #51710[1] Carlo [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51710 --/FczUpUc4VbLuSdU Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="v2-0001-pcre-migrate-to-pcre2.patch" Content-Transfer-Encoding: 8bit >From 29c2f2238ed58ceb4101687f3aae7265f6839025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Mon, 8 Nov 2021 21:27:03 -0800 Subject: [PATCH v2] pcre: migrate to pcre2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mostly a bug by bug translation of the original code to the PCRE2 API. Code still could do with some optimizations but should be good as a starting point. The API changes the sign of some types and therefore some ugly casts were needed, some of the changes are just to make sure all variables fit into the newer types better. Includes backward compatibility and could be made to build all the way to 10.00, but assumes a recent enough version and has been tested with 10.23 (from CentOS 7, the oldest). Performance seems equivalent, and it also seems functionally complete. Signed-off-by: Carlo Marcelo Arenas Belón --- configure.ac | 2 +- doc/grep.in.1 | 8 +- doc/grep.texi | 2 +- m4/{pcre.m4 => pcre2.m4} | 23 ++-- src/pcresearch.c | 243 +++++++++++++++++++-------------------- tests/filename-lineno.pl | 4 +- 6 files changed, 139 insertions(+), 143 deletions(-) rename m4/{pcre.m4 => pcre2.m4} (67%) diff --git a/configure.ac b/configure.ac index c49ec4a..9291cee 100644 --- a/configure.ac +++ b/configure.ac @@ -197,7 +197,7 @@ if test "$ac_use_included_regex" = no; then AC_MSG_WARN([Included lib/regex.c not used]) fi -gl_FUNC_PCRE +gl_FUNC_PCRE2 AM_CONDITIONAL([USE_PCRE], [test $use_pcre = yes]) case $host_os in diff --git a/doc/grep.in.1 b/doc/grep.in.1 index b014f65..208cb76 100644 --- a/doc/grep.in.1 +++ b/doc/grep.in.1 @@ -756,7 +756,7 @@ In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards. Perl-compatible regular expressions give additional functionality, and are -documented in B(3) and B(3), but work only if +documented in B(3) and B(3), but work only if PCRE support is enabled. .PP The fundamental building blocks are the regular expressions @@ -1360,9 +1360,9 @@ from the globbing syntax that the shell uses to match file names. .BR sort (1), .BR xargs (1), .BR read (2), -.BR pcre (3), -.BR pcresyntax (3), -.BR pcrepattern (3), +.BR pcre2 (3), +.BR pcre2syntax (3), +.BR pcre2pattern (3), .BR terminfo (5), .BR glob (7), .BR regex (7) diff --git a/doc/grep.texi b/doc/grep.texi index e5b9fd8..c3c4bbf 100644 --- a/doc/grep.texi +++ b/doc/grep.texi @@ -1168,7 +1168,7 @@ In other implementations, basic regular expressions are less powerful. The following description applies to extended regular expressions; differences for basic regular expressions are summarized afterwards. Perl-compatible regular expressions give additional functionality, and -are documented in the @i{pcresyntax}(3) and @i{pcrepattern}(3) manual +are documented in the @i{pcre2syntax}(3) and @i{pcre2pattern}(3) manual pages, but work only if PCRE is available in the system. @menu diff --git a/m4/pcre.m4 b/m4/pcre2.m4 similarity index 67% rename from m4/pcre.m4 rename to m4/pcre2.m4 index 78b7fda..7970c4e 100644 --- a/m4/pcre.m4 +++ b/m4/pcre2.m4 @@ -1,15 +1,15 @@ -# pcre.m4 - check for libpcre support +# pcre2.m4 - check for libpcre2 support # Copyright (C) 2010-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -AC_DEFUN([gl_FUNC_PCRE], +AC_DEFUN([gl_FUNC_PCRE2], [ AC_ARG_ENABLE([perl-regexp], AS_HELP_STRING([--disable-perl-regexp], - [disable perl-regexp (pcre) support]), + [disable perl-regexp (pcre2) support]), [case $enableval in yes|no) test_pcre=$enableval;; *) AC_MSG_ERROR([invalid value $enableval for --disable-perl-regexp]);; @@ -21,24 +21,25 @@ AC_DEFUN([gl_FUNC_PCRE], use_pcre=no if test $test_pcre != no; then - PKG_CHECK_MODULES([PCRE], [libpcre], [], [: ${PCRE_LIBS=-lpcre}]) + PKG_CHECK_MODULES([PCRE], [libpcre2-8], [], [: ${PCRE_LIBS=-lpcre2-8}]) - AC_CACHE_CHECK([for pcre_compile], [pcre_cv_have_pcre_compile], + AC_CACHE_CHECK([for pcre2_compile], [pcre_cv_have_pcre2_compile], [pcre_saved_CFLAGS=$CFLAGS pcre_saved_LIBS=$LIBS CFLAGS="$CFLAGS $PCRE_CFLAGS" LIBS="$PCRE_LIBS $LIBS" AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[#include + [AC_LANG_PROGRAM([[#define PCRE2_CODE_UNIT_WIDTH 8 + #include ]], - [[pcre *p = pcre_compile (0, 0, 0, 0, 0); + [[pcre2_code *p = pcre2_compile (0, 0, 0, 0, 0, 0); return !p;]])], - [pcre_cv_have_pcre_compile=yes], - [pcre_cv_have_pcre_compile=no]) + [pcre_cv_have_pcre2_compile=yes], + [pcre_cv_have_pcre2_compile=no]) CFLAGS=$pcre_saved_CFLAGS LIBS=$pcre_saved_LIBS]) - if test "$pcre_cv_have_pcre_compile" = yes; then + if test "$pcre_cv_have_pcre2_compile" = yes; then use_pcre=yes elif test $test_pcre = maybe; then AC_MSG_WARN([AC_PACKAGE_NAME will be built without pcre support.]) @@ -50,7 +51,7 @@ AC_DEFUN([gl_FUNC_PCRE], if test $use_pcre = yes; then AC_DEFINE([HAVE_LIBPCRE], [1], [Define to 1 if you have the Perl Compatible Regular Expressions - library (-lpcre).]) + library (-lpcre2).]) else PCRE_CFLAGS= PCRE_LIBS= diff --git a/src/pcresearch.c b/src/pcresearch.c index 3bdaee9..e83f371 100644 --- a/src/pcresearch.c +++ b/src/pcresearch.c @@ -17,41 +17,32 @@ 02110-1301, USA. */ /* Written August 1992 by Mike Haertel. */ +/* Updated for PCRE2 by Carlo Arenas. */ #include #include "search.h" #include "die.h" -#include +#define PCRE2_CODE_UNIT_WIDTH 8 +#include -/* This must be at least 2; everything after that is for performance - in pcre_exec. */ -enum { NSUB = 300 }; - -#ifndef PCRE_EXTRA_MATCH_LIMIT_RECURSION -# define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0 -#endif -#ifndef PCRE_STUDY_JIT_COMPILE -# define PCRE_STUDY_JIT_COMPILE 0 -#endif -#ifndef PCRE_STUDY_EXTRA_NEEDED -# define PCRE_STUDY_EXTRA_NEEDED 0 +/* Needed for backward compatibility for PCRE2 < 10.30 */ +#ifndef PCRE2_CONFIG_DEPTHLIMIT +#define PCRE2_CONFIG_DEPTHLIMIT PCRE2_CONFIG_RECURSIONLIMIT +#define PCRE2_ERROR_DEPTHLIMIT PCRE2_ERROR_RECURSIONLIMIT +#define pcre2_set_depth_limit pcre2_set_recursion_limit #endif struct pcre_comp { - /* Compiled internal form of a Perl regular expression. */ - pcre *cre; - - /* Additional information about the pattern. */ - pcre_extra *extra; - -#if PCRE_STUDY_JIT_COMPILE /* The JIT stack and its maximum size. */ - pcre_jit_stack *jit_stack; - int jit_stack_size; -#endif + pcre2_jit_stack *jit_stack; + PCRE2_SIZE jit_stack_size; + /* Compiled internal form of a Perl regular expression. */ + pcre2_code *cre; + pcre2_match_context *mcontext; + pcre2_match_data *data; /* Table, indexed by ! (flag & PCRE_NOTBOL), of whether the empty string matches when that flag is used. */ int empty_match[2]; @@ -60,51 +51,50 @@ struct pcre_comp /* Match the already-compiled PCRE pattern against the data in SUBJECT, of size SEARCH_BYTES and starting with offset SEARCH_OFFSET, with - options OPTIONS, and storing resulting matches into SUB. Return - the (nonnegative) match location or a (negative) error number. */ + options OPTIONS. + Return the (nonnegative) match count or a (negative) error number. */ static int -jit_exec (struct pcre_comp *pc, char const *subject, int search_bytes, - int search_offset, int options, int *sub) +jit_exec (struct pcre_comp *pc, char const *subject, PCRE2_SIZE search_bytes, + PCRE2_SIZE search_offset, int options) { while (true) { - int e = pcre_exec (pc->cre, pc->extra, subject, search_bytes, - search_offset, options, sub, NSUB); + int e = pcre2_match (pc->cre, (PCRE2_SPTR)subject, search_bytes, + search_offset, options, pc->data, pc->mcontext); -#if PCRE_STUDY_JIT_COMPILE - if (e == PCRE_ERROR_JIT_STACKLIMIT + if (e == PCRE2_ERROR_JIT_STACKLIMIT && 0 < pc->jit_stack_size && pc->jit_stack_size <= INT_MAX / 2) { - int old_size = pc->jit_stack_size; - int new_size = pc->jit_stack_size = old_size * 2; + PCRE2_SIZE old_size = pc->jit_stack_size; + PCRE2_SIZE new_size = pc->jit_stack_size = old_size * 2; + if (pc->jit_stack) - pcre_jit_stack_free (pc->jit_stack); - pc->jit_stack = pcre_jit_stack_alloc (old_size, new_size); - if (!pc->jit_stack) + pcre2_jit_stack_free (pc->jit_stack); + pc->jit_stack = pcre2_jit_stack_create (old_size, new_size, NULL); + + if (!pc->mcontext) + pc->mcontext = pcre2_match_context_create (NULL); + + if (!pc->jit_stack || !pc->mcontext) die (EXIT_TROUBLE, 0, _("failed to allocate memory for the PCRE JIT stack")); - pcre_assign_jit_stack (pc->extra, NULL, pc->jit_stack); + pcre2_jit_stack_assign (pc->mcontext, NULL, pc->jit_stack); continue; } -#endif - -#if PCRE_EXTRA_MATCH_LIMIT_RECURSION - if (e == PCRE_ERROR_RECURSIONLIMIT - && (PCRE_STUDY_EXTRA_NEEDED || pc->extra)) + if (e == PCRE2_ERROR_DEPTHLIMIT) { - unsigned long lim - = (pc->extra->flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION - ? pc->extra->match_limit_recursion - : 0); - if (lim <= ULONG_MAX / 2) - { - pc->extra->match_limit_recursion = lim ? 2 * lim : (1 << 24) - 1; - pc->extra->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; - continue; - } - } -#endif + uint32_t lim; + pcre2_config (PCRE2_CONFIG_DEPTHLIMIT, &lim); + if (lim >= UINT32_MAX / 2) + return e; + + lim <<= 1; + if (!pc->mcontext) + pc->mcontext = pcre2_match_context_create (NULL); + pcre2_set_depth_limit (pc->mcontext, lim); + continue; + } return e; } } @@ -115,27 +105,35 @@ jit_exec (struct pcre_comp *pc, char const *subject, int search_bytes, void * Pcompile (char *pattern, idx_t size, reg_syntax_t ignored, bool exact) { - int e; - char const *ep; + PCRE2_SIZE e; + int ec; + PCRE2_UCHAR8 ep[128]; /* 120 code units is suggested to avoid truncation */ static char const wprefix[] = "(?cre = pcre_compile (re, flags, &ep, &e, pcre_maketables ()); + pcre2_set_character_tables (ccontext, pcre2_maketables (NULL)); + pc->cre = pcre2_compile (re, n - (char *)re, flags, &ec, &e, ccontext); if (!pc->cre) - die (EXIT_TROUBLE, 0, "%s", ep); - - int pcre_study_flags = PCRE_STUDY_EXTRA_NEEDED | PCRE_STUDY_JIT_COMPILE; - pc->extra = pcre_study (pc->cre, pcre_study_flags, &ep); - if (ep) - die (EXIT_TROUBLE, 0, "%s", ep); + { + pcre2_get_error_message (ec, ep, sizeof (ep)); + die (EXIT_TROUBLE, 0, "%s", ep); + } -#if PCRE_STUDY_JIT_COMPILE - if (pcre_fullinfo (pc->cre, pc->extra, PCRE_INFO_JIT, &e)) - die (EXIT_TROUBLE, 0, _("internal error (should never happen)")); + pc->data = pcre2_match_data_create_from_pattern (pc->cre, NULL); - /* The PCRE documentation says that a 32 KiB stack is the default. */ - if (e) - pc->jit_stack_size = 32 << 10; -#endif + ec = pcre2_jit_compile (pc->cre, PCRE2_JIT_COMPLETE); + if (ec && ec != PCRE2_ERROR_JIT_BADOPTION && ec != PCRE2_ERROR_NOMEMORY) + die (EXIT_TROUBLE, 0, _("JIT internal error: %d"), ec); + else + { + /* The PCRE documentation says that a 32 KiB stack is the default. */ + pc->jit_stack_size = 32 << 10; + } free (re); - int sub[NSUB]; - pc->empty_match[false] = pcre_exec (pc->cre, pc->extra, "", 0, 0, - PCRE_NOTBOL, sub, NSUB); - pc->empty_match[true] = pcre_exec (pc->cre, pc->extra, "", 0, 0, 0, sub, - NSUB); + pc->empty_match[false] = jit_exec (pc, "", 0, 0, PCRE2_NOTBOL); + pc->empty_match[true] = jit_exec (pc, "", 0, 0, 0); return pc; } @@ -206,15 +190,15 @@ ptrdiff_t Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, char const *start_ptr) { - int sub[NSUB]; char const *p = start_ptr ? start_ptr : buf; bool bol = p[-1] == eolbyte; char const *line_start = buf; - int e = PCRE_ERROR_NOMATCH; + int e = PCRE2_ERROR_NOMATCH; char const *line_end; struct pcre_comp *pc = vcp; + PCRE2_SIZE *sub = pcre2_get_ovector_pointer (pc->data); - /* The search address to pass to pcre_exec. This is the start of + /* The search address to pass to PCRE. This is the start of the buffer, or just past the most-recently discovered encoding error or line end. */ char const *subject = buf; @@ -226,14 +210,14 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, better and the correctness issues were too puzzling. See Bug#22655. */ line_end = rawmemchr (p, eolbyte); - if (INT_MAX < line_end - p) + if (PCRE2_SIZE_MAX < line_end - p) die (EXIT_TROUBLE, 0, _("exceeded PCRE's line length limit")); for (;;) { /* Skip past bytes that are easily determined to be encoding errors, treating them as data that cannot match. This is - faster than having pcre_exec check them. */ + faster than having PCRE check them. */ while (localeinfo.sbclen[to_uchar (*p)] == -1) { p++; @@ -241,10 +225,10 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, bol = false; } - int search_offset = p - subject; + PCRE2_SIZE search_offset = p - subject; /* Check for an empty match; this is faster than letting - pcre_exec do it. */ + PCRE do it. */ if (p == line_end) { sub[0] = sub[1] = search_offset; @@ -254,13 +238,14 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, int options = 0; if (!bol) - options |= PCRE_NOTBOL; + options |= PCRE2_NOTBOL; - e = jit_exec (pc, subject, line_end - subject, search_offset, - options, sub); - if (e != PCRE_ERROR_BADUTF8) + e = jit_exec (pc, subject, line_end - subject, + search_offset, options); + /* PCRE2 provides 22 different error codes for bad UTF-8 */ + if (! (PCRE2_ERROR_UTF8_ERR21 <= e && e < PCRE2_ERROR_UTF8_ERR1)) break; - int valid_bytes = sub[0]; + PCRE2_SIZE valid_bytes = pcre2_get_startchar (pc->data); if (search_offset <= valid_bytes) { @@ -270,14 +255,15 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, /* Handle the empty-match case specially, for speed. This optimization is valid if VALID_BYTES is zero, which means SEARCH_OFFSET is also zero. */ + sub[0] = valid_bytes; sub[1] = 0; e = pc->empty_match[bol]; } else e = jit_exec (pc, subject, valid_bytes, search_offset, - options | PCRE_NO_UTF8_CHECK | PCRE_NOTEOL, sub); + options | PCRE2_NO_UTF_CHECK | PCRE2_NOTEOL); - if (e != PCRE_ERROR_NOMATCH) + if (e != PCRE2_ERROR_NOMATCH) break; /* Treat the encoding error as data that cannot match. */ @@ -288,7 +274,7 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, subject += valid_bytes + 1; } - if (e != PCRE_ERROR_NOMATCH) + if (e != PCRE2_ERROR_NOMATCH) break; bol = true; p = subject = line_start = line_end + 1; @@ -299,26 +285,35 @@ Pexecute (void *vcp, char const *buf, idx_t size, idx_t *match_size, { switch (e) { - case PCRE_ERROR_NOMATCH: + case PCRE2_ERROR_NOMATCH: break; - case PCRE_ERROR_NOMEMORY: + case PCRE2_ERROR_NOMEMORY: die (EXIT_TROUBLE, 0, _("%s: memory exhausted"), input_filename ()); -#if PCRE_STUDY_JIT_COMPILE - case PCRE_ERROR_JIT_STACKLIMIT: + case PCRE2_ERROR_JIT_STACKLIMIT: die (EXIT_TROUBLE, 0, _("%s: exhausted PCRE JIT stack"), input_filename ()); -#endif - case PCRE_ERROR_MATCHLIMIT: + case PCRE2_ERROR_MATCHLIMIT: die (EXIT_TROUBLE, 0, _("%s: exceeded PCRE's backtracking limit"), input_filename ()); - case PCRE_ERROR_RECURSIONLIMIT: - die (EXIT_TROUBLE, 0, _("%s: exceeded PCRE's recursion limit"), + case PCRE2_ERROR_DEPTHLIMIT: + die (EXIT_TROUBLE, 0, + _("%s: exceeded PCRE's nested backtracking limit"), input_filename ()); + case PCRE2_ERROR_RECURSELOOP: + die (EXIT_TROUBLE, 0, _("%s: PCRE detected recurse loop"), + input_filename ()); + +#ifdef PCRE2_ERROR_HEAPLIMIT + case PCRE2_ERROR_HEAPLIMIT: + die (EXIT_TROUBLE, 0, _("%s: exceeded PCRE's heap limit"), + input_filename ()); +#endif + default: /* For now, we lump all remaining PCRE failures into this basket. If anyone cares to provide sample grep usage that can trigger diff --git a/tests/filename-lineno.pl b/tests/filename-lineno.pl index 1e84b45..1ff3d6a 100755 --- a/tests/filename-lineno.pl +++ b/tests/filename-lineno.pl @@ -101,13 +101,13 @@ my @Tests = ], ['invalid-re-P-paren', '-P ")"', {EXIT=>2}, {ERR => $ENV{PCRE_WORKS} == 1 - ? "$prog: unmatched parentheses\n" + ? "$prog: unmatched closing parenthesis\n" : $no_pcre }, ], ['invalid-re-P-star-paren', '-P "a.*)"', {EXIT=>2}, {ERR => $ENV{PCRE_WORKS} == 1 - ? "$prog: unmatched parentheses\n" + ? "$prog: unmatched closing parenthesis\n" : $no_pcre }, ], -- 2.34.0.rc1.349.g8f33748433 --/FczUpUc4VbLuSdU-- From unknown Thu Jun 19 14:18:24 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jaroslav Skarvada Subject: bug#47264: closed (Re: bug#47264: [PATCH v2] pcre: migrate to pcre2) Message-ID: References: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> X-Gnu-PR-Message: they-closed 47264 X-Gnu-PR-Package: grep Reply-To: 47264@debbugs.gnu.org Date: Sun, 14 Nov 2021 20:46:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1636922762-29115-1" This is a multi-part message in MIME format... ------------=_1636922762-29115-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #47264: RFE: pcre2 support which was filed against the grep package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 47264@debbugs.gnu.org. --=20 47264: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D47264 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1636922762-29115-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 20:45:48 +0000 Received: from localhost ([127.0.0.1]:51841 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmMNm-0007Z6-3b for submit@debbugs.gnu.org; Sun, 14 Nov 2021 15:45:48 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmMNi-0007Ym-BL for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 15:45:45 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E6CC41600EA; Sun, 14 Nov 2021 12:45:35 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id DkLbXg-qnKez; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9BC2B1600EF; Sun, 14 Nov 2021 12:45:31 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fVoFUqMjeuGC; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 39C391600EA; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Content-Type: multipart/mixed; boundary="------------yDuj0IMPzT9IVrxNTum0F2Lv" Message-ID: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> Date: Sun, 14 Nov 2021 12:45:29 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US To: =?UTF-8?Q?Carlo_Marcelo_Arenas_Bel=c3=b3n?= References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#47264: [PATCH v2] pcre: migrate to pcre2 In-Reply-To: X-Spam-Score: -2.4 (--) X-Debbugs-Envelope-To: 47264-done Cc: Jaroslav Skarvada , 47264-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) This is a multi-part message in MIME format. --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 11/9/21 02:58, Carlo Marcelo Arenas Bel=C3=B3n wrote: > Sadly, hadn't been able to generate a release, Does this mean you're having trouble running 'make dist'? If so, what's=20 the trouble? > it seems to be ready for some broader testing, specially if the > attached patch is applied on top of a 10.37 release (tested that way > in OpenBSD i386) OK, thanks, I installed it into the Savannah master copy of GNU grep,=20 except that I didn't rename m4/pcre.m4 to m4/pcre2.m4, or rename the=20 macros to use PCRE2. This made the change easier to audit. Revised patch=20 0001 attached. Also, I followed up with several related patches (also attached as=20 0002-0012). Please take a look at them and let us know of any problems.=20 In the attached patch "grep: prefer signed integers" I followed the=20 usual grep approach of preferring signed to unsigned integers (e.g.,=20 idx_t to size_t) when either will do; this lets us debug better with=20 -fsanitize=3Dundefined to catch integer overflow. One issue I discovered: PCRE2_EXTRA_MATCH_WORD (which is used by=20 pcre2grep -w) is incompatible with 'grep -w'. For example, 'echo a%%a |=20 grep -Pw %%' outputs nothing, whereas 'echo a%%a | pcre2grep -w %%'=20 outputs 'a%%a'. I think the GNU grep behavior (which is the same as with=20 'grep -w', either on Linux or OpenBSD) is more intuitive here: do you=20 happen to know why PCRE behaves the way it does? Is that worth a PCRE2=20 bug report? Anyway, the attached patches avoid using=20 PCRE2_EXTRA_MATCH_WORD for that reason. > * no more version restrictions (should work with >~10.20) I tested with 10.00 and found one more glitch (it doesn't have=20 PCRE2_SIZE_MAX), which is fixed by the attached patch "grep: port to=20 PCRE2 10.20". > Pending: > * what to do with the current support of \C (enabled for now) Let's open another bug report for that; I'm still a bit fuzzy about what=20 the pros and cons are. > * merge of non critical bugfix in #51710[1] I plan to follow up in that bug report. Marking this bug as done. Thanks again for working on this. --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0001-grep-migrate-to-pcre2.patch" Content-Disposition: attachment; filename="0001-grep-migrate-to-pcre2.patch" Content-Transfer-Encoding: base64 RnJvbSAzYmYzZjgxMjE4M2FiYWRmMjkzMWUwMjYwNjNmN2MyMGIyZjRjZTU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2FybG89MjBNYXJjZWxvPTIwQXJl bmFzPTIwQmVsPUMzPUIzbj89IDxjYXJlbmFzQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxMiBO b3YgMjAyMSAxNjo0NTowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIGdyZXA6IG1p Z3JhdGUgdG8gcGNyZTIKCk1vc3RseSBhIGJ1ZyBieSBidWcgdHJhbnNsYXRpb24gb2YgdGhl IG9yaWdpbmFsIGNvZGUgdG8gdGhlIFBDUkUyIEFQSS4KQ29kZSBzdGlsbCBjb3VsZCBkbyB3 aXRoIHNvbWUgb3B0aW1pemF0aW9ucyBidXQgc2hvdWxkIGJlIGdvb2QgYXMgYQpzdGFydGlu ZyBwb2ludC4KClRoZSBBUEkgY2hhbmdlcyB0aGUgc2lnbiBvZiBzb21lIHR5cGVzIGFuZCB0 aGVyZWZvcmUgc29tZSB1Z2x5IGNhc3RzCndlcmUgbmVlZGVkLCBzb21lIG9mIHRoZSBjaGFu Z2VzIGFyZSBqdXN0IHRvIG1ha2Ugc3VyZSBhbGwgdmFyaWFibGVzCmZpdCBpbnRvIHRoZSBu ZXdlciB0eXBlcyBiZXR0ZXIuCgpJbmNsdWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFu ZCBjb3VsZCBiZSBtYWRlIHRvIGJ1aWxkIGFsbCB0aGUgd2F5CnRvIDEwLjAwLCBidXQgYXNz dW1lcyBhIHJlY2VudCBlbm91Z2ggdmVyc2lvbiBhbmQgaGFzIGJlZW4gdGVzdGVkIHdpdGgK MTAuMjMgKGZyb20gQ2VudE9TIDcsIHRoZSBvbGRlc3QpLgoKUGVyZm9ybWFuY2Ugc2VlbXMg ZXF1aXZhbGVudCwgYW5kIGl0IGFsc28gc2VlbXMgZnVuY3Rpb25hbGx5IGNvbXBsZXRlLgoK KiBtNC9wY3JlLm00IChnbF9GVU5DX1BDUkUpOiBDaGVjayBmb3IgUENSRTIsIG5vdCB0aGUg b3JpZ2luYWwgUENSRS4KKiBzcmMvcGNyZXNlYXJjaC5jIChzdHJ1Y3QgcGNyZV9jb21wLCBq aXRfZXhlYykKKFBjb21waWxlLCBQZXhlY3V0ZSk6ClVzZSBQQ1JFMiwgbm90IHRoZSBvcmln aW5hbCBQQ1JFLgoqIHRlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbDogQWRqdXN0IHRvIG1hdGNo IFBDUkUyIGRpYWdub3N0aWNzLgotLS0KIGRvYy9ncmVwLmluLjEgICAgICAgICAgICB8ICAg OCArLQogZG9jL2dyZXAudGV4aSAgICAgICAgICAgIHwgICAyICstCiBtNC9wY3JlLm00ICAg ICAgICAgICAgICAgfCAgMjEgKystLQogc3JjL3BjcmVzZWFyY2guYyAgICAgICAgIHwgMjQ5 ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvZmlsZW5h bWUtbGluZW5vLnBsIHwgICA0ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z KCspLCAxNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2dyZXAuaW4uMSBiL2Rv Yy9ncmVwLmluLjEKaW5kZXggYjAxNGY2NS4uMjA4Y2I3NiAxMDA2NDQKLS0tIGEvZG9jL2dy ZXAuaW4uMQorKysgYi9kb2MvZ3JlcC5pbi4xCkBAIC03NTYsNyArNzU2LDcgQEAgSW4gb3Ro ZXIgaW1wbGVtZW50YXRpb25zLCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBsZXNz IHBvd2VyZnVsLgogVGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGV4dGVu ZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbnM7CiBkaWZmZXJlbmNlcyBmb3IgYmFzaWMgcmVndWxh ciBleHByZXNzaW9ucyBhcmUgc3VtbWFyaXplZCBhZnRlcndhcmRzLgogUGVybC1jb21wYXRp YmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZ2l2ZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHks IGFuZCBhcmUKLWRvY3VtZW50ZWQgaW4gQjxwY3Jlc3ludGF4PigzKSBhbmQgQjxwY3JlcGF0 dGVybj4oMyksIGJ1dCB3b3JrIG9ubHkgaWYKK2RvY3VtZW50ZWQgaW4gQjxwY3JlMnN5bnRh eD4oMykgYW5kIEI8cGNyZTJwYXR0ZXJuPigzKSwgYnV0IHdvcmsgb25seSBpZgogUENSRSBz dXBwb3J0IGlzIGVuYWJsZWQuCiAuUFAKIFRoZSBmdW5kYW1lbnRhbCBidWlsZGluZyBibG9j a3MgYXJlIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zCkBAIC0xMzYwLDkgKzEzNjAsOSBAQCBm cm9tIHRoZSBnbG9iYmluZyBzeW50YXggdGhhdCB0aGUgc2hlbGwgdXNlcyB0byBtYXRjaCBm aWxlIG5hbWVzLgogLkJSIHNvcnQgKDEpLAogLkJSIHhhcmdzICgxKSwKIC5CUiByZWFkICgy KSwKLS5CUiBwY3JlICgzKSwKLS5CUiBwY3Jlc3ludGF4ICgzKSwKLS5CUiBwY3JlcGF0dGVy biAoMyksCisuQlIgcGNyZTIgKDMpLAorLkJSIHBjcmUyc3ludGF4ICgzKSwKKy5CUiBwY3Jl MnBhdHRlcm4gKDMpLAogLkJSIHRlcm1pbmZvICg1KSwKIC5CUiBnbG9iICg3KSwKIC5CUiBy ZWdleCAoNykKZGlmZiAtLWdpdCBhL2RvYy9ncmVwLnRleGkgYi9kb2MvZ3JlcC50ZXhpCmlu ZGV4IGU1YjlmZDguLmMzYzRiYmYgMTAwNjQ0Ci0tLSBhL2RvYy9ncmVwLnRleGkKKysrIGIv ZG9jL2dyZXAudGV4aQpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgSW4gb3RoZXIgaW1wbGVtZW50 YXRpb25zLCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBsZXNzIHBvd2VyZnVsLgog VGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGV4dGVuZGVkIHJlZ3VsYXIg ZXhwcmVzc2lvbnM7CiBkaWZmZXJlbmNlcyBmb3IgYmFzaWMgcmVndWxhciBleHByZXNzaW9u cyBhcmUgc3VtbWFyaXplZCBhZnRlcndhcmRzLgogUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIg ZXhwcmVzc2lvbnMgZ2l2ZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHksIGFuZAotYXJlIGRv Y3VtZW50ZWQgaW4gdGhlIEBpe3BjcmVzeW50YXh9KDMpIGFuZCBAaXtwY3JlcGF0dGVybn0o MykgbWFudWFsCithcmUgZG9jdW1lbnRlZCBpbiB0aGUgQGl7cGNyZTJzeW50YXh9KDMpIGFu ZCBAaXtwY3JlMnBhdHRlcm59KDMpIG1hbnVhbAogcGFnZXMsIGJ1dCB3b3JrIG9ubHkgaWYg UENSRSBpcyBhdmFpbGFibGUgaW4gdGhlIHN5c3RlbS4KIAogQG1lbnUKZGlmZiAtLWdpdCBh L200L3BjcmUubTQgYi9tNC9wY3JlLm00CmluZGV4IDc4YjdmZGEuLmExYzZjODIgMTAwNjQ0 Ci0tLSBhL200L3BjcmUubTQKKysrIGIvbTQvcGNyZS5tNApAQCAtMSw0ICsxLDQgQEAKLSMg cGNyZS5tNCAtIGNoZWNrIGZvciBsaWJwY3JlIHN1cHBvcnQKKyMgcGNyZS5tNCAtIGNoZWNr IGZvciBQQ1JFIGxpYnJhcnkgc3VwcG9ydAogCiAjIENvcHlyaWdodCAoQykgMjAxMC0yMDIx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgpAQCAtOSw3ICs5LDcgQEAg QUNfREVGVU4oW2dsX0ZVTkNfUENSRV0sCiBbCiAgIEFDX0FSR19FTkFCTEUoW3BlcmwtcmVn ZXhwXSwKICAgICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXBlcmwtcmVnZXhwXSwKLSAg ICAgICAgICAgICAgICAgICBbZGlzYWJsZSBwZXJsLXJlZ2V4cCAocGNyZSkgc3VwcG9ydF0p LAorICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChwY3JlMikgc3Vw cG9ydF0pLAogICAgIFtjYXNlICRlbmFibGV2YWwgaW4KICAgICAgICB5ZXN8bm8pIHRlc3Rf cGNyZT0kZW5hYmxldmFsOzsKICAgICAgICAqKSBBQ19NU0dfRVJST1IoW2ludmFsaWQgdmFs dWUgJGVuYWJsZXZhbCBmb3IgLS1kaXNhYmxlLXBlcmwtcmVnZXhwXSk7OwpAQCAtMjEsMjQg KzIxLDI1IEBAIEFDX0RFRlVOKFtnbF9GVU5DX1BDUkVdLAogICB1c2VfcGNyZT1ubwogCiAg IGlmIHRlc3QgJHRlc3RfcGNyZSAhPSBubzsgdGhlbgotICAgIFBLR19DSEVDS19NT0RVTEVT KFtQQ1JFXSwgW2xpYnBjcmVdLCBbXSwgWzogJHtQQ1JFX0xJQlM9LWxwY3JlfV0pCisgICAg UEtHX0NIRUNLX01PRFVMRVMoW1BDUkVdLCBbbGlicGNyZTItOF0sIFtdLCBbOiAke1BDUkVf TElCUz0tbHBjcmUyLTh9XSkKIAotICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgcGNyZV9jb21w aWxlXSwgW3BjcmVfY3ZfaGF2ZV9wY3JlX2NvbXBpbGVdLAorICAgIEFDX0NBQ0hFX0NIRUNL KFtmb3IgcGNyZTJfY29tcGlsZV0sIFtwY3JlX2N2X2hhdmVfcGNyZTJfY29tcGlsZV0sCiAg ICAgICBbcGNyZV9zYXZlZF9DRkxBR1M9JENGTEFHUwogICAgICAgIHBjcmVfc2F2ZWRfTElC Uz0kTElCUwogICAgICAgIENGTEFHUz0iJENGTEFHUyAkUENSRV9DRkxBR1MiCiAgICAgICAg TElCUz0iJFBDUkVfTElCUyAkTElCUyIKICAgICAgICBBQ19MSU5LX0lGRUxTRSgKLSAgICAg ICAgIFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8cGNyZS5oPgorICAgICAgICAgW0FD X0xBTkdfUFJPR1JBTShbWyNkZWZpbmUgUENSRTJfQ09ERV9VTklUX1dJRFRIIDgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8cGNyZTIuaD4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgXV0sCi0gICAgICAgICAgICBbW3BjcmUgKnAgPSBwY3JlX2NvbXBp bGUgKDAsIDAsIDAsIDAsIDApOworICAgICAgICAgICAgW1twY3JlMl9jb2RlICpwID0gcGNy ZTJfY29tcGlsZSAoMCwgMCwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgIHJldHVybiAh cDtdXSldLAotICAgICAgICAgW3BjcmVfY3ZfaGF2ZV9wY3JlX2NvbXBpbGU9eWVzXSwKLSAg ICAgICAgIFtwY3JlX2N2X2hhdmVfcGNyZV9jb21waWxlPW5vXSkKKyAgICAgICAgIFtwY3Jl X2N2X2hhdmVfcGNyZTJfY29tcGlsZT15ZXNdLAorICAgICAgICAgW3BjcmVfY3ZfaGF2ZV9w Y3JlMl9jb21waWxlPW5vXSkKICAgICAgICBDRkxBR1M9JHBjcmVfc2F2ZWRfQ0ZMQUdTCiAg ICAgICAgTElCUz0kcGNyZV9zYXZlZF9MSUJTXSkKIAotICAgIGlmIHRlc3QgIiRwY3JlX2N2 X2hhdmVfcGNyZV9jb21waWxlIiA9IHllczsgdGhlbgorICAgIGlmIHRlc3QgIiRwY3JlX2N2 X2hhdmVfcGNyZTJfY29tcGlsZSIgPSB5ZXM7IHRoZW4KICAgICAgIHVzZV9wY3JlPXllcwog ICAgIGVsaWYgdGVzdCAkdGVzdF9wY3JlID0gbWF5YmU7IHRoZW4KICAgICAgIEFDX01TR19X QVJOKFtBQ19QQUNLQUdFX05BTUUgd2lsbCBiZSBidWlsdCB3aXRob3V0IHBjcmUgc3VwcG9y dC5dKQpAQCAtNTAsNyArNTEsNyBAQCBBQ19ERUZVTihbZ2xfRlVOQ19QQ1JFXSwKICAgaWYg dGVzdCAkdXNlX3BjcmUgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENS RV0sIFsxXSwKICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgUGVybCBDb21w YXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKLSAgICAgICBsaWJyYXJ5ICgtbHBjcmUpLl0p CisgICAgICAgbGlicmFyeSAoLWxwY3JlMikuXSkKICAgZWxzZQogICAgIFBDUkVfQ0ZMQUdT PQogICAgIFBDUkVfTElCUz0KZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMv cGNyZXNlYXJjaC5jCmluZGV4IDA5ZjkyYzguLjYzMDY3OGIgMTAwNjQ0Ci0tLSBhL3NyYy9w Y3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTcsNDEgKzE3LDMyIEBA CiAgICAwMjExMC0xMzAxLCBVU0EuICAqLwogCiAvKiBXcml0dGVuIEF1Z3VzdCAxOTkyIGJ5 IE1pa2UgSGFlcnRlbC4gKi8KKy8qIFVwZGF0ZWQgZm9yIFBDUkUyIGJ5IENhcmxvIEFyZW5h cy4gKi8KIAogI2luY2x1ZGUgPGNvbmZpZy5oPgogI2luY2x1ZGUgInNlYXJjaC5oIgogI2lu Y2x1ZGUgImRpZS5oIgogCi0jaW5jbHVkZSA8cGNyZS5oPgorI2RlZmluZSBQQ1JFMl9DT0RF X1VOSVRfV0lEVEggOAorI2luY2x1ZGUgPHBjcmUyLmg+CiAKLS8qIFRoaXMgbXVzdCBiZSBh dCBsZWFzdCAyOyBldmVyeXRoaW5nIGFmdGVyIHRoYXQgaXMgZm9yIHBlcmZvcm1hbmNlCi0g ICBpbiBwY3JlX2V4ZWMuICAqLwotZW51bSB7IE5TVUIgPSAzMDAgfTsKLQotI2lmbmRlZiBQ Q1JFX0VYVFJBX01BVENIX0xJTUlUX1JFQ1VSU0lPTgotIyBkZWZpbmUgUENSRV9FWFRSQV9N QVRDSF9MSU1JVF9SRUNVUlNJT04gMAotI2VuZGlmCi0jaWZuZGVmIFBDUkVfU1RVRFlfSklU X0NPTVBJTEUKLSMgZGVmaW5lIFBDUkVfU1RVRFlfSklUX0NPTVBJTEUgMAotI2VuZGlmCi0j aWZuZGVmIFBDUkVfU1RVRFlfRVhUUkFfTkVFREVECi0jIGRlZmluZSBQQ1JFX1NUVURZX0VY VFJBX05FRURFRCAwCisvKiBOZWVkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9y IFBDUkUyIDwgMTAuMzAgICovCisjaWZuZGVmIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUCisj ZGVmaW5lIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05M SU1JVAorI2RlZmluZSBQQ1JFMl9FUlJPUl9ERVBUSExJTUlUICBQQ1JFMl9FUlJPUl9SRUNV UlNJT05MSU1JVAorI2RlZmluZSBwY3JlMl9zZXRfZGVwdGhfbGltaXQgICBwY3JlMl9zZXRf cmVjdXJzaW9uX2xpbWl0CiAjZW5kaWYKIAogc3RydWN0IHBjcmVfY29tcAogewotICAvKiBD b21waWxlZCBpbnRlcm5hbCBmb3JtIG9mIGEgUGVybCByZWd1bGFyIGV4cHJlc3Npb24uICAq LwotICBwY3JlICpjcmU7Ci0KLSAgLyogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgcGF0dGVybi4gICovCi0gIHBjcmVfZXh0cmEgKmV4dHJhOwotCi0jaWYgUENSRV9TVFVE WV9KSVRfQ09NUElMRQogICAvKiBUaGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXpl LiAgKi8KLSAgcGNyZV9qaXRfc3RhY2sgKmppdF9zdGFjazsKLSAgaW50IGppdF9zdGFja19z aXplOwotI2VuZGlmCisgIHBjcmUyX2ppdF9zdGFjayAqaml0X3N0YWNrOworICBQQ1JFMl9T SVpFIGppdF9zdGFja19zaXplOwogCisgIC8qIENvbXBpbGVkIGludGVybmFsIGZvcm0gb2Yg YSBQZXJsIHJlZ3VsYXIgZXhwcmVzc2lvbi4gICovCisgIHBjcmUyX2NvZGUgKmNyZTsKKyAg cGNyZTJfbWF0Y2hfY29udGV4dCAqbWNvbnRleHQ7CisgIHBjcmUyX21hdGNoX2RhdGEgKmRh dGE7CiAgIC8qIFRhYmxlLCBpbmRleGVkIGJ5ICEgKGZsYWcgJiBQQ1JFX05PVEJPTCksIG9m IHdoZXRoZXIgdGhlIGVtcHR5CiAgICAgIHN0cmluZyBtYXRjaGVzIHdoZW4gdGhhdCBmbGFn IGlzIHVzZWQuICAqLwogICBpbnQgZW1wdHlfbWF0Y2hbMl07CkBAIC02MCw1NCArNTEsNDkg QEAgc3RydWN0IHBjcmVfY29tcAogCiAvKiBNYXRjaCB0aGUgYWxyZWFkeS1jb21waWxlZCBQ Q1JFIHBhdHRlcm4gYWdhaW5zdCB0aGUgZGF0YSBpbiBTVUJKRUNULAogICAgb2Ygc2l6ZSBT RUFSQ0hfQllURVMgYW5kIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IFNFQVJDSF9PRkZTRVQsIHdp dGgKLSAgIG9wdGlvbnMgT1BUSU9OUywgYW5kIHN0b3JpbmcgcmVzdWx0aW5nIG1hdGNoZXMg aW50byBTVUIuICBSZXR1cm4KLSAgIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGxvY2F0aW9u IG9yIGEgKG5lZ2F0aXZlKSBlcnJvciBudW1iZXIuICAqLworICAgb3B0aW9ucyBPUFRJT05T LgorICAgUmV0dXJuIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGNvdW50IG9yIGEgKG5lZ2F0 aXZlKSBlcnJvciBudW1iZXIuICAqLwogc3RhdGljIGludAotaml0X2V4ZWMgKHN0cnVjdCBw Y3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBpbnQgc2VhcmNoX2J5dGVzLAot ICAgICAgICAgIGludCBzZWFyY2hfb2Zmc2V0LCBpbnQgb3B0aW9ucywgaW50ICpzdWIpCitq aXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIFBD UkUyX1NJWkUgc2VhcmNoX2J5dGVzLAorICAgICAgICAgIFBDUkUyX1NJWkUgc2VhcmNoX29m ZnNldCwgaW50IG9wdGlvbnMpCiB7CiAgIHdoaWxlICh0cnVlKQogICAgIHsKLSAgICAgIGlu dCBlID0gcGNyZV9leGVjIChwYy0+Y3JlLCBwYy0+ZXh0cmEsIHN1YmplY3QsIHNlYXJjaF9i eXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfb2Zmc2V0LCBvcHRpb25z LCBzdWIsIE5TVUIpOwotCi0jaWYgUENSRV9TVFVEWV9KSVRfQ09NUElMRQotICAgICAgLyog R29pbmcgb3ZlciB0aGlzIHdvdWxkIHRyaWdnZXIgYW4gaW50IG92ZXJmbG93IGJ1ZyB3aXRo aW4gUENSRS4gICovCi0gICAgICBpbnQgaml0c3RhY2tfbWF4ID0gSU5UX01BWCAtIDggKiAx MDI0OwotCi0gICAgICBpZiAoZSA9PSBQQ1JFX0VSUk9SX0pJVF9TVEFDS0xJTUlUCi0gICAg ICAgICAgJiYgMCA8IHBjLT5qaXRfc3RhY2tfc2l6ZSAmJiBwYy0+aml0X3N0YWNrX3NpemUg PD0gaml0c3RhY2tfbWF4IC8gMikKKyAgICAgIGludCBlID0gcGNyZTJfbWF0Y2ggKHBjLT5j cmUsIChQQ1JFMl9TUFRSKXN1YmplY3QsIHNlYXJjaF9ieXRlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlYXJjaF9vZmZzZXQsIG9wdGlvbnMsIHBjLT5kYXRhLCBwYy0+bWNv bnRleHQpOworICAgICAgaWYgKGUgPT0gUENSRTJfRVJST1JfSklUX1NUQUNLTElNSVQKKyAg ICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19zaXplICYmIHBjLT5qaXRfc3RhY2tfc2l6 ZSA8PSBJTlRfTUFYIC8gMikKICAgICAgICAgewotICAgICAgICAgIGludCBvbGRfc2l6ZSA9 IHBjLT5qaXRfc3RhY2tfc2l6ZTsKLSAgICAgICAgICBpbnQgbmV3X3NpemUgPSBwYy0+aml0 X3N0YWNrX3NpemUgPSBvbGRfc2l6ZSAqIDI7CisgICAgICAgICAgUENSRTJfU0laRSBvbGRf c2l6ZSA9IHBjLT5qaXRfc3RhY2tfc2l6ZTsKKyAgICAgICAgICBQQ1JFMl9TSVpFIG5ld19z aXplID0gcGMtPmppdF9zdGFja19zaXplID0gb2xkX3NpemUgKiAyOworCiAgICAgICAgICAg aWYgKHBjLT5qaXRfc3RhY2spCi0gICAgICAgICAgICBwY3JlX2ppdF9zdGFja19mcmVlIChw Yy0+aml0X3N0YWNrKTsKLSAgICAgICAgICBwYy0+aml0X3N0YWNrID0gcGNyZV9qaXRfc3Rh Y2tfYWxsb2MgKG9sZF9zaXplLCBuZXdfc2l6ZSk7Ci0gICAgICAgICAgaWYgKCFwYy0+aml0 X3N0YWNrKQorICAgICAgICAgICAgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKHBjLT5qaXRfc3Rh Y2spOworICAgICAgICAgIHBjLT5qaXRfc3RhY2sgPSBwY3JlMl9qaXRfc3RhY2tfY3JlYXRl IChvbGRfc2l6ZSwgbmV3X3NpemUsIE5VTEwpOworCisgICAgICAgICAgaWYgKCFwYy0+bWNv bnRleHQpCisgICAgICAgICAgICBwYy0+bWNvbnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0 X2NyZWF0ZSAoTlVMTCk7CisKKyAgICAgICAgICBpZiAoIXBjLT5qaXRfc3RhY2sgfHwgIXBj LT5tY29udGV4dCkKICAgICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAwLAogICAgICAg ICAgICAgICAgICBfKCJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgUENSRSBK SVQgc3RhY2siKSk7Ci0gICAgICAgICAgcGNyZV9hc3NpZ25faml0X3N0YWNrIChwYy0+ZXh0 cmEsIE5VTEwsIHBjLT5qaXRfc3RhY2spOworICAgICAgICAgIHBjcmUyX2ppdF9zdGFja19h c3NpZ24gKHBjLT5tY29udGV4dCwgTlVMTCwgcGMtPmppdF9zdGFjayk7CiAgICAgICAgICAg Y29udGludWU7CiAgICAgICAgIH0KLSNlbmRpZgotCi0jaWYgUENSRV9FWFRSQV9NQVRDSF9M SU1JVF9SRUNVUlNJT04KLSAgICAgIGlmIChlID09IFBDUkVfRVJST1JfUkVDVVJTSU9OTElN SVQKLSAgICAgICAgICAmJiAoUENSRV9TVFVEWV9FWFRSQV9ORUVERUQgfHwgcGMtPmV4dHJh KSkKKyAgICAgIGlmIChlID09IFBDUkUyX0VSUk9SX0RFUFRITElNSVQpCiAgICAgICAgIHsK LSAgICAgICAgICB1bnNpZ25lZCBsb25nIGxpbQotICAgICAgICAgICAgPSAocGMtPmV4dHJh LT5mbGFncyAmIFBDUkVfRVhUUkFfTUFUQ0hfTElNSVRfUkVDVVJTSU9OCi0gICAgICAgICAg ICAgICA/IHBjLT5leHRyYS0+bWF0Y2hfbGltaXRfcmVjdXJzaW9uCi0gICAgICAgICAgICAg ICA6IDApOwotICAgICAgICAgIGlmIChsaW0gPD0gVUxPTkdfTUFYIC8gMikKLSAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgcGMtPmV4dHJhLT5tYXRjaF9saW1pdF9yZWN1cnNpb24g PSBsaW0gPyAyICogbGltIDogKDEgPDwgMjQpIC0gMTsKLSAgICAgICAgICAgICAgcGMtPmV4 dHJhLT5mbGFncyB8PSBQQ1JFX0VYVFJBX01BVENIX0xJTUlUX1JFQ1VSU0lPTjsKLSAgICAg ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgor ICAgICAgICAgIHVpbnQzMl90IGxpbTsKKyAgICAgICAgICBwY3JlMl9jb25maWcgKFBDUkUy X0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKKyAgICAgICAgICBpZiAobGltID49IFVJTlQz Ml9NQVggLyAyKQorICAgICAgICAgICAgcmV0dXJuIGU7CisKKyAgICAgICAgICBsaW0gPDw9 IDE7CisgICAgICAgICAgaWYgKCFwYy0+bWNvbnRleHQpCisgICAgICAgICAgICBwYy0+bWNv bnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7CiAKKyAgICAgICAg ICBwY3JlMl9zZXRfZGVwdGhfbGltaXQgKHBjLT5tY29udGV4dCwgbGltKTsKKyAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgcmV0dXJuIGU7CiAgICAgfQogfQpAQCAt MTE4LDI3ICsxMDQsMzUgQEAgaml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBjLCBjaGFy IGNvbnN0ICpzdWJqZWN0LCBpbnQgc2VhcmNoX2J5dGVzLAogdm9pZCAqCiBQY29tcGlsZSAo Y2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wg ZXhhY3QpCiB7Ci0gIGludCBlOwotICBjaGFyIGNvbnN0ICplcDsKKyAgUENSRTJfU0laRSBl OworICBpbnQgZWM7CisgIFBDUkUyX1VDSEFSOCBlcFsxMjhdOyAvKiAxMjAgY29kZSB1bml0 cyBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgdHJ1bmNhdGlvbiAgKi8KICAgc3RhdGljIGNoYXIg Y29uc3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86IjsKICAgc3RhdGljIGNoYXIgY29uc3Qg d3N1ZmZpeFtdID0gIikoPyFcXHcpIjsKICAgc3RhdGljIGNoYXIgY29uc3QgeHByZWZpeFtd ID0gIl4oPzoiOwogICBzdGF0aWMgY2hhciBjb25zdCB4c3VmZml4W10gPSAiKSQiOwogICBp bnQgZml4X2xlbl9tYXggPSBNQVggKHNpemVvZiB3cHJlZml4IC0gMSArIHNpemVvZiB3c3Vm Zml4IC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgeHByZWZpeCAtIDEg KyBzaXplb2YgeHN1ZmZpeCAtIDEpOwotICBjaGFyICpyZSA9IHhubWFsbG9jICg0LCBzaXpl ICsgKGZpeF9sZW5fbWF4ICsgNCAtIDEpIC8gNCk7Ci0gIGludCBmbGFncyA9IFBDUkVfRE9M TEFSX0VORE9OTFkgfCAobWF0Y2hfaWNhc2UgPyBQQ1JFX0NBU0VMRVNTIDogMCk7CisgIHVu c2lnbmVkIGNoYXIgKnJlID0geG1hbGxvYyAoc2l6ZSArIGZpeF9sZW5fbWF4ICsgMSk7Cisg IGludCBmbGFncyA9IFBDUkUyX0RPTExBUl9FTkRPTkxZIHwgKG1hdGNoX2ljYXNlID8gUENS RTJfQ0FTRUxFU1MgOiAwKTsKICAgY2hhciAqcGF0bGltID0gcGF0dGVybiArIHNpemU7Ci0g IGNoYXIgKm4gPSByZTsKLSAgY2hhciBjb25zdCAqcDsKLSAgY2hhciBjb25zdCAqcG51bDsK KyAgY2hhciAqbiA9IChjaGFyICopcmU7CiAgIHN0cnVjdCBwY3JlX2NvbXAgKnBjID0geGNh bGxvYyAoMSwgc2l6ZW9mICgqcGMpKTsKKyAgcGNyZTJfY29tcGlsZV9jb250ZXh0ICpjY29u dGV4dCA9IHBjcmUyX2NvbXBpbGVfY29udGV4dF9jcmVhdGUoTlVMTCk7CiAKICAgaWYgKGxv Y2FsZWluZm8ubXVsdGlieXRlKQogICAgIHsKICAgICAgIGlmICghIGxvY2FsZWluZm8udXNp bmdfdXRmOCkKICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIi1QIHN1cHBvcnRz IG9ubHkgdW5pYnl0ZSBhbmQgVVRGLTggbG9jYWxlcyIpKTsKLSAgICAgIGZsYWdzIHw9IFBD UkVfVVRGODsKKyAgICAgIGZsYWdzIHw9IFBDUkUyX1VURjsKKyNpZiAwCisgICAgICAvKiBk byBub3QgbWF0Y2ggaW5kaXZpZHVhbCBjb2RlIHVuaXRzIGJ1dCBvbmx5IFVURi04ICAqLwor ICAgICAgZmxhZ3MgfD0gUENSRTJfTkVWRVJfQkFDS1NMQVNIX0M7CisjZW5kaWYKKyNpZmRl ZiBQQ1JFMl9NQVRDSF9JTlZBTElEX1VURgorICAgICAgLyogY29uc2lkZXIgaW52YWxpZCBV VEYtOCBhcyBhIGJhcnJpZXIsIGluc3RlYWQgb2YgZXJyb3IgICovCisgICAgICBmbGFncyB8 PSBQQ1JFMl9NQVRDSF9JTlZBTElEX1VURjsKKyNlbmRpZgogICAgIH0KIAogICAvKiBGSVhN RTogUmVtb3ZlIHRoaXMgcmVzdHJpY3Rpb24uICAqLwpAQCAtMTUxLDU2ICsxNDUsNDIgQEAg UGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25v cmVkLCBib29sIGV4YWN0KQogICBpZiAobWF0Y2hfbGluZXMpCiAgICAgc3RyY3B5IChuLCB4 cHJlZml4KTsKICAgbiArPSBzdHJsZW4gKG4pOwotCi0gIC8qIFRoZSBQQ1JFIGludGVyZmFj ZSBkb2Vzbid0IGFsbG93IE5VTCBieXRlcyBpbiB0aGUgcGF0dGVybiwgc28KLSAgICAgcmVw bGFjZSBlYWNoIE5VTCBieXRlIGluIHRoZSBwYXR0ZXJuIHdpdGggdGhlIGZvdXIgY2hhcmFj dGVycwotICAgICAiXDAwMCIsIHJlbW92aW5nIGEgcHJlY2VkaW5nIGJhY2tzbGFzaCBpZiB0 aGVyZSBhcmUgYW4gb2RkCi0gICAgIG51bWJlciBvZiBiYWNrc2xhc2hlcyBiZWZvcmUgdGhl IE5VTC4gICovCi0gICpwYXRsaW0gPSAnXDAnOwotICBmb3IgKHAgPSBwYXR0ZXJuOyAocG51 bCA9IHAgKyBzdHJsZW4gKHApKSA8IHBhdGxpbTsgcCA9IHBudWwgKyAxKQorICBtZW1jcHkg KG4sIHBhdHRlcm4sIHNpemUpOworICBuICs9IHNpemU7CisgIGlmIChtYXRjaF93b3JkcyAm JiAhbWF0Y2hfbGluZXMpCiAgICAgewotICAgICAgbWVtY3B5IChuLCBwLCBwbnVsIC0gcCk7 Ci0gICAgICBuICs9IHBudWwgLSBwOwotICAgICAgZm9yIChwID0gcG51bDsgcGF0dGVybiA8 IHAgJiYgcFstMV0gPT0gJ1xcJzsgcC0tKQotICAgICAgICBjb250aW51ZTsKLSAgICAgIG4g LT0gKHBudWwgLSBwKSAmIDE7Ci0gICAgICBzdHJjcHkgKG4sICJcXDAwMCIpOwotICAgICAg biArPSA0OwotICAgIH0KLSAgbWVtY3B5IChuLCBwLCBwYXRsaW0gLSBwICsgMSk7Ci0gIG4g Kz0gcGF0bGltIC0gcDsKLSAgKnBhdGxpbSA9ICdcbic7Ci0KLSAgaWYgKG1hdGNoX3dvcmRz KQogICAgIHN0cmNweSAobiwgd3N1ZmZpeCk7CisgICAgbiArPSBzdHJsZW4od3N1ZmZpeCk7 CisgICAgfQogICBpZiAobWF0Y2hfbGluZXMpCisgICAgewogICAgIHN0cmNweSAobiwgeHN1 ZmZpeCk7CisgICAgbiArPSBzdHJsZW4oeHN1ZmZpeCk7CisgICAgfQogCi0gIHBjLT5jcmUg PSBwY3JlX2NvbXBpbGUgKHJlLCBmbGFncywgJmVwLCAmZSwgcGNyZV9tYWtldGFibGVzICgp KTsKKyAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtl dGFibGVzIChOVUxMKSk7CisgIHBjLT5jcmUgPSBwY3JlMl9jb21waWxlIChyZSwgbiAtIChj aGFyICopcmUsIGZsYWdzLCAmZWMsICZlLCBjY29udGV4dCk7CiAgIGlmICghcGMtPmNyZSkK LSAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXApOwotCi0gIGludCBwY3JlX3N0 dWR5X2ZsYWdzID0gUENSRV9TVFVEWV9FWFRSQV9ORUVERUQgfCBQQ1JFX1NUVURZX0pJVF9D T01QSUxFOwotICBwYy0+ZXh0cmEgPSBwY3JlX3N0dWR5IChwYy0+Y3JlLCBwY3JlX3N0dWR5 X2ZsYWdzLCAmZXApOwotICBpZiAoZXApCi0gICAgZGllIChFWElUX1RST1VCTEUsIDAsICIl cyIsIGVwKTsKKyAgICB7CisgICAgICBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSAoZWMsIGVw LCBzaXplb2YgKGVwKSk7CisgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXAp OworICAgIH0KIAotI2lmIFBDUkVfU1RVRFlfSklUX0NPTVBJTEUKLSAgaWYgKHBjcmVfZnVs bGluZm8gKHBjLT5jcmUsIHBjLT5leHRyYSwgUENSRV9JTkZPX0pJVCwgJmUpKQotICAgIGRp ZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCJpbnRlcm5hbCBlcnJvciAoc2hvdWxkIG5ldmVyIGhh cHBlbikiKSk7CisgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9w YXR0ZXJuIChwYy0+Y3JlLCBOVUxMKTsKIAotICAvKiBUaGUgUENSRSBkb2N1bWVudGF0aW9u IHNheXMgdGhhdCBhIDMyIEtpQiBzdGFjayBpcyB0aGUgZGVmYXVsdC4gICovCi0gIGlmIChl KQotICAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOwotI2VuZGlmCisgIGVjID0g cGNyZTJfaml0X2NvbXBpbGUgKHBjLT5jcmUsIFBDUkUyX0pJVF9DT01QTEVURSk7CisgIGlm IChlYyAmJiBlYyAhPSBQQ1JFMl9FUlJPUl9KSVRfQkFET1BUSU9OICYmIGVjICE9IFBDUkUy X0VSUk9SX05PTUVNT1JZKQorICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCJKSVQgaW50 ZXJuYWwgZXJyb3I6ICVkIiksIGVjKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFRoZSBQ Q1JFIGRvY3VtZW50YXRpb24gc2F5cyB0aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZh dWx0LiAgKi8KKyAgICAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOworICAgIH0K IAogICBmcmVlIChyZSk7CiAKLSAgaW50IHN1YltOU1VCXTsKLSAgcGMtPmVtcHR5X21hdGNo W2ZhbHNlXSA9IHBjcmVfZXhlYyAocGMtPmNyZSwgcGMtPmV4dHJhLCAiIiwgMCwgMCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENSRV9OT1RCT0wsIHN1Yiwg TlNVQik7Ci0gIHBjLT5lbXB0eV9tYXRjaFt0cnVlXSA9IHBjcmVfZXhlYyAocGMtPmNyZSwg cGMtPmV4dHJhLCAiIiwgMCwgMCwgMCwgc3ViLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5TVUIpOworICBwYy0+ZW1wdHlfbWF0Y2hbZmFsc2VdID0gaml0X2V4 ZWMgKHBjLCAiIiwgMCwgMCwgUENSRTJfTk9UQk9MKTsKKyAgcGMtPmVtcHR5X21hdGNoW3Ry dWVdID0gaml0X2V4ZWMgKHBjLCAiIiwgMCwgMCwgMCk7CiAKICAgcmV0dXJuIHBjOwogfQpA QCAtMjA5LDE1ICsxODksMTUgQEAgcHRyZGlmZl90CiBQZXhlY3V0ZSAodm9pZCAqdmNwLCBj aGFyIGNvbnN0ICpidWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAg ICAgIGNoYXIgY29uc3QgKnN0YXJ0X3B0cikKIHsKLSAgaW50IHN1YltOU1VCXTsKICAgY2hh ciBjb25zdCAqcCA9IHN0YXJ0X3B0ciA/IHN0YXJ0X3B0ciA6IGJ1ZjsKICAgYm9vbCBib2wg PSBwWy0xXSA9PSBlb2xieXRlOwogICBjaGFyIGNvbnN0ICpsaW5lX3N0YXJ0ID0gYnVmOwot ICBpbnQgZSA9IFBDUkVfRVJST1JfTk9NQVRDSDsKKyAgaW50IGUgPSBQQ1JFMl9FUlJPUl9O T01BVENIOwogICBjaGFyIGNvbnN0ICpsaW5lX2VuZDsKICAgc3RydWN0IHBjcmVfY29tcCAq cGMgPSB2Y3A7CisgIFBDUkUyX1NJWkUgKnN1YiA9IHBjcmUyX2dldF9vdmVjdG9yX3BvaW50 ZXIgKHBjLT5kYXRhKTsKIAotICAvKiBUaGUgc2VhcmNoIGFkZHJlc3MgdG8gcGFzcyB0byBw Y3JlX2V4ZWMuICBUaGlzIGlzIHRoZSBzdGFydCBvZgorICAvKiBUaGUgc2VhcmNoIGFkZHJl c3MgdG8gcGFzcyB0byBQQ1JFLiAgVGhpcyBpcyB0aGUgc3RhcnQgb2YKICAgICAgdGhlIGJ1 ZmZlciwgb3IganVzdCBwYXN0IHRoZSBtb3N0LXJlY2VudGx5IGRpc2NvdmVyZWQgZW5jb2Rp bmcKICAgICAgZXJyb3Igb3IgbGluZSBlbmQuICAqLwogICBjaGFyIGNvbnN0ICpzdWJqZWN0 ID0gYnVmOwpAQCAtMjI5LDE0ICsyMDksMTQgQEAgUGV4ZWN1dGUgKHZvaWQgKnZjcCwgY2hh ciBjb25zdCAqYnVmLCBpZHhfdCBzaXplLCBpZHhfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAg IGJldHRlciBhbmQgdGhlIGNvcnJlY3RuZXNzIGlzc3VlcyB3ZXJlIHRvbyBwdXp6bGluZy4g IFNlZQogICAgICAgICAgQnVnIzIyNjU1LiAgKi8KICAgICAgIGxpbmVfZW5kID0gcmF3bWVt Y2hyIChwLCBlb2xieXRlKTsKLSAgICAgIGlmIChJTlRfTUFYIDwgbGluZV9lbmQgLSBwKQor ICAgICAgaWYgKFBDUkUyX1NJWkVfTUFYIDwgbGluZV9lbmQgLSBwKQogICAgICAgICBkaWUg KEVYSVRfVFJPVUJMRSwgMCwgXygiZXhjZWVkZWQgUENSRSdzIGxpbmUgbGVuZ3RoIGxpbWl0 IikpOwogCiAgICAgICBmb3IgKDs7KQogICAgICAgICB7CiAgICAgICAgICAgLyogU2tpcCBw YXN0IGJ5dGVzIHRoYXQgYXJlIGVhc2lseSBkZXRlcm1pbmVkIHRvIGJlIGVuY29kaW5nCiAg ICAgICAgICAgICAgZXJyb3JzLCB0cmVhdGluZyB0aGVtIGFzIGRhdGEgdGhhdCBjYW5ub3Qg bWF0Y2guICBUaGlzIGlzCi0gICAgICAgICAgICAgZmFzdGVyIHRoYW4gaGF2aW5nIHBjcmVf ZXhlYyBjaGVjayB0aGVtLiAgKi8KKyAgICAgICAgICAgICBmYXN0ZXIgdGhhbiBoYXZpbmcg UENSRSBjaGVjayB0aGVtLiAgKi8KICAgICAgICAgICB3aGlsZSAobG9jYWxlaW5mby5zYmNs ZW5bdG9fdWNoYXIgKCpwKV0gPT0gLTEpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg IHArKzsKQEAgLTI0NCwxMCArMjI0LDEwIEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIg Y29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAg ICAgIGJvbCA9IGZhbHNlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgaW50IHNlYXJj aF9vZmZzZXQgPSBwIC0gc3ViamVjdDsKKyAgICAgICAgICBQQ1JFMl9TSVpFIHNlYXJjaF9v ZmZzZXQgPSBwIC0gc3ViamVjdDsKIAogICAgICAgICAgIC8qIENoZWNrIGZvciBhbiBlbXB0 eSBtYXRjaDsgdGhpcyBpcyBmYXN0ZXIgdGhhbiBsZXR0aW5nCi0gICAgICAgICAgICAgcGNy ZV9leGVjIGRvIGl0LiAgKi8KKyAgICAgICAgICAgICBQQ1JFIGRvIGl0LiAgKi8KICAgICAg ICAgICBpZiAocCA9PSBsaW5lX2VuZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg c3ViWzBdID0gc3ViWzFdID0gc2VhcmNoX29mZnNldDsKQEAgLTI1NywxMyArMjM3LDE0IEBA IFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4 X3QgKm1hdGNoX3NpemUsCiAKICAgICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CiAgICAgICAg ICAgaWYgKCFib2wpCi0gICAgICAgICAgICBvcHRpb25zIHw9IFBDUkVfTk9UQk9MOworICAg ICAgICAgICAgb3B0aW9ucyB8PSBQQ1JFMl9OT1RCT0w7CiAKLSAgICAgICAgICBlID0gaml0 X2V4ZWMgKHBjLCBzdWJqZWN0LCBsaW5lX2VuZCAtIHN1YmplY3QsIHNlYXJjaF9vZmZzZXQs Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLCBzdWIpOwotICAgICAgICAgIGlm IChlICE9IFBDUkVfRVJST1JfQkFEVVRGOCkKKyAgICAgICAgICBlID0gaml0X2V4ZWMgKHBj LCBzdWJqZWN0LCBsaW5lX2VuZCAtIHN1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAg ICBzZWFyY2hfb2Zmc2V0LCBvcHRpb25zKTsKKyAgICAgICAgICAvKiBQQ1JFMiBwcm92aWRl cyAyMiBkaWZmZXJlbnQgZXJyb3IgY29kZXMgZm9yIGJhZCBVVEYtOCAgKi8KKyAgICAgICAg ICBpZiAoISAoUENSRTJfRVJST1JfVVRGOF9FUlIyMSA8PSBlICYmIGUgPCBQQ1JFMl9FUlJP Ul9VVEY4X0VSUjEpKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgaW50IHZhbGlk X2J5dGVzID0gc3ViWzBdOworICAgICAgICAgIFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBw Y3JlMl9nZXRfc3RhcnRjaGFyIChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNo X29mZnNldCA8PSB2YWxpZF9ieXRlcykKICAgICAgICAgICAgIHsKQEAgLTI3MywxNCArMjU0 LDE1IEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6 ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgdGhl IGVtcHR5LW1hdGNoIGNhc2Ugc3BlY2lhbGx5LCBmb3Igc3BlZWQuCiAgICAgICAgICAgICAg ICAgICAgICBUaGlzIG9wdGltaXphdGlvbiBpcyB2YWxpZCBpZiBWQUxJRF9CWVRFUyBpcyB6 ZXJvLAogICAgICAgICAgICAgICAgICAgICAgd2hpY2ggbWVhbnMgU0VBUkNIX09GRlNFVCBp cyBhbHNvIHplcm8uICAqLworICAgICAgICAgICAgICAgICAgc3ViWzBdID0gdmFsaWRfYnl0 ZXM7CiAgICAgICAgICAgICAgICAgICBzdWJbMV0gPSAwOwogICAgICAgICAgICAgICAgICAg ZSA9IHBjLT5lbXB0eV9tYXRjaFtib2xdOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGUgPSBqaXRfZXhlYyAocGMsIHN1YmplY3Qs IHZhbGlkX2J5dGVzLCBzZWFyY2hfb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3B0aW9ucyB8IFBDUkVfTk9fVVRGOF9DSEVDSyB8IFBDUkVfTk9URU9MLCBzdWIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8IFBDUkUyX05PX1VU Rl9DSEVDSyB8IFBDUkUyX05PVEVPTCk7CiAKLSAgICAgICAgICAgICAgaWYgKGUgIT0gUENS RV9FUlJPUl9OT01BVENIKQorICAgICAgICAgICAgICBpZiAoZSAhPSBQQ1JFMl9FUlJPUl9O T01BVENIKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgIC8qIFRy ZWF0IHRoZSBlbmNvZGluZyBlcnJvciBhcyBkYXRhIHRoYXQgY2Fubm90IG1hdGNoLiAgKi8K QEAgLTI5MSw3ICsyNzMsNyBAQCBQZXhlY3V0ZSAodm9pZCAqdmNwLCBjaGFyIGNvbnN0ICpi dWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAgICAgIHN1YmplY3Qg Kz0gdmFsaWRfYnl0ZXMgKyAxOwogICAgICAgICB9CiAKLSAgICAgIGlmIChlICE9IFBDUkVf RVJST1JfTk9NQVRDSCkKKyAgICAgIGlmIChlICE9IFBDUkUyX0VSUk9SX05PTUFUQ0gpCiAg ICAgICAgIGJyZWFrOwogICAgICAgYm9sID0gdHJ1ZTsKICAgICAgIHAgPSBzdWJqZWN0ID0g bGluZV9zdGFydCA9IGxpbmVfZW5kICsgMTsKQEAgLTMwMiwyNiArMjg0LDM1IEBAIFBleGVj dXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3QgKm1h dGNoX3NpemUsCiAgICAgewogICAgICAgc3dpdGNoIChlKQogICAgICAgICB7Ci0gICAgICAg IGNhc2UgUENSRV9FUlJPUl9OT01BVENIOgorICAgICAgICBjYXNlIFBDUkUyX0VSUk9SX05P TUFUQ0g6CiAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBQQ1JFX0VSUk9SX05P TUVNT1JZOgorICAgICAgICBjYXNlIFBDUkUyX0VSUk9SX05PTUVNT1JZOgogICAgICAgICAg IGRpZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCIlczogbWVtb3J5IGV4aGF1c3RlZCIpLCBpbnB1 dF9maWxlbmFtZSAoKSk7CiAKLSNpZiBQQ1JFX1NUVURZX0pJVF9DT01QSUxFCi0gICAgICAg IGNhc2UgUENSRV9FUlJPUl9KSVRfU1RBQ0tMSU1JVDoKKyAgICAgICAgY2FzZSBQQ1JFMl9F UlJPUl9KSVRfU1RBQ0tMSU1JVDoKICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwg XygiJXM6IGV4aGF1c3RlZCBQQ1JFIEpJVCBzdGFjayIpLAogICAgICAgICAgICAgICAgaW5w dXRfZmlsZW5hbWUgKCkpOwotI2VuZGlmCiAKLSAgICAgICAgY2FzZSBQQ1JFX0VSUk9SX01B VENITElNSVQ6CisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfTUFUQ0hMSU1JVDoKICAgICAg ICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgXygiJXM6IGV4Y2VlZGVkIFBDUkUncyBiYWNr dHJhY2tpbmcgbGltaXQiKSwKICAgICAgICAgICAgICAgIGlucHV0X2ZpbGVuYW1lICgpKTsK IAotICAgICAgICBjYXNlIFBDUkVfRVJST1JfUkVDVVJTSU9OTElNSVQ6Ci0gICAgICAgICAg ZGllIChFWElUX1RST1VCTEUsIDAsIF8oIiVzOiBleGNlZWRlZCBQQ1JFJ3MgcmVjdXJzaW9u IGxpbWl0IiksCisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfREVQVEhMSU1JVDoKKyAgICAg ICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwKKyAgICAgICAgICAgICAgIF8oIiVzOiBleGNl ZWRlZCBQQ1JFJ3MgbmVzdGVkIGJhY2t0cmFja2luZyBsaW1pdCIpLAogICAgICAgICAgICAg ICAgaW5wdXRfZmlsZW5hbWUgKCkpOwogCisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfUkVD VVJTRUxPT1A6CisgICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIiVzOiBQQ1JF IGRldGVjdGVkIHJlY3Vyc2UgbG9vcCIpLAorICAgICAgICAgICAgICAgaW5wdXRfZmlsZW5h bWUgKCkpOworCisjaWZkZWYgUENSRTJfRVJST1JfSEVBUExJTUlUCisgICAgICAgIGNhc2Ug UENSRTJfRVJST1JfSEVBUExJTUlUOgorICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAw LCBfKCIlczogZXhjZWVkZWQgUENSRSdzIGhlYXAgbGltaXQiKSwKKyAgICAgICAgICAgICAg IGlucHV0X2ZpbGVuYW1lICgpKTsKKyNlbmRpZgorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgLyogRm9yIG5vdywgd2UgbHVtcCBhbGwgcmVtYWluaW5nIFBDUkUgZmFpbHVyZXMg aW50byB0aGlzIGJhc2tldC4KICAgICAgICAgICAgICBJZiBhbnlvbmUgY2FyZXMgdG8gcHJv dmlkZSBzYW1wbGUgZ3JlcCB1c2FnZSB0aGF0IGNhbiB0cmlnZ2VyCmRpZmYgLS1naXQgYS90 ZXN0cy9maWxlbmFtZS1saW5lbm8ucGwgYi90ZXN0cy9maWxlbmFtZS1saW5lbm8ucGwKaW5k ZXggMWU4NGI0NS4uMWZmM2Q2YSAxMDA3NTUKLS0tIGEvdGVzdHMvZmlsZW5hbWUtbGluZW5v LnBsCisrKyBiL3Rlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbApAQCAtMTAxLDEzICsxMDEsMTMg QEAgbXkgQFRlc3RzID0KICAgIF0sCiAgICBbJ2ludmFsaWQtcmUtUC1wYXJlbicsICctUCAi KSInLCB7RVhJVD0+Mn0sCiAgICAge0VSUiA9PiAkRU5We1BDUkVfV09SS1N9ID09IDEKLSAg ICAgICA/ICIkcHJvZzogdW5tYXRjaGVkIHBhcmVudGhlc2VzXG4iCisgICAgICAgPyAiJHBy b2c6IHVubWF0Y2hlZCBjbG9zaW5nIHBhcmVudGhlc2lzXG4iCiAgICAgICAgOiAkbm9fcGNy ZQogICAgIH0sCiAgICBdLAogICAgWydpbnZhbGlkLXJlLVAtc3Rhci1wYXJlbicsICctUCAi YS4qKSInLCB7RVhJVD0+Mn0sCiAgICAge0VSUiA9PiAkRU5We1BDUkVfV09SS1N9ID09IDEK LSAgICAgICA/ICIkcHJvZzogdW5tYXRjaGVkIHBhcmVudGhlc2VzXG4iCisgICAgICAgPyAi JHByb2c6IHVubWF0Y2hlZCBjbG9zaW5nIHBhcmVudGhlc2lzXG4iCiAgICAgICAgOiAkbm9f cGNyZQogICAgIH0sCiAgICBdLAotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0002-maint-minor-rewording-and-reindenting.patch" Content-Disposition: attachment; filename="0002-maint-minor-rewording-and-reindenting.patch" Content-Transfer-Encoding: base64 RnJvbSBiNmI0M2JlYTMyYjVlMDU5OTI5ZmE1OGVkOGFkMTgyZmU1ZmExZWNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDE2OjU2OjUzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMi8xMl0gbWFpbnQ6IG1pbm9yIHJld29yZGluZyBhbmQgcmVpbmRlbnRpbmcKCi0tLQog TkVXUyAgICAgICAgICAgICB8ICA0ICsrKysKIFRPRE8gICAgICAgICAgICAgfCAgNCArKy0t CiBtNC9wY3JlLm00ICAgICAgIHwgIDggKysrKy0tLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA0 NCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMv cGNyZS1hYm9ydCB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyks IDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDRhNjJm YjcuLjJmNjMwNzEgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtNCwxMCArNCwx NCBAQCBHTlUgZ3JlcCBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LSotIG91dGxpbmUgLSotCiAKICoqIENoYW5nZXMgaW4gYmVoYXZpb3IKIAorICBUaGUgLVAg b3B0aW9uIGlzIG5vdyBiYXNlZCBvbiBQQ1JFMiBpbnN0ZWFkIG9mIHRoZSBvbGRlciBQQ1JF LAorICB0aGFua3MgdG8gY29kZSBjb250cmlidXRlZCBieSBDYXJsbyBBcmVuYXMuCisKICAg VGhlIGVncmVwIGFuZCBmZ3JlcCBjb21tYW5kcywgd2hpY2ggaGF2ZSBiZWVuIGRlcHJlY2F0 ZWQgc2luY2UKICAgcmVsZWFzZSAyLjUuMyAoMjAwNyksIG5vdyB3YXJuIHRoYXQgdGhleSBh cmUgb2Jzb2xlc2NlbnQgYW5kIHNob3VsZAogICBiZSByZXBsYWNlZCBieSBncmVwIC1FIGFu ZCBncmVwIC1GLgogCisKICogTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgMy43ICgy MDIxLTA4LTE0KSBbc3RhYmxlXQogCiAqKiBDaGFuZ2VzIGluIGJlaGF2aW9yCmRpZmYgLS1n aXQgYS9UT0RPIGIvVE9ETwppbmRleCA1MjExYWMxLi4wYjgyZWZmIDEwMDY0NAotLS0gYS9U T0RPCisrKyBiL1RPRE8KQEAgLTMxLDEzICszMSwxMyBAQCBHTlUgZ3JlcCBvcmlnaW5hbGx5 IGRpZCAzMi1iaXQgYXJpdGhtZXRpYy4gIEFsdGhvdWdoIGl0IGhhcyBtb3ZlZCB0bwogNjQt Yml0IG9uIDY0LWJpdCBwbGF0Zm9ybXMgYnkgdXNpbmcgdHlwZXMgbGlrZSBwdHJkaWZmX3Qg YW5kIHNpemVfdCwKIHRoaXMgY29udmVyc2lvbiBoYXMgbm90IGJlZW4gZW50aXJlbHkgc3lz dGVtYXRpYyBhbmQgc2hvdWxkIGJlIGNoZWNrZWQuCiAKLUxhenkgZHluYW1pYyBsaW5raW5n IG9mIGxpYnBjcmUuICBTZWUgRGViaWFu4oCZcyAwMy0zOTcyNjItZGxvcGVuLXBjcmUucGF0 Y2guCitMYXp5IGR5bmFtaWMgbGlua2luZyBvZiB0aGUgUENSRSBsaWJyYXJ5LgogCiBDaGVj ayBGcmVlQlNE4oCZcyBpbnRlZ3JhdGlvbiBvZiB6Z3JlcCAoLVopIGFuZCBiemdyZXAgKC1K KSBpbiBvbmUKIGJpbmFyeS4gIElzIHRoZXJlIGEgcG9zc2liaWxpdHkgb2YgZG9pbmcgZXZl biBiZXR0ZXIgYnkgYXV0b21hdGljYWxseQogY2hlY2tpbmcgdGhlIG1hZ2ljIG9mIGJpbmFy eSBmaWxlcyBvdXJzZWx2ZXMgKDB4MUYgMHg4QiBmb3IgZ3ppcCwgMHgxRgogMHg5RCBmb3Ig Y29tcHJlc3MsIGFuZCAweDQyIDB4NUEgMHg2OCBmb3IgYnppcDIpPyAgT25jZSB3aGF0IHRv IGRvIHdpdGgKLWxpYnBjcmUgaXMgZGVjaWRlZCwgZG8gdGhlIHNhbWUgZm9yIGxpYnogYW5k IGxpYmJ6Mi4KK3RoZSBQQ1JFIGxpYnJhcnkgaXMgZGVjaWRlZCwgZG8gdGhlIHNhbWUgZm9y IGxpYnogYW5kIGxpYmJ6Mi4KIAogDAogPT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0 IGEvbTQvcGNyZS5tNCBiL200L3BjcmUubTQKaW5kZXggYTFjNmM4Mi4uOTcwYTIyOSAxMDA2 NDQKLS0tIGEvbTQvcGNyZS5tNAorKysgYi9tNC9wY3JlLm00CkBAIC05LDcgKzksNyBAQCBB Q19ERUZVTihbZ2xfRlVOQ19QQ1JFXSwKIFsKICAgQUNfQVJHX0VOQUJMRShbcGVybC1yZWdl eHBdLAogICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtcGVybC1yZWdleHBdLAotICAg ICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChwY3JlMikgc3VwcG9ydF0p LAorICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChQQ1JFKSBzdXBw b3J0XSksCiAgICAgW2Nhc2UgJGVuYWJsZXZhbCBpbgogICAgICAgIHllc3xubykgdGVzdF9w Y3JlPSRlbmFibGV2YWw7OwogICAgICAgICopIEFDX01TR19FUlJPUihbaW52YWxpZCB2YWx1 ZSAkZW5hYmxldmFsIGZvciAtLWRpc2FibGUtcGVybC1yZWdleHBdKTs7CkBAIC00MiwxNiAr NDIsMTYgQEAgQUNfREVGVU4oW2dsX0ZVTkNfUENSRV0sCiAgICAgaWYgdGVzdCAiJHBjcmVf Y3ZfaGF2ZV9wY3JlMl9jb21waWxlIiA9IHllczsgdGhlbgogICAgICAgdXNlX3BjcmU9eWVz CiAgICAgZWxpZiB0ZXN0ICR0ZXN0X3BjcmUgPSBtYXliZTsgdGhlbgotICAgICAgQUNfTVNH X1dBUk4oW0FDX1BBQ0tBR0VfTkFNRSB3aWxsIGJlIGJ1aWx0IHdpdGhvdXQgcGNyZSBzdXBw b3J0Ll0pCisgICAgICBBQ19NU0dfV0FSTihbQUNfUEFDS0FHRV9OQU1FIHdpbGwgYmUgYnVp bHQgd2l0aG91dCBQQ1JFIHN1cHBvcnQuXSkKICAgICBlbHNlCi0gICAgICBBQ19NU0dfRVJS T1IoW3BjcmUgc3VwcG9ydCBub3QgYXZhaWxhYmxlXSkKKyAgICAgIEFDX01TR19FUlJPUihb UENSRSBzdXBwb3J0IG5vdCBhdmFpbGFibGVdKQogICAgIGZpCiAgIGZpCiAKICAgaWYgdGVz dCAkdXNlX3BjcmUgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENSRV0s IFsxXSwKICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgUGVybCBDb21wYXRp YmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKLSAgICAgICBsaWJyYXJ5ICgtbHBjcmUyKS5dKQor ICAgICAgIGxpYnJhcnkuXSkKICAgZWxzZQogICAgIFBDUkVfQ0ZMQUdTPQogICAgIFBDUkVf TElCUz0KZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5j CmluZGV4IDYzMDY3OGIuLmRhYTBjNDIgMTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMK KysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTYsOSArMTYsNiBAQAogICAgRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEK ICAgIDAyMTEwLTEzMDEsIFVTQS4gICovCiAKLS8qIFdyaXR0ZW4gQXVndXN0IDE5OTIgYnkg TWlrZSBIYWVydGVsLiAqLwotLyogVXBkYXRlZCBmb3IgUENSRTIgYnkgQ2FybG8gQXJlbmFz LiAqLwotCiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSAic2VhcmNoLmgiCiAjaW5j bHVkZSAiZGllLmgiCkBAIC0yNiwyNCArMjMsMjcgQEAKICNkZWZpbmUgUENSRTJfQ09ERV9V TklUX1dJRFRIIDgKICNpbmNsdWRlIDxwY3JlMi5oPgogCi0vKiBOZWVkZWQgZm9yIGJhY2t3 YXJkIGNvbXBhdGliaWxpdHkgZm9yIFBDUkUyIDwgMTAuMzAgICovCisvKiBGb3IgUENSRTIg PCAxMC4zMC4gICovCiAjaWZuZGVmIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUCi0jZGVmaW5l IFBDUkUyX0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05MSU1JVAot I2RlZmluZSBQQ1JFMl9FUlJPUl9ERVBUSExJTUlUICBQQ1JFMl9FUlJPUl9SRUNVUlNJT05M SU1JVAotI2RlZmluZSBwY3JlMl9zZXRfZGVwdGhfbGltaXQgICBwY3JlMl9zZXRfcmVjdXJz aW9uX2xpbWl0CisjIGRlZmluZSBQQ1JFMl9DT05GSUdfREVQVEhMSU1JVCBQQ1JFMl9DT05G SUdfUkVDVVJTSU9OTElNSVQKKyMgZGVmaW5lIFBDUkUyX0VSUk9SX0RFUFRITElNSVQgUENS RTJfRVJST1JfUkVDVVJTSU9OTElNSVQKKyMgZGVmaW5lIHBjcmUyX3NldF9kZXB0aF9saW1p dCBwY3JlMl9zZXRfcmVjdXJzaW9uX2xpbWl0CiAjZW5kaWYKIAogc3RydWN0IHBjcmVfY29t cAogewotICAvKiBUaGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXplLiAgKi8KLSAg cGNyZTJfaml0X3N0YWNrICpqaXRfc3RhY2s7Ci0gIFBDUkUyX1NJWkUgaml0X3N0YWNrX3Np emU7Ci0KICAgLyogQ29tcGlsZWQgaW50ZXJuYWwgZm9ybSBvZiBhIFBlcmwgcmVndWxhciBl eHByZXNzaW9uLiAgKi8KICAgcGNyZTJfY29kZSAqY3JlOworCisgIC8qIE1hdGNoIGNvbnRl eHQgYW5kIGRhdGEgYmxvY2suICAqLwogICBwY3JlMl9tYXRjaF9jb250ZXh0ICptY29udGV4 dDsKICAgcGNyZTJfbWF0Y2hfZGF0YSAqZGF0YTsKLSAgLyogVGFibGUsIGluZGV4ZWQgYnkg ISAoZmxhZyAmIFBDUkVfTk9UQk9MKSwgb2Ygd2hldGhlciB0aGUgZW1wdHkKKworICAvKiBU aGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXplLiAgKi8KKyAgcGNyZTJfaml0X3N0 YWNrICpqaXRfc3RhY2s7CisgIFBDUkUyX1NJWkUgaml0X3N0YWNrX3NpemU7CisKKyAgLyog VGFibGUsIGluZGV4ZWQgYnkgISAoZmxhZyAmIFBDUkUyX05PVEJPTCksIG9mIHdoZXRoZXIg dGhlIGVtcHR5CiAgICAgIHN0cmluZyBtYXRjaGVzIHdoZW4gdGhhdCBmbGFnIGlzIHVzZWQu ICAqLwogICBpbnQgZW1wdHlfbWF0Y2hbMl07CiB9OwpAQCAtNTksNyArNTksNyBAQCBqaXRf ZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIFBDUkUy X1NJWkUgc2VhcmNoX2J5dGVzLAogewogICB3aGlsZSAodHJ1ZSkKICAgICB7Ci0gICAgICBp bnQgZSA9IHBjcmUyX21hdGNoIChwYy0+Y3JlLCAoUENSRTJfU1BUUilzdWJqZWN0LCBzZWFy Y2hfYnl0ZXMsCisgICAgICBpbnQgZSA9IHBjcmUyX21hdGNoIChwYy0+Y3JlLCAoUENSRTJf U1BUUikgc3ViamVjdCwgc2VhcmNoX2J5dGVzLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VhcmNoX29mZnNldCwgb3B0aW9ucywgcGMtPmRhdGEsIHBjLT5tY29udGV4dCk7CiAg ICAgICBpZiAoZSA9PSBQQ1JFMl9FUlJPUl9KSVRfU1RBQ0tMSU1JVAogICAgICAgICAgICYm IDAgPCBwYy0+aml0X3N0YWNrX3NpemUgJiYgcGMtPmppdF9zdGFja19zaXplIDw9IElOVF9N QVggLyAyKQpAQCAtMTE4LDcgKzExOCw3IEBAIFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBp ZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFjdCkKICAgY2hhciAq cGF0bGltID0gcGF0dGVybiArIHNpemU7CiAgIGNoYXIgKm4gPSAoY2hhciAqKXJlOwogICBz dHJ1Y3QgcGNyZV9jb21wICpwYyA9IHhjYWxsb2MgKDEsIHNpemVvZiAoKnBjKSk7Ci0gIHBj cmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRf Y3JlYXRlKE5VTEwpOworICBwY3JlMl9jb21waWxlX2NvbnRleHQgKmNjb250ZXh0ID0gcGNy ZTJfY29tcGlsZV9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7CiAKICAgaWYgKGxvY2FsZWluZm8u bXVsdGlieXRlKQogICAgIHsKQEAgLTEyNiwxMSArMTI2LDExIEBAIFBjb21waWxlIChjaGFy ICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFj dCkKICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIi1QIHN1cHBvcnRzIG9ubHkg dW5pYnl0ZSBhbmQgVVRGLTggbG9jYWxlcyIpKTsKICAgICAgIGZsYWdzIHw9IFBDUkUyX1VU RjsKICNpZiAwCi0gICAgICAvKiBkbyBub3QgbWF0Y2ggaW5kaXZpZHVhbCBjb2RlIHVuaXRz IGJ1dCBvbmx5IFVURi04ICAqLworICAgICAgLyogRG8gbm90IG1hdGNoIGluZGl2aWR1YWwg Y29kZSB1bml0cyBidXQgb25seSBVVEYtOC4gICovCiAgICAgICBmbGFncyB8PSBQQ1JFMl9O RVZFUl9CQUNLU0xBU0hfQzsKICNlbmRpZgogI2lmZGVmIFBDUkUyX01BVENIX0lOVkFMSURf VVRGCi0gICAgICAvKiBjb25zaWRlciBpbnZhbGlkIFVURi04IGFzIGEgYmFycmllciwgaW5z dGVhZCBvZiBlcnJvciAgKi8KKyAgICAgIC8qIENvbnNpZGVyIGludmFsaWQgVVRGLTggYXMg YSBiYXJyaWVyLCBpbnN0ZWFkIG9mIGVycm9yLiAgKi8KICAgICAgIGZsYWdzIHw9IFBDUkUy X01BVENIX0lOVkFMSURfVVRGOwogI2VuZGlmCiAgICAgfQpAQCAtMTQ5LDEzICsxNDksMTMg QEAgUGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBp Z25vcmVkLCBib29sIGV4YWN0KQogICBuICs9IHNpemU7CiAgIGlmIChtYXRjaF93b3JkcyAm JiAhbWF0Y2hfbGluZXMpCiAgICAgewotICAgIHN0cmNweSAobiwgd3N1ZmZpeCk7Ci0gICAg biArPSBzdHJsZW4od3N1ZmZpeCk7CisgICAgICBzdHJjcHkgKG4sIHdzdWZmaXgpOworICAg ICAgbiArPSBzdHJsZW4gKHdzdWZmaXgpOwogICAgIH0KICAgaWYgKG1hdGNoX2xpbmVzKQog ICAgIHsKLSAgICBzdHJjcHkgKG4sIHhzdWZmaXgpOwotICAgIG4gKz0gc3RybGVuKHhzdWZm aXgpOworICAgICAgc3RyY3B5IChuLCB4c3VmZml4KTsKKyAgICAgIG4gKz0gc3RybGVuICh4 c3VmZml4KTsKICAgICB9CiAKICAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250 ZXh0LCBwY3JlMl9tYWtldGFibGVzIChOVUxMKSk7CkBAIC0yMDQsOCArMjA0LDggQEAgUGV4 ZWN1dGUgKHZvaWQgKnZjcCwgY2hhciBjb25zdCAqYnVmLCBpZHhfdCBzaXplLCBpZHhfdCAq bWF0Y2hfc2l6ZSwKIAogICBkbwogICAgIHsKLSAgICAgIC8qIFNlYXJjaCBsaW5lIGJ5IGxp bmUuICBBbHRob3VnaCB0aGlzIGNvZGUgZm9ybWVybHkgdXNlZAotICAgICAgICAgUENSRV9N VUxUSUxJTkUgZm9yIHBlcmZvcm1hbmNlLCB0aGUgcGVyZm9ybWFuY2Ugd2Fzbid0IGFsd2F5 cworICAgICAgLyogU2VhcmNoIGxpbmUgYnkgbGluZS4gIEFsdGhvdWdoIHRoaXMgZm9ybWVy bHkgdXNlZCBzb21ldGhpbmcgbGlrZQorICAgICAgICAgUENSRTJfTVVMVElMSU5FIGZvciBw ZXJmb3JtYW5jZSwgdGhlIHBlcmZvcm1hbmNlIHdhc24ndCBhbHdheXMKICAgICAgICAgIGJl dHRlciBhbmQgdGhlIGNvcnJlY3RuZXNzIGlzc3VlcyB3ZXJlIHRvbyBwdXp6bGluZy4gIFNl ZQogICAgICAgICAgQnVnIzIyNjU1LiAgKi8KICAgICAgIGxpbmVfZW5kID0gcmF3bWVtY2hy IChwLCBlb2xieXRlKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3BjcmUtYWJvcnQgYi90ZXN0cy9w Y3JlLWFib3J0CmluZGV4IDUxY2VlMjUuLjc3MmExZDIgMTAwNzU1Ci0tLSBhL3Rlc3RzL3Bj cmUtYWJvcnQKKysrIGIvdGVzdHMvcGNyZS1hYm9ydApAQCAtMSw1ICsxLDUgQEAKICMhIC9i aW4vc2gKLSMgU2hvdyB0aGF0IGdyZXAgaGFuZGxlcyBQQ1JFJ3MgUENSRV9FUlJPUl9NQVRD SExJTUlULgorIyBTaG93IHRoYXQgZ3JlcCBoYW5kbGVzIFBDUkUyX0VSUk9SX01BVENITElN SVQuCiAjIEluIGdyZXAtMi44LCBpdCB3b3VsZCBhYm9ydC4KICMKICMgQ29weXJpZ2h0IChD KSAyMDExLTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0tIAoyLjMyLjAK Cg== --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0003-grep-Don-t-limit-jitstack_max-to-INT_MAX.patch" Content-Disposition: attachment; filename="0003-grep-Don-t-limit-jitstack_max-to-INT_MAX.patch" Content-Transfer-Encoding: base64 RnJvbSBlODk2ZDhiMGVjZGEwMzYyMzNkZmEyMGFjMGIxN2E2YWMzZDY1NDMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDIxOjMwOjI1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMy8xMl0gPT9VVEYtOD9xP2dyZXA6PTIwRG9uPUUyPTgwPTk5dD0yMGxpbWl0PTIwaml0 c3RhY2s/PQogPT9VVEYtOD9xPz01Rm1heD0yMHRvPTIwSU5UPTVGTUFYPz0KTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL3BjcmVzZWFyY2guYyAoaml0X2V4 ZWMpOiBSZW1vdmUgYXJiaXRyYXJ5IElOVF9NQVggbGltaXQgb24gSklUCnN0YWNrIHNpemUu Ci0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDggKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNl YXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCBkYWEwYzQyLi5iZjk2NmY4IDEwMDY0 NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTU5 LDEwICs1OSwxNiBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29u c3QgKnN1YmplY3QsIFBDUkUyX1NJWkUgc2VhcmNoX2J5dGVzLAogewogICB3aGlsZSAodHJ1 ZSkKICAgICB7CisgICAgICAvKiBTVEFDS19HUk9XVEhfUkFURSBpcyB0YWtlbiBmcm9tIFBD UkUncyBzcmMvcGNyZTJfaml0X2NvbXBpbGUuYy4KKyAgICAgICAgIEdvaW5nIG92ZXIgdGhl IGppdHN0YWNrX21heCBsaW1pdCBjb3VsZCB0cmlnZ2VyIGFuIGludAorICAgICAgICAgb3Zl cmZsb3cgYnVnIHdpdGhpbiBQQ1JFLiAgKi8KKyAgICAgIGludCBTVEFDS19HUk9XVEhfUkFU RSA9IDgxOTI7CisgICAgICBzaXplX3Qgaml0c3RhY2tfbWF4ID0gU0laRV9NQVggLSAoU1RB Q0tfR1JPV1RIX1JBVEUgLSAxKTsKKwogICAgICAgaW50IGUgPSBwY3JlMl9tYXRjaCAocGMt PmNyZSwgKFBDUkUyX1NQVFIpIHN1YmplY3QsIHNlYXJjaF9ieXRlcywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlYXJjaF9vZmZzZXQsIG9wdGlvbnMsIHBjLT5kYXRhLCBwYy0+ bWNvbnRleHQpOwogICAgICAgaWYgKGUgPT0gUENSRTJfRVJST1JfSklUX1NUQUNLTElNSVQK LSAgICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19zaXplICYmIHBjLT5qaXRfc3RhY2tf c2l6ZSA8PSBJTlRfTUFYIC8gMikKKyAgICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19z aXplICYmIHBjLT5qaXRfc3RhY2tfc2l6ZSA8PSBqaXRzdGFja19tYXggLyAyKQogICAgICAg ICB7CiAgICAgICAgICAgUENSRTJfU0laRSBvbGRfc2l6ZSA9IHBjLT5qaXRfc3RhY2tfc2l6 ZTsKICAgICAgICAgICBQQ1JFMl9TSVpFIG5ld19zaXplID0gcGMtPmppdF9zdGFja19zaXpl ID0gb2xkX3NpemUgKiAyOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0004-grep-improve-pcre2_get_error_message-comments.patch" Content-Disposition: attachment; filename="0004-grep-improve-pcre2_get_error_message-comments.patch" Content-Transfer-Encoding: base64 RnJvbSA4YzljZWI4ODQzNDZjZTI1ZjE1M2ZkMjM2YzI0NWIzNzEzMTgxZjIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDIxOjM0OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNC8xMl0gZ3JlcDogaW1wcm92ZSBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSBjb21tZW50 cwoKKiBzcmMvcGNyZXNlYXJjaC5jIChQY29tcGlsZSk6IEltcHJvdmUgY29tbWVudHMgcmUK cGNyZTJfZ2V0X2Vycm9yX21lc3NhZ2UgYnVmZmVyLgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMg fCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5j CmluZGV4IGJmOTY2ZjguLjI4NmUxZGMgMTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMK KysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTEyLDcgKzExMiw2IEBAIFBjb21waWxlIChj aGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBl eGFjdCkKIHsKICAgUENSRTJfU0laRSBlOwogICBpbnQgZWM7Ci0gIFBDUkUyX1VDSEFSOCBl cFsxMjhdOyAvKiAxMjAgY29kZSB1bml0cyBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgdHJ1bmNh dGlvbiAgKi8KICAgc3RhdGljIGNoYXIgY29uc3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86 IjsKICAgc3RhdGljIGNoYXIgY29uc3Qgd3N1ZmZpeFtdID0gIikoPyFcXHcpIjsKICAgc3Rh dGljIGNoYXIgY29uc3QgeHByZWZpeFtdID0gIl4oPzoiOwpAQCAtMTY4LDcgKzE2Nyw5IEBA IFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdu b3JlZCwgYm9vbCBleGFjdCkKICAgcGMtPmNyZSA9IHBjcmUyX2NvbXBpbGUgKHJlLCBuIC0g KGNoYXIgKilyZSwgZmxhZ3MsICZlYywgJmUsIGNjb250ZXh0KTsKICAgaWYgKCFwYy0+Y3Jl KQogICAgIHsKLSAgICAgIHBjcmUyX2dldF9lcnJvcl9tZXNzYWdlIChlYywgZXAsIHNpemVv ZiAoZXApKTsKKyAgICAgIGVudW0geyBFUlJCVUZTSVogPSAyNTYgfTsgLyogVGFrZW4gZnJv bSBwY3JlMmdyZXAuYyBFUlJCVUZTSVouICAqLworICAgICAgUENSRTJfVUNIQVI4IGVwW0VS UkJVRlNJWl07CisgICAgICBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSAoZWMsIGVwLCBzaXpl b2YgZXApOwogICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsICIlcyIsIGVwKTsKICAgICB9 CiAKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0005-grep-speed-up-fix-bad-UTF8-check-with-P.patch" Content-Disposition: attachment; filename="0005-grep-speed-up-fix-bad-UTF8-check-with-P.patch" Content-Transfer-Encoding: base64 RnJvbSBhMWI0NDQwMjcyMzFjYWFjMjQ3YWIwZmJkNWJlOGJkYThlYjNkNjI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDEzIE5vdiAyMDIxIDEzOjUyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNS8xMl0gZ3JlcDogc3BlZWQgdXAsIGZpeCBiYWQtVVRGOCBjaGVjayB3aXRoIC1QCgoq IHNyYy9wY3Jlc2VhcmNoLmMgKGJhZF91dGY4X2Zyb21fcGNyZTIpOiBOZXcgZnVuY3Rpb24u ICBGaXggYnVnCndoZXJlIFBDUkUyX0VSUk9SX1VURjhfRVJSMSB3YXMgbm90IHRyZWF0ZWQg YXMgYW4gZW5jb2RpbmcgZXJyb3IuCkltcHJvdmUgcGVyZm9ybWFuY2Ugd2hlbiBQQ1JFMl9N QVRDSF9JTlZBTElEX1VURiBpcyBkZWZpbmVkLgooUGV4ZWN1dGUpOiBVc2UgaXQuCi0tLQog c3JjL3BjcmVzZWFyY2guYyB8IDE2ICsrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9w Y3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5jCmluZGV4IDI4NmUxZGMuLjk1M2FjYTIg MTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpA QCAtMTA0LDYgKzEwNCwxOCBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNo YXIgY29uc3QgKnN1YmplY3QsIFBDUkUyX1NJWkUgc2VhcmNoX2J5dGVzLAogICAgIH0KIH0K IAorLyogUmV0dXJuIHRydWUgaWYgRSBpcyBhbiBlcnJvciBjb2RlIGZvciBiYWQgVVRGLTgs IGFuZCBpZiBwY3JlMl9tYXRjaAorICAgY291bGQgcmV0dXJuIEUgYmVjYXVzZSBQQ1JFIGxh Y2tzIFBDUkUyX01BVENIX0lOVkFMSURfVVRGLiAgKi8KK3N0YXRpYyBib29sCitiYWRfdXRm OF9mcm9tX3BjcmUyIChpbnQgZSkKK3sKKyNpZmRlZiBQQ1JFMl9NQVRDSF9JTlZBTElEX1VU RgorICByZXR1cm4gZmFsc2U7CisjZWxzZQorICByZXR1cm4gUENSRTJfRVJST1JfVVRGOF9F UlIyMSA8PSBlICYmIGUgPD0gUENSRTJfRVJST1JfVVRGOF9FUlIxOworI2VuZGlmCit9CisK IC8qIENvbXBpbGUgdGhlIC1QIHN0eWxlIFBBVFRFUk4sIGNvbnRhaW5pbmcgU0laRSBieXRl cyB0aGF0IGFyZQogICAgZm9sbG93ZWQgYnkgJ1xuJy4gIFJldHVybiBhIGRlc2NyaXB0aW9u IG9mIHRoZSBjb21waWxlZCBwYXR0ZXJuLiAgKi8KIApAQCAtMjQ4LDkgKzI2MCw5IEBAIFBl eGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3Qg Km1hdGNoX3NpemUsCiAKICAgICAgICAgICBlID0gaml0X2V4ZWMgKHBjLCBzdWJqZWN0LCBs aW5lX2VuZCAtIHN1YmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfb2Zm c2V0LCBvcHRpb25zKTsKLSAgICAgICAgICAvKiBQQ1JFMiBwcm92aWRlcyAyMiBkaWZmZXJl bnQgZXJyb3IgY29kZXMgZm9yIGJhZCBVVEYtOCAgKi8KLSAgICAgICAgICBpZiAoISAoUENS RTJfRVJST1JfVVRGOF9FUlIyMSA8PSBlICYmIGUgPCBQQ1JFMl9FUlJPUl9VVEY4X0VSUjEp KQorICAgICAgICAgIGlmICghYmFkX3V0ZjhfZnJvbV9wY3JlMiAoZSkpCiAgICAgICAgICAg ICBicmVhazsKKwogICAgICAgICAgIFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBwY3JlMl9n ZXRfc3RhcnRjaGFyIChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNoX29mZnNl dCA8PSB2YWxpZF9ieXRlcykKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0006-grep-prefer-signed-integers.patch" Content-Disposition: attachment; filename="0006-grep-prefer-signed-integers.patch" Content-Transfer-Encoding: base64 RnJvbSBjYjI3MjVlMjhlZWQ4MzJjNmQyOTVjZGIyM2UzYzBiNzMwMDI1MjFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDEzIE5vdiAyMDIxIDE3OjMwOjIzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNi8xMl0gZ3JlcDogcHJlZmVyIHNpZ25lZCBpbnRlZ2VycwoKKiBzcmMvcGNyZXNlYXJj aC5jIChzdHJ1Y3QgcGNyZV9jb21wLCBqaXRfZXhlYywgUGV4ZWN1dGUpOgpQcmVmZXIgc2ln bmVkIHRvIHVuc2lnbmVkIHR5cGVzIHdoZW4gZWl0aGVyIHdpbGwgZG8uCihqaXRfZXhlYyk6 IFVzZSBJTlRfTVVMVElQTFlfV1JBUFYgaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoo UGV4ZWN1dGUpOiBPbWl0IGxpbmUgbGVuZ3RoIGxpbWl0IHRlc3QgdGhhdCBpcyBubyBsb25n ZXIKbmVlZGVkIHdpdGggUENSRTIuCi0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDI0ICsrKysr KysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMv cGNyZXNlYXJjaC5jCmluZGV4IDk1M2FjYTIuLmZkZWNiZTggMTAwNjQ0Ci0tLSBhL3NyYy9w Y3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtNDEsNyArNDEsNyBAQCBz dHJ1Y3QgcGNyZV9jb21wCiAKICAgLyogVGhlIEpJVCBzdGFjayBhbmQgaXRzIG1heGltdW0g c2l6ZS4gICovCiAgIHBjcmUyX2ppdF9zdGFjayAqaml0X3N0YWNrOwotICBQQ1JFMl9TSVpF IGppdF9zdGFja19zaXplOworICBpZHhfdCBqaXRfc3RhY2tfc2l6ZTsKIAogICAvKiBUYWJs ZSwgaW5kZXhlZCBieSAhIChmbGFnICYgUENSRTJfTk9UQk9MKSwgb2Ygd2hldGhlciB0aGUg ZW1wdHkKICAgICAgc3RyaW5nIG1hdGNoZXMgd2hlbiB0aGF0IGZsYWcgaXMgdXNlZC4gICov CkBAIC01NCwyNCArNTQsMjQgQEAgc3RydWN0IHBjcmVfY29tcAogICAgb3B0aW9ucyBPUFRJ T05TLgogICAgUmV0dXJuIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGNvdW50IG9yIGEgKG5l Z2F0aXZlKSBlcnJvciBudW1iZXIuICAqLwogc3RhdGljIGludAotaml0X2V4ZWMgKHN0cnVj dCBwY3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBQQ1JFMl9TSVpFIHNlYXJj aF9ieXRlcywKLSAgICAgICAgICBQQ1JFMl9TSVpFIHNlYXJjaF9vZmZzZXQsIGludCBvcHRp b25zKQoraml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJq ZWN0LCBpZHhfdCBzZWFyY2hfYnl0ZXMsCisgICAgICAgICAgaWR4X3Qgc2VhcmNoX29mZnNl dCwgaW50IG9wdGlvbnMpCiB7CiAgIHdoaWxlICh0cnVlKQogICAgIHsKICAgICAgIC8qIFNU QUNLX0dST1dUSF9SQVRFIGlzIHRha2VuIGZyb20gUENSRSdzIHNyYy9wY3JlMl9qaXRfY29t cGlsZS5jLgogICAgICAgICAgR29pbmcgb3ZlciB0aGUgaml0c3RhY2tfbWF4IGxpbWl0IGNv dWxkIHRyaWdnZXIgYW4gaW50Ci0gICAgICAgICBvdmVyZmxvdyBidWcgd2l0aGluIFBDUkUu ICAqLworICAgICAgICAgb3ZlcmZsb3cgYnVnLiAgKi8KICAgICAgIGludCBTVEFDS19HUk9X VEhfUkFURSA9IDgxOTI7Ci0gICAgICBzaXplX3Qgaml0c3RhY2tfbWF4ID0gU0laRV9NQVgg LSAoU1RBQ0tfR1JPV1RIX1JBVEUgLSAxKTsKKyAgICAgIGlkeF90IGppdHN0YWNrX21heCA9 IE1JTiAoSURYX01BWCwgU0laRV9NQVggLSAoU1RBQ0tfR1JPV1RIX1JBVEUgLSAxKSk7CiAK ICAgICAgIGludCBlID0gcGNyZTJfbWF0Y2ggKHBjLT5jcmUsIChQQ1JFMl9TUFRSKSBzdWJq ZWN0LCBzZWFyY2hfYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hf b2Zmc2V0LCBvcHRpb25zLCBwYy0+ZGF0YSwgcGMtPm1jb250ZXh0KTsKICAgICAgIGlmIChl ID09IFBDUkUyX0VSUk9SX0pJVF9TVEFDS0xJTUlUCi0gICAgICAgICAgJiYgMCA8IHBjLT5q aXRfc3RhY2tfc2l6ZSAmJiBwYy0+aml0X3N0YWNrX3NpemUgPD0gaml0c3RhY2tfbWF4IC8g MikKKyAgICAgICAgICAmJiBwYy0+aml0X3N0YWNrX3NpemUgPD0gaml0c3RhY2tfbWF4IC8g MikKICAgICAgICAgewotICAgICAgICAgIFBDUkUyX1NJWkUgb2xkX3NpemUgPSBwYy0+aml0 X3N0YWNrX3NpemU7Ci0gICAgICAgICAgUENSRTJfU0laRSBuZXdfc2l6ZSA9IHBjLT5qaXRf c3RhY2tfc2l6ZSA9IG9sZF9zaXplICogMjsKKyAgICAgICAgICBpZHhfdCBvbGRfc2l6ZSA9 IHBjLT5qaXRfc3RhY2tfc2l6ZTsKKyAgICAgICAgICBpZHhfdCBuZXdfc2l6ZSA9IHBjLT5q aXRfc3RhY2tfc2l6ZSA9IG9sZF9zaXplICogMjsKIAogICAgICAgICAgIGlmIChwYy0+aml0 X3N0YWNrKQogICAgICAgICAgICAgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKHBjLT5qaXRfc3Rh Y2spOwpAQCAtOTAsMTAgKzkwLDggQEAgaml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBj LCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBQQ1JFMl9TSVpFIHNlYXJjaF9ieXRlcywKICAgICAg ICAgewogICAgICAgICAgIHVpbnQzMl90IGxpbTsKICAgICAgICAgICBwY3JlMl9jb25maWcg KFBDUkUyX0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKLSAgICAgICAgICBpZiAobGltID49 IFVJTlQzMl9NQVggLyAyKQorICAgICAgICAgIGlmIChJTlRfTVVMVElQTFlfV1JBUFYgKGxp bSwgMiwgJmxpbSkpCiAgICAgICAgICAgICByZXR1cm4gZTsKLQotICAgICAgICAgIGxpbSA8 PD0gMTsKICAgICAgICAgICBpZiAoIXBjLT5tY29udGV4dCkKICAgICAgICAgICAgIHBjLT5t Y29udGV4dCA9IHBjcmUyX21hdGNoX2NvbnRleHRfY3JlYXRlIChOVUxMKTsKIApAQCAtMjQz LDcgKzI0MSw3IEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4 X3Qgc2l6ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgIGJvbCA9IGZhbHNl OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgUENSRTJfU0laRSBzZWFyY2hfb2Zmc2V0 ID0gcCAtIHN1YmplY3Q7CisgICAgICAgICAgaWR4X3Qgc2VhcmNoX29mZnNldCA9IHAgLSBz dWJqZWN0OwogCiAgICAgICAgICAgLyogQ2hlY2sgZm9yIGFuIGVtcHR5IG1hdGNoOyB0aGlz IGlzIGZhc3RlciB0aGFuIGxldHRpbmcKICAgICAgICAgICAgICBQQ1JFIGRvIGl0LiAgKi8K QEAgLTI2Myw3ICsyNjEsNyBAQCBQZXhlY3V0ZSAodm9pZCAqdmNwLCBjaGFyIGNvbnN0ICpi dWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAgICAgIGlmICghYmFk X3V0ZjhfZnJvbV9wY3JlMiAoZSkpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAg IFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBwY3JlMl9nZXRfc3RhcnRjaGFyIChwYy0+ZGF0 YSk7CisgICAgICAgICAgaWR4X3QgdmFsaWRfYnl0ZXMgPSBwY3JlMl9nZXRfc3RhcnRjaGFy IChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNoX29mZnNldCA8PSB2YWxpZF9i eXRlcykKICAgICAgICAgICAgIHsKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0007-grep-use-PCRE2_EXTRA_MATCH_LINE.patch" Content-Disposition: attachment; filename="0007-grep-use-PCRE2_EXTRA_MATCH_LINE.patch" Content-Transfer-Encoding: base64 RnJvbSBiMDhmZDk2ZjI4Y2M4YjJjNWIxYWZiMmRkZjBmMjY0MjVmMzc3OWFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA4OjEyOjU5IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNy8xMl0gZ3JlcDogdXNlIFBDUkUyX0VYVFJBX01BVENIX0xJTkUKCiogc3JjL3BjcmVz ZWFyY2guYyAoUGNvbXBpbGUpOiBJZiBhdmFpbGFibGUsIHVzZQpQQ1JFMl9FWFRSQV9NQVRD SF9MSU5FIGluc3RlYWQgb2YgZG9pbmcgaXQgYnkgaGFuZC4KU2ltcGxpZnkgY29uc3RydWN0 aW9uIG9mIHN1YnN0aXR1dGUgcmVndWxhciBleHByZXNzaW9uLgotLS0KIHNyYy9wY3Jlc2Vh cmNoLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwpp bmRleCBmZGVjYmU4Li42ZTFmMjE3IDEwMDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisr KyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTEyMiwxNiArMTIyLDggQEAgUGNvbXBpbGUgKGNo YXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29sIGV4 YWN0KQogewogICBQQ1JFMl9TSVpFIGU7CiAgIGludCBlYzsKLSAgc3RhdGljIGNoYXIgY29u c3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86IjsKLSAgc3RhdGljIGNoYXIgY29uc3Qgd3N1 ZmZpeFtdID0gIikoPyFcXHcpIjsKLSAgc3RhdGljIGNoYXIgY29uc3QgeHByZWZpeFtdID0g Il4oPzoiOwotICBzdGF0aWMgY2hhciBjb25zdCB4c3VmZml4W10gPSAiKSQiOwotICBpbnQg Zml4X2xlbl9tYXggPSBNQVggKHNpemVvZiB3cHJlZml4IC0gMSArIHNpemVvZiB3c3VmZml4 IC0gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgeHByZWZpeCAtIDEgKyBz aXplb2YgeHN1ZmZpeCAtIDEpOwotICB1bnNpZ25lZCBjaGFyICpyZSA9IHhtYWxsb2MgKHNp emUgKyBmaXhfbGVuX21heCArIDEpOwogICBpbnQgZmxhZ3MgPSBQQ1JFMl9ET0xMQVJfRU5E T05MWSB8IChtYXRjaF9pY2FzZSA/IFBDUkUyX0NBU0VMRVNTIDogMCk7CiAgIGNoYXIgKnBh dGxpbSA9IHBhdHRlcm4gKyBzaXplOwotICBjaGFyICpuID0gKGNoYXIgKilyZTsKICAgc3Ry dWN0IHBjcmVfY29tcCAqcGMgPSB4Y2FsbG9jICgxLCBzaXplb2YgKCpwYykpOwogICBwY3Jl Ml9jb21waWxlX2NvbnRleHQgKmNjb250ZXh0ID0gcGNyZTJfY29tcGlsZV9jb250ZXh0X2Ny ZWF0ZSAoTlVMTCk7CiAKQEAgLTE1NCwyNyArMTQ2LDQxIEBAIFBjb21waWxlIChjaGFyICpw YXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFjdCkK ICAgaWYgKHJhd21lbWNociAocGF0dGVybiwgJ1xuJykgIT0gcGF0bGltKQogICAgIGRpZSAo RVhJVF9UUk9VQkxFLCAwLCBfKCJ0aGUgLVAgb3B0aW9uIG9ubHkgc3VwcG9ydHMgYSBzaW5n bGUgcGF0dGVybiIpKTsKIAotICAqbiA9ICdcMCc7Ci0gIGlmIChtYXRjaF93b3JkcykKLSAg ICBzdHJjcHkgKG4sIHdwcmVmaXgpOworICB2b2lkICpyZV9zdG9yYWdlID0gTlVMTDsKICAg aWYgKG1hdGNoX2xpbmVzKQotICAgIHN0cmNweSAobiwgeHByZWZpeCk7Ci0gIG4gKz0gc3Ry bGVuIChuKTsKLSAgbWVtY3B5IChuLCBwYXR0ZXJuLCBzaXplKTsKLSAgbiArPSBzaXplOwot ICBpZiAobWF0Y2hfd29yZHMgJiYgIW1hdGNoX2xpbmVzKQogICAgIHsKLSAgICAgIHN0cmNw eSAobiwgd3N1ZmZpeCk7Ci0gICAgICBuICs9IHN0cmxlbiAod3N1ZmZpeCk7CisjaWZkZWYg UENSRTJfRVhUUkFfTUFUQ0hfTElORQorICAgICAgcGNyZTJfc2V0X2NvbXBpbGVfZXh0cmFf b3B0aW9ucyAoY2NvbnRleHQsIFBDUkUyX0VYVFJBX01BVENIX0xJTkUpOworI2Vsc2UKKyAg ICAgIHN0YXRpYyBjaGFyIGNvbnN0IC8qIFRoZXNlIHNpemVzIG9taXQgdHJhaWxpbmcgTlVM LiAgKi8KKyAgICAgICAgeHByZWZpeFs0XSA9ICJeKD86IiwgeHN1ZmZpeFsyXSA9ICIpJCI7 CisgICAgICBpZHhfdCByZV9zaXplID0gc2l6ZSArIHNpemVvZiB4cHJlZml4ICsgc2l6ZW9m IHhzdWZmaXg7CisgICAgICBjaGFyICpyZSA9IHJlX3N0b3JhZ2UgPSB4aW1hbGxvYyAocmVf c2l6ZSk7CisgICAgICBjaGFyICpyZXogPSBtZW1wY3B5IChyZSwgeHByZWZpeCwgc2l6ZW9m IHhwcmVmaXgpOworICAgICAgcmV6ID0gbWVtcGNweSAocmV6LCBwYXR0ZXJuLCBzaXplKTsK KyAgICAgIG1lbWNweSAocmV6LCB4c3VmZml4LCBzaXplb2YgeHN1ZmZpeCk7CisgICAgICBw YXR0ZXJuID0gcmU7CisgICAgICBzaXplID0gcmVfc2l6ZTsKKyNlbmRpZgogICAgIH0KLSAg aWYgKG1hdGNoX2xpbmVzKQorICBlbHNlIGlmIChtYXRjaF93b3JkcykKICAgICB7Ci0gICAg ICBzdHJjcHkgKG4sIHhzdWZmaXgpOwotICAgICAgbiArPSBzdHJsZW4gKHhzdWZmaXgpOwor ICAgICAgLyogUENSRTJfRVhUUkFfTUFUQ0hfV09SRCBpcyBpbmNvbXBhdGlibGUgd2l0aCBn cmVwIC13OworICAgICAgICAgZG8gdGhpbmdzIHRoZSBncmVwIHdheS4gICovCisgICAgICBz dGF0aWMgY2hhciBjb25zdCAvKiBUaGVzZSBzaXplcyBvbWl0IHRyYWlsaW5nIE5VTC4gICov CisgICAgICAgIHdwcmVmaXhbMTBdID0gIig/PCFcXHcpKD86Iiwgd3N1ZmZpeFs3XSA9ICIp KD8hXFx3KSI7CisgICAgICBpZHhfdCByZV9zaXplID0gc2l6ZSArIHNpemVvZiB3cHJlZml4 ICsgc2l6ZW9mIHdzdWZmaXg7CisgICAgICBjaGFyICpyZSA9IHJlX3N0b3JhZ2UgPSB4aW1h bGxvYyAocmVfc2l6ZSk7CisgICAgICBjaGFyICpyZXogPSBtZW1wY3B5IChyZSwgd3ByZWZp eCwgc2l6ZW9mIHdwcmVmaXgpOworICAgICAgcmV6ID0gbWVtcGNweSAocmV6LCBwYXR0ZXJu LCBzaXplKTsKKyAgICAgIG1lbWNweSAocmV6LCB3c3VmZml4LCBzaXplb2Ygd3N1ZmZpeCk7 CisgICAgICBwYXR0ZXJuID0gcmU7CisgICAgICBzaXplID0gcmVfc2l6ZTsKICAgICB9CiAK ICAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtldGFi bGVzIChOVUxMKSk7Ci0gIHBjLT5jcmUgPSBwY3JlMl9jb21waWxlIChyZSwgbiAtIChjaGFy ICopcmUsIGZsYWdzLCAmZWMsICZlLCBjY29udGV4dCk7CisgIHBjLT5jcmUgPSBwY3JlMl9j b21waWxlICgoUENSRTJfU1BUUikgcGF0dGVybiwgc2l6ZSwgZmxhZ3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZWMsICZlLCBjY29udGV4dCk7CiAgIGlmICghcGMtPmNyZSkK ICAgICB7CiAgICAgICBlbnVtIHsgRVJSQlVGU0laID0gMjU2IH07IC8qIFRha2VuIGZyb20g cGNyZTJncmVwLmMgRVJSQlVGU0laLiAgKi8KQEAgLTE4Myw2ICsxODksOCBAQCBQY29tcGls ZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJv b2wgZXhhY3QpCiAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXApOwogICAg IH0KIAorICBmcmVlIChyZV9zdG9yYWdlKTsKKwogICBwYy0+ZGF0YSA9IHBjcmUyX21hdGNo X2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMtPmNyZSwgTlVMTCk7CiAKICAgZWMgPSBw Y3JlMl9qaXRfY29tcGlsZSAocGMtPmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKQEAgLTE5 NCw4ICsyMDIsNiBAQCBQY29tcGlsZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVn X3N5bnRheF90IGlnbm9yZWQsIGJvb2wgZXhhY3QpCiAgICAgICBwYy0+aml0X3N0YWNrX3Np emUgPSAzMiA8PCAxMDsKICAgICB9CiAKLSAgZnJlZSAocmUpOwotCiAgIHBjLT5lbXB0eV9t YXRjaFtmYWxzZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCBQQ1JFMl9OT1RCT0wpOwog ICBwYy0+ZW1wdHlfbWF0Y2hbdHJ1ZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCAwKTsK IAotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0008-grep-simplify-JIT-setup.patch" Content-Disposition: attachment; filename="0008-grep-simplify-JIT-setup.patch" Content-Transfer-Encoding: base64 RnJvbSBjMTFlYTQ1MmIwYmE0OGE0NzkyNmQ4NDRlMWVlN2QwNmE2NGUyMzU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA4OjE4OjQyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOC8xMl0gZ3JlcDogc2ltcGxpZnkgSklUIHNldHVwCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgoqIHNyYy9wY3Jlc2VhcmNoLmMgKFBjb21waWxlKTogU2ltcGxp Znkgc2luY2Ug4oCYZGll4oCZIGNhbm5vdCByZXR1cm4uCi0tLQogc3JjL3BjcmVzZWFyY2gu YyB8IDggKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2Vh cmNoLmMKaW5kZXggNmUxZjIxNy4uOTg5OGUwNCAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFy Y2guYworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0xOTYsMTEgKzE5Niw5IEBAIFBjb21w aWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwg Ym9vbCBleGFjdCkKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMtPmNyZSwgUENSRTJf SklUX0NPTVBMRVRFKTsKICAgaWYgKGVjICYmIGVjICE9IFBDUkUyX0VSUk9SX0pJVF9CQURP UFRJT04gJiYgZWMgIT0gUENSRTJfRVJST1JfTk9NRU1PUlkpCiAgICAgZGllIChFWElUX1RS T1VCTEUsIDAsIF8oIkpJVCBpbnRlcm5hbCBlcnJvcjogJWQiKSwgZWMpOwotICBlbHNlCi0g ICAgewotICAgICAgLyogVGhlIFBDUkUgZG9jdW1lbnRhdGlvbiBzYXlzIHRoYXQgYSAzMiBL aUIgc3RhY2sgaXMgdGhlIGRlZmF1bHQuICAqLwotICAgICAgcGMtPmppdF9zdGFja19zaXpl ID0gMzIgPDwgMTA7Ci0gICAgfQorCisgIC8qIFRoZSBQQ1JFIGRvY3VtZW50YXRpb24gc2F5 cyB0aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZhdWx0LiAgKi8KKyAgcGMtPmppdF9z dGFja19zaXplID0gMzIgPDwgMTA7CiAKICAgcGMtPmVtcHR5X21hdGNoW2ZhbHNlXSA9IGpp dF9leGVjIChwYywgIiIsIDAsIDAsIFBDUkUyX05PVEJPTCk7CiAgIHBjLT5lbXB0eV9tYXRj aFt0cnVlXSA9IGppdF9leGVjIChwYywgIiIsIDAsIDAsIDApOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0009-grep-improve-memory-exhaustion-checking-with-P.patch" Content-Disposition: attachment; filename*0="0009-grep-improve-memory-exhaustion-checking-with-P.patch" Content-Transfer-Encoding: base64 RnJvbSAzZTdkZTFiNDVjN2U2ZGZhMmQ5MjMxNDJiYzQwZWUxZmJhNTg5YTI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA5OjM0OjE1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOS8xMl0gZ3JlcDogaW1wcm92ZSBtZW1vcnkgZXhoYXVzdGlvbiBjaGVja2luZyB3aXRo IC1QCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoqIHNyYy9wY3Jlc2Vh cmNoLmMgKHN0cnVjdCBwY3JlX2NvbXApOiBOZXcgbWVtYmVyIGdjb250ZXh0LgoocHJpdmF0 ZV9tYWxsb2MsIHByaXZhdGVfZnJlZSk6IE5ldyBmdW5jdGlvbnMuCihqaXRfZXhlYyk6IEl0 IGlzIE9LIHRvIGNhbGwgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKE5VTEwpLCBzbyBzaW1wbGlm eS4KVXNlIGdjb250ZXh0IGZvciBhbGxvY2F0aW9uLiAgQ2hlY2sgZm9yIHBjcmUyX2ppdF9z dGFja19jcmVhdGUKZmFpbHVyZSwgc2luY2Ugc2xqaXQgYnlwYXNzZXMgcHJpdmF0ZV9tYWxs b2MuICBSZWRvIHRvIGF2b2lkIHR3bwrigJhjb250aW51ZeKAmXMuCihQY29tcGlsZSk6IENy ZWF0ZSBhbmQgdXNlIGdjb250ZXh0LgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA1MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCA5ODk4ZTA0Li5h OTk4MzVlIDEwMDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2Vh cmNoLmMKQEAgLTMyLDYgKzMyLDkgQEAKIAogc3RydWN0IHBjcmVfY29tcAogeworICAvKiBH ZW5lcmFsIGNvbnRleHQgZm9yIFBDUkUgb3BlcmF0aW9ucy4gICovCisgIHBjcmUyX2dlbmVy YWxfY29udGV4dCAqZ2NvbnRleHQ7CisKICAgLyogQ29tcGlsZWQgaW50ZXJuYWwgZm9ybSBv ZiBhIFBlcmwgcmVndWxhciBleHByZXNzaW9uLiAgKi8KICAgcGNyZTJfY29kZSAqY3JlOwog CkBAIC00OCw2ICs1MSwxOSBAQCBzdHJ1Y3QgcGNyZV9jb21wCiAgIGludCBlbXB0eV9tYXRj aFsyXTsKIH07CiAKKy8qIE1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBmb3IgUENSRS4g ICovCitzdGF0aWMgdm9pZCAqCitwcml2YXRlX21hbGxvYyAoUENSRTJfU0laRSBzaXplLCBf R0xfVU5VU0VEIHZvaWQgKnVudXNlZCkKK3sKKyAgaWYgKElEWF9NQVggPCBzaXplKQorICAg IHhhbGxvY19kaWUgKCk7CisgIHJldHVybiB4aW1hbGxvYyAoc2l6ZSk7Cit9CitzdGF0aWMg dm9pZAorcHJpdmF0ZV9mcmVlICh2b2lkICpwdHIsIF9HTF9VTlVTRUQgdm9pZCAqdW51c2Vk KQoreworICBmcmVlIChwdHIpOworfQogCiAvKiBNYXRjaCB0aGUgYWxyZWFkeS1jb21waWxl ZCBQQ1JFIHBhdHRlcm4gYWdhaW5zdCB0aGUgZGF0YSBpbiBTVUJKRUNULAogICAgb2Ygc2l6 ZSBTRUFSQ0hfQllURVMgYW5kIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IFNFQVJDSF9PRkZTRVQs IHdpdGgKQEAgLTcyLDMzICs4OCwyNyBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAq cGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIGlkeF90IHNlYXJjaF9ieXRlcywKICAgICAgICAg ewogICAgICAgICAgIGlkeF90IG9sZF9zaXplID0gcGMtPmppdF9zdGFja19zaXplOwogICAg ICAgICAgIGlkeF90IG5ld19zaXplID0gcGMtPmppdF9zdGFja19zaXplID0gb2xkX3NpemUg KiAyOwotCi0gICAgICAgICAgaWYgKHBjLT5qaXRfc3RhY2spCi0gICAgICAgICAgICBwY3Jl Ml9qaXRfc3RhY2tfZnJlZSAocGMtPmppdF9zdGFjayk7Ci0gICAgICAgICAgcGMtPmppdF9z dGFjayA9IHBjcmUyX2ppdF9zdGFja19jcmVhdGUgKG9sZF9zaXplLCBuZXdfc2l6ZSwgTlVM TCk7Ci0KKyAgICAgICAgICBwY3JlMl9qaXRfc3RhY2tfZnJlZSAocGMtPmppdF9zdGFjayk7 CisgICAgICAgICAgcGMtPmppdF9zdGFjayA9IHBjcmUyX2ppdF9zdGFja19jcmVhdGUgKG9s ZF9zaXplLCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGMtPmdjb250ZXh0KTsKKyAgICAgICAgICBpZiAoIXBjLT5qaXRf c3RhY2spCisgICAgICAgICAgICB4YWxsb2NfZGllICgpOwogICAgICAgICAgIGlmICghcGMt Pm1jb250ZXh0KQotICAgICAgICAgICAgcGMtPm1jb250ZXh0ID0gcGNyZTJfbWF0Y2hfY29u dGV4dF9jcmVhdGUgKE5VTEwpOwotCi0gICAgICAgICAgaWYgKCFwYy0+aml0X3N0YWNrIHx8 ICFwYy0+bWNvbnRleHQpCi0gICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwKLSAg ICAgICAgICAgICAgICAgXygiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIFBD UkUgSklUIHN0YWNrIikpOworICAgICAgICAgICAgcGMtPm1jb250ZXh0ID0gcGNyZTJfbWF0 Y2hfY29udGV4dF9jcmVhdGUgKHBjLT5nY29udGV4dCk7CiAgICAgICAgICAgcGNyZTJfaml0 X3N0YWNrX2Fzc2lnbiAocGMtPm1jb250ZXh0LCBOVUxMLCBwYy0+aml0X3N0YWNrKTsKLSAg ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgaWYgKGUgPT0gUENSRTJfRVJS T1JfREVQVEhMSU1JVCkKKyAgICAgIGVsc2UgaWYgKGUgPT0gUENSRTJfRVJST1JfREVQVEhM SU1JVCkKICAgICAgICAgewogICAgICAgICAgIHVpbnQzMl90IGxpbTsKICAgICAgICAgICBw Y3JlMl9jb25maWcgKFBDUkUyX0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKICAgICAgICAg ICBpZiAoSU5UX01VTFRJUExZX1dSQVBWIChsaW0sIDIsICZsaW0pKQogICAgICAgICAgICAg cmV0dXJuIGU7CiAgICAgICAgICAgaWYgKCFwYy0+bWNvbnRleHQpCi0gICAgICAgICAgICBw Yy0+bWNvbnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7Ci0KKyAg ICAgICAgICAgIHBjLT5tY29udGV4dCA9IHBjcmUyX21hdGNoX2NvbnRleHRfY3JlYXRlIChw Yy0+Z2NvbnRleHQpOwogICAgICAgICAgIHBjcmUyX3NldF9kZXB0aF9saW1pdCAocGMtPm1j b250ZXh0LCBsaW0pOwotICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICBy ZXR1cm4gZTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGU7CiAgICAgfQogfQogCkBA IC0xMjUsNyArMTM1LDkgQEAgUGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUs IHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29sIGV4YWN0KQogICBpbnQgZmxhZ3MgPSBQQ1JF Ml9ET0xMQVJfRU5ET05MWSB8IChtYXRjaF9pY2FzZSA/IFBDUkUyX0NBU0VMRVNTIDogMCk7 CiAgIGNoYXIgKnBhdGxpbSA9IHBhdHRlcm4gKyBzaXplOwogICBzdHJ1Y3QgcGNyZV9jb21w ICpwYyA9IHhjYWxsb2MgKDEsIHNpemVvZiAoKnBjKSk7Ci0gIHBjcmUyX2NvbXBpbGVfY29u dGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRlIChOVUxMKTsK KyAgcGNyZTJfZ2VuZXJhbF9jb250ZXh0ICpnY29udGV4dCA9IHBjLT5nY29udGV4dAorICAg ID0gcGNyZTJfZ2VuZXJhbF9jb250ZXh0X2NyZWF0ZSAocHJpdmF0ZV9tYWxsb2MsIHByaXZh dGVfZnJlZSwgTlVMTCk7CisgIHBjcmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBw Y3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRlIChnY29udGV4dCk7CiAKICAgaWYgKGxvY2Fs ZWluZm8ubXVsdGlieXRlKQogICAgIHsKQEAgLTE3OCw3ICsxOTAsNyBAQCBQY29tcGlsZSAo Y2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wg ZXhhY3QpCiAgICAgICBzaXplID0gcmVfc2l6ZTsKICAgICB9CiAKLSAgcGNyZTJfc2V0X2No YXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtldGFibGVzIChOVUxMKSk7Cisg IHBjcmUyX3NldF9jaGFyYWN0ZXJfdGFibGVzIChjY29udGV4dCwgcGNyZTJfbWFrZXRhYmxl cyAoZ2NvbnRleHQpKTsKICAgcGMtPmNyZSA9IHBjcmUyX2NvbXBpbGUgKChQQ1JFMl9TUFRS KSBwYXR0ZXJuLCBzaXplLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZl YywgJmUsIGNjb250ZXh0KTsKICAgaWYgKCFwYy0+Y3JlKQpAQCAtMTkxLDcgKzIwMyw3IEBA IFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdu b3JlZCwgYm9vbCBleGFjdCkKIAogICBmcmVlIChyZV9zdG9yYWdlKTsKIAotICBwYy0+ZGF0 YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMtPmNyZSwgTlVM TCk7CisgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9wYXR0ZXJu IChwYy0+Y3JlLCBnY29udGV4dCk7CiAKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMt PmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKICAgaWYgKGVjICYmIGVjICE9IFBDUkUyX0VS Uk9SX0pJVF9CQURPUFRJT04gJiYgZWMgIT0gUENSRTJfRVJST1JfTk9NRU1PUlkpCi0tIAoy LjMyLjAKCg== --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0010-grep-use-ximalloc-not-xcalloc.patch" Content-Disposition: attachment; filename="0010-grep-use-ximalloc-not-xcalloc.patch" Content-Transfer-Encoding: base64 RnJvbSA4NGE1ZDM1OTgxNWE2ZjBkMjA4ZWM4Y2ViYTFjY2Y4MTA0NzQ5NjM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA5OjM5OjA1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMC8xMl0gZ3JlcDogdXNlIHhpbWFsbG9jLCBub3QgeGNhbGxvYwoKKiBzcmMvcGNyZXNl YXJjaC5jIChQY29tcGlsZSk6IFVzZSB4aW1hbGxvYywgbm90IHhjYWxsb2MsCmFuZCBleHBs aWNpdGx5IGluaXRpYWxpemUgdGhlIHR3byBzbG90cyB0aGF0IHNob3VsZCBiZSBudWxsLgpU aGlzIGlzIG1vcmUgbGlrZWx5IHRvIGNhdGNoIGZ1dHVyZSBlcnJvcnMgaWYgd2UgdXNlIHZh bGdyaW5kLgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNy ZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCBhOTk4MzVlLi5kZWEzOWYwIDEw MDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAg LTEzNCw3ICsxMzQsNyBAQCBQY29tcGlsZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwg cmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wgZXhhY3QpCiAgIGludCBlYzsKICAgaW50IGZs YWdzID0gUENSRTJfRE9MTEFSX0VORE9OTFkgfCAobWF0Y2hfaWNhc2UgPyBQQ1JFMl9DQVNF TEVTUyA6IDApOwogICBjaGFyICpwYXRsaW0gPSBwYXR0ZXJuICsgc2l6ZTsKLSAgc3RydWN0 IHBjcmVfY29tcCAqcGMgPSB4Y2FsbG9jICgxLCBzaXplb2YgKCpwYykpOworICBzdHJ1Y3Qg cGNyZV9jb21wICpwYyA9IHhpbWFsbG9jIChzaXplb2YgKnBjKTsKICAgcGNyZTJfZ2VuZXJh bF9jb250ZXh0ICpnY29udGV4dCA9IHBjLT5nY29udGV4dAogICAgID0gcGNyZTJfZ2VuZXJh bF9jb250ZXh0X2NyZWF0ZSAocHJpdmF0ZV9tYWxsb2MsIHByaXZhdGVfZnJlZSwgTlVMTCk7 CiAgIHBjcmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2Nv bnRleHRfY3JlYXRlIChnY29udGV4dCk7CkBAIC0yMDMsNiArMjAzLDcgQEAgUGNvbXBpbGUg KGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29s IGV4YWN0KQogCiAgIGZyZWUgKHJlX3N0b3JhZ2UpOwogCisgIHBjLT5tY29udGV4dCA9IE5V TEw7CiAgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9wYXR0ZXJu IChwYy0+Y3JlLCBnY29udGV4dCk7CiAKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMt PmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKQEAgLTIxMCw2ICsyMTEsNyBAQCBQY29tcGls ZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJv b2wgZXhhY3QpCiAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIkpJVCBpbnRlcm5hbCBl cnJvcjogJWQiKSwgZWMpOwogCiAgIC8qIFRoZSBQQ1JFIGRvY3VtZW50YXRpb24gc2F5cyB0 aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZhdWx0LiAgKi8KKyAgcGMtPmppdF9zdGFj ayA9IE5VTEw7CiAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOwogCiAgIHBjLT5l bXB0eV9tYXRjaFtmYWxzZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCBQQ1JFMl9OT1RC T0wpOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0011-grep-fix-minor-P-memory-leak.patch" Content-Disposition: attachment; filename="0011-grep-fix-minor-P-memory-leak.patch" Content-Transfer-Encoding: base64 RnJvbSAyZWJkZWJmYzg0M2VhNDNmOTNlZjFhNzI5Y2Q4ZmY3ZDc5YWUzMzA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDEwOjU0OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMS8xMl0gZ3JlcDogZml4IG1pbm9yIC1QIG1lbW9yeSBsZWFrCgoqIHNyYy9wY3Jlc2Vh cmNoLmMgKFBjb21waWxlKTogRnJlZSBjY29udGV4dCB3aGVuIG5vIGxvbmdlciBuZWVkZWQu Ci0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2VhcmNo LmMKaW5kZXggZGVhMzlmMC4uZWY4MjE1ZiAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFyY2gu YworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0yMDIsNiArMjAyLDcgQEAgUGNvbXBpbGUg KGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29s IGV4YWN0KQogICAgIH0KIAogICBmcmVlIChyZV9zdG9yYWdlKTsKKyAgcGNyZTJfY29tcGls ZV9jb250ZXh0X2ZyZWUgKGNjb250ZXh0KTsKIAogICBwYy0+bWNvbnRleHQgPSBOVUxMOwog ICBwYy0+ZGF0YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMt PmNyZSwgZ2NvbnRleHQpOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0012-grep-port-to-PCRE2-10.20.patch" Content-Disposition: attachment; filename="0012-grep-port-to-PCRE2-10.20.patch" Content-Transfer-Encoding: base64 RnJvbSBhYWFmZTNkZTlkMGVjMDBmOTdhN2RiOGVhZjdkZGZlNzMxMmU5ZjVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDExOjMwOjIxIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMi8xMl0gZ3JlcDogcG9ydCB0byBQQ1JFMiAxMC4yMAoKKiBzcmMvcGNyZXNlYXJjaC5j IChQQ1JFMl9TSVpFX01BWCk6IERlZmF1bHQgdG8gU0laRV9NQVguCi0tLQogc3JjL3BjcmVz ZWFyY2guYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVz ZWFyY2guYwppbmRleCBlZjgyMTVmLi5jMTJjNjc0IDEwMDY0NAotLS0gYS9zcmMvcGNyZXNl YXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTIzLDcgKzIzLDEwIEBACiAjZGVm aW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4CiAjaW5jbHVkZSA8cGNyZTIuaD4KIAotLyog Rm9yIFBDUkUyIDwgMTAuMzAuICAqLworLyogRm9yIG9sZGVyIFBDUkUyLiAgKi8KKyNpZm5k ZWYgUENSRTJfU0laRV9NQVgKKyMgZGVmaW5lIFBDUkUyX1NJWkVfTUFYIFNJWkVfTUFYCisj ZW5kaWYKICNpZm5kZWYgUENSRTJfQ09ORklHX0RFUFRITElNSVQKICMgZGVmaW5lIFBDUkUy X0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05MSU1JVAogIyBkZWZp bmUgUENSRTJfRVJST1JfREVQVEhMSU1JVCBQQ1JFMl9FUlJPUl9SRUNVUlNJT05MSU1JVAot LSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv-- ------------=_1636922762-29115-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Mar 2021 15:22:27 +0000 Received: from localhost ([127.0.0.1]:50794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNGxG-0004fP-MQ for submit@debbugs.gnu.org; Fri, 19 Mar 2021 11:22:26 -0400 Received: from lists.gnu.org ([209.51.188.17]:48414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNGxE-0004fH-09 for submit@debbugs.gnu.org; Fri, 19 Mar 2021 11:22:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35648) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNGxD-0002bh-MP for bug-grep@gnu.org; Fri, 19 Mar 2021 11:22:23 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:47645) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lNGxA-0005So-Bs for bug-grep@gnu.org; Fri, 19 Mar 2021 11:22:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616167338; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JCMYod21YrIqh4+Q7qs127C94x7ijA8z3wYFhi6aLZU=; b=S3clHBE3J7qu79pv/lM+WeiVHRbxDAcr+gRbxF4usl95bpL6uKNC4/1mZiF5hhfoGzvYGc S8/QbVnH0gswLvUY5+g+diTnjYj1PN6p1EUuox5BR7uYCoQRbThEx6J0oqd2CgajuM6vf5 904B+ZtoJ7jYUNkHX4MlpzGFzXDJQM4= 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-304-34uLR2J6MQeYdAMOhM-Zrw-1; Fri, 19 Mar 2021 11:22:16 -0400 X-MC-Unique: 34uLR2J6MQeYdAMOhM-Zrw-1 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 E2A05104FB61 for ; Fri, 19 Mar 2021 15:22:15 +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 D9EF85D72E for ; Fri, 19 Mar 2021 15:22:15 +0000 (UTC) Received: from zmail22.collab.prod.int.phx2.redhat.com (zmail22.collab.prod.int.phx2.redhat.com [10.5.83.26]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D26DF1809C81 for ; Fri, 19 Mar 2021 15:22:15 +0000 (UTC) Date: Fri, 19 Mar 2021 11:22:15 -0400 (EDT) From: Jaroslav Skarvada To: bug-grep@gnu.org Message-ID: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> Subject: RFE: pcre2 support MIME-Version: 1.0 X-Originating-IP: [10.40.195.17, 10.4.195.1] Thread-Topic: pcre2 support Thread-Index: hMluk8ct9QnBjP6GsGqSBy4hZtmJhg== X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jskarvad@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=63.128.21.124; envelope-from=jskarvad@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.251, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Hi, PCRE library has been superseded with PCRE2 project by PCRE upstream in 2015. PCRE upstream considers PCRE obsolete now and does not devote any resources to PCRE except of critical bugs. Please consider adding PCRE2 support. Downstream Fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=1755491 thanks & regards Jaroslav ------------=_1636922762-29115-1-- From unknown Thu Jun 19 14:18:24 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jim Meyering Subject: bug#22345: closed (Re: bug#47264: [PATCH v2] pcre: migrate to pcre2) Message-ID: References: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> X-Gnu-PR-Message: they-closed 22345 X-Gnu-PR-Package: grep Reply-To: 22345@debbugs.gnu.org Date: Sun, 14 Nov 2021 20:46:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1636922762-29115-3" This is a multi-part message in MIME format... ------------=_1636922762-29115-3 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #47264: consider upgrade to PCRE2 which was filed against the grep package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 22345@debbugs.gnu.org. --=20 47264: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D47264 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1636922762-29115-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 20:45:48 +0000 Received: from localhost ([127.0.0.1]:51841 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmMNm-0007Z6-3b for submit@debbugs.gnu.org; Sun, 14 Nov 2021 15:45:48 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmMNi-0007Ym-BL for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 15:45:45 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E6CC41600EA; Sun, 14 Nov 2021 12:45:35 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id DkLbXg-qnKez; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9BC2B1600EF; Sun, 14 Nov 2021 12:45:31 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fVoFUqMjeuGC; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 39C391600EA; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Content-Type: multipart/mixed; boundary="------------yDuj0IMPzT9IVrxNTum0F2Lv" Message-ID: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> Date: Sun, 14 Nov 2021 12:45:29 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US To: =?UTF-8?Q?Carlo_Marcelo_Arenas_Bel=c3=b3n?= References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#47264: [PATCH v2] pcre: migrate to pcre2 In-Reply-To: X-Spam-Score: -2.4 (--) X-Debbugs-Envelope-To: 47264-done Cc: Jaroslav Skarvada , 47264-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) This is a multi-part message in MIME format. --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 11/9/21 02:58, Carlo Marcelo Arenas Bel=C3=B3n wrote: > Sadly, hadn't been able to generate a release, Does this mean you're having trouble running 'make dist'? If so, what's=20 the trouble? > it seems to be ready for some broader testing, specially if the > attached patch is applied on top of a 10.37 release (tested that way > in OpenBSD i386) OK, thanks, I installed it into the Savannah master copy of GNU grep,=20 except that I didn't rename m4/pcre.m4 to m4/pcre2.m4, or rename the=20 macros to use PCRE2. This made the change easier to audit. Revised patch=20 0001 attached. Also, I followed up with several related patches (also attached as=20 0002-0012). Please take a look at them and let us know of any problems.=20 In the attached patch "grep: prefer signed integers" I followed the=20 usual grep approach of preferring signed to unsigned integers (e.g.,=20 idx_t to size_t) when either will do; this lets us debug better with=20 -fsanitize=3Dundefined to catch integer overflow. One issue I discovered: PCRE2_EXTRA_MATCH_WORD (which is used by=20 pcre2grep -w) is incompatible with 'grep -w'. For example, 'echo a%%a |=20 grep -Pw %%' outputs nothing, whereas 'echo a%%a | pcre2grep -w %%'=20 outputs 'a%%a'. I think the GNU grep behavior (which is the same as with=20 'grep -w', either on Linux or OpenBSD) is more intuitive here: do you=20 happen to know why PCRE behaves the way it does? Is that worth a PCRE2=20 bug report? Anyway, the attached patches avoid using=20 PCRE2_EXTRA_MATCH_WORD for that reason. > * no more version restrictions (should work with >~10.20) I tested with 10.00 and found one more glitch (it doesn't have=20 PCRE2_SIZE_MAX), which is fixed by the attached patch "grep: port to=20 PCRE2 10.20". > Pending: > * what to do with the current support of \C (enabled for now) Let's open another bug report for that; I'm still a bit fuzzy about what=20 the pros and cons are. > * merge of non critical bugfix in #51710[1] I plan to follow up in that bug report. Marking this bug as done. Thanks again for working on this. --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0001-grep-migrate-to-pcre2.patch" Content-Disposition: attachment; filename="0001-grep-migrate-to-pcre2.patch" Content-Transfer-Encoding: base64 RnJvbSAzYmYzZjgxMjE4M2FiYWRmMjkzMWUwMjYwNjNmN2MyMGIyZjRjZTU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2FybG89MjBNYXJjZWxvPTIwQXJl bmFzPTIwQmVsPUMzPUIzbj89IDxjYXJlbmFzQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxMiBO b3YgMjAyMSAxNjo0NTowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIGdyZXA6IG1p Z3JhdGUgdG8gcGNyZTIKCk1vc3RseSBhIGJ1ZyBieSBidWcgdHJhbnNsYXRpb24gb2YgdGhl IG9yaWdpbmFsIGNvZGUgdG8gdGhlIFBDUkUyIEFQSS4KQ29kZSBzdGlsbCBjb3VsZCBkbyB3 aXRoIHNvbWUgb3B0aW1pemF0aW9ucyBidXQgc2hvdWxkIGJlIGdvb2QgYXMgYQpzdGFydGlu ZyBwb2ludC4KClRoZSBBUEkgY2hhbmdlcyB0aGUgc2lnbiBvZiBzb21lIHR5cGVzIGFuZCB0 aGVyZWZvcmUgc29tZSB1Z2x5IGNhc3RzCndlcmUgbmVlZGVkLCBzb21lIG9mIHRoZSBjaGFu Z2VzIGFyZSBqdXN0IHRvIG1ha2Ugc3VyZSBhbGwgdmFyaWFibGVzCmZpdCBpbnRvIHRoZSBu ZXdlciB0eXBlcyBiZXR0ZXIuCgpJbmNsdWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFu ZCBjb3VsZCBiZSBtYWRlIHRvIGJ1aWxkIGFsbCB0aGUgd2F5CnRvIDEwLjAwLCBidXQgYXNz dW1lcyBhIHJlY2VudCBlbm91Z2ggdmVyc2lvbiBhbmQgaGFzIGJlZW4gdGVzdGVkIHdpdGgK MTAuMjMgKGZyb20gQ2VudE9TIDcsIHRoZSBvbGRlc3QpLgoKUGVyZm9ybWFuY2Ugc2VlbXMg ZXF1aXZhbGVudCwgYW5kIGl0IGFsc28gc2VlbXMgZnVuY3Rpb25hbGx5IGNvbXBsZXRlLgoK KiBtNC9wY3JlLm00IChnbF9GVU5DX1BDUkUpOiBDaGVjayBmb3IgUENSRTIsIG5vdCB0aGUg b3JpZ2luYWwgUENSRS4KKiBzcmMvcGNyZXNlYXJjaC5jIChzdHJ1Y3QgcGNyZV9jb21wLCBq aXRfZXhlYykKKFBjb21waWxlLCBQZXhlY3V0ZSk6ClVzZSBQQ1JFMiwgbm90IHRoZSBvcmln aW5hbCBQQ1JFLgoqIHRlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbDogQWRqdXN0IHRvIG1hdGNo IFBDUkUyIGRpYWdub3N0aWNzLgotLS0KIGRvYy9ncmVwLmluLjEgICAgICAgICAgICB8ICAg OCArLQogZG9jL2dyZXAudGV4aSAgICAgICAgICAgIHwgICAyICstCiBtNC9wY3JlLm00ICAg ICAgICAgICAgICAgfCAgMjEgKystLQogc3JjL3BjcmVzZWFyY2guYyAgICAgICAgIHwgMjQ5 ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvZmlsZW5h bWUtbGluZW5vLnBsIHwgICA0ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z KCspLCAxNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2dyZXAuaW4uMSBiL2Rv Yy9ncmVwLmluLjEKaW5kZXggYjAxNGY2NS4uMjA4Y2I3NiAxMDA2NDQKLS0tIGEvZG9jL2dy ZXAuaW4uMQorKysgYi9kb2MvZ3JlcC5pbi4xCkBAIC03NTYsNyArNzU2LDcgQEAgSW4gb3Ro ZXIgaW1wbGVtZW50YXRpb25zLCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBsZXNz IHBvd2VyZnVsLgogVGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGV4dGVu ZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbnM7CiBkaWZmZXJlbmNlcyBmb3IgYmFzaWMgcmVndWxh ciBleHByZXNzaW9ucyBhcmUgc3VtbWFyaXplZCBhZnRlcndhcmRzLgogUGVybC1jb21wYXRp YmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZ2l2ZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHks IGFuZCBhcmUKLWRvY3VtZW50ZWQgaW4gQjxwY3Jlc3ludGF4PigzKSBhbmQgQjxwY3JlcGF0 dGVybj4oMyksIGJ1dCB3b3JrIG9ubHkgaWYKK2RvY3VtZW50ZWQgaW4gQjxwY3JlMnN5bnRh eD4oMykgYW5kIEI8cGNyZTJwYXR0ZXJuPigzKSwgYnV0IHdvcmsgb25seSBpZgogUENSRSBz dXBwb3J0IGlzIGVuYWJsZWQuCiAuUFAKIFRoZSBmdW5kYW1lbnRhbCBidWlsZGluZyBibG9j a3MgYXJlIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zCkBAIC0xMzYwLDkgKzEzNjAsOSBAQCBm cm9tIHRoZSBnbG9iYmluZyBzeW50YXggdGhhdCB0aGUgc2hlbGwgdXNlcyB0byBtYXRjaCBm aWxlIG5hbWVzLgogLkJSIHNvcnQgKDEpLAogLkJSIHhhcmdzICgxKSwKIC5CUiByZWFkICgy KSwKLS5CUiBwY3JlICgzKSwKLS5CUiBwY3Jlc3ludGF4ICgzKSwKLS5CUiBwY3JlcGF0dGVy biAoMyksCisuQlIgcGNyZTIgKDMpLAorLkJSIHBjcmUyc3ludGF4ICgzKSwKKy5CUiBwY3Jl MnBhdHRlcm4gKDMpLAogLkJSIHRlcm1pbmZvICg1KSwKIC5CUiBnbG9iICg3KSwKIC5CUiBy ZWdleCAoNykKZGlmZiAtLWdpdCBhL2RvYy9ncmVwLnRleGkgYi9kb2MvZ3JlcC50ZXhpCmlu ZGV4IGU1YjlmZDguLmMzYzRiYmYgMTAwNjQ0Ci0tLSBhL2RvYy9ncmVwLnRleGkKKysrIGIv ZG9jL2dyZXAudGV4aQpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgSW4gb3RoZXIgaW1wbGVtZW50 YXRpb25zLCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBsZXNzIHBvd2VyZnVsLgog VGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGV4dGVuZGVkIHJlZ3VsYXIg ZXhwcmVzc2lvbnM7CiBkaWZmZXJlbmNlcyBmb3IgYmFzaWMgcmVndWxhciBleHByZXNzaW9u cyBhcmUgc3VtbWFyaXplZCBhZnRlcndhcmRzLgogUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIg ZXhwcmVzc2lvbnMgZ2l2ZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHksIGFuZAotYXJlIGRv Y3VtZW50ZWQgaW4gdGhlIEBpe3BjcmVzeW50YXh9KDMpIGFuZCBAaXtwY3JlcGF0dGVybn0o MykgbWFudWFsCithcmUgZG9jdW1lbnRlZCBpbiB0aGUgQGl7cGNyZTJzeW50YXh9KDMpIGFu ZCBAaXtwY3JlMnBhdHRlcm59KDMpIG1hbnVhbAogcGFnZXMsIGJ1dCB3b3JrIG9ubHkgaWYg UENSRSBpcyBhdmFpbGFibGUgaW4gdGhlIHN5c3RlbS4KIAogQG1lbnUKZGlmZiAtLWdpdCBh L200L3BjcmUubTQgYi9tNC9wY3JlLm00CmluZGV4IDc4YjdmZGEuLmExYzZjODIgMTAwNjQ0 Ci0tLSBhL200L3BjcmUubTQKKysrIGIvbTQvcGNyZS5tNApAQCAtMSw0ICsxLDQgQEAKLSMg cGNyZS5tNCAtIGNoZWNrIGZvciBsaWJwY3JlIHN1cHBvcnQKKyMgcGNyZS5tNCAtIGNoZWNr IGZvciBQQ1JFIGxpYnJhcnkgc3VwcG9ydAogCiAjIENvcHlyaWdodCAoQykgMjAxMC0yMDIx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgpAQCAtOSw3ICs5LDcgQEAg QUNfREVGVU4oW2dsX0ZVTkNfUENSRV0sCiBbCiAgIEFDX0FSR19FTkFCTEUoW3BlcmwtcmVn ZXhwXSwKICAgICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXBlcmwtcmVnZXhwXSwKLSAg ICAgICAgICAgICAgICAgICBbZGlzYWJsZSBwZXJsLXJlZ2V4cCAocGNyZSkgc3VwcG9ydF0p LAorICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChwY3JlMikgc3Vw cG9ydF0pLAogICAgIFtjYXNlICRlbmFibGV2YWwgaW4KICAgICAgICB5ZXN8bm8pIHRlc3Rf cGNyZT0kZW5hYmxldmFsOzsKICAgICAgICAqKSBBQ19NU0dfRVJST1IoW2ludmFsaWQgdmFs dWUgJGVuYWJsZXZhbCBmb3IgLS1kaXNhYmxlLXBlcmwtcmVnZXhwXSk7OwpAQCAtMjEsMjQg KzIxLDI1IEBAIEFDX0RFRlVOKFtnbF9GVU5DX1BDUkVdLAogICB1c2VfcGNyZT1ubwogCiAg IGlmIHRlc3QgJHRlc3RfcGNyZSAhPSBubzsgdGhlbgotICAgIFBLR19DSEVDS19NT0RVTEVT KFtQQ1JFXSwgW2xpYnBjcmVdLCBbXSwgWzogJHtQQ1JFX0xJQlM9LWxwY3JlfV0pCisgICAg UEtHX0NIRUNLX01PRFVMRVMoW1BDUkVdLCBbbGlicGNyZTItOF0sIFtdLCBbOiAke1BDUkVf TElCUz0tbHBjcmUyLTh9XSkKIAotICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgcGNyZV9jb21w aWxlXSwgW3BjcmVfY3ZfaGF2ZV9wY3JlX2NvbXBpbGVdLAorICAgIEFDX0NBQ0hFX0NIRUNL KFtmb3IgcGNyZTJfY29tcGlsZV0sIFtwY3JlX2N2X2hhdmVfcGNyZTJfY29tcGlsZV0sCiAg ICAgICBbcGNyZV9zYXZlZF9DRkxBR1M9JENGTEFHUwogICAgICAgIHBjcmVfc2F2ZWRfTElC Uz0kTElCUwogICAgICAgIENGTEFHUz0iJENGTEFHUyAkUENSRV9DRkxBR1MiCiAgICAgICAg TElCUz0iJFBDUkVfTElCUyAkTElCUyIKICAgICAgICBBQ19MSU5LX0lGRUxTRSgKLSAgICAg ICAgIFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8cGNyZS5oPgorICAgICAgICAgW0FD X0xBTkdfUFJPR1JBTShbWyNkZWZpbmUgUENSRTJfQ09ERV9VTklUX1dJRFRIIDgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8cGNyZTIuaD4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgXV0sCi0gICAgICAgICAgICBbW3BjcmUgKnAgPSBwY3JlX2NvbXBp bGUgKDAsIDAsIDAsIDAsIDApOworICAgICAgICAgICAgW1twY3JlMl9jb2RlICpwID0gcGNy ZTJfY29tcGlsZSAoMCwgMCwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgIHJldHVybiAh cDtdXSldLAotICAgICAgICAgW3BjcmVfY3ZfaGF2ZV9wY3JlX2NvbXBpbGU9eWVzXSwKLSAg ICAgICAgIFtwY3JlX2N2X2hhdmVfcGNyZV9jb21waWxlPW5vXSkKKyAgICAgICAgIFtwY3Jl X2N2X2hhdmVfcGNyZTJfY29tcGlsZT15ZXNdLAorICAgICAgICAgW3BjcmVfY3ZfaGF2ZV9w Y3JlMl9jb21waWxlPW5vXSkKICAgICAgICBDRkxBR1M9JHBjcmVfc2F2ZWRfQ0ZMQUdTCiAg ICAgICAgTElCUz0kcGNyZV9zYXZlZF9MSUJTXSkKIAotICAgIGlmIHRlc3QgIiRwY3JlX2N2 X2hhdmVfcGNyZV9jb21waWxlIiA9IHllczsgdGhlbgorICAgIGlmIHRlc3QgIiRwY3JlX2N2 X2hhdmVfcGNyZTJfY29tcGlsZSIgPSB5ZXM7IHRoZW4KICAgICAgIHVzZV9wY3JlPXllcwog ICAgIGVsaWYgdGVzdCAkdGVzdF9wY3JlID0gbWF5YmU7IHRoZW4KICAgICAgIEFDX01TR19X QVJOKFtBQ19QQUNLQUdFX05BTUUgd2lsbCBiZSBidWlsdCB3aXRob3V0IHBjcmUgc3VwcG9y dC5dKQpAQCAtNTAsNyArNTEsNyBAQCBBQ19ERUZVTihbZ2xfRlVOQ19QQ1JFXSwKICAgaWYg dGVzdCAkdXNlX3BjcmUgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENS RV0sIFsxXSwKICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgUGVybCBDb21w YXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKLSAgICAgICBsaWJyYXJ5ICgtbHBjcmUpLl0p CisgICAgICAgbGlicmFyeSAoLWxwY3JlMikuXSkKICAgZWxzZQogICAgIFBDUkVfQ0ZMQUdT PQogICAgIFBDUkVfTElCUz0KZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMv cGNyZXNlYXJjaC5jCmluZGV4IDA5ZjkyYzguLjYzMDY3OGIgMTAwNjQ0Ci0tLSBhL3NyYy9w Y3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTcsNDEgKzE3LDMyIEBA CiAgICAwMjExMC0xMzAxLCBVU0EuICAqLwogCiAvKiBXcml0dGVuIEF1Z3VzdCAxOTkyIGJ5 IE1pa2UgSGFlcnRlbC4gKi8KKy8qIFVwZGF0ZWQgZm9yIFBDUkUyIGJ5IENhcmxvIEFyZW5h cy4gKi8KIAogI2luY2x1ZGUgPGNvbmZpZy5oPgogI2luY2x1ZGUgInNlYXJjaC5oIgogI2lu Y2x1ZGUgImRpZS5oIgogCi0jaW5jbHVkZSA8cGNyZS5oPgorI2RlZmluZSBQQ1JFMl9DT0RF X1VOSVRfV0lEVEggOAorI2luY2x1ZGUgPHBjcmUyLmg+CiAKLS8qIFRoaXMgbXVzdCBiZSBh dCBsZWFzdCAyOyBldmVyeXRoaW5nIGFmdGVyIHRoYXQgaXMgZm9yIHBlcmZvcm1hbmNlCi0g ICBpbiBwY3JlX2V4ZWMuICAqLwotZW51bSB7IE5TVUIgPSAzMDAgfTsKLQotI2lmbmRlZiBQ Q1JFX0VYVFJBX01BVENIX0xJTUlUX1JFQ1VSU0lPTgotIyBkZWZpbmUgUENSRV9FWFRSQV9N QVRDSF9MSU1JVF9SRUNVUlNJT04gMAotI2VuZGlmCi0jaWZuZGVmIFBDUkVfU1RVRFlfSklU X0NPTVBJTEUKLSMgZGVmaW5lIFBDUkVfU1RVRFlfSklUX0NPTVBJTEUgMAotI2VuZGlmCi0j aWZuZGVmIFBDUkVfU1RVRFlfRVhUUkFfTkVFREVECi0jIGRlZmluZSBQQ1JFX1NUVURZX0VY VFJBX05FRURFRCAwCisvKiBOZWVkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9y IFBDUkUyIDwgMTAuMzAgICovCisjaWZuZGVmIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUCisj ZGVmaW5lIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05M SU1JVAorI2RlZmluZSBQQ1JFMl9FUlJPUl9ERVBUSExJTUlUICBQQ1JFMl9FUlJPUl9SRUNV UlNJT05MSU1JVAorI2RlZmluZSBwY3JlMl9zZXRfZGVwdGhfbGltaXQgICBwY3JlMl9zZXRf cmVjdXJzaW9uX2xpbWl0CiAjZW5kaWYKIAogc3RydWN0IHBjcmVfY29tcAogewotICAvKiBD b21waWxlZCBpbnRlcm5hbCBmb3JtIG9mIGEgUGVybCByZWd1bGFyIGV4cHJlc3Npb24uICAq LwotICBwY3JlICpjcmU7Ci0KLSAgLyogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgcGF0dGVybi4gICovCi0gIHBjcmVfZXh0cmEgKmV4dHJhOwotCi0jaWYgUENSRV9TVFVE WV9KSVRfQ09NUElMRQogICAvKiBUaGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXpl LiAgKi8KLSAgcGNyZV9qaXRfc3RhY2sgKmppdF9zdGFjazsKLSAgaW50IGppdF9zdGFja19z aXplOwotI2VuZGlmCisgIHBjcmUyX2ppdF9zdGFjayAqaml0X3N0YWNrOworICBQQ1JFMl9T SVpFIGppdF9zdGFja19zaXplOwogCisgIC8qIENvbXBpbGVkIGludGVybmFsIGZvcm0gb2Yg YSBQZXJsIHJlZ3VsYXIgZXhwcmVzc2lvbi4gICovCisgIHBjcmUyX2NvZGUgKmNyZTsKKyAg cGNyZTJfbWF0Y2hfY29udGV4dCAqbWNvbnRleHQ7CisgIHBjcmUyX21hdGNoX2RhdGEgKmRh dGE7CiAgIC8qIFRhYmxlLCBpbmRleGVkIGJ5ICEgKGZsYWcgJiBQQ1JFX05PVEJPTCksIG9m IHdoZXRoZXIgdGhlIGVtcHR5CiAgICAgIHN0cmluZyBtYXRjaGVzIHdoZW4gdGhhdCBmbGFn IGlzIHVzZWQuICAqLwogICBpbnQgZW1wdHlfbWF0Y2hbMl07CkBAIC02MCw1NCArNTEsNDkg QEAgc3RydWN0IHBjcmVfY29tcAogCiAvKiBNYXRjaCB0aGUgYWxyZWFkeS1jb21waWxlZCBQ Q1JFIHBhdHRlcm4gYWdhaW5zdCB0aGUgZGF0YSBpbiBTVUJKRUNULAogICAgb2Ygc2l6ZSBT RUFSQ0hfQllURVMgYW5kIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IFNFQVJDSF9PRkZTRVQsIHdp dGgKLSAgIG9wdGlvbnMgT1BUSU9OUywgYW5kIHN0b3JpbmcgcmVzdWx0aW5nIG1hdGNoZXMg aW50byBTVUIuICBSZXR1cm4KLSAgIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGxvY2F0aW9u IG9yIGEgKG5lZ2F0aXZlKSBlcnJvciBudW1iZXIuICAqLworICAgb3B0aW9ucyBPUFRJT05T LgorICAgUmV0dXJuIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGNvdW50IG9yIGEgKG5lZ2F0 aXZlKSBlcnJvciBudW1iZXIuICAqLwogc3RhdGljIGludAotaml0X2V4ZWMgKHN0cnVjdCBw Y3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBpbnQgc2VhcmNoX2J5dGVzLAot ICAgICAgICAgIGludCBzZWFyY2hfb2Zmc2V0LCBpbnQgb3B0aW9ucywgaW50ICpzdWIpCitq aXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIFBD UkUyX1NJWkUgc2VhcmNoX2J5dGVzLAorICAgICAgICAgIFBDUkUyX1NJWkUgc2VhcmNoX29m ZnNldCwgaW50IG9wdGlvbnMpCiB7CiAgIHdoaWxlICh0cnVlKQogICAgIHsKLSAgICAgIGlu dCBlID0gcGNyZV9leGVjIChwYy0+Y3JlLCBwYy0+ZXh0cmEsIHN1YmplY3QsIHNlYXJjaF9i eXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfb2Zmc2V0LCBvcHRpb25z LCBzdWIsIE5TVUIpOwotCi0jaWYgUENSRV9TVFVEWV9KSVRfQ09NUElMRQotICAgICAgLyog R29pbmcgb3ZlciB0aGlzIHdvdWxkIHRyaWdnZXIgYW4gaW50IG92ZXJmbG93IGJ1ZyB3aXRo aW4gUENSRS4gICovCi0gICAgICBpbnQgaml0c3RhY2tfbWF4ID0gSU5UX01BWCAtIDggKiAx MDI0OwotCi0gICAgICBpZiAoZSA9PSBQQ1JFX0VSUk9SX0pJVF9TVEFDS0xJTUlUCi0gICAg ICAgICAgJiYgMCA8IHBjLT5qaXRfc3RhY2tfc2l6ZSAmJiBwYy0+aml0X3N0YWNrX3NpemUg PD0gaml0c3RhY2tfbWF4IC8gMikKKyAgICAgIGludCBlID0gcGNyZTJfbWF0Y2ggKHBjLT5j cmUsIChQQ1JFMl9TUFRSKXN1YmplY3QsIHNlYXJjaF9ieXRlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlYXJjaF9vZmZzZXQsIG9wdGlvbnMsIHBjLT5kYXRhLCBwYy0+bWNv bnRleHQpOworICAgICAgaWYgKGUgPT0gUENSRTJfRVJST1JfSklUX1NUQUNLTElNSVQKKyAg ICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19zaXplICYmIHBjLT5qaXRfc3RhY2tfc2l6 ZSA8PSBJTlRfTUFYIC8gMikKICAgICAgICAgewotICAgICAgICAgIGludCBvbGRfc2l6ZSA9 IHBjLT5qaXRfc3RhY2tfc2l6ZTsKLSAgICAgICAgICBpbnQgbmV3X3NpemUgPSBwYy0+aml0 X3N0YWNrX3NpemUgPSBvbGRfc2l6ZSAqIDI7CisgICAgICAgICAgUENSRTJfU0laRSBvbGRf c2l6ZSA9IHBjLT5qaXRfc3RhY2tfc2l6ZTsKKyAgICAgICAgICBQQ1JFMl9TSVpFIG5ld19z aXplID0gcGMtPmppdF9zdGFja19zaXplID0gb2xkX3NpemUgKiAyOworCiAgICAgICAgICAg aWYgKHBjLT5qaXRfc3RhY2spCi0gICAgICAgICAgICBwY3JlX2ppdF9zdGFja19mcmVlIChw Yy0+aml0X3N0YWNrKTsKLSAgICAgICAgICBwYy0+aml0X3N0YWNrID0gcGNyZV9qaXRfc3Rh Y2tfYWxsb2MgKG9sZF9zaXplLCBuZXdfc2l6ZSk7Ci0gICAgICAgICAgaWYgKCFwYy0+aml0 X3N0YWNrKQorICAgICAgICAgICAgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKHBjLT5qaXRfc3Rh Y2spOworICAgICAgICAgIHBjLT5qaXRfc3RhY2sgPSBwY3JlMl9qaXRfc3RhY2tfY3JlYXRl IChvbGRfc2l6ZSwgbmV3X3NpemUsIE5VTEwpOworCisgICAgICAgICAgaWYgKCFwYy0+bWNv bnRleHQpCisgICAgICAgICAgICBwYy0+bWNvbnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0 X2NyZWF0ZSAoTlVMTCk7CisKKyAgICAgICAgICBpZiAoIXBjLT5qaXRfc3RhY2sgfHwgIXBj LT5tY29udGV4dCkKICAgICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAwLAogICAgICAg ICAgICAgICAgICBfKCJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgUENSRSBK SVQgc3RhY2siKSk7Ci0gICAgICAgICAgcGNyZV9hc3NpZ25faml0X3N0YWNrIChwYy0+ZXh0 cmEsIE5VTEwsIHBjLT5qaXRfc3RhY2spOworICAgICAgICAgIHBjcmUyX2ppdF9zdGFja19h c3NpZ24gKHBjLT5tY29udGV4dCwgTlVMTCwgcGMtPmppdF9zdGFjayk7CiAgICAgICAgICAg Y29udGludWU7CiAgICAgICAgIH0KLSNlbmRpZgotCi0jaWYgUENSRV9FWFRSQV9NQVRDSF9M SU1JVF9SRUNVUlNJT04KLSAgICAgIGlmIChlID09IFBDUkVfRVJST1JfUkVDVVJTSU9OTElN SVQKLSAgICAgICAgICAmJiAoUENSRV9TVFVEWV9FWFRSQV9ORUVERUQgfHwgcGMtPmV4dHJh KSkKKyAgICAgIGlmIChlID09IFBDUkUyX0VSUk9SX0RFUFRITElNSVQpCiAgICAgICAgIHsK LSAgICAgICAgICB1bnNpZ25lZCBsb25nIGxpbQotICAgICAgICAgICAgPSAocGMtPmV4dHJh LT5mbGFncyAmIFBDUkVfRVhUUkFfTUFUQ0hfTElNSVRfUkVDVVJTSU9OCi0gICAgICAgICAg ICAgICA/IHBjLT5leHRyYS0+bWF0Y2hfbGltaXRfcmVjdXJzaW9uCi0gICAgICAgICAgICAg ICA6IDApOwotICAgICAgICAgIGlmIChsaW0gPD0gVUxPTkdfTUFYIC8gMikKLSAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgcGMtPmV4dHJhLT5tYXRjaF9saW1pdF9yZWN1cnNpb24g PSBsaW0gPyAyICogbGltIDogKDEgPDwgMjQpIC0gMTsKLSAgICAgICAgICAgICAgcGMtPmV4 dHJhLT5mbGFncyB8PSBQQ1JFX0VYVFJBX01BVENIX0xJTUlUX1JFQ1VSU0lPTjsKLSAgICAg ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgor ICAgICAgICAgIHVpbnQzMl90IGxpbTsKKyAgICAgICAgICBwY3JlMl9jb25maWcgKFBDUkUy X0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKKyAgICAgICAgICBpZiAobGltID49IFVJTlQz Ml9NQVggLyAyKQorICAgICAgICAgICAgcmV0dXJuIGU7CisKKyAgICAgICAgICBsaW0gPDw9 IDE7CisgICAgICAgICAgaWYgKCFwYy0+bWNvbnRleHQpCisgICAgICAgICAgICBwYy0+bWNv bnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7CiAKKyAgICAgICAg ICBwY3JlMl9zZXRfZGVwdGhfbGltaXQgKHBjLT5tY29udGV4dCwgbGltKTsKKyAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgcmV0dXJuIGU7CiAgICAgfQogfQpAQCAt MTE4LDI3ICsxMDQsMzUgQEAgaml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBjLCBjaGFy IGNvbnN0ICpzdWJqZWN0LCBpbnQgc2VhcmNoX2J5dGVzLAogdm9pZCAqCiBQY29tcGlsZSAo Y2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wg ZXhhY3QpCiB7Ci0gIGludCBlOwotICBjaGFyIGNvbnN0ICplcDsKKyAgUENSRTJfU0laRSBl OworICBpbnQgZWM7CisgIFBDUkUyX1VDSEFSOCBlcFsxMjhdOyAvKiAxMjAgY29kZSB1bml0 cyBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgdHJ1bmNhdGlvbiAgKi8KICAgc3RhdGljIGNoYXIg Y29uc3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86IjsKICAgc3RhdGljIGNoYXIgY29uc3Qg d3N1ZmZpeFtdID0gIikoPyFcXHcpIjsKICAgc3RhdGljIGNoYXIgY29uc3QgeHByZWZpeFtd ID0gIl4oPzoiOwogICBzdGF0aWMgY2hhciBjb25zdCB4c3VmZml4W10gPSAiKSQiOwogICBp bnQgZml4X2xlbl9tYXggPSBNQVggKHNpemVvZiB3cHJlZml4IC0gMSArIHNpemVvZiB3c3Vm Zml4IC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgeHByZWZpeCAtIDEg KyBzaXplb2YgeHN1ZmZpeCAtIDEpOwotICBjaGFyICpyZSA9IHhubWFsbG9jICg0LCBzaXpl ICsgKGZpeF9sZW5fbWF4ICsgNCAtIDEpIC8gNCk7Ci0gIGludCBmbGFncyA9IFBDUkVfRE9M TEFSX0VORE9OTFkgfCAobWF0Y2hfaWNhc2UgPyBQQ1JFX0NBU0VMRVNTIDogMCk7CisgIHVu c2lnbmVkIGNoYXIgKnJlID0geG1hbGxvYyAoc2l6ZSArIGZpeF9sZW5fbWF4ICsgMSk7Cisg IGludCBmbGFncyA9IFBDUkUyX0RPTExBUl9FTkRPTkxZIHwgKG1hdGNoX2ljYXNlID8gUENS RTJfQ0FTRUxFU1MgOiAwKTsKICAgY2hhciAqcGF0bGltID0gcGF0dGVybiArIHNpemU7Ci0g IGNoYXIgKm4gPSByZTsKLSAgY2hhciBjb25zdCAqcDsKLSAgY2hhciBjb25zdCAqcG51bDsK KyAgY2hhciAqbiA9IChjaGFyICopcmU7CiAgIHN0cnVjdCBwY3JlX2NvbXAgKnBjID0geGNh bGxvYyAoMSwgc2l6ZW9mICgqcGMpKTsKKyAgcGNyZTJfY29tcGlsZV9jb250ZXh0ICpjY29u dGV4dCA9IHBjcmUyX2NvbXBpbGVfY29udGV4dF9jcmVhdGUoTlVMTCk7CiAKICAgaWYgKGxv Y2FsZWluZm8ubXVsdGlieXRlKQogICAgIHsKICAgICAgIGlmICghIGxvY2FsZWluZm8udXNp bmdfdXRmOCkKICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIi1QIHN1cHBvcnRz IG9ubHkgdW5pYnl0ZSBhbmQgVVRGLTggbG9jYWxlcyIpKTsKLSAgICAgIGZsYWdzIHw9IFBD UkVfVVRGODsKKyAgICAgIGZsYWdzIHw9IFBDUkUyX1VURjsKKyNpZiAwCisgICAgICAvKiBk byBub3QgbWF0Y2ggaW5kaXZpZHVhbCBjb2RlIHVuaXRzIGJ1dCBvbmx5IFVURi04ICAqLwor ICAgICAgZmxhZ3MgfD0gUENSRTJfTkVWRVJfQkFDS1NMQVNIX0M7CisjZW5kaWYKKyNpZmRl ZiBQQ1JFMl9NQVRDSF9JTlZBTElEX1VURgorICAgICAgLyogY29uc2lkZXIgaW52YWxpZCBV VEYtOCBhcyBhIGJhcnJpZXIsIGluc3RlYWQgb2YgZXJyb3IgICovCisgICAgICBmbGFncyB8 PSBQQ1JFMl9NQVRDSF9JTlZBTElEX1VURjsKKyNlbmRpZgogICAgIH0KIAogICAvKiBGSVhN RTogUmVtb3ZlIHRoaXMgcmVzdHJpY3Rpb24uICAqLwpAQCAtMTUxLDU2ICsxNDUsNDIgQEAg UGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25v cmVkLCBib29sIGV4YWN0KQogICBpZiAobWF0Y2hfbGluZXMpCiAgICAgc3RyY3B5IChuLCB4 cHJlZml4KTsKICAgbiArPSBzdHJsZW4gKG4pOwotCi0gIC8qIFRoZSBQQ1JFIGludGVyZmFj ZSBkb2Vzbid0IGFsbG93IE5VTCBieXRlcyBpbiB0aGUgcGF0dGVybiwgc28KLSAgICAgcmVw bGFjZSBlYWNoIE5VTCBieXRlIGluIHRoZSBwYXR0ZXJuIHdpdGggdGhlIGZvdXIgY2hhcmFj dGVycwotICAgICAiXDAwMCIsIHJlbW92aW5nIGEgcHJlY2VkaW5nIGJhY2tzbGFzaCBpZiB0 aGVyZSBhcmUgYW4gb2RkCi0gICAgIG51bWJlciBvZiBiYWNrc2xhc2hlcyBiZWZvcmUgdGhl IE5VTC4gICovCi0gICpwYXRsaW0gPSAnXDAnOwotICBmb3IgKHAgPSBwYXR0ZXJuOyAocG51 bCA9IHAgKyBzdHJsZW4gKHApKSA8IHBhdGxpbTsgcCA9IHBudWwgKyAxKQorICBtZW1jcHkg KG4sIHBhdHRlcm4sIHNpemUpOworICBuICs9IHNpemU7CisgIGlmIChtYXRjaF93b3JkcyAm JiAhbWF0Y2hfbGluZXMpCiAgICAgewotICAgICAgbWVtY3B5IChuLCBwLCBwbnVsIC0gcCk7 Ci0gICAgICBuICs9IHBudWwgLSBwOwotICAgICAgZm9yIChwID0gcG51bDsgcGF0dGVybiA8 IHAgJiYgcFstMV0gPT0gJ1xcJzsgcC0tKQotICAgICAgICBjb250aW51ZTsKLSAgICAgIG4g LT0gKHBudWwgLSBwKSAmIDE7Ci0gICAgICBzdHJjcHkgKG4sICJcXDAwMCIpOwotICAgICAg biArPSA0OwotICAgIH0KLSAgbWVtY3B5IChuLCBwLCBwYXRsaW0gLSBwICsgMSk7Ci0gIG4g Kz0gcGF0bGltIC0gcDsKLSAgKnBhdGxpbSA9ICdcbic7Ci0KLSAgaWYgKG1hdGNoX3dvcmRz KQogICAgIHN0cmNweSAobiwgd3N1ZmZpeCk7CisgICAgbiArPSBzdHJsZW4od3N1ZmZpeCk7 CisgICAgfQogICBpZiAobWF0Y2hfbGluZXMpCisgICAgewogICAgIHN0cmNweSAobiwgeHN1 ZmZpeCk7CisgICAgbiArPSBzdHJsZW4oeHN1ZmZpeCk7CisgICAgfQogCi0gIHBjLT5jcmUg PSBwY3JlX2NvbXBpbGUgKHJlLCBmbGFncywgJmVwLCAmZSwgcGNyZV9tYWtldGFibGVzICgp KTsKKyAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtl dGFibGVzIChOVUxMKSk7CisgIHBjLT5jcmUgPSBwY3JlMl9jb21waWxlIChyZSwgbiAtIChj aGFyICopcmUsIGZsYWdzLCAmZWMsICZlLCBjY29udGV4dCk7CiAgIGlmICghcGMtPmNyZSkK LSAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXApOwotCi0gIGludCBwY3JlX3N0 dWR5X2ZsYWdzID0gUENSRV9TVFVEWV9FWFRSQV9ORUVERUQgfCBQQ1JFX1NUVURZX0pJVF9D T01QSUxFOwotICBwYy0+ZXh0cmEgPSBwY3JlX3N0dWR5IChwYy0+Y3JlLCBwY3JlX3N0dWR5 X2ZsYWdzLCAmZXApOwotICBpZiAoZXApCi0gICAgZGllIChFWElUX1RST1VCTEUsIDAsICIl cyIsIGVwKTsKKyAgICB7CisgICAgICBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSAoZWMsIGVw LCBzaXplb2YgKGVwKSk7CisgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXAp OworICAgIH0KIAotI2lmIFBDUkVfU1RVRFlfSklUX0NPTVBJTEUKLSAgaWYgKHBjcmVfZnVs bGluZm8gKHBjLT5jcmUsIHBjLT5leHRyYSwgUENSRV9JTkZPX0pJVCwgJmUpKQotICAgIGRp ZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCJpbnRlcm5hbCBlcnJvciAoc2hvdWxkIG5ldmVyIGhh cHBlbikiKSk7CisgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9w YXR0ZXJuIChwYy0+Y3JlLCBOVUxMKTsKIAotICAvKiBUaGUgUENSRSBkb2N1bWVudGF0aW9u IHNheXMgdGhhdCBhIDMyIEtpQiBzdGFjayBpcyB0aGUgZGVmYXVsdC4gICovCi0gIGlmIChl KQotICAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOwotI2VuZGlmCisgIGVjID0g cGNyZTJfaml0X2NvbXBpbGUgKHBjLT5jcmUsIFBDUkUyX0pJVF9DT01QTEVURSk7CisgIGlm IChlYyAmJiBlYyAhPSBQQ1JFMl9FUlJPUl9KSVRfQkFET1BUSU9OICYmIGVjICE9IFBDUkUy X0VSUk9SX05PTUVNT1JZKQorICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCJKSVQgaW50 ZXJuYWwgZXJyb3I6ICVkIiksIGVjKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFRoZSBQ Q1JFIGRvY3VtZW50YXRpb24gc2F5cyB0aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZh dWx0LiAgKi8KKyAgICAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOworICAgIH0K IAogICBmcmVlIChyZSk7CiAKLSAgaW50IHN1YltOU1VCXTsKLSAgcGMtPmVtcHR5X21hdGNo W2ZhbHNlXSA9IHBjcmVfZXhlYyAocGMtPmNyZSwgcGMtPmV4dHJhLCAiIiwgMCwgMCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENSRV9OT1RCT0wsIHN1Yiwg TlNVQik7Ci0gIHBjLT5lbXB0eV9tYXRjaFt0cnVlXSA9IHBjcmVfZXhlYyAocGMtPmNyZSwg cGMtPmV4dHJhLCAiIiwgMCwgMCwgMCwgc3ViLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5TVUIpOworICBwYy0+ZW1wdHlfbWF0Y2hbZmFsc2VdID0gaml0X2V4 ZWMgKHBjLCAiIiwgMCwgMCwgUENSRTJfTk9UQk9MKTsKKyAgcGMtPmVtcHR5X21hdGNoW3Ry dWVdID0gaml0X2V4ZWMgKHBjLCAiIiwgMCwgMCwgMCk7CiAKICAgcmV0dXJuIHBjOwogfQpA QCAtMjA5LDE1ICsxODksMTUgQEAgcHRyZGlmZl90CiBQZXhlY3V0ZSAodm9pZCAqdmNwLCBj aGFyIGNvbnN0ICpidWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAg ICAgIGNoYXIgY29uc3QgKnN0YXJ0X3B0cikKIHsKLSAgaW50IHN1YltOU1VCXTsKICAgY2hh ciBjb25zdCAqcCA9IHN0YXJ0X3B0ciA/IHN0YXJ0X3B0ciA6IGJ1ZjsKICAgYm9vbCBib2wg PSBwWy0xXSA9PSBlb2xieXRlOwogICBjaGFyIGNvbnN0ICpsaW5lX3N0YXJ0ID0gYnVmOwot ICBpbnQgZSA9IFBDUkVfRVJST1JfTk9NQVRDSDsKKyAgaW50IGUgPSBQQ1JFMl9FUlJPUl9O T01BVENIOwogICBjaGFyIGNvbnN0ICpsaW5lX2VuZDsKICAgc3RydWN0IHBjcmVfY29tcCAq cGMgPSB2Y3A7CisgIFBDUkUyX1NJWkUgKnN1YiA9IHBjcmUyX2dldF9vdmVjdG9yX3BvaW50 ZXIgKHBjLT5kYXRhKTsKIAotICAvKiBUaGUgc2VhcmNoIGFkZHJlc3MgdG8gcGFzcyB0byBw Y3JlX2V4ZWMuICBUaGlzIGlzIHRoZSBzdGFydCBvZgorICAvKiBUaGUgc2VhcmNoIGFkZHJl c3MgdG8gcGFzcyB0byBQQ1JFLiAgVGhpcyBpcyB0aGUgc3RhcnQgb2YKICAgICAgdGhlIGJ1 ZmZlciwgb3IganVzdCBwYXN0IHRoZSBtb3N0LXJlY2VudGx5IGRpc2NvdmVyZWQgZW5jb2Rp bmcKICAgICAgZXJyb3Igb3IgbGluZSBlbmQuICAqLwogICBjaGFyIGNvbnN0ICpzdWJqZWN0 ID0gYnVmOwpAQCAtMjI5LDE0ICsyMDksMTQgQEAgUGV4ZWN1dGUgKHZvaWQgKnZjcCwgY2hh ciBjb25zdCAqYnVmLCBpZHhfdCBzaXplLCBpZHhfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAg IGJldHRlciBhbmQgdGhlIGNvcnJlY3RuZXNzIGlzc3VlcyB3ZXJlIHRvbyBwdXp6bGluZy4g IFNlZQogICAgICAgICAgQnVnIzIyNjU1LiAgKi8KICAgICAgIGxpbmVfZW5kID0gcmF3bWVt Y2hyIChwLCBlb2xieXRlKTsKLSAgICAgIGlmIChJTlRfTUFYIDwgbGluZV9lbmQgLSBwKQor ICAgICAgaWYgKFBDUkUyX1NJWkVfTUFYIDwgbGluZV9lbmQgLSBwKQogICAgICAgICBkaWUg KEVYSVRfVFJPVUJMRSwgMCwgXygiZXhjZWVkZWQgUENSRSdzIGxpbmUgbGVuZ3RoIGxpbWl0 IikpOwogCiAgICAgICBmb3IgKDs7KQogICAgICAgICB7CiAgICAgICAgICAgLyogU2tpcCBw YXN0IGJ5dGVzIHRoYXQgYXJlIGVhc2lseSBkZXRlcm1pbmVkIHRvIGJlIGVuY29kaW5nCiAg ICAgICAgICAgICAgZXJyb3JzLCB0cmVhdGluZyB0aGVtIGFzIGRhdGEgdGhhdCBjYW5ub3Qg bWF0Y2guICBUaGlzIGlzCi0gICAgICAgICAgICAgZmFzdGVyIHRoYW4gaGF2aW5nIHBjcmVf ZXhlYyBjaGVjayB0aGVtLiAgKi8KKyAgICAgICAgICAgICBmYXN0ZXIgdGhhbiBoYXZpbmcg UENSRSBjaGVjayB0aGVtLiAgKi8KICAgICAgICAgICB3aGlsZSAobG9jYWxlaW5mby5zYmNs ZW5bdG9fdWNoYXIgKCpwKV0gPT0gLTEpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg IHArKzsKQEAgLTI0NCwxMCArMjI0LDEwIEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIg Y29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAg ICAgIGJvbCA9IGZhbHNlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgaW50IHNlYXJj aF9vZmZzZXQgPSBwIC0gc3ViamVjdDsKKyAgICAgICAgICBQQ1JFMl9TSVpFIHNlYXJjaF9v ZmZzZXQgPSBwIC0gc3ViamVjdDsKIAogICAgICAgICAgIC8qIENoZWNrIGZvciBhbiBlbXB0 eSBtYXRjaDsgdGhpcyBpcyBmYXN0ZXIgdGhhbiBsZXR0aW5nCi0gICAgICAgICAgICAgcGNy ZV9leGVjIGRvIGl0LiAgKi8KKyAgICAgICAgICAgICBQQ1JFIGRvIGl0LiAgKi8KICAgICAg ICAgICBpZiAocCA9PSBsaW5lX2VuZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg c3ViWzBdID0gc3ViWzFdID0gc2VhcmNoX29mZnNldDsKQEAgLTI1NywxMyArMjM3LDE0IEBA IFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4 X3QgKm1hdGNoX3NpemUsCiAKICAgICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CiAgICAgICAg ICAgaWYgKCFib2wpCi0gICAgICAgICAgICBvcHRpb25zIHw9IFBDUkVfTk9UQk9MOworICAg ICAgICAgICAgb3B0aW9ucyB8PSBQQ1JFMl9OT1RCT0w7CiAKLSAgICAgICAgICBlID0gaml0 X2V4ZWMgKHBjLCBzdWJqZWN0LCBsaW5lX2VuZCAtIHN1YmplY3QsIHNlYXJjaF9vZmZzZXQs Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLCBzdWIpOwotICAgICAgICAgIGlm IChlICE9IFBDUkVfRVJST1JfQkFEVVRGOCkKKyAgICAgICAgICBlID0gaml0X2V4ZWMgKHBj LCBzdWJqZWN0LCBsaW5lX2VuZCAtIHN1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAg ICBzZWFyY2hfb2Zmc2V0LCBvcHRpb25zKTsKKyAgICAgICAgICAvKiBQQ1JFMiBwcm92aWRl cyAyMiBkaWZmZXJlbnQgZXJyb3IgY29kZXMgZm9yIGJhZCBVVEYtOCAgKi8KKyAgICAgICAg ICBpZiAoISAoUENSRTJfRVJST1JfVVRGOF9FUlIyMSA8PSBlICYmIGUgPCBQQ1JFMl9FUlJP Ul9VVEY4X0VSUjEpKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgaW50IHZhbGlk X2J5dGVzID0gc3ViWzBdOworICAgICAgICAgIFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBw Y3JlMl9nZXRfc3RhcnRjaGFyIChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNo X29mZnNldCA8PSB2YWxpZF9ieXRlcykKICAgICAgICAgICAgIHsKQEAgLTI3MywxNCArMjU0 LDE1IEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6 ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgdGhl IGVtcHR5LW1hdGNoIGNhc2Ugc3BlY2lhbGx5LCBmb3Igc3BlZWQuCiAgICAgICAgICAgICAg ICAgICAgICBUaGlzIG9wdGltaXphdGlvbiBpcyB2YWxpZCBpZiBWQUxJRF9CWVRFUyBpcyB6 ZXJvLAogICAgICAgICAgICAgICAgICAgICAgd2hpY2ggbWVhbnMgU0VBUkNIX09GRlNFVCBp cyBhbHNvIHplcm8uICAqLworICAgICAgICAgICAgICAgICAgc3ViWzBdID0gdmFsaWRfYnl0 ZXM7CiAgICAgICAgICAgICAgICAgICBzdWJbMV0gPSAwOwogICAgICAgICAgICAgICAgICAg ZSA9IHBjLT5lbXB0eV9tYXRjaFtib2xdOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGUgPSBqaXRfZXhlYyAocGMsIHN1YmplY3Qs IHZhbGlkX2J5dGVzLCBzZWFyY2hfb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3B0aW9ucyB8IFBDUkVfTk9fVVRGOF9DSEVDSyB8IFBDUkVfTk9URU9MLCBzdWIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8IFBDUkUyX05PX1VU Rl9DSEVDSyB8IFBDUkUyX05PVEVPTCk7CiAKLSAgICAgICAgICAgICAgaWYgKGUgIT0gUENS RV9FUlJPUl9OT01BVENIKQorICAgICAgICAgICAgICBpZiAoZSAhPSBQQ1JFMl9FUlJPUl9O T01BVENIKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgIC8qIFRy ZWF0IHRoZSBlbmNvZGluZyBlcnJvciBhcyBkYXRhIHRoYXQgY2Fubm90IG1hdGNoLiAgKi8K QEAgLTI5MSw3ICsyNzMsNyBAQCBQZXhlY3V0ZSAodm9pZCAqdmNwLCBjaGFyIGNvbnN0ICpi dWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAgICAgIHN1YmplY3Qg Kz0gdmFsaWRfYnl0ZXMgKyAxOwogICAgICAgICB9CiAKLSAgICAgIGlmIChlICE9IFBDUkVf RVJST1JfTk9NQVRDSCkKKyAgICAgIGlmIChlICE9IFBDUkUyX0VSUk9SX05PTUFUQ0gpCiAg ICAgICAgIGJyZWFrOwogICAgICAgYm9sID0gdHJ1ZTsKICAgICAgIHAgPSBzdWJqZWN0ID0g bGluZV9zdGFydCA9IGxpbmVfZW5kICsgMTsKQEAgLTMwMiwyNiArMjg0LDM1IEBAIFBleGVj dXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3QgKm1h dGNoX3NpemUsCiAgICAgewogICAgICAgc3dpdGNoIChlKQogICAgICAgICB7Ci0gICAgICAg IGNhc2UgUENSRV9FUlJPUl9OT01BVENIOgorICAgICAgICBjYXNlIFBDUkUyX0VSUk9SX05P TUFUQ0g6CiAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBQQ1JFX0VSUk9SX05P TUVNT1JZOgorICAgICAgICBjYXNlIFBDUkUyX0VSUk9SX05PTUVNT1JZOgogICAgICAgICAg IGRpZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCIlczogbWVtb3J5IGV4aGF1c3RlZCIpLCBpbnB1 dF9maWxlbmFtZSAoKSk7CiAKLSNpZiBQQ1JFX1NUVURZX0pJVF9DT01QSUxFCi0gICAgICAg IGNhc2UgUENSRV9FUlJPUl9KSVRfU1RBQ0tMSU1JVDoKKyAgICAgICAgY2FzZSBQQ1JFMl9F UlJPUl9KSVRfU1RBQ0tMSU1JVDoKICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwg XygiJXM6IGV4aGF1c3RlZCBQQ1JFIEpJVCBzdGFjayIpLAogICAgICAgICAgICAgICAgaW5w dXRfZmlsZW5hbWUgKCkpOwotI2VuZGlmCiAKLSAgICAgICAgY2FzZSBQQ1JFX0VSUk9SX01B VENITElNSVQ6CisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfTUFUQ0hMSU1JVDoKICAgICAg ICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgXygiJXM6IGV4Y2VlZGVkIFBDUkUncyBiYWNr dHJhY2tpbmcgbGltaXQiKSwKICAgICAgICAgICAgICAgIGlucHV0X2ZpbGVuYW1lICgpKTsK IAotICAgICAgICBjYXNlIFBDUkVfRVJST1JfUkVDVVJTSU9OTElNSVQ6Ci0gICAgICAgICAg ZGllIChFWElUX1RST1VCTEUsIDAsIF8oIiVzOiBleGNlZWRlZCBQQ1JFJ3MgcmVjdXJzaW9u IGxpbWl0IiksCisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfREVQVEhMSU1JVDoKKyAgICAg ICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwKKyAgICAgICAgICAgICAgIF8oIiVzOiBleGNl ZWRlZCBQQ1JFJ3MgbmVzdGVkIGJhY2t0cmFja2luZyBsaW1pdCIpLAogICAgICAgICAgICAg ICAgaW5wdXRfZmlsZW5hbWUgKCkpOwogCisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfUkVD VVJTRUxPT1A6CisgICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIiVzOiBQQ1JF IGRldGVjdGVkIHJlY3Vyc2UgbG9vcCIpLAorICAgICAgICAgICAgICAgaW5wdXRfZmlsZW5h bWUgKCkpOworCisjaWZkZWYgUENSRTJfRVJST1JfSEVBUExJTUlUCisgICAgICAgIGNhc2Ug UENSRTJfRVJST1JfSEVBUExJTUlUOgorICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAw LCBfKCIlczogZXhjZWVkZWQgUENSRSdzIGhlYXAgbGltaXQiKSwKKyAgICAgICAgICAgICAg IGlucHV0X2ZpbGVuYW1lICgpKTsKKyNlbmRpZgorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgLyogRm9yIG5vdywgd2UgbHVtcCBhbGwgcmVtYWluaW5nIFBDUkUgZmFpbHVyZXMg aW50byB0aGlzIGJhc2tldC4KICAgICAgICAgICAgICBJZiBhbnlvbmUgY2FyZXMgdG8gcHJv dmlkZSBzYW1wbGUgZ3JlcCB1c2FnZSB0aGF0IGNhbiB0cmlnZ2VyCmRpZmYgLS1naXQgYS90 ZXN0cy9maWxlbmFtZS1saW5lbm8ucGwgYi90ZXN0cy9maWxlbmFtZS1saW5lbm8ucGwKaW5k ZXggMWU4NGI0NS4uMWZmM2Q2YSAxMDA3NTUKLS0tIGEvdGVzdHMvZmlsZW5hbWUtbGluZW5v LnBsCisrKyBiL3Rlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbApAQCAtMTAxLDEzICsxMDEsMTMg QEAgbXkgQFRlc3RzID0KICAgIF0sCiAgICBbJ2ludmFsaWQtcmUtUC1wYXJlbicsICctUCAi KSInLCB7RVhJVD0+Mn0sCiAgICAge0VSUiA9PiAkRU5We1BDUkVfV09SS1N9ID09IDEKLSAg ICAgICA/ICIkcHJvZzogdW5tYXRjaGVkIHBhcmVudGhlc2VzXG4iCisgICAgICAgPyAiJHBy b2c6IHVubWF0Y2hlZCBjbG9zaW5nIHBhcmVudGhlc2lzXG4iCiAgICAgICAgOiAkbm9fcGNy ZQogICAgIH0sCiAgICBdLAogICAgWydpbnZhbGlkLXJlLVAtc3Rhci1wYXJlbicsICctUCAi YS4qKSInLCB7RVhJVD0+Mn0sCiAgICAge0VSUiA9PiAkRU5We1BDUkVfV09SS1N9ID09IDEK LSAgICAgICA/ICIkcHJvZzogdW5tYXRjaGVkIHBhcmVudGhlc2VzXG4iCisgICAgICAgPyAi JHByb2c6IHVubWF0Y2hlZCBjbG9zaW5nIHBhcmVudGhlc2lzXG4iCiAgICAgICAgOiAkbm9f cGNyZQogICAgIH0sCiAgICBdLAotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0002-maint-minor-rewording-and-reindenting.patch" Content-Disposition: attachment; filename="0002-maint-minor-rewording-and-reindenting.patch" Content-Transfer-Encoding: base64 RnJvbSBiNmI0M2JlYTMyYjVlMDU5OTI5ZmE1OGVkOGFkMTgyZmU1ZmExZWNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDE2OjU2OjUzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMi8xMl0gbWFpbnQ6IG1pbm9yIHJld29yZGluZyBhbmQgcmVpbmRlbnRpbmcKCi0tLQog TkVXUyAgICAgICAgICAgICB8ICA0ICsrKysKIFRPRE8gICAgICAgICAgICAgfCAgNCArKy0t CiBtNC9wY3JlLm00ICAgICAgIHwgIDggKysrKy0tLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA0 NCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMv cGNyZS1hYm9ydCB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyks IDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDRhNjJm YjcuLjJmNjMwNzEgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtNCwxMCArNCwx NCBAQCBHTlUgZ3JlcCBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LSotIG91dGxpbmUgLSotCiAKICoqIENoYW5nZXMgaW4gYmVoYXZpb3IKIAorICBUaGUgLVAg b3B0aW9uIGlzIG5vdyBiYXNlZCBvbiBQQ1JFMiBpbnN0ZWFkIG9mIHRoZSBvbGRlciBQQ1JF LAorICB0aGFua3MgdG8gY29kZSBjb250cmlidXRlZCBieSBDYXJsbyBBcmVuYXMuCisKICAg VGhlIGVncmVwIGFuZCBmZ3JlcCBjb21tYW5kcywgd2hpY2ggaGF2ZSBiZWVuIGRlcHJlY2F0 ZWQgc2luY2UKICAgcmVsZWFzZSAyLjUuMyAoMjAwNyksIG5vdyB3YXJuIHRoYXQgdGhleSBh cmUgb2Jzb2xlc2NlbnQgYW5kIHNob3VsZAogICBiZSByZXBsYWNlZCBieSBncmVwIC1FIGFu ZCBncmVwIC1GLgogCisKICogTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgMy43ICgy MDIxLTA4LTE0KSBbc3RhYmxlXQogCiAqKiBDaGFuZ2VzIGluIGJlaGF2aW9yCmRpZmYgLS1n aXQgYS9UT0RPIGIvVE9ETwppbmRleCA1MjExYWMxLi4wYjgyZWZmIDEwMDY0NAotLS0gYS9U T0RPCisrKyBiL1RPRE8KQEAgLTMxLDEzICszMSwxMyBAQCBHTlUgZ3JlcCBvcmlnaW5hbGx5 IGRpZCAzMi1iaXQgYXJpdGhtZXRpYy4gIEFsdGhvdWdoIGl0IGhhcyBtb3ZlZCB0bwogNjQt Yml0IG9uIDY0LWJpdCBwbGF0Zm9ybXMgYnkgdXNpbmcgdHlwZXMgbGlrZSBwdHJkaWZmX3Qg YW5kIHNpemVfdCwKIHRoaXMgY29udmVyc2lvbiBoYXMgbm90IGJlZW4gZW50aXJlbHkgc3lz dGVtYXRpYyBhbmQgc2hvdWxkIGJlIGNoZWNrZWQuCiAKLUxhenkgZHluYW1pYyBsaW5raW5n IG9mIGxpYnBjcmUuICBTZWUgRGViaWFu4oCZcyAwMy0zOTcyNjItZGxvcGVuLXBjcmUucGF0 Y2guCitMYXp5IGR5bmFtaWMgbGlua2luZyBvZiB0aGUgUENSRSBsaWJyYXJ5LgogCiBDaGVj ayBGcmVlQlNE4oCZcyBpbnRlZ3JhdGlvbiBvZiB6Z3JlcCAoLVopIGFuZCBiemdyZXAgKC1K KSBpbiBvbmUKIGJpbmFyeS4gIElzIHRoZXJlIGEgcG9zc2liaWxpdHkgb2YgZG9pbmcgZXZl biBiZXR0ZXIgYnkgYXV0b21hdGljYWxseQogY2hlY2tpbmcgdGhlIG1hZ2ljIG9mIGJpbmFy eSBmaWxlcyBvdXJzZWx2ZXMgKDB4MUYgMHg4QiBmb3IgZ3ppcCwgMHgxRgogMHg5RCBmb3Ig Y29tcHJlc3MsIGFuZCAweDQyIDB4NUEgMHg2OCBmb3IgYnppcDIpPyAgT25jZSB3aGF0IHRv IGRvIHdpdGgKLWxpYnBjcmUgaXMgZGVjaWRlZCwgZG8gdGhlIHNhbWUgZm9yIGxpYnogYW5k IGxpYmJ6Mi4KK3RoZSBQQ1JFIGxpYnJhcnkgaXMgZGVjaWRlZCwgZG8gdGhlIHNhbWUgZm9y IGxpYnogYW5kIGxpYmJ6Mi4KIAogDAogPT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0 IGEvbTQvcGNyZS5tNCBiL200L3BjcmUubTQKaW5kZXggYTFjNmM4Mi4uOTcwYTIyOSAxMDA2 NDQKLS0tIGEvbTQvcGNyZS5tNAorKysgYi9tNC9wY3JlLm00CkBAIC05LDcgKzksNyBAQCBB Q19ERUZVTihbZ2xfRlVOQ19QQ1JFXSwKIFsKICAgQUNfQVJHX0VOQUJMRShbcGVybC1yZWdl eHBdLAogICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtcGVybC1yZWdleHBdLAotICAg ICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChwY3JlMikgc3VwcG9ydF0p LAorICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChQQ1JFKSBzdXBw b3J0XSksCiAgICAgW2Nhc2UgJGVuYWJsZXZhbCBpbgogICAgICAgIHllc3xubykgdGVzdF9w Y3JlPSRlbmFibGV2YWw7OwogICAgICAgICopIEFDX01TR19FUlJPUihbaW52YWxpZCB2YWx1 ZSAkZW5hYmxldmFsIGZvciAtLWRpc2FibGUtcGVybC1yZWdleHBdKTs7CkBAIC00MiwxNiAr NDIsMTYgQEAgQUNfREVGVU4oW2dsX0ZVTkNfUENSRV0sCiAgICAgaWYgdGVzdCAiJHBjcmVf Y3ZfaGF2ZV9wY3JlMl9jb21waWxlIiA9IHllczsgdGhlbgogICAgICAgdXNlX3BjcmU9eWVz CiAgICAgZWxpZiB0ZXN0ICR0ZXN0X3BjcmUgPSBtYXliZTsgdGhlbgotICAgICAgQUNfTVNH X1dBUk4oW0FDX1BBQ0tBR0VfTkFNRSB3aWxsIGJlIGJ1aWx0IHdpdGhvdXQgcGNyZSBzdXBw b3J0Ll0pCisgICAgICBBQ19NU0dfV0FSTihbQUNfUEFDS0FHRV9OQU1FIHdpbGwgYmUgYnVp bHQgd2l0aG91dCBQQ1JFIHN1cHBvcnQuXSkKICAgICBlbHNlCi0gICAgICBBQ19NU0dfRVJS T1IoW3BjcmUgc3VwcG9ydCBub3QgYXZhaWxhYmxlXSkKKyAgICAgIEFDX01TR19FUlJPUihb UENSRSBzdXBwb3J0IG5vdCBhdmFpbGFibGVdKQogICAgIGZpCiAgIGZpCiAKICAgaWYgdGVz dCAkdXNlX3BjcmUgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENSRV0s IFsxXSwKICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgUGVybCBDb21wYXRp YmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKLSAgICAgICBsaWJyYXJ5ICgtbHBjcmUyKS5dKQor ICAgICAgIGxpYnJhcnkuXSkKICAgZWxzZQogICAgIFBDUkVfQ0ZMQUdTPQogICAgIFBDUkVf TElCUz0KZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5j CmluZGV4IDYzMDY3OGIuLmRhYTBjNDIgMTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMK KysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTYsOSArMTYsNiBAQAogICAgRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEK ICAgIDAyMTEwLTEzMDEsIFVTQS4gICovCiAKLS8qIFdyaXR0ZW4gQXVndXN0IDE5OTIgYnkg TWlrZSBIYWVydGVsLiAqLwotLyogVXBkYXRlZCBmb3IgUENSRTIgYnkgQ2FybG8gQXJlbmFz LiAqLwotCiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSAic2VhcmNoLmgiCiAjaW5j bHVkZSAiZGllLmgiCkBAIC0yNiwyNCArMjMsMjcgQEAKICNkZWZpbmUgUENSRTJfQ09ERV9V TklUX1dJRFRIIDgKICNpbmNsdWRlIDxwY3JlMi5oPgogCi0vKiBOZWVkZWQgZm9yIGJhY2t3 YXJkIGNvbXBhdGliaWxpdHkgZm9yIFBDUkUyIDwgMTAuMzAgICovCisvKiBGb3IgUENSRTIg PCAxMC4zMC4gICovCiAjaWZuZGVmIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUCi0jZGVmaW5l IFBDUkUyX0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05MSU1JVAot I2RlZmluZSBQQ1JFMl9FUlJPUl9ERVBUSExJTUlUICBQQ1JFMl9FUlJPUl9SRUNVUlNJT05M SU1JVAotI2RlZmluZSBwY3JlMl9zZXRfZGVwdGhfbGltaXQgICBwY3JlMl9zZXRfcmVjdXJz aW9uX2xpbWl0CisjIGRlZmluZSBQQ1JFMl9DT05GSUdfREVQVEhMSU1JVCBQQ1JFMl9DT05G SUdfUkVDVVJTSU9OTElNSVQKKyMgZGVmaW5lIFBDUkUyX0VSUk9SX0RFUFRITElNSVQgUENS RTJfRVJST1JfUkVDVVJTSU9OTElNSVQKKyMgZGVmaW5lIHBjcmUyX3NldF9kZXB0aF9saW1p dCBwY3JlMl9zZXRfcmVjdXJzaW9uX2xpbWl0CiAjZW5kaWYKIAogc3RydWN0IHBjcmVfY29t cAogewotICAvKiBUaGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXplLiAgKi8KLSAg cGNyZTJfaml0X3N0YWNrICpqaXRfc3RhY2s7Ci0gIFBDUkUyX1NJWkUgaml0X3N0YWNrX3Np emU7Ci0KICAgLyogQ29tcGlsZWQgaW50ZXJuYWwgZm9ybSBvZiBhIFBlcmwgcmVndWxhciBl eHByZXNzaW9uLiAgKi8KICAgcGNyZTJfY29kZSAqY3JlOworCisgIC8qIE1hdGNoIGNvbnRl eHQgYW5kIGRhdGEgYmxvY2suICAqLwogICBwY3JlMl9tYXRjaF9jb250ZXh0ICptY29udGV4 dDsKICAgcGNyZTJfbWF0Y2hfZGF0YSAqZGF0YTsKLSAgLyogVGFibGUsIGluZGV4ZWQgYnkg ISAoZmxhZyAmIFBDUkVfTk9UQk9MKSwgb2Ygd2hldGhlciB0aGUgZW1wdHkKKworICAvKiBU aGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXplLiAgKi8KKyAgcGNyZTJfaml0X3N0 YWNrICpqaXRfc3RhY2s7CisgIFBDUkUyX1NJWkUgaml0X3N0YWNrX3NpemU7CisKKyAgLyog VGFibGUsIGluZGV4ZWQgYnkgISAoZmxhZyAmIFBDUkUyX05PVEJPTCksIG9mIHdoZXRoZXIg dGhlIGVtcHR5CiAgICAgIHN0cmluZyBtYXRjaGVzIHdoZW4gdGhhdCBmbGFnIGlzIHVzZWQu ICAqLwogICBpbnQgZW1wdHlfbWF0Y2hbMl07CiB9OwpAQCAtNTksNyArNTksNyBAQCBqaXRf ZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIFBDUkUy X1NJWkUgc2VhcmNoX2J5dGVzLAogewogICB3aGlsZSAodHJ1ZSkKICAgICB7Ci0gICAgICBp bnQgZSA9IHBjcmUyX21hdGNoIChwYy0+Y3JlLCAoUENSRTJfU1BUUilzdWJqZWN0LCBzZWFy Y2hfYnl0ZXMsCisgICAgICBpbnQgZSA9IHBjcmUyX21hdGNoIChwYy0+Y3JlLCAoUENSRTJf U1BUUikgc3ViamVjdCwgc2VhcmNoX2J5dGVzLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VhcmNoX29mZnNldCwgb3B0aW9ucywgcGMtPmRhdGEsIHBjLT5tY29udGV4dCk7CiAg ICAgICBpZiAoZSA9PSBQQ1JFMl9FUlJPUl9KSVRfU1RBQ0tMSU1JVAogICAgICAgICAgICYm IDAgPCBwYy0+aml0X3N0YWNrX3NpemUgJiYgcGMtPmppdF9zdGFja19zaXplIDw9IElOVF9N QVggLyAyKQpAQCAtMTE4LDcgKzExOCw3IEBAIFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBp ZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFjdCkKICAgY2hhciAq cGF0bGltID0gcGF0dGVybiArIHNpemU7CiAgIGNoYXIgKm4gPSAoY2hhciAqKXJlOwogICBz dHJ1Y3QgcGNyZV9jb21wICpwYyA9IHhjYWxsb2MgKDEsIHNpemVvZiAoKnBjKSk7Ci0gIHBj cmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRf Y3JlYXRlKE5VTEwpOworICBwY3JlMl9jb21waWxlX2NvbnRleHQgKmNjb250ZXh0ID0gcGNy ZTJfY29tcGlsZV9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7CiAKICAgaWYgKGxvY2FsZWluZm8u bXVsdGlieXRlKQogICAgIHsKQEAgLTEyNiwxMSArMTI2LDExIEBAIFBjb21waWxlIChjaGFy ICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFj dCkKICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIi1QIHN1cHBvcnRzIG9ubHkg dW5pYnl0ZSBhbmQgVVRGLTggbG9jYWxlcyIpKTsKICAgICAgIGZsYWdzIHw9IFBDUkUyX1VU RjsKICNpZiAwCi0gICAgICAvKiBkbyBub3QgbWF0Y2ggaW5kaXZpZHVhbCBjb2RlIHVuaXRz IGJ1dCBvbmx5IFVURi04ICAqLworICAgICAgLyogRG8gbm90IG1hdGNoIGluZGl2aWR1YWwg Y29kZSB1bml0cyBidXQgb25seSBVVEYtOC4gICovCiAgICAgICBmbGFncyB8PSBQQ1JFMl9O RVZFUl9CQUNLU0xBU0hfQzsKICNlbmRpZgogI2lmZGVmIFBDUkUyX01BVENIX0lOVkFMSURf VVRGCi0gICAgICAvKiBjb25zaWRlciBpbnZhbGlkIFVURi04IGFzIGEgYmFycmllciwgaW5z dGVhZCBvZiBlcnJvciAgKi8KKyAgICAgIC8qIENvbnNpZGVyIGludmFsaWQgVVRGLTggYXMg YSBiYXJyaWVyLCBpbnN0ZWFkIG9mIGVycm9yLiAgKi8KICAgICAgIGZsYWdzIHw9IFBDUkUy X01BVENIX0lOVkFMSURfVVRGOwogI2VuZGlmCiAgICAgfQpAQCAtMTQ5LDEzICsxNDksMTMg QEAgUGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBp Z25vcmVkLCBib29sIGV4YWN0KQogICBuICs9IHNpemU7CiAgIGlmIChtYXRjaF93b3JkcyAm JiAhbWF0Y2hfbGluZXMpCiAgICAgewotICAgIHN0cmNweSAobiwgd3N1ZmZpeCk7Ci0gICAg biArPSBzdHJsZW4od3N1ZmZpeCk7CisgICAgICBzdHJjcHkgKG4sIHdzdWZmaXgpOworICAg ICAgbiArPSBzdHJsZW4gKHdzdWZmaXgpOwogICAgIH0KICAgaWYgKG1hdGNoX2xpbmVzKQog ICAgIHsKLSAgICBzdHJjcHkgKG4sIHhzdWZmaXgpOwotICAgIG4gKz0gc3RybGVuKHhzdWZm aXgpOworICAgICAgc3RyY3B5IChuLCB4c3VmZml4KTsKKyAgICAgIG4gKz0gc3RybGVuICh4 c3VmZml4KTsKICAgICB9CiAKICAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250 ZXh0LCBwY3JlMl9tYWtldGFibGVzIChOVUxMKSk7CkBAIC0yMDQsOCArMjA0LDggQEAgUGV4 ZWN1dGUgKHZvaWQgKnZjcCwgY2hhciBjb25zdCAqYnVmLCBpZHhfdCBzaXplLCBpZHhfdCAq bWF0Y2hfc2l6ZSwKIAogICBkbwogICAgIHsKLSAgICAgIC8qIFNlYXJjaCBsaW5lIGJ5IGxp bmUuICBBbHRob3VnaCB0aGlzIGNvZGUgZm9ybWVybHkgdXNlZAotICAgICAgICAgUENSRV9N VUxUSUxJTkUgZm9yIHBlcmZvcm1hbmNlLCB0aGUgcGVyZm9ybWFuY2Ugd2Fzbid0IGFsd2F5 cworICAgICAgLyogU2VhcmNoIGxpbmUgYnkgbGluZS4gIEFsdGhvdWdoIHRoaXMgZm9ybWVy bHkgdXNlZCBzb21ldGhpbmcgbGlrZQorICAgICAgICAgUENSRTJfTVVMVElMSU5FIGZvciBw ZXJmb3JtYW5jZSwgdGhlIHBlcmZvcm1hbmNlIHdhc24ndCBhbHdheXMKICAgICAgICAgIGJl dHRlciBhbmQgdGhlIGNvcnJlY3RuZXNzIGlzc3VlcyB3ZXJlIHRvbyBwdXp6bGluZy4gIFNl ZQogICAgICAgICAgQnVnIzIyNjU1LiAgKi8KICAgICAgIGxpbmVfZW5kID0gcmF3bWVtY2hy IChwLCBlb2xieXRlKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3BjcmUtYWJvcnQgYi90ZXN0cy9w Y3JlLWFib3J0CmluZGV4IDUxY2VlMjUuLjc3MmExZDIgMTAwNzU1Ci0tLSBhL3Rlc3RzL3Bj cmUtYWJvcnQKKysrIGIvdGVzdHMvcGNyZS1hYm9ydApAQCAtMSw1ICsxLDUgQEAKICMhIC9i aW4vc2gKLSMgU2hvdyB0aGF0IGdyZXAgaGFuZGxlcyBQQ1JFJ3MgUENSRV9FUlJPUl9NQVRD SExJTUlULgorIyBTaG93IHRoYXQgZ3JlcCBoYW5kbGVzIFBDUkUyX0VSUk9SX01BVENITElN SVQuCiAjIEluIGdyZXAtMi44LCBpdCB3b3VsZCBhYm9ydC4KICMKICMgQ29weXJpZ2h0IChD KSAyMDExLTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0tIAoyLjMyLjAK Cg== --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0003-grep-Don-t-limit-jitstack_max-to-INT_MAX.patch" Content-Disposition: attachment; filename="0003-grep-Don-t-limit-jitstack_max-to-INT_MAX.patch" Content-Transfer-Encoding: base64 RnJvbSBlODk2ZDhiMGVjZGEwMzYyMzNkZmEyMGFjMGIxN2E2YWMzZDY1NDMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDIxOjMwOjI1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMy8xMl0gPT9VVEYtOD9xP2dyZXA6PTIwRG9uPUUyPTgwPTk5dD0yMGxpbWl0PTIwaml0 c3RhY2s/PQogPT9VVEYtOD9xPz01Rm1heD0yMHRvPTIwSU5UPTVGTUFYPz0KTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL3BjcmVzZWFyY2guYyAoaml0X2V4 ZWMpOiBSZW1vdmUgYXJiaXRyYXJ5IElOVF9NQVggbGltaXQgb24gSklUCnN0YWNrIHNpemUu Ci0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDggKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNl YXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCBkYWEwYzQyLi5iZjk2NmY4IDEwMDY0 NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTU5 LDEwICs1OSwxNiBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29u c3QgKnN1YmplY3QsIFBDUkUyX1NJWkUgc2VhcmNoX2J5dGVzLAogewogICB3aGlsZSAodHJ1 ZSkKICAgICB7CisgICAgICAvKiBTVEFDS19HUk9XVEhfUkFURSBpcyB0YWtlbiBmcm9tIFBD UkUncyBzcmMvcGNyZTJfaml0X2NvbXBpbGUuYy4KKyAgICAgICAgIEdvaW5nIG92ZXIgdGhl IGppdHN0YWNrX21heCBsaW1pdCBjb3VsZCB0cmlnZ2VyIGFuIGludAorICAgICAgICAgb3Zl cmZsb3cgYnVnIHdpdGhpbiBQQ1JFLiAgKi8KKyAgICAgIGludCBTVEFDS19HUk9XVEhfUkFU RSA9IDgxOTI7CisgICAgICBzaXplX3Qgaml0c3RhY2tfbWF4ID0gU0laRV9NQVggLSAoU1RB Q0tfR1JPV1RIX1JBVEUgLSAxKTsKKwogICAgICAgaW50IGUgPSBwY3JlMl9tYXRjaCAocGMt PmNyZSwgKFBDUkUyX1NQVFIpIHN1YmplY3QsIHNlYXJjaF9ieXRlcywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlYXJjaF9vZmZzZXQsIG9wdGlvbnMsIHBjLT5kYXRhLCBwYy0+ bWNvbnRleHQpOwogICAgICAgaWYgKGUgPT0gUENSRTJfRVJST1JfSklUX1NUQUNLTElNSVQK LSAgICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19zaXplICYmIHBjLT5qaXRfc3RhY2tf c2l6ZSA8PSBJTlRfTUFYIC8gMikKKyAgICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19z aXplICYmIHBjLT5qaXRfc3RhY2tfc2l6ZSA8PSBqaXRzdGFja19tYXggLyAyKQogICAgICAg ICB7CiAgICAgICAgICAgUENSRTJfU0laRSBvbGRfc2l6ZSA9IHBjLT5qaXRfc3RhY2tfc2l6 ZTsKICAgICAgICAgICBQQ1JFMl9TSVpFIG5ld19zaXplID0gcGMtPmppdF9zdGFja19zaXpl ID0gb2xkX3NpemUgKiAyOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0004-grep-improve-pcre2_get_error_message-comments.patch" Content-Disposition: attachment; filename="0004-grep-improve-pcre2_get_error_message-comments.patch" Content-Transfer-Encoding: base64 RnJvbSA4YzljZWI4ODQzNDZjZTI1ZjE1M2ZkMjM2YzI0NWIzNzEzMTgxZjIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDIxOjM0OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNC8xMl0gZ3JlcDogaW1wcm92ZSBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSBjb21tZW50 cwoKKiBzcmMvcGNyZXNlYXJjaC5jIChQY29tcGlsZSk6IEltcHJvdmUgY29tbWVudHMgcmUK cGNyZTJfZ2V0X2Vycm9yX21lc3NhZ2UgYnVmZmVyLgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMg fCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5j CmluZGV4IGJmOTY2ZjguLjI4NmUxZGMgMTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMK KysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTEyLDcgKzExMiw2IEBAIFBjb21waWxlIChj aGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBl eGFjdCkKIHsKICAgUENSRTJfU0laRSBlOwogICBpbnQgZWM7Ci0gIFBDUkUyX1VDSEFSOCBl cFsxMjhdOyAvKiAxMjAgY29kZSB1bml0cyBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgdHJ1bmNh dGlvbiAgKi8KICAgc3RhdGljIGNoYXIgY29uc3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86 IjsKICAgc3RhdGljIGNoYXIgY29uc3Qgd3N1ZmZpeFtdID0gIikoPyFcXHcpIjsKICAgc3Rh dGljIGNoYXIgY29uc3QgeHByZWZpeFtdID0gIl4oPzoiOwpAQCAtMTY4LDcgKzE2Nyw5IEBA IFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdu b3JlZCwgYm9vbCBleGFjdCkKICAgcGMtPmNyZSA9IHBjcmUyX2NvbXBpbGUgKHJlLCBuIC0g KGNoYXIgKilyZSwgZmxhZ3MsICZlYywgJmUsIGNjb250ZXh0KTsKICAgaWYgKCFwYy0+Y3Jl KQogICAgIHsKLSAgICAgIHBjcmUyX2dldF9lcnJvcl9tZXNzYWdlIChlYywgZXAsIHNpemVv ZiAoZXApKTsKKyAgICAgIGVudW0geyBFUlJCVUZTSVogPSAyNTYgfTsgLyogVGFrZW4gZnJv bSBwY3JlMmdyZXAuYyBFUlJCVUZTSVouICAqLworICAgICAgUENSRTJfVUNIQVI4IGVwW0VS UkJVRlNJWl07CisgICAgICBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSAoZWMsIGVwLCBzaXpl b2YgZXApOwogICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsICIlcyIsIGVwKTsKICAgICB9 CiAKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0005-grep-speed-up-fix-bad-UTF8-check-with-P.patch" Content-Disposition: attachment; filename="0005-grep-speed-up-fix-bad-UTF8-check-with-P.patch" Content-Transfer-Encoding: base64 RnJvbSBhMWI0NDQwMjcyMzFjYWFjMjQ3YWIwZmJkNWJlOGJkYThlYjNkNjI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDEzIE5vdiAyMDIxIDEzOjUyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNS8xMl0gZ3JlcDogc3BlZWQgdXAsIGZpeCBiYWQtVVRGOCBjaGVjayB3aXRoIC1QCgoq IHNyYy9wY3Jlc2VhcmNoLmMgKGJhZF91dGY4X2Zyb21fcGNyZTIpOiBOZXcgZnVuY3Rpb24u ICBGaXggYnVnCndoZXJlIFBDUkUyX0VSUk9SX1VURjhfRVJSMSB3YXMgbm90IHRyZWF0ZWQg YXMgYW4gZW5jb2RpbmcgZXJyb3IuCkltcHJvdmUgcGVyZm9ybWFuY2Ugd2hlbiBQQ1JFMl9N QVRDSF9JTlZBTElEX1VURiBpcyBkZWZpbmVkLgooUGV4ZWN1dGUpOiBVc2UgaXQuCi0tLQog c3JjL3BjcmVzZWFyY2guYyB8IDE2ICsrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9w Y3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5jCmluZGV4IDI4NmUxZGMuLjk1M2FjYTIg MTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpA QCAtMTA0LDYgKzEwNCwxOCBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNo YXIgY29uc3QgKnN1YmplY3QsIFBDUkUyX1NJWkUgc2VhcmNoX2J5dGVzLAogICAgIH0KIH0K IAorLyogUmV0dXJuIHRydWUgaWYgRSBpcyBhbiBlcnJvciBjb2RlIGZvciBiYWQgVVRGLTgs IGFuZCBpZiBwY3JlMl9tYXRjaAorICAgY291bGQgcmV0dXJuIEUgYmVjYXVzZSBQQ1JFIGxh Y2tzIFBDUkUyX01BVENIX0lOVkFMSURfVVRGLiAgKi8KK3N0YXRpYyBib29sCitiYWRfdXRm OF9mcm9tX3BjcmUyIChpbnQgZSkKK3sKKyNpZmRlZiBQQ1JFMl9NQVRDSF9JTlZBTElEX1VU RgorICByZXR1cm4gZmFsc2U7CisjZWxzZQorICByZXR1cm4gUENSRTJfRVJST1JfVVRGOF9F UlIyMSA8PSBlICYmIGUgPD0gUENSRTJfRVJST1JfVVRGOF9FUlIxOworI2VuZGlmCit9CisK IC8qIENvbXBpbGUgdGhlIC1QIHN0eWxlIFBBVFRFUk4sIGNvbnRhaW5pbmcgU0laRSBieXRl cyB0aGF0IGFyZQogICAgZm9sbG93ZWQgYnkgJ1xuJy4gIFJldHVybiBhIGRlc2NyaXB0aW9u IG9mIHRoZSBjb21waWxlZCBwYXR0ZXJuLiAgKi8KIApAQCAtMjQ4LDkgKzI2MCw5IEBAIFBl eGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3Qg Km1hdGNoX3NpemUsCiAKICAgICAgICAgICBlID0gaml0X2V4ZWMgKHBjLCBzdWJqZWN0LCBs aW5lX2VuZCAtIHN1YmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfb2Zm c2V0LCBvcHRpb25zKTsKLSAgICAgICAgICAvKiBQQ1JFMiBwcm92aWRlcyAyMiBkaWZmZXJl bnQgZXJyb3IgY29kZXMgZm9yIGJhZCBVVEYtOCAgKi8KLSAgICAgICAgICBpZiAoISAoUENS RTJfRVJST1JfVVRGOF9FUlIyMSA8PSBlICYmIGUgPCBQQ1JFMl9FUlJPUl9VVEY4X0VSUjEp KQorICAgICAgICAgIGlmICghYmFkX3V0ZjhfZnJvbV9wY3JlMiAoZSkpCiAgICAgICAgICAg ICBicmVhazsKKwogICAgICAgICAgIFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBwY3JlMl9n ZXRfc3RhcnRjaGFyIChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNoX29mZnNl dCA8PSB2YWxpZF9ieXRlcykKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0006-grep-prefer-signed-integers.patch" Content-Disposition: attachment; filename="0006-grep-prefer-signed-integers.patch" Content-Transfer-Encoding: base64 RnJvbSBjYjI3MjVlMjhlZWQ4MzJjNmQyOTVjZGIyM2UzYzBiNzMwMDI1MjFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDEzIE5vdiAyMDIxIDE3OjMwOjIzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNi8xMl0gZ3JlcDogcHJlZmVyIHNpZ25lZCBpbnRlZ2VycwoKKiBzcmMvcGNyZXNlYXJj aC5jIChzdHJ1Y3QgcGNyZV9jb21wLCBqaXRfZXhlYywgUGV4ZWN1dGUpOgpQcmVmZXIgc2ln bmVkIHRvIHVuc2lnbmVkIHR5cGVzIHdoZW4gZWl0aGVyIHdpbGwgZG8uCihqaXRfZXhlYyk6 IFVzZSBJTlRfTVVMVElQTFlfV1JBUFYgaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoo UGV4ZWN1dGUpOiBPbWl0IGxpbmUgbGVuZ3RoIGxpbWl0IHRlc3QgdGhhdCBpcyBubyBsb25n ZXIKbmVlZGVkIHdpdGggUENSRTIuCi0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDI0ICsrKysr KysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMv cGNyZXNlYXJjaC5jCmluZGV4IDk1M2FjYTIuLmZkZWNiZTggMTAwNjQ0Ci0tLSBhL3NyYy9w Y3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtNDEsNyArNDEsNyBAQCBz dHJ1Y3QgcGNyZV9jb21wCiAKICAgLyogVGhlIEpJVCBzdGFjayBhbmQgaXRzIG1heGltdW0g c2l6ZS4gICovCiAgIHBjcmUyX2ppdF9zdGFjayAqaml0X3N0YWNrOwotICBQQ1JFMl9TSVpF IGppdF9zdGFja19zaXplOworICBpZHhfdCBqaXRfc3RhY2tfc2l6ZTsKIAogICAvKiBUYWJs ZSwgaW5kZXhlZCBieSAhIChmbGFnICYgUENSRTJfTk9UQk9MKSwgb2Ygd2hldGhlciB0aGUg ZW1wdHkKICAgICAgc3RyaW5nIG1hdGNoZXMgd2hlbiB0aGF0IGZsYWcgaXMgdXNlZC4gICov CkBAIC01NCwyNCArNTQsMjQgQEAgc3RydWN0IHBjcmVfY29tcAogICAgb3B0aW9ucyBPUFRJ T05TLgogICAgUmV0dXJuIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGNvdW50IG9yIGEgKG5l Z2F0aXZlKSBlcnJvciBudW1iZXIuICAqLwogc3RhdGljIGludAotaml0X2V4ZWMgKHN0cnVj dCBwY3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBQQ1JFMl9TSVpFIHNlYXJj aF9ieXRlcywKLSAgICAgICAgICBQQ1JFMl9TSVpFIHNlYXJjaF9vZmZzZXQsIGludCBvcHRp b25zKQoraml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJq ZWN0LCBpZHhfdCBzZWFyY2hfYnl0ZXMsCisgICAgICAgICAgaWR4X3Qgc2VhcmNoX29mZnNl dCwgaW50IG9wdGlvbnMpCiB7CiAgIHdoaWxlICh0cnVlKQogICAgIHsKICAgICAgIC8qIFNU QUNLX0dST1dUSF9SQVRFIGlzIHRha2VuIGZyb20gUENSRSdzIHNyYy9wY3JlMl9qaXRfY29t cGlsZS5jLgogICAgICAgICAgR29pbmcgb3ZlciB0aGUgaml0c3RhY2tfbWF4IGxpbWl0IGNv dWxkIHRyaWdnZXIgYW4gaW50Ci0gICAgICAgICBvdmVyZmxvdyBidWcgd2l0aGluIFBDUkUu ICAqLworICAgICAgICAgb3ZlcmZsb3cgYnVnLiAgKi8KICAgICAgIGludCBTVEFDS19HUk9X VEhfUkFURSA9IDgxOTI7Ci0gICAgICBzaXplX3Qgaml0c3RhY2tfbWF4ID0gU0laRV9NQVgg LSAoU1RBQ0tfR1JPV1RIX1JBVEUgLSAxKTsKKyAgICAgIGlkeF90IGppdHN0YWNrX21heCA9 IE1JTiAoSURYX01BWCwgU0laRV9NQVggLSAoU1RBQ0tfR1JPV1RIX1JBVEUgLSAxKSk7CiAK ICAgICAgIGludCBlID0gcGNyZTJfbWF0Y2ggKHBjLT5jcmUsIChQQ1JFMl9TUFRSKSBzdWJq ZWN0LCBzZWFyY2hfYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hf b2Zmc2V0LCBvcHRpb25zLCBwYy0+ZGF0YSwgcGMtPm1jb250ZXh0KTsKICAgICAgIGlmIChl ID09IFBDUkUyX0VSUk9SX0pJVF9TVEFDS0xJTUlUCi0gICAgICAgICAgJiYgMCA8IHBjLT5q aXRfc3RhY2tfc2l6ZSAmJiBwYy0+aml0X3N0YWNrX3NpemUgPD0gaml0c3RhY2tfbWF4IC8g MikKKyAgICAgICAgICAmJiBwYy0+aml0X3N0YWNrX3NpemUgPD0gaml0c3RhY2tfbWF4IC8g MikKICAgICAgICAgewotICAgICAgICAgIFBDUkUyX1NJWkUgb2xkX3NpemUgPSBwYy0+aml0 X3N0YWNrX3NpemU7Ci0gICAgICAgICAgUENSRTJfU0laRSBuZXdfc2l6ZSA9IHBjLT5qaXRf c3RhY2tfc2l6ZSA9IG9sZF9zaXplICogMjsKKyAgICAgICAgICBpZHhfdCBvbGRfc2l6ZSA9 IHBjLT5qaXRfc3RhY2tfc2l6ZTsKKyAgICAgICAgICBpZHhfdCBuZXdfc2l6ZSA9IHBjLT5q aXRfc3RhY2tfc2l6ZSA9IG9sZF9zaXplICogMjsKIAogICAgICAgICAgIGlmIChwYy0+aml0 X3N0YWNrKQogICAgICAgICAgICAgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKHBjLT5qaXRfc3Rh Y2spOwpAQCAtOTAsMTAgKzkwLDggQEAgaml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBj LCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBQQ1JFMl9TSVpFIHNlYXJjaF9ieXRlcywKICAgICAg ICAgewogICAgICAgICAgIHVpbnQzMl90IGxpbTsKICAgICAgICAgICBwY3JlMl9jb25maWcg KFBDUkUyX0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKLSAgICAgICAgICBpZiAobGltID49 IFVJTlQzMl9NQVggLyAyKQorICAgICAgICAgIGlmIChJTlRfTVVMVElQTFlfV1JBUFYgKGxp bSwgMiwgJmxpbSkpCiAgICAgICAgICAgICByZXR1cm4gZTsKLQotICAgICAgICAgIGxpbSA8 PD0gMTsKICAgICAgICAgICBpZiAoIXBjLT5tY29udGV4dCkKICAgICAgICAgICAgIHBjLT5t Y29udGV4dCA9IHBjcmUyX21hdGNoX2NvbnRleHRfY3JlYXRlIChOVUxMKTsKIApAQCAtMjQz LDcgKzI0MSw3IEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4 X3Qgc2l6ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgIGJvbCA9IGZhbHNl OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgUENSRTJfU0laRSBzZWFyY2hfb2Zmc2V0 ID0gcCAtIHN1YmplY3Q7CisgICAgICAgICAgaWR4X3Qgc2VhcmNoX29mZnNldCA9IHAgLSBz dWJqZWN0OwogCiAgICAgICAgICAgLyogQ2hlY2sgZm9yIGFuIGVtcHR5IG1hdGNoOyB0aGlz IGlzIGZhc3RlciB0aGFuIGxldHRpbmcKICAgICAgICAgICAgICBQQ1JFIGRvIGl0LiAgKi8K QEAgLTI2Myw3ICsyNjEsNyBAQCBQZXhlY3V0ZSAodm9pZCAqdmNwLCBjaGFyIGNvbnN0ICpi dWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAgICAgIGlmICghYmFk X3V0ZjhfZnJvbV9wY3JlMiAoZSkpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAg IFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBwY3JlMl9nZXRfc3RhcnRjaGFyIChwYy0+ZGF0 YSk7CisgICAgICAgICAgaWR4X3QgdmFsaWRfYnl0ZXMgPSBwY3JlMl9nZXRfc3RhcnRjaGFy IChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNoX29mZnNldCA8PSB2YWxpZF9i eXRlcykKICAgICAgICAgICAgIHsKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0007-grep-use-PCRE2_EXTRA_MATCH_LINE.patch" Content-Disposition: attachment; filename="0007-grep-use-PCRE2_EXTRA_MATCH_LINE.patch" Content-Transfer-Encoding: base64 RnJvbSBiMDhmZDk2ZjI4Y2M4YjJjNWIxYWZiMmRkZjBmMjY0MjVmMzc3OWFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA4OjEyOjU5IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNy8xMl0gZ3JlcDogdXNlIFBDUkUyX0VYVFJBX01BVENIX0xJTkUKCiogc3JjL3BjcmVz ZWFyY2guYyAoUGNvbXBpbGUpOiBJZiBhdmFpbGFibGUsIHVzZQpQQ1JFMl9FWFRSQV9NQVRD SF9MSU5FIGluc3RlYWQgb2YgZG9pbmcgaXQgYnkgaGFuZC4KU2ltcGxpZnkgY29uc3RydWN0 aW9uIG9mIHN1YnN0aXR1dGUgcmVndWxhciBleHByZXNzaW9uLgotLS0KIHNyYy9wY3Jlc2Vh cmNoLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwpp bmRleCBmZGVjYmU4Li42ZTFmMjE3IDEwMDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisr KyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTEyMiwxNiArMTIyLDggQEAgUGNvbXBpbGUgKGNo YXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29sIGV4 YWN0KQogewogICBQQ1JFMl9TSVpFIGU7CiAgIGludCBlYzsKLSAgc3RhdGljIGNoYXIgY29u c3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86IjsKLSAgc3RhdGljIGNoYXIgY29uc3Qgd3N1 ZmZpeFtdID0gIikoPyFcXHcpIjsKLSAgc3RhdGljIGNoYXIgY29uc3QgeHByZWZpeFtdID0g Il4oPzoiOwotICBzdGF0aWMgY2hhciBjb25zdCB4c3VmZml4W10gPSAiKSQiOwotICBpbnQg Zml4X2xlbl9tYXggPSBNQVggKHNpemVvZiB3cHJlZml4IC0gMSArIHNpemVvZiB3c3VmZml4 IC0gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgeHByZWZpeCAtIDEgKyBz aXplb2YgeHN1ZmZpeCAtIDEpOwotICB1bnNpZ25lZCBjaGFyICpyZSA9IHhtYWxsb2MgKHNp emUgKyBmaXhfbGVuX21heCArIDEpOwogICBpbnQgZmxhZ3MgPSBQQ1JFMl9ET0xMQVJfRU5E T05MWSB8IChtYXRjaF9pY2FzZSA/IFBDUkUyX0NBU0VMRVNTIDogMCk7CiAgIGNoYXIgKnBh dGxpbSA9IHBhdHRlcm4gKyBzaXplOwotICBjaGFyICpuID0gKGNoYXIgKilyZTsKICAgc3Ry dWN0IHBjcmVfY29tcCAqcGMgPSB4Y2FsbG9jICgxLCBzaXplb2YgKCpwYykpOwogICBwY3Jl Ml9jb21waWxlX2NvbnRleHQgKmNjb250ZXh0ID0gcGNyZTJfY29tcGlsZV9jb250ZXh0X2Ny ZWF0ZSAoTlVMTCk7CiAKQEAgLTE1NCwyNyArMTQ2LDQxIEBAIFBjb21waWxlIChjaGFyICpw YXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFjdCkK ICAgaWYgKHJhd21lbWNociAocGF0dGVybiwgJ1xuJykgIT0gcGF0bGltKQogICAgIGRpZSAo RVhJVF9UUk9VQkxFLCAwLCBfKCJ0aGUgLVAgb3B0aW9uIG9ubHkgc3VwcG9ydHMgYSBzaW5n bGUgcGF0dGVybiIpKTsKIAotICAqbiA9ICdcMCc7Ci0gIGlmIChtYXRjaF93b3JkcykKLSAg ICBzdHJjcHkgKG4sIHdwcmVmaXgpOworICB2b2lkICpyZV9zdG9yYWdlID0gTlVMTDsKICAg aWYgKG1hdGNoX2xpbmVzKQotICAgIHN0cmNweSAobiwgeHByZWZpeCk7Ci0gIG4gKz0gc3Ry bGVuIChuKTsKLSAgbWVtY3B5IChuLCBwYXR0ZXJuLCBzaXplKTsKLSAgbiArPSBzaXplOwot ICBpZiAobWF0Y2hfd29yZHMgJiYgIW1hdGNoX2xpbmVzKQogICAgIHsKLSAgICAgIHN0cmNw eSAobiwgd3N1ZmZpeCk7Ci0gICAgICBuICs9IHN0cmxlbiAod3N1ZmZpeCk7CisjaWZkZWYg UENSRTJfRVhUUkFfTUFUQ0hfTElORQorICAgICAgcGNyZTJfc2V0X2NvbXBpbGVfZXh0cmFf b3B0aW9ucyAoY2NvbnRleHQsIFBDUkUyX0VYVFJBX01BVENIX0xJTkUpOworI2Vsc2UKKyAg ICAgIHN0YXRpYyBjaGFyIGNvbnN0IC8qIFRoZXNlIHNpemVzIG9taXQgdHJhaWxpbmcgTlVM LiAgKi8KKyAgICAgICAgeHByZWZpeFs0XSA9ICJeKD86IiwgeHN1ZmZpeFsyXSA9ICIpJCI7 CisgICAgICBpZHhfdCByZV9zaXplID0gc2l6ZSArIHNpemVvZiB4cHJlZml4ICsgc2l6ZW9m IHhzdWZmaXg7CisgICAgICBjaGFyICpyZSA9IHJlX3N0b3JhZ2UgPSB4aW1hbGxvYyAocmVf c2l6ZSk7CisgICAgICBjaGFyICpyZXogPSBtZW1wY3B5IChyZSwgeHByZWZpeCwgc2l6ZW9m IHhwcmVmaXgpOworICAgICAgcmV6ID0gbWVtcGNweSAocmV6LCBwYXR0ZXJuLCBzaXplKTsK KyAgICAgIG1lbWNweSAocmV6LCB4c3VmZml4LCBzaXplb2YgeHN1ZmZpeCk7CisgICAgICBw YXR0ZXJuID0gcmU7CisgICAgICBzaXplID0gcmVfc2l6ZTsKKyNlbmRpZgogICAgIH0KLSAg aWYgKG1hdGNoX2xpbmVzKQorICBlbHNlIGlmIChtYXRjaF93b3JkcykKICAgICB7Ci0gICAg ICBzdHJjcHkgKG4sIHhzdWZmaXgpOwotICAgICAgbiArPSBzdHJsZW4gKHhzdWZmaXgpOwor ICAgICAgLyogUENSRTJfRVhUUkFfTUFUQ0hfV09SRCBpcyBpbmNvbXBhdGlibGUgd2l0aCBn cmVwIC13OworICAgICAgICAgZG8gdGhpbmdzIHRoZSBncmVwIHdheS4gICovCisgICAgICBz dGF0aWMgY2hhciBjb25zdCAvKiBUaGVzZSBzaXplcyBvbWl0IHRyYWlsaW5nIE5VTC4gICov CisgICAgICAgIHdwcmVmaXhbMTBdID0gIig/PCFcXHcpKD86Iiwgd3N1ZmZpeFs3XSA9ICIp KD8hXFx3KSI7CisgICAgICBpZHhfdCByZV9zaXplID0gc2l6ZSArIHNpemVvZiB3cHJlZml4 ICsgc2l6ZW9mIHdzdWZmaXg7CisgICAgICBjaGFyICpyZSA9IHJlX3N0b3JhZ2UgPSB4aW1h bGxvYyAocmVfc2l6ZSk7CisgICAgICBjaGFyICpyZXogPSBtZW1wY3B5IChyZSwgd3ByZWZp eCwgc2l6ZW9mIHdwcmVmaXgpOworICAgICAgcmV6ID0gbWVtcGNweSAocmV6LCBwYXR0ZXJu LCBzaXplKTsKKyAgICAgIG1lbWNweSAocmV6LCB3c3VmZml4LCBzaXplb2Ygd3N1ZmZpeCk7 CisgICAgICBwYXR0ZXJuID0gcmU7CisgICAgICBzaXplID0gcmVfc2l6ZTsKICAgICB9CiAK ICAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtldGFi bGVzIChOVUxMKSk7Ci0gIHBjLT5jcmUgPSBwY3JlMl9jb21waWxlIChyZSwgbiAtIChjaGFy ICopcmUsIGZsYWdzLCAmZWMsICZlLCBjY29udGV4dCk7CisgIHBjLT5jcmUgPSBwY3JlMl9j b21waWxlICgoUENSRTJfU1BUUikgcGF0dGVybiwgc2l6ZSwgZmxhZ3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZWMsICZlLCBjY29udGV4dCk7CiAgIGlmICghcGMtPmNyZSkK ICAgICB7CiAgICAgICBlbnVtIHsgRVJSQlVGU0laID0gMjU2IH07IC8qIFRha2VuIGZyb20g cGNyZTJncmVwLmMgRVJSQlVGU0laLiAgKi8KQEAgLTE4Myw2ICsxODksOCBAQCBQY29tcGls ZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJv b2wgZXhhY3QpCiAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXApOwogICAg IH0KIAorICBmcmVlIChyZV9zdG9yYWdlKTsKKwogICBwYy0+ZGF0YSA9IHBjcmUyX21hdGNo X2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMtPmNyZSwgTlVMTCk7CiAKICAgZWMgPSBw Y3JlMl9qaXRfY29tcGlsZSAocGMtPmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKQEAgLTE5 NCw4ICsyMDIsNiBAQCBQY29tcGlsZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVn X3N5bnRheF90IGlnbm9yZWQsIGJvb2wgZXhhY3QpCiAgICAgICBwYy0+aml0X3N0YWNrX3Np emUgPSAzMiA8PCAxMDsKICAgICB9CiAKLSAgZnJlZSAocmUpOwotCiAgIHBjLT5lbXB0eV9t YXRjaFtmYWxzZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCBQQ1JFMl9OT1RCT0wpOwog ICBwYy0+ZW1wdHlfbWF0Y2hbdHJ1ZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCAwKTsK IAotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0008-grep-simplify-JIT-setup.patch" Content-Disposition: attachment; filename="0008-grep-simplify-JIT-setup.patch" Content-Transfer-Encoding: base64 RnJvbSBjMTFlYTQ1MmIwYmE0OGE0NzkyNmQ4NDRlMWVlN2QwNmE2NGUyMzU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA4OjE4OjQyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOC8xMl0gZ3JlcDogc2ltcGxpZnkgSklUIHNldHVwCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgoqIHNyYy9wY3Jlc2VhcmNoLmMgKFBjb21waWxlKTogU2ltcGxp Znkgc2luY2Ug4oCYZGll4oCZIGNhbm5vdCByZXR1cm4uCi0tLQogc3JjL3BjcmVzZWFyY2gu YyB8IDggKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2Vh cmNoLmMKaW5kZXggNmUxZjIxNy4uOTg5OGUwNCAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFy Y2guYworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0xOTYsMTEgKzE5Niw5IEBAIFBjb21w aWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwg Ym9vbCBleGFjdCkKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMtPmNyZSwgUENSRTJf SklUX0NPTVBMRVRFKTsKICAgaWYgKGVjICYmIGVjICE9IFBDUkUyX0VSUk9SX0pJVF9CQURP UFRJT04gJiYgZWMgIT0gUENSRTJfRVJST1JfTk9NRU1PUlkpCiAgICAgZGllIChFWElUX1RS T1VCTEUsIDAsIF8oIkpJVCBpbnRlcm5hbCBlcnJvcjogJWQiKSwgZWMpOwotICBlbHNlCi0g ICAgewotICAgICAgLyogVGhlIFBDUkUgZG9jdW1lbnRhdGlvbiBzYXlzIHRoYXQgYSAzMiBL aUIgc3RhY2sgaXMgdGhlIGRlZmF1bHQuICAqLwotICAgICAgcGMtPmppdF9zdGFja19zaXpl ID0gMzIgPDwgMTA7Ci0gICAgfQorCisgIC8qIFRoZSBQQ1JFIGRvY3VtZW50YXRpb24gc2F5 cyB0aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZhdWx0LiAgKi8KKyAgcGMtPmppdF9z dGFja19zaXplID0gMzIgPDwgMTA7CiAKICAgcGMtPmVtcHR5X21hdGNoW2ZhbHNlXSA9IGpp dF9leGVjIChwYywgIiIsIDAsIDAsIFBDUkUyX05PVEJPTCk7CiAgIHBjLT5lbXB0eV9tYXRj aFt0cnVlXSA9IGppdF9leGVjIChwYywgIiIsIDAsIDAsIDApOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0009-grep-improve-memory-exhaustion-checking-with-P.patch" Content-Disposition: attachment; filename*0="0009-grep-improve-memory-exhaustion-checking-with-P.patch" Content-Transfer-Encoding: base64 RnJvbSAzZTdkZTFiNDVjN2U2ZGZhMmQ5MjMxNDJiYzQwZWUxZmJhNTg5YTI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA5OjM0OjE1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOS8xMl0gZ3JlcDogaW1wcm92ZSBtZW1vcnkgZXhoYXVzdGlvbiBjaGVja2luZyB3aXRo IC1QCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoqIHNyYy9wY3Jlc2Vh cmNoLmMgKHN0cnVjdCBwY3JlX2NvbXApOiBOZXcgbWVtYmVyIGdjb250ZXh0LgoocHJpdmF0 ZV9tYWxsb2MsIHByaXZhdGVfZnJlZSk6IE5ldyBmdW5jdGlvbnMuCihqaXRfZXhlYyk6IEl0 IGlzIE9LIHRvIGNhbGwgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKE5VTEwpLCBzbyBzaW1wbGlm eS4KVXNlIGdjb250ZXh0IGZvciBhbGxvY2F0aW9uLiAgQ2hlY2sgZm9yIHBjcmUyX2ppdF9z dGFja19jcmVhdGUKZmFpbHVyZSwgc2luY2Ugc2xqaXQgYnlwYXNzZXMgcHJpdmF0ZV9tYWxs b2MuICBSZWRvIHRvIGF2b2lkIHR3bwrigJhjb250aW51ZeKAmXMuCihQY29tcGlsZSk6IENy ZWF0ZSBhbmQgdXNlIGdjb250ZXh0LgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA1MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCA5ODk4ZTA0Li5h OTk4MzVlIDEwMDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2Vh cmNoLmMKQEAgLTMyLDYgKzMyLDkgQEAKIAogc3RydWN0IHBjcmVfY29tcAogeworICAvKiBH ZW5lcmFsIGNvbnRleHQgZm9yIFBDUkUgb3BlcmF0aW9ucy4gICovCisgIHBjcmUyX2dlbmVy YWxfY29udGV4dCAqZ2NvbnRleHQ7CisKICAgLyogQ29tcGlsZWQgaW50ZXJuYWwgZm9ybSBv ZiBhIFBlcmwgcmVndWxhciBleHByZXNzaW9uLiAgKi8KICAgcGNyZTJfY29kZSAqY3JlOwog CkBAIC00OCw2ICs1MSwxOSBAQCBzdHJ1Y3QgcGNyZV9jb21wCiAgIGludCBlbXB0eV9tYXRj aFsyXTsKIH07CiAKKy8qIE1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBmb3IgUENSRS4g ICovCitzdGF0aWMgdm9pZCAqCitwcml2YXRlX21hbGxvYyAoUENSRTJfU0laRSBzaXplLCBf R0xfVU5VU0VEIHZvaWQgKnVudXNlZCkKK3sKKyAgaWYgKElEWF9NQVggPCBzaXplKQorICAg IHhhbGxvY19kaWUgKCk7CisgIHJldHVybiB4aW1hbGxvYyAoc2l6ZSk7Cit9CitzdGF0aWMg dm9pZAorcHJpdmF0ZV9mcmVlICh2b2lkICpwdHIsIF9HTF9VTlVTRUQgdm9pZCAqdW51c2Vk KQoreworICBmcmVlIChwdHIpOworfQogCiAvKiBNYXRjaCB0aGUgYWxyZWFkeS1jb21waWxl ZCBQQ1JFIHBhdHRlcm4gYWdhaW5zdCB0aGUgZGF0YSBpbiBTVUJKRUNULAogICAgb2Ygc2l6 ZSBTRUFSQ0hfQllURVMgYW5kIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IFNFQVJDSF9PRkZTRVQs IHdpdGgKQEAgLTcyLDMzICs4OCwyNyBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAq cGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIGlkeF90IHNlYXJjaF9ieXRlcywKICAgICAgICAg ewogICAgICAgICAgIGlkeF90IG9sZF9zaXplID0gcGMtPmppdF9zdGFja19zaXplOwogICAg ICAgICAgIGlkeF90IG5ld19zaXplID0gcGMtPmppdF9zdGFja19zaXplID0gb2xkX3NpemUg KiAyOwotCi0gICAgICAgICAgaWYgKHBjLT5qaXRfc3RhY2spCi0gICAgICAgICAgICBwY3Jl Ml9qaXRfc3RhY2tfZnJlZSAocGMtPmppdF9zdGFjayk7Ci0gICAgICAgICAgcGMtPmppdF9z dGFjayA9IHBjcmUyX2ppdF9zdGFja19jcmVhdGUgKG9sZF9zaXplLCBuZXdfc2l6ZSwgTlVM TCk7Ci0KKyAgICAgICAgICBwY3JlMl9qaXRfc3RhY2tfZnJlZSAocGMtPmppdF9zdGFjayk7 CisgICAgICAgICAgcGMtPmppdF9zdGFjayA9IHBjcmUyX2ppdF9zdGFja19jcmVhdGUgKG9s ZF9zaXplLCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGMtPmdjb250ZXh0KTsKKyAgICAgICAgICBpZiAoIXBjLT5qaXRf c3RhY2spCisgICAgICAgICAgICB4YWxsb2NfZGllICgpOwogICAgICAgICAgIGlmICghcGMt Pm1jb250ZXh0KQotICAgICAgICAgICAgcGMtPm1jb250ZXh0ID0gcGNyZTJfbWF0Y2hfY29u dGV4dF9jcmVhdGUgKE5VTEwpOwotCi0gICAgICAgICAgaWYgKCFwYy0+aml0X3N0YWNrIHx8 ICFwYy0+bWNvbnRleHQpCi0gICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwKLSAg ICAgICAgICAgICAgICAgXygiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIFBD UkUgSklUIHN0YWNrIikpOworICAgICAgICAgICAgcGMtPm1jb250ZXh0ID0gcGNyZTJfbWF0 Y2hfY29udGV4dF9jcmVhdGUgKHBjLT5nY29udGV4dCk7CiAgICAgICAgICAgcGNyZTJfaml0 X3N0YWNrX2Fzc2lnbiAocGMtPm1jb250ZXh0LCBOVUxMLCBwYy0+aml0X3N0YWNrKTsKLSAg ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgaWYgKGUgPT0gUENSRTJfRVJS T1JfREVQVEhMSU1JVCkKKyAgICAgIGVsc2UgaWYgKGUgPT0gUENSRTJfRVJST1JfREVQVEhM SU1JVCkKICAgICAgICAgewogICAgICAgICAgIHVpbnQzMl90IGxpbTsKICAgICAgICAgICBw Y3JlMl9jb25maWcgKFBDUkUyX0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKICAgICAgICAg ICBpZiAoSU5UX01VTFRJUExZX1dSQVBWIChsaW0sIDIsICZsaW0pKQogICAgICAgICAgICAg cmV0dXJuIGU7CiAgICAgICAgICAgaWYgKCFwYy0+bWNvbnRleHQpCi0gICAgICAgICAgICBw Yy0+bWNvbnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7Ci0KKyAg ICAgICAgICAgIHBjLT5tY29udGV4dCA9IHBjcmUyX21hdGNoX2NvbnRleHRfY3JlYXRlIChw Yy0+Z2NvbnRleHQpOwogICAgICAgICAgIHBjcmUyX3NldF9kZXB0aF9saW1pdCAocGMtPm1j b250ZXh0LCBsaW0pOwotICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICBy ZXR1cm4gZTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGU7CiAgICAgfQogfQogCkBA IC0xMjUsNyArMTM1LDkgQEAgUGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUs IHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29sIGV4YWN0KQogICBpbnQgZmxhZ3MgPSBQQ1JF Ml9ET0xMQVJfRU5ET05MWSB8IChtYXRjaF9pY2FzZSA/IFBDUkUyX0NBU0VMRVNTIDogMCk7 CiAgIGNoYXIgKnBhdGxpbSA9IHBhdHRlcm4gKyBzaXplOwogICBzdHJ1Y3QgcGNyZV9jb21w ICpwYyA9IHhjYWxsb2MgKDEsIHNpemVvZiAoKnBjKSk7Ci0gIHBjcmUyX2NvbXBpbGVfY29u dGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRlIChOVUxMKTsK KyAgcGNyZTJfZ2VuZXJhbF9jb250ZXh0ICpnY29udGV4dCA9IHBjLT5nY29udGV4dAorICAg ID0gcGNyZTJfZ2VuZXJhbF9jb250ZXh0X2NyZWF0ZSAocHJpdmF0ZV9tYWxsb2MsIHByaXZh dGVfZnJlZSwgTlVMTCk7CisgIHBjcmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBw Y3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRlIChnY29udGV4dCk7CiAKICAgaWYgKGxvY2Fs ZWluZm8ubXVsdGlieXRlKQogICAgIHsKQEAgLTE3OCw3ICsxOTAsNyBAQCBQY29tcGlsZSAo Y2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wg ZXhhY3QpCiAgICAgICBzaXplID0gcmVfc2l6ZTsKICAgICB9CiAKLSAgcGNyZTJfc2V0X2No YXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtldGFibGVzIChOVUxMKSk7Cisg IHBjcmUyX3NldF9jaGFyYWN0ZXJfdGFibGVzIChjY29udGV4dCwgcGNyZTJfbWFrZXRhYmxl cyAoZ2NvbnRleHQpKTsKICAgcGMtPmNyZSA9IHBjcmUyX2NvbXBpbGUgKChQQ1JFMl9TUFRS KSBwYXR0ZXJuLCBzaXplLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZl YywgJmUsIGNjb250ZXh0KTsKICAgaWYgKCFwYy0+Y3JlKQpAQCAtMTkxLDcgKzIwMyw3IEBA IFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdu b3JlZCwgYm9vbCBleGFjdCkKIAogICBmcmVlIChyZV9zdG9yYWdlKTsKIAotICBwYy0+ZGF0 YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMtPmNyZSwgTlVM TCk7CisgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9wYXR0ZXJu IChwYy0+Y3JlLCBnY29udGV4dCk7CiAKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMt PmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKICAgaWYgKGVjICYmIGVjICE9IFBDUkUyX0VS Uk9SX0pJVF9CQURPUFRJT04gJiYgZWMgIT0gUENSRTJfRVJST1JfTk9NRU1PUlkpCi0tIAoy LjMyLjAKCg== --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0010-grep-use-ximalloc-not-xcalloc.patch" Content-Disposition: attachment; filename="0010-grep-use-ximalloc-not-xcalloc.patch" Content-Transfer-Encoding: base64 RnJvbSA4NGE1ZDM1OTgxNWE2ZjBkMjA4ZWM4Y2ViYTFjY2Y4MTA0NzQ5NjM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA5OjM5OjA1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMC8xMl0gZ3JlcDogdXNlIHhpbWFsbG9jLCBub3QgeGNhbGxvYwoKKiBzcmMvcGNyZXNl YXJjaC5jIChQY29tcGlsZSk6IFVzZSB4aW1hbGxvYywgbm90IHhjYWxsb2MsCmFuZCBleHBs aWNpdGx5IGluaXRpYWxpemUgdGhlIHR3byBzbG90cyB0aGF0IHNob3VsZCBiZSBudWxsLgpU aGlzIGlzIG1vcmUgbGlrZWx5IHRvIGNhdGNoIGZ1dHVyZSBlcnJvcnMgaWYgd2UgdXNlIHZh bGdyaW5kLgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNy ZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCBhOTk4MzVlLi5kZWEzOWYwIDEw MDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAg LTEzNCw3ICsxMzQsNyBAQCBQY29tcGlsZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwg cmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wgZXhhY3QpCiAgIGludCBlYzsKICAgaW50IGZs YWdzID0gUENSRTJfRE9MTEFSX0VORE9OTFkgfCAobWF0Y2hfaWNhc2UgPyBQQ1JFMl9DQVNF TEVTUyA6IDApOwogICBjaGFyICpwYXRsaW0gPSBwYXR0ZXJuICsgc2l6ZTsKLSAgc3RydWN0 IHBjcmVfY29tcCAqcGMgPSB4Y2FsbG9jICgxLCBzaXplb2YgKCpwYykpOworICBzdHJ1Y3Qg cGNyZV9jb21wICpwYyA9IHhpbWFsbG9jIChzaXplb2YgKnBjKTsKICAgcGNyZTJfZ2VuZXJh bF9jb250ZXh0ICpnY29udGV4dCA9IHBjLT5nY29udGV4dAogICAgID0gcGNyZTJfZ2VuZXJh bF9jb250ZXh0X2NyZWF0ZSAocHJpdmF0ZV9tYWxsb2MsIHByaXZhdGVfZnJlZSwgTlVMTCk7 CiAgIHBjcmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2Nv bnRleHRfY3JlYXRlIChnY29udGV4dCk7CkBAIC0yMDMsNiArMjAzLDcgQEAgUGNvbXBpbGUg KGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29s IGV4YWN0KQogCiAgIGZyZWUgKHJlX3N0b3JhZ2UpOwogCisgIHBjLT5tY29udGV4dCA9IE5V TEw7CiAgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9wYXR0ZXJu IChwYy0+Y3JlLCBnY29udGV4dCk7CiAKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMt PmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKQEAgLTIxMCw2ICsyMTEsNyBAQCBQY29tcGls ZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJv b2wgZXhhY3QpCiAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIkpJVCBpbnRlcm5hbCBl cnJvcjogJWQiKSwgZWMpOwogCiAgIC8qIFRoZSBQQ1JFIGRvY3VtZW50YXRpb24gc2F5cyB0 aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZhdWx0LiAgKi8KKyAgcGMtPmppdF9zdGFj ayA9IE5VTEw7CiAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOwogCiAgIHBjLT5l bXB0eV9tYXRjaFtmYWxzZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCBQQ1JFMl9OT1RC T0wpOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0011-grep-fix-minor-P-memory-leak.patch" Content-Disposition: attachment; filename="0011-grep-fix-minor-P-memory-leak.patch" Content-Transfer-Encoding: base64 RnJvbSAyZWJkZWJmYzg0M2VhNDNmOTNlZjFhNzI5Y2Q4ZmY3ZDc5YWUzMzA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDEwOjU0OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMS8xMl0gZ3JlcDogZml4IG1pbm9yIC1QIG1lbW9yeSBsZWFrCgoqIHNyYy9wY3Jlc2Vh cmNoLmMgKFBjb21waWxlKTogRnJlZSBjY29udGV4dCB3aGVuIG5vIGxvbmdlciBuZWVkZWQu Ci0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2VhcmNo LmMKaW5kZXggZGVhMzlmMC4uZWY4MjE1ZiAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFyY2gu YworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0yMDIsNiArMjAyLDcgQEAgUGNvbXBpbGUg KGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29s IGV4YWN0KQogICAgIH0KIAogICBmcmVlIChyZV9zdG9yYWdlKTsKKyAgcGNyZTJfY29tcGls ZV9jb250ZXh0X2ZyZWUgKGNjb250ZXh0KTsKIAogICBwYy0+bWNvbnRleHQgPSBOVUxMOwog ICBwYy0+ZGF0YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMt PmNyZSwgZ2NvbnRleHQpOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0012-grep-port-to-PCRE2-10.20.patch" Content-Disposition: attachment; filename="0012-grep-port-to-PCRE2-10.20.patch" Content-Transfer-Encoding: base64 RnJvbSBhYWFmZTNkZTlkMGVjMDBmOTdhN2RiOGVhZjdkZGZlNzMxMmU5ZjVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDExOjMwOjIxIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMi8xMl0gZ3JlcDogcG9ydCB0byBQQ1JFMiAxMC4yMAoKKiBzcmMvcGNyZXNlYXJjaC5j IChQQ1JFMl9TSVpFX01BWCk6IERlZmF1bHQgdG8gU0laRV9NQVguCi0tLQogc3JjL3BjcmVz ZWFyY2guYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVz ZWFyY2guYwppbmRleCBlZjgyMTVmLi5jMTJjNjc0IDEwMDY0NAotLS0gYS9zcmMvcGNyZXNl YXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTIzLDcgKzIzLDEwIEBACiAjZGVm aW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4CiAjaW5jbHVkZSA8cGNyZTIuaD4KIAotLyog Rm9yIFBDUkUyIDwgMTAuMzAuICAqLworLyogRm9yIG9sZGVyIFBDUkUyLiAgKi8KKyNpZm5k ZWYgUENSRTJfU0laRV9NQVgKKyMgZGVmaW5lIFBDUkUyX1NJWkVfTUFYIFNJWkVfTUFYCisj ZW5kaWYKICNpZm5kZWYgUENSRTJfQ09ORklHX0RFUFRITElNSVQKICMgZGVmaW5lIFBDUkUy X0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05MSU1JVAogIyBkZWZp bmUgUENSRTJfRVJST1JfREVQVEhMSU1JVCBQQ1JFMl9FUlJPUl9SRUNVUlNJT05MSU1JVAot LSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv-- ------------=_1636922762-29115-3 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 11 Jan 2016 08:25:44 +0000 Received: from localhost ([127.0.0.1]:45957 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aIXnL-0007QY-Nk for submit@debbugs.gnu.org; Mon, 11 Jan 2016 03:25:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:56156) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aIXnK-0007QH-Bx for submit@debbugs.gnu.org; Mon, 11 Jan 2016 03:25:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aIXnE-00056c-DP for submit@debbugs.gnu.org; Mon, 11 Jan 2016 03:25:37 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_05,BODY_URI_ONLY, FREEMAIL_FROM,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:32833) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIXnE-00056F-AR for submit@debbugs.gnu.org; Mon, 11 Jan 2016 03:25:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIXnD-00050g-JY for bug-grep@gnu.org; Mon, 11 Jan 2016 03:25:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aIXnC-000548-Mc for bug-grep@gnu.org; Mon, 11 Jan 2016 03:25:35 -0500 Received: from mail-ig0-x234.google.com ([2607:f8b0:4001:c05::234]:37145) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aIXnC-00053v-Fb for bug-grep@gnu.org; Mon, 11 Jan 2016 03:25:34 -0500 Received: by mail-ig0-x234.google.com with SMTP id h5so66832824igh.0 for ; Mon, 11 Jan 2016 00:25:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=FHMTX8cqqpZSs7jv8KGIA1luz2u+V6dCJzkXgWP754c=; b=ZGWM2hdykj1RgjyfvNvte0J2t4+PQj9xhhEJRy/T8bZIVKjwH9yqRM4apUE0SJbZdu 3SP/LmWSJ4sRvgGK1ByGNR+A2O5M1NELZruAvBzjXJBXR9mAFn36xPglhi6MZBmf6TvR J4QH0K/RRXMhPau4dAFGbD4PkjG6dgiKfUb1bdGddzH27SRLo01q6/BvuP8ieyPivagd pm6evJaNrVMTJokTJ9Kihl2bP/7fxiwIsIp/Rl6fWRNw/vfUBU5UjmaQW+EWOFGTg/ps LK9hain0VrbKROmhoHX7AIfs+dOsfNUxhcTBxciK70605XIXT96Kw0ENnTTIm1P1c1j9 iufA== X-Received: by 10.50.117.33 with SMTP id kb1mr11119795igb.89.1452500733757; Mon, 11 Jan 2016 00:25:33 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.10.18 with HTTP; Mon, 11 Jan 2016 00:25:14 -0800 (PST) From: Jim Meyering Date: Mon, 11 Jan 2016 16:25:14 +0800 X-Google-Sender-Auth: iC2YIpxDnxJqJ6pR4mIoJcRNxJQ Message-ID: Subject: consider upgrade to PCRE2 To: bug-grep@gnu.org Content-Type: text/plain; charset=UTF-8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.4 (---) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) This report of heap overrun in libpcre, https://bugs.exim.org/show_bug.cgi?id=1767 makes me more inclined to upgrade grep to use PCRE2, but not before the grep-2.23 release. ------------=_1636922762-29115-3-- From unknown Thu Jun 19 14:18:24 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: noloader@gmail.com Subject: bug#40395: closed (Re: bug#47264: [PATCH v2] pcre: migrate to pcre2) Message-ID: References: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> X-Gnu-PR-Message: they-closed 40395 X-Gnu-PR-Package: grep Reply-To: 40395@debbugs.gnu.org Date: Sun, 14 Nov 2021 20:46:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1636922763-29115-5" This is a multi-part message in MIME format... ------------=_1636922763-29115-5 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #47264: Building Grep with PCRE support which was filed against the grep package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 40395@debbugs.gnu.org. --=20 47264: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D47264 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1636922763-29115-5 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 20:45:48 +0000 Received: from localhost ([127.0.0.1]:51841 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmMNm-0007Z6-3b for submit@debbugs.gnu.org; Sun, 14 Nov 2021 15:45:48 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmMNi-0007Ym-BL for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 15:45:45 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E6CC41600EA; Sun, 14 Nov 2021 12:45:35 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id DkLbXg-qnKez; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9BC2B1600EF; Sun, 14 Nov 2021 12:45:31 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fVoFUqMjeuGC; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 39C391600EA; Sun, 14 Nov 2021 12:45:31 -0800 (PST) Content-Type: multipart/mixed; boundary="------------yDuj0IMPzT9IVrxNTum0F2Lv" Message-ID: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> Date: Sun, 14 Nov 2021 12:45:29 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US To: =?UTF-8?Q?Carlo_Marcelo_Arenas_Bel=c3=b3n?= References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#47264: [PATCH v2] pcre: migrate to pcre2 In-Reply-To: X-Spam-Score: -2.4 (--) X-Debbugs-Envelope-To: 47264-done Cc: Jaroslav Skarvada , 47264-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) This is a multi-part message in MIME format. --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 11/9/21 02:58, Carlo Marcelo Arenas Bel=C3=B3n wrote: > Sadly, hadn't been able to generate a release, Does this mean you're having trouble running 'make dist'? If so, what's=20 the trouble? > it seems to be ready for some broader testing, specially if the > attached patch is applied on top of a 10.37 release (tested that way > in OpenBSD i386) OK, thanks, I installed it into the Savannah master copy of GNU grep,=20 except that I didn't rename m4/pcre.m4 to m4/pcre2.m4, or rename the=20 macros to use PCRE2. This made the change easier to audit. Revised patch=20 0001 attached. Also, I followed up with several related patches (also attached as=20 0002-0012). Please take a look at them and let us know of any problems.=20 In the attached patch "grep: prefer signed integers" I followed the=20 usual grep approach of preferring signed to unsigned integers (e.g.,=20 idx_t to size_t) when either will do; this lets us debug better with=20 -fsanitize=3Dundefined to catch integer overflow. One issue I discovered: PCRE2_EXTRA_MATCH_WORD (which is used by=20 pcre2grep -w) is incompatible with 'grep -w'. For example, 'echo a%%a |=20 grep -Pw %%' outputs nothing, whereas 'echo a%%a | pcre2grep -w %%'=20 outputs 'a%%a'. I think the GNU grep behavior (which is the same as with=20 'grep -w', either on Linux or OpenBSD) is more intuitive here: do you=20 happen to know why PCRE behaves the way it does? Is that worth a PCRE2=20 bug report? Anyway, the attached patches avoid using=20 PCRE2_EXTRA_MATCH_WORD for that reason. > * no more version restrictions (should work with >~10.20) I tested with 10.00 and found one more glitch (it doesn't have=20 PCRE2_SIZE_MAX), which is fixed by the attached patch "grep: port to=20 PCRE2 10.20". > Pending: > * what to do with the current support of \C (enabled for now) Let's open another bug report for that; I'm still a bit fuzzy about what=20 the pros and cons are. > * merge of non critical bugfix in #51710[1] I plan to follow up in that bug report. Marking this bug as done. Thanks again for working on this. --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0001-grep-migrate-to-pcre2.patch" Content-Disposition: attachment; filename="0001-grep-migrate-to-pcre2.patch" Content-Transfer-Encoding: base64 RnJvbSAzYmYzZjgxMjE4M2FiYWRmMjkzMWUwMjYwNjNmN2MyMGIyZjRjZTU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2FybG89MjBNYXJjZWxvPTIwQXJl bmFzPTIwQmVsPUMzPUIzbj89IDxjYXJlbmFzQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxMiBO b3YgMjAyMSAxNjo0NTowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTJdIGdyZXA6IG1p Z3JhdGUgdG8gcGNyZTIKCk1vc3RseSBhIGJ1ZyBieSBidWcgdHJhbnNsYXRpb24gb2YgdGhl IG9yaWdpbmFsIGNvZGUgdG8gdGhlIFBDUkUyIEFQSS4KQ29kZSBzdGlsbCBjb3VsZCBkbyB3 aXRoIHNvbWUgb3B0aW1pemF0aW9ucyBidXQgc2hvdWxkIGJlIGdvb2QgYXMgYQpzdGFydGlu ZyBwb2ludC4KClRoZSBBUEkgY2hhbmdlcyB0aGUgc2lnbiBvZiBzb21lIHR5cGVzIGFuZCB0 aGVyZWZvcmUgc29tZSB1Z2x5IGNhc3RzCndlcmUgbmVlZGVkLCBzb21lIG9mIHRoZSBjaGFu Z2VzIGFyZSBqdXN0IHRvIG1ha2Ugc3VyZSBhbGwgdmFyaWFibGVzCmZpdCBpbnRvIHRoZSBu ZXdlciB0eXBlcyBiZXR0ZXIuCgpJbmNsdWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFu ZCBjb3VsZCBiZSBtYWRlIHRvIGJ1aWxkIGFsbCB0aGUgd2F5CnRvIDEwLjAwLCBidXQgYXNz dW1lcyBhIHJlY2VudCBlbm91Z2ggdmVyc2lvbiBhbmQgaGFzIGJlZW4gdGVzdGVkIHdpdGgK MTAuMjMgKGZyb20gQ2VudE9TIDcsIHRoZSBvbGRlc3QpLgoKUGVyZm9ybWFuY2Ugc2VlbXMg ZXF1aXZhbGVudCwgYW5kIGl0IGFsc28gc2VlbXMgZnVuY3Rpb25hbGx5IGNvbXBsZXRlLgoK KiBtNC9wY3JlLm00IChnbF9GVU5DX1BDUkUpOiBDaGVjayBmb3IgUENSRTIsIG5vdCB0aGUg b3JpZ2luYWwgUENSRS4KKiBzcmMvcGNyZXNlYXJjaC5jIChzdHJ1Y3QgcGNyZV9jb21wLCBq aXRfZXhlYykKKFBjb21waWxlLCBQZXhlY3V0ZSk6ClVzZSBQQ1JFMiwgbm90IHRoZSBvcmln aW5hbCBQQ1JFLgoqIHRlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbDogQWRqdXN0IHRvIG1hdGNo IFBDUkUyIGRpYWdub3N0aWNzLgotLS0KIGRvYy9ncmVwLmluLjEgICAgICAgICAgICB8ICAg OCArLQogZG9jL2dyZXAudGV4aSAgICAgICAgICAgIHwgICAyICstCiBtNC9wY3JlLm00ICAg ICAgICAgICAgICAgfCAgMjEgKystLQogc3JjL3BjcmVzZWFyY2guYyAgICAgICAgIHwgMjQ5 ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvZmlsZW5h bWUtbGluZW5vLnBsIHwgICA0ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z KCspLCAxNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2dyZXAuaW4uMSBiL2Rv Yy9ncmVwLmluLjEKaW5kZXggYjAxNGY2NS4uMjA4Y2I3NiAxMDA2NDQKLS0tIGEvZG9jL2dy ZXAuaW4uMQorKysgYi9kb2MvZ3JlcC5pbi4xCkBAIC03NTYsNyArNzU2LDcgQEAgSW4gb3Ro ZXIgaW1wbGVtZW50YXRpb25zLCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBsZXNz IHBvd2VyZnVsLgogVGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGV4dGVu ZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbnM7CiBkaWZmZXJlbmNlcyBmb3IgYmFzaWMgcmVndWxh ciBleHByZXNzaW9ucyBhcmUgc3VtbWFyaXplZCBhZnRlcndhcmRzLgogUGVybC1jb21wYXRp YmxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZ2l2ZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHks IGFuZCBhcmUKLWRvY3VtZW50ZWQgaW4gQjxwY3Jlc3ludGF4PigzKSBhbmQgQjxwY3JlcGF0 dGVybj4oMyksIGJ1dCB3b3JrIG9ubHkgaWYKK2RvY3VtZW50ZWQgaW4gQjxwY3JlMnN5bnRh eD4oMykgYW5kIEI8cGNyZTJwYXR0ZXJuPigzKSwgYnV0IHdvcmsgb25seSBpZgogUENSRSBz dXBwb3J0IGlzIGVuYWJsZWQuCiAuUFAKIFRoZSBmdW5kYW1lbnRhbCBidWlsZGluZyBibG9j a3MgYXJlIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zCkBAIC0xMzYwLDkgKzEzNjAsOSBAQCBm cm9tIHRoZSBnbG9iYmluZyBzeW50YXggdGhhdCB0aGUgc2hlbGwgdXNlcyB0byBtYXRjaCBm aWxlIG5hbWVzLgogLkJSIHNvcnQgKDEpLAogLkJSIHhhcmdzICgxKSwKIC5CUiByZWFkICgy KSwKLS5CUiBwY3JlICgzKSwKLS5CUiBwY3Jlc3ludGF4ICgzKSwKLS5CUiBwY3JlcGF0dGVy biAoMyksCisuQlIgcGNyZTIgKDMpLAorLkJSIHBjcmUyc3ludGF4ICgzKSwKKy5CUiBwY3Jl MnBhdHRlcm4gKDMpLAogLkJSIHRlcm1pbmZvICg1KSwKIC5CUiBnbG9iICg3KSwKIC5CUiBy ZWdleCAoNykKZGlmZiAtLWdpdCBhL2RvYy9ncmVwLnRleGkgYi9kb2MvZ3JlcC50ZXhpCmlu ZGV4IGU1YjlmZDguLmMzYzRiYmYgMTAwNjQ0Ci0tLSBhL2RvYy9ncmVwLnRleGkKKysrIGIv ZG9jL2dyZXAudGV4aQpAQCAtMTE2OCw3ICsxMTY4LDcgQEAgSW4gb3RoZXIgaW1wbGVtZW50 YXRpb25zLCBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBsZXNzIHBvd2VyZnVsLgog VGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGV4dGVuZGVkIHJlZ3VsYXIg ZXhwcmVzc2lvbnM7CiBkaWZmZXJlbmNlcyBmb3IgYmFzaWMgcmVndWxhciBleHByZXNzaW9u cyBhcmUgc3VtbWFyaXplZCBhZnRlcndhcmRzLgogUGVybC1jb21wYXRpYmxlIHJlZ3VsYXIg ZXhwcmVzc2lvbnMgZ2l2ZSBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHksIGFuZAotYXJlIGRv Y3VtZW50ZWQgaW4gdGhlIEBpe3BjcmVzeW50YXh9KDMpIGFuZCBAaXtwY3JlcGF0dGVybn0o MykgbWFudWFsCithcmUgZG9jdW1lbnRlZCBpbiB0aGUgQGl7cGNyZTJzeW50YXh9KDMpIGFu ZCBAaXtwY3JlMnBhdHRlcm59KDMpIG1hbnVhbAogcGFnZXMsIGJ1dCB3b3JrIG9ubHkgaWYg UENSRSBpcyBhdmFpbGFibGUgaW4gdGhlIHN5c3RlbS4KIAogQG1lbnUKZGlmZiAtLWdpdCBh L200L3BjcmUubTQgYi9tNC9wY3JlLm00CmluZGV4IDc4YjdmZGEuLmExYzZjODIgMTAwNjQ0 Ci0tLSBhL200L3BjcmUubTQKKysrIGIvbTQvcGNyZS5tNApAQCAtMSw0ICsxLDQgQEAKLSMg cGNyZS5tNCAtIGNoZWNrIGZvciBsaWJwY3JlIHN1cHBvcnQKKyMgcGNyZS5tNCAtIGNoZWNr IGZvciBQQ1JFIGxpYnJhcnkgc3VwcG9ydAogCiAjIENvcHlyaWdodCAoQykgMjAxMC0yMDIx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgpAQCAtOSw3ICs5LDcgQEAg QUNfREVGVU4oW2dsX0ZVTkNfUENSRV0sCiBbCiAgIEFDX0FSR19FTkFCTEUoW3BlcmwtcmVn ZXhwXSwKICAgICBBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLXBlcmwtcmVnZXhwXSwKLSAg ICAgICAgICAgICAgICAgICBbZGlzYWJsZSBwZXJsLXJlZ2V4cCAocGNyZSkgc3VwcG9ydF0p LAorICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChwY3JlMikgc3Vw cG9ydF0pLAogICAgIFtjYXNlICRlbmFibGV2YWwgaW4KICAgICAgICB5ZXN8bm8pIHRlc3Rf cGNyZT0kZW5hYmxldmFsOzsKICAgICAgICAqKSBBQ19NU0dfRVJST1IoW2ludmFsaWQgdmFs dWUgJGVuYWJsZXZhbCBmb3IgLS1kaXNhYmxlLXBlcmwtcmVnZXhwXSk7OwpAQCAtMjEsMjQg KzIxLDI1IEBAIEFDX0RFRlVOKFtnbF9GVU5DX1BDUkVdLAogICB1c2VfcGNyZT1ubwogCiAg IGlmIHRlc3QgJHRlc3RfcGNyZSAhPSBubzsgdGhlbgotICAgIFBLR19DSEVDS19NT0RVTEVT KFtQQ1JFXSwgW2xpYnBjcmVdLCBbXSwgWzogJHtQQ1JFX0xJQlM9LWxwY3JlfV0pCisgICAg UEtHX0NIRUNLX01PRFVMRVMoW1BDUkVdLCBbbGlicGNyZTItOF0sIFtdLCBbOiAke1BDUkVf TElCUz0tbHBjcmUyLTh9XSkKIAotICAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgcGNyZV9jb21w aWxlXSwgW3BjcmVfY3ZfaGF2ZV9wY3JlX2NvbXBpbGVdLAorICAgIEFDX0NBQ0hFX0NIRUNL KFtmb3IgcGNyZTJfY29tcGlsZV0sIFtwY3JlX2N2X2hhdmVfcGNyZTJfY29tcGlsZV0sCiAg ICAgICBbcGNyZV9zYXZlZF9DRkxBR1M9JENGTEFHUwogICAgICAgIHBjcmVfc2F2ZWRfTElC Uz0kTElCUwogICAgICAgIENGTEFHUz0iJENGTEFHUyAkUENSRV9DRkxBR1MiCiAgICAgICAg TElCUz0iJFBDUkVfTElCUyAkTElCUyIKICAgICAgICBBQ19MSU5LX0lGRUxTRSgKLSAgICAg ICAgIFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8cGNyZS5oPgorICAgICAgICAgW0FD X0xBTkdfUFJPR1JBTShbWyNkZWZpbmUgUENSRTJfQ09ERV9VTklUX1dJRFRIIDgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjaW5jbHVkZSA8cGNyZTIuaD4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgXV0sCi0gICAgICAgICAgICBbW3BjcmUgKnAgPSBwY3JlX2NvbXBp bGUgKDAsIDAsIDAsIDAsIDApOworICAgICAgICAgICAgW1twY3JlMl9jb2RlICpwID0gcGNy ZTJfY29tcGlsZSAoMCwgMCwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgIHJldHVybiAh cDtdXSldLAotICAgICAgICAgW3BjcmVfY3ZfaGF2ZV9wY3JlX2NvbXBpbGU9eWVzXSwKLSAg ICAgICAgIFtwY3JlX2N2X2hhdmVfcGNyZV9jb21waWxlPW5vXSkKKyAgICAgICAgIFtwY3Jl X2N2X2hhdmVfcGNyZTJfY29tcGlsZT15ZXNdLAorICAgICAgICAgW3BjcmVfY3ZfaGF2ZV9w Y3JlMl9jb21waWxlPW5vXSkKICAgICAgICBDRkxBR1M9JHBjcmVfc2F2ZWRfQ0ZMQUdTCiAg ICAgICAgTElCUz0kcGNyZV9zYXZlZF9MSUJTXSkKIAotICAgIGlmIHRlc3QgIiRwY3JlX2N2 X2hhdmVfcGNyZV9jb21waWxlIiA9IHllczsgdGhlbgorICAgIGlmIHRlc3QgIiRwY3JlX2N2 X2hhdmVfcGNyZTJfY29tcGlsZSIgPSB5ZXM7IHRoZW4KICAgICAgIHVzZV9wY3JlPXllcwog ICAgIGVsaWYgdGVzdCAkdGVzdF9wY3JlID0gbWF5YmU7IHRoZW4KICAgICAgIEFDX01TR19X QVJOKFtBQ19QQUNLQUdFX05BTUUgd2lsbCBiZSBidWlsdCB3aXRob3V0IHBjcmUgc3VwcG9y dC5dKQpAQCAtNTAsNyArNTEsNyBAQCBBQ19ERUZVTihbZ2xfRlVOQ19QQ1JFXSwKICAgaWYg dGVzdCAkdXNlX3BjcmUgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENS RV0sIFsxXSwKICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgUGVybCBDb21w YXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKLSAgICAgICBsaWJyYXJ5ICgtbHBjcmUpLl0p CisgICAgICAgbGlicmFyeSAoLWxwY3JlMikuXSkKICAgZWxzZQogICAgIFBDUkVfQ0ZMQUdT PQogICAgIFBDUkVfTElCUz0KZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMv cGNyZXNlYXJjaC5jCmluZGV4IDA5ZjkyYzguLjYzMDY3OGIgMTAwNjQ0Ci0tLSBhL3NyYy9w Y3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTcsNDEgKzE3LDMyIEBA CiAgICAwMjExMC0xMzAxLCBVU0EuICAqLwogCiAvKiBXcml0dGVuIEF1Z3VzdCAxOTkyIGJ5 IE1pa2UgSGFlcnRlbC4gKi8KKy8qIFVwZGF0ZWQgZm9yIFBDUkUyIGJ5IENhcmxvIEFyZW5h cy4gKi8KIAogI2luY2x1ZGUgPGNvbmZpZy5oPgogI2luY2x1ZGUgInNlYXJjaC5oIgogI2lu Y2x1ZGUgImRpZS5oIgogCi0jaW5jbHVkZSA8cGNyZS5oPgorI2RlZmluZSBQQ1JFMl9DT0RF X1VOSVRfV0lEVEggOAorI2luY2x1ZGUgPHBjcmUyLmg+CiAKLS8qIFRoaXMgbXVzdCBiZSBh dCBsZWFzdCAyOyBldmVyeXRoaW5nIGFmdGVyIHRoYXQgaXMgZm9yIHBlcmZvcm1hbmNlCi0g ICBpbiBwY3JlX2V4ZWMuICAqLwotZW51bSB7IE5TVUIgPSAzMDAgfTsKLQotI2lmbmRlZiBQ Q1JFX0VYVFJBX01BVENIX0xJTUlUX1JFQ1VSU0lPTgotIyBkZWZpbmUgUENSRV9FWFRSQV9N QVRDSF9MSU1JVF9SRUNVUlNJT04gMAotI2VuZGlmCi0jaWZuZGVmIFBDUkVfU1RVRFlfSklU X0NPTVBJTEUKLSMgZGVmaW5lIFBDUkVfU1RVRFlfSklUX0NPTVBJTEUgMAotI2VuZGlmCi0j aWZuZGVmIFBDUkVfU1RVRFlfRVhUUkFfTkVFREVECi0jIGRlZmluZSBQQ1JFX1NUVURZX0VY VFJBX05FRURFRCAwCisvKiBOZWVkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9y IFBDUkUyIDwgMTAuMzAgICovCisjaWZuZGVmIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUCisj ZGVmaW5lIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05M SU1JVAorI2RlZmluZSBQQ1JFMl9FUlJPUl9ERVBUSExJTUlUICBQQ1JFMl9FUlJPUl9SRUNV UlNJT05MSU1JVAorI2RlZmluZSBwY3JlMl9zZXRfZGVwdGhfbGltaXQgICBwY3JlMl9zZXRf cmVjdXJzaW9uX2xpbWl0CiAjZW5kaWYKIAogc3RydWN0IHBjcmVfY29tcAogewotICAvKiBD b21waWxlZCBpbnRlcm5hbCBmb3JtIG9mIGEgUGVybCByZWd1bGFyIGV4cHJlc3Npb24uICAq LwotICBwY3JlICpjcmU7Ci0KLSAgLyogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgcGF0dGVybi4gICovCi0gIHBjcmVfZXh0cmEgKmV4dHJhOwotCi0jaWYgUENSRV9TVFVE WV9KSVRfQ09NUElMRQogICAvKiBUaGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXpl LiAgKi8KLSAgcGNyZV9qaXRfc3RhY2sgKmppdF9zdGFjazsKLSAgaW50IGppdF9zdGFja19z aXplOwotI2VuZGlmCisgIHBjcmUyX2ppdF9zdGFjayAqaml0X3N0YWNrOworICBQQ1JFMl9T SVpFIGppdF9zdGFja19zaXplOwogCisgIC8qIENvbXBpbGVkIGludGVybmFsIGZvcm0gb2Yg YSBQZXJsIHJlZ3VsYXIgZXhwcmVzc2lvbi4gICovCisgIHBjcmUyX2NvZGUgKmNyZTsKKyAg cGNyZTJfbWF0Y2hfY29udGV4dCAqbWNvbnRleHQ7CisgIHBjcmUyX21hdGNoX2RhdGEgKmRh dGE7CiAgIC8qIFRhYmxlLCBpbmRleGVkIGJ5ICEgKGZsYWcgJiBQQ1JFX05PVEJPTCksIG9m IHdoZXRoZXIgdGhlIGVtcHR5CiAgICAgIHN0cmluZyBtYXRjaGVzIHdoZW4gdGhhdCBmbGFn IGlzIHVzZWQuICAqLwogICBpbnQgZW1wdHlfbWF0Y2hbMl07CkBAIC02MCw1NCArNTEsNDkg QEAgc3RydWN0IHBjcmVfY29tcAogCiAvKiBNYXRjaCB0aGUgYWxyZWFkeS1jb21waWxlZCBQ Q1JFIHBhdHRlcm4gYWdhaW5zdCB0aGUgZGF0YSBpbiBTVUJKRUNULAogICAgb2Ygc2l6ZSBT RUFSQ0hfQllURVMgYW5kIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IFNFQVJDSF9PRkZTRVQsIHdp dGgKLSAgIG9wdGlvbnMgT1BUSU9OUywgYW5kIHN0b3JpbmcgcmVzdWx0aW5nIG1hdGNoZXMg aW50byBTVUIuICBSZXR1cm4KLSAgIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGxvY2F0aW9u IG9yIGEgKG5lZ2F0aXZlKSBlcnJvciBudW1iZXIuICAqLworICAgb3B0aW9ucyBPUFRJT05T LgorICAgUmV0dXJuIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGNvdW50IG9yIGEgKG5lZ2F0 aXZlKSBlcnJvciBudW1iZXIuICAqLwogc3RhdGljIGludAotaml0X2V4ZWMgKHN0cnVjdCBw Y3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBpbnQgc2VhcmNoX2J5dGVzLAot ICAgICAgICAgIGludCBzZWFyY2hfb2Zmc2V0LCBpbnQgb3B0aW9ucywgaW50ICpzdWIpCitq aXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIFBD UkUyX1NJWkUgc2VhcmNoX2J5dGVzLAorICAgICAgICAgIFBDUkUyX1NJWkUgc2VhcmNoX29m ZnNldCwgaW50IG9wdGlvbnMpCiB7CiAgIHdoaWxlICh0cnVlKQogICAgIHsKLSAgICAgIGlu dCBlID0gcGNyZV9leGVjIChwYy0+Y3JlLCBwYy0+ZXh0cmEsIHN1YmplY3QsIHNlYXJjaF9i eXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfb2Zmc2V0LCBvcHRpb25z LCBzdWIsIE5TVUIpOwotCi0jaWYgUENSRV9TVFVEWV9KSVRfQ09NUElMRQotICAgICAgLyog R29pbmcgb3ZlciB0aGlzIHdvdWxkIHRyaWdnZXIgYW4gaW50IG92ZXJmbG93IGJ1ZyB3aXRo aW4gUENSRS4gICovCi0gICAgICBpbnQgaml0c3RhY2tfbWF4ID0gSU5UX01BWCAtIDggKiAx MDI0OwotCi0gICAgICBpZiAoZSA9PSBQQ1JFX0VSUk9SX0pJVF9TVEFDS0xJTUlUCi0gICAg ICAgICAgJiYgMCA8IHBjLT5qaXRfc3RhY2tfc2l6ZSAmJiBwYy0+aml0X3N0YWNrX3NpemUg PD0gaml0c3RhY2tfbWF4IC8gMikKKyAgICAgIGludCBlID0gcGNyZTJfbWF0Y2ggKHBjLT5j cmUsIChQQ1JFMl9TUFRSKXN1YmplY3QsIHNlYXJjaF9ieXRlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlYXJjaF9vZmZzZXQsIG9wdGlvbnMsIHBjLT5kYXRhLCBwYy0+bWNv bnRleHQpOworICAgICAgaWYgKGUgPT0gUENSRTJfRVJST1JfSklUX1NUQUNLTElNSVQKKyAg ICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19zaXplICYmIHBjLT5qaXRfc3RhY2tfc2l6 ZSA8PSBJTlRfTUFYIC8gMikKICAgICAgICAgewotICAgICAgICAgIGludCBvbGRfc2l6ZSA9 IHBjLT5qaXRfc3RhY2tfc2l6ZTsKLSAgICAgICAgICBpbnQgbmV3X3NpemUgPSBwYy0+aml0 X3N0YWNrX3NpemUgPSBvbGRfc2l6ZSAqIDI7CisgICAgICAgICAgUENSRTJfU0laRSBvbGRf c2l6ZSA9IHBjLT5qaXRfc3RhY2tfc2l6ZTsKKyAgICAgICAgICBQQ1JFMl9TSVpFIG5ld19z aXplID0gcGMtPmppdF9zdGFja19zaXplID0gb2xkX3NpemUgKiAyOworCiAgICAgICAgICAg aWYgKHBjLT5qaXRfc3RhY2spCi0gICAgICAgICAgICBwY3JlX2ppdF9zdGFja19mcmVlIChw Yy0+aml0X3N0YWNrKTsKLSAgICAgICAgICBwYy0+aml0X3N0YWNrID0gcGNyZV9qaXRfc3Rh Y2tfYWxsb2MgKG9sZF9zaXplLCBuZXdfc2l6ZSk7Ci0gICAgICAgICAgaWYgKCFwYy0+aml0 X3N0YWNrKQorICAgICAgICAgICAgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKHBjLT5qaXRfc3Rh Y2spOworICAgICAgICAgIHBjLT5qaXRfc3RhY2sgPSBwY3JlMl9qaXRfc3RhY2tfY3JlYXRl IChvbGRfc2l6ZSwgbmV3X3NpemUsIE5VTEwpOworCisgICAgICAgICAgaWYgKCFwYy0+bWNv bnRleHQpCisgICAgICAgICAgICBwYy0+bWNvbnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0 X2NyZWF0ZSAoTlVMTCk7CisKKyAgICAgICAgICBpZiAoIXBjLT5qaXRfc3RhY2sgfHwgIXBj LT5tY29udGV4dCkKICAgICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAwLAogICAgICAg ICAgICAgICAgICBfKCJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgUENSRSBK SVQgc3RhY2siKSk7Ci0gICAgICAgICAgcGNyZV9hc3NpZ25faml0X3N0YWNrIChwYy0+ZXh0 cmEsIE5VTEwsIHBjLT5qaXRfc3RhY2spOworICAgICAgICAgIHBjcmUyX2ppdF9zdGFja19h c3NpZ24gKHBjLT5tY29udGV4dCwgTlVMTCwgcGMtPmppdF9zdGFjayk7CiAgICAgICAgICAg Y29udGludWU7CiAgICAgICAgIH0KLSNlbmRpZgotCi0jaWYgUENSRV9FWFRSQV9NQVRDSF9M SU1JVF9SRUNVUlNJT04KLSAgICAgIGlmIChlID09IFBDUkVfRVJST1JfUkVDVVJTSU9OTElN SVQKLSAgICAgICAgICAmJiAoUENSRV9TVFVEWV9FWFRSQV9ORUVERUQgfHwgcGMtPmV4dHJh KSkKKyAgICAgIGlmIChlID09IFBDUkUyX0VSUk9SX0RFUFRITElNSVQpCiAgICAgICAgIHsK LSAgICAgICAgICB1bnNpZ25lZCBsb25nIGxpbQotICAgICAgICAgICAgPSAocGMtPmV4dHJh LT5mbGFncyAmIFBDUkVfRVhUUkFfTUFUQ0hfTElNSVRfUkVDVVJTSU9OCi0gICAgICAgICAg ICAgICA/IHBjLT5leHRyYS0+bWF0Y2hfbGltaXRfcmVjdXJzaW9uCi0gICAgICAgICAgICAg ICA6IDApOwotICAgICAgICAgIGlmIChsaW0gPD0gVUxPTkdfTUFYIC8gMikKLSAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgcGMtPmV4dHJhLT5tYXRjaF9saW1pdF9yZWN1cnNpb24g PSBsaW0gPyAyICogbGltIDogKDEgPDwgMjQpIC0gMTsKLSAgICAgICAgICAgICAgcGMtPmV4 dHJhLT5mbGFncyB8PSBQQ1JFX0VYVFJBX01BVENIX0xJTUlUX1JFQ1VSU0lPTjsKLSAgICAg ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgor ICAgICAgICAgIHVpbnQzMl90IGxpbTsKKyAgICAgICAgICBwY3JlMl9jb25maWcgKFBDUkUy X0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKKyAgICAgICAgICBpZiAobGltID49IFVJTlQz Ml9NQVggLyAyKQorICAgICAgICAgICAgcmV0dXJuIGU7CisKKyAgICAgICAgICBsaW0gPDw9 IDE7CisgICAgICAgICAgaWYgKCFwYy0+bWNvbnRleHQpCisgICAgICAgICAgICBwYy0+bWNv bnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7CiAKKyAgICAgICAg ICBwY3JlMl9zZXRfZGVwdGhfbGltaXQgKHBjLT5tY29udGV4dCwgbGltKTsKKyAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgfQogICAgICAgcmV0dXJuIGU7CiAgICAgfQogfQpAQCAt MTE4LDI3ICsxMDQsMzUgQEAgaml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBjLCBjaGFy IGNvbnN0ICpzdWJqZWN0LCBpbnQgc2VhcmNoX2J5dGVzLAogdm9pZCAqCiBQY29tcGlsZSAo Y2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wg ZXhhY3QpCiB7Ci0gIGludCBlOwotICBjaGFyIGNvbnN0ICplcDsKKyAgUENSRTJfU0laRSBl OworICBpbnQgZWM7CisgIFBDUkUyX1VDSEFSOCBlcFsxMjhdOyAvKiAxMjAgY29kZSB1bml0 cyBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgdHJ1bmNhdGlvbiAgKi8KICAgc3RhdGljIGNoYXIg Y29uc3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86IjsKICAgc3RhdGljIGNoYXIgY29uc3Qg d3N1ZmZpeFtdID0gIikoPyFcXHcpIjsKICAgc3RhdGljIGNoYXIgY29uc3QgeHByZWZpeFtd ID0gIl4oPzoiOwogICBzdGF0aWMgY2hhciBjb25zdCB4c3VmZml4W10gPSAiKSQiOwogICBp bnQgZml4X2xlbl9tYXggPSBNQVggKHNpemVvZiB3cHJlZml4IC0gMSArIHNpemVvZiB3c3Vm Zml4IC0gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgeHByZWZpeCAtIDEg KyBzaXplb2YgeHN1ZmZpeCAtIDEpOwotICBjaGFyICpyZSA9IHhubWFsbG9jICg0LCBzaXpl ICsgKGZpeF9sZW5fbWF4ICsgNCAtIDEpIC8gNCk7Ci0gIGludCBmbGFncyA9IFBDUkVfRE9M TEFSX0VORE9OTFkgfCAobWF0Y2hfaWNhc2UgPyBQQ1JFX0NBU0VMRVNTIDogMCk7CisgIHVu c2lnbmVkIGNoYXIgKnJlID0geG1hbGxvYyAoc2l6ZSArIGZpeF9sZW5fbWF4ICsgMSk7Cisg IGludCBmbGFncyA9IFBDUkUyX0RPTExBUl9FTkRPTkxZIHwgKG1hdGNoX2ljYXNlID8gUENS RTJfQ0FTRUxFU1MgOiAwKTsKICAgY2hhciAqcGF0bGltID0gcGF0dGVybiArIHNpemU7Ci0g IGNoYXIgKm4gPSByZTsKLSAgY2hhciBjb25zdCAqcDsKLSAgY2hhciBjb25zdCAqcG51bDsK KyAgY2hhciAqbiA9IChjaGFyICopcmU7CiAgIHN0cnVjdCBwY3JlX2NvbXAgKnBjID0geGNh bGxvYyAoMSwgc2l6ZW9mICgqcGMpKTsKKyAgcGNyZTJfY29tcGlsZV9jb250ZXh0ICpjY29u dGV4dCA9IHBjcmUyX2NvbXBpbGVfY29udGV4dF9jcmVhdGUoTlVMTCk7CiAKICAgaWYgKGxv Y2FsZWluZm8ubXVsdGlieXRlKQogICAgIHsKICAgICAgIGlmICghIGxvY2FsZWluZm8udXNp bmdfdXRmOCkKICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIi1QIHN1cHBvcnRz IG9ubHkgdW5pYnl0ZSBhbmQgVVRGLTggbG9jYWxlcyIpKTsKLSAgICAgIGZsYWdzIHw9IFBD UkVfVVRGODsKKyAgICAgIGZsYWdzIHw9IFBDUkUyX1VURjsKKyNpZiAwCisgICAgICAvKiBk byBub3QgbWF0Y2ggaW5kaXZpZHVhbCBjb2RlIHVuaXRzIGJ1dCBvbmx5IFVURi04ICAqLwor ICAgICAgZmxhZ3MgfD0gUENSRTJfTkVWRVJfQkFDS1NMQVNIX0M7CisjZW5kaWYKKyNpZmRl ZiBQQ1JFMl9NQVRDSF9JTlZBTElEX1VURgorICAgICAgLyogY29uc2lkZXIgaW52YWxpZCBV VEYtOCBhcyBhIGJhcnJpZXIsIGluc3RlYWQgb2YgZXJyb3IgICovCisgICAgICBmbGFncyB8 PSBQQ1JFMl9NQVRDSF9JTlZBTElEX1VURjsKKyNlbmRpZgogICAgIH0KIAogICAvKiBGSVhN RTogUmVtb3ZlIHRoaXMgcmVzdHJpY3Rpb24uICAqLwpAQCAtMTUxLDU2ICsxNDUsNDIgQEAg UGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25v cmVkLCBib29sIGV4YWN0KQogICBpZiAobWF0Y2hfbGluZXMpCiAgICAgc3RyY3B5IChuLCB4 cHJlZml4KTsKICAgbiArPSBzdHJsZW4gKG4pOwotCi0gIC8qIFRoZSBQQ1JFIGludGVyZmFj ZSBkb2Vzbid0IGFsbG93IE5VTCBieXRlcyBpbiB0aGUgcGF0dGVybiwgc28KLSAgICAgcmVw bGFjZSBlYWNoIE5VTCBieXRlIGluIHRoZSBwYXR0ZXJuIHdpdGggdGhlIGZvdXIgY2hhcmFj dGVycwotICAgICAiXDAwMCIsIHJlbW92aW5nIGEgcHJlY2VkaW5nIGJhY2tzbGFzaCBpZiB0 aGVyZSBhcmUgYW4gb2RkCi0gICAgIG51bWJlciBvZiBiYWNrc2xhc2hlcyBiZWZvcmUgdGhl IE5VTC4gICovCi0gICpwYXRsaW0gPSAnXDAnOwotICBmb3IgKHAgPSBwYXR0ZXJuOyAocG51 bCA9IHAgKyBzdHJsZW4gKHApKSA8IHBhdGxpbTsgcCA9IHBudWwgKyAxKQorICBtZW1jcHkg KG4sIHBhdHRlcm4sIHNpemUpOworICBuICs9IHNpemU7CisgIGlmIChtYXRjaF93b3JkcyAm JiAhbWF0Y2hfbGluZXMpCiAgICAgewotICAgICAgbWVtY3B5IChuLCBwLCBwbnVsIC0gcCk7 Ci0gICAgICBuICs9IHBudWwgLSBwOwotICAgICAgZm9yIChwID0gcG51bDsgcGF0dGVybiA8 IHAgJiYgcFstMV0gPT0gJ1xcJzsgcC0tKQotICAgICAgICBjb250aW51ZTsKLSAgICAgIG4g LT0gKHBudWwgLSBwKSAmIDE7Ci0gICAgICBzdHJjcHkgKG4sICJcXDAwMCIpOwotICAgICAg biArPSA0OwotICAgIH0KLSAgbWVtY3B5IChuLCBwLCBwYXRsaW0gLSBwICsgMSk7Ci0gIG4g Kz0gcGF0bGltIC0gcDsKLSAgKnBhdGxpbSA9ICdcbic7Ci0KLSAgaWYgKG1hdGNoX3dvcmRz KQogICAgIHN0cmNweSAobiwgd3N1ZmZpeCk7CisgICAgbiArPSBzdHJsZW4od3N1ZmZpeCk7 CisgICAgfQogICBpZiAobWF0Y2hfbGluZXMpCisgICAgewogICAgIHN0cmNweSAobiwgeHN1 ZmZpeCk7CisgICAgbiArPSBzdHJsZW4oeHN1ZmZpeCk7CisgICAgfQogCi0gIHBjLT5jcmUg PSBwY3JlX2NvbXBpbGUgKHJlLCBmbGFncywgJmVwLCAmZSwgcGNyZV9tYWtldGFibGVzICgp KTsKKyAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtl dGFibGVzIChOVUxMKSk7CisgIHBjLT5jcmUgPSBwY3JlMl9jb21waWxlIChyZSwgbiAtIChj aGFyICopcmUsIGZsYWdzLCAmZWMsICZlLCBjY29udGV4dCk7CiAgIGlmICghcGMtPmNyZSkK LSAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXApOwotCi0gIGludCBwY3JlX3N0 dWR5X2ZsYWdzID0gUENSRV9TVFVEWV9FWFRSQV9ORUVERUQgfCBQQ1JFX1NUVURZX0pJVF9D T01QSUxFOwotICBwYy0+ZXh0cmEgPSBwY3JlX3N0dWR5IChwYy0+Y3JlLCBwY3JlX3N0dWR5 X2ZsYWdzLCAmZXApOwotICBpZiAoZXApCi0gICAgZGllIChFWElUX1RST1VCTEUsIDAsICIl cyIsIGVwKTsKKyAgICB7CisgICAgICBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSAoZWMsIGVw LCBzaXplb2YgKGVwKSk7CisgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXAp OworICAgIH0KIAotI2lmIFBDUkVfU1RVRFlfSklUX0NPTVBJTEUKLSAgaWYgKHBjcmVfZnVs bGluZm8gKHBjLT5jcmUsIHBjLT5leHRyYSwgUENSRV9JTkZPX0pJVCwgJmUpKQotICAgIGRp ZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCJpbnRlcm5hbCBlcnJvciAoc2hvdWxkIG5ldmVyIGhh cHBlbikiKSk7CisgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9w YXR0ZXJuIChwYy0+Y3JlLCBOVUxMKTsKIAotICAvKiBUaGUgUENSRSBkb2N1bWVudGF0aW9u IHNheXMgdGhhdCBhIDMyIEtpQiBzdGFjayBpcyB0aGUgZGVmYXVsdC4gICovCi0gIGlmIChl KQotICAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOwotI2VuZGlmCisgIGVjID0g cGNyZTJfaml0X2NvbXBpbGUgKHBjLT5jcmUsIFBDUkUyX0pJVF9DT01QTEVURSk7CisgIGlm IChlYyAmJiBlYyAhPSBQQ1JFMl9FUlJPUl9KSVRfQkFET1BUSU9OICYmIGVjICE9IFBDUkUy X0VSUk9SX05PTUVNT1JZKQorICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCJKSVQgaW50 ZXJuYWwgZXJyb3I6ICVkIiksIGVjKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFRoZSBQ Q1JFIGRvY3VtZW50YXRpb24gc2F5cyB0aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZh dWx0LiAgKi8KKyAgICAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOworICAgIH0K IAogICBmcmVlIChyZSk7CiAKLSAgaW50IHN1YltOU1VCXTsKLSAgcGMtPmVtcHR5X21hdGNo W2ZhbHNlXSA9IHBjcmVfZXhlYyAocGMtPmNyZSwgcGMtPmV4dHJhLCAiIiwgMCwgMCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENSRV9OT1RCT0wsIHN1Yiwg TlNVQik7Ci0gIHBjLT5lbXB0eV9tYXRjaFt0cnVlXSA9IHBjcmVfZXhlYyAocGMtPmNyZSwg cGMtPmV4dHJhLCAiIiwgMCwgMCwgMCwgc3ViLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5TVUIpOworICBwYy0+ZW1wdHlfbWF0Y2hbZmFsc2VdID0gaml0X2V4 ZWMgKHBjLCAiIiwgMCwgMCwgUENSRTJfTk9UQk9MKTsKKyAgcGMtPmVtcHR5X21hdGNoW3Ry dWVdID0gaml0X2V4ZWMgKHBjLCAiIiwgMCwgMCwgMCk7CiAKICAgcmV0dXJuIHBjOwogfQpA QCAtMjA5LDE1ICsxODksMTUgQEAgcHRyZGlmZl90CiBQZXhlY3V0ZSAodm9pZCAqdmNwLCBj aGFyIGNvbnN0ICpidWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAg ICAgIGNoYXIgY29uc3QgKnN0YXJ0X3B0cikKIHsKLSAgaW50IHN1YltOU1VCXTsKICAgY2hh ciBjb25zdCAqcCA9IHN0YXJ0X3B0ciA/IHN0YXJ0X3B0ciA6IGJ1ZjsKICAgYm9vbCBib2wg PSBwWy0xXSA9PSBlb2xieXRlOwogICBjaGFyIGNvbnN0ICpsaW5lX3N0YXJ0ID0gYnVmOwot ICBpbnQgZSA9IFBDUkVfRVJST1JfTk9NQVRDSDsKKyAgaW50IGUgPSBQQ1JFMl9FUlJPUl9O T01BVENIOwogICBjaGFyIGNvbnN0ICpsaW5lX2VuZDsKICAgc3RydWN0IHBjcmVfY29tcCAq cGMgPSB2Y3A7CisgIFBDUkUyX1NJWkUgKnN1YiA9IHBjcmUyX2dldF9vdmVjdG9yX3BvaW50 ZXIgKHBjLT5kYXRhKTsKIAotICAvKiBUaGUgc2VhcmNoIGFkZHJlc3MgdG8gcGFzcyB0byBw Y3JlX2V4ZWMuICBUaGlzIGlzIHRoZSBzdGFydCBvZgorICAvKiBUaGUgc2VhcmNoIGFkZHJl c3MgdG8gcGFzcyB0byBQQ1JFLiAgVGhpcyBpcyB0aGUgc3RhcnQgb2YKICAgICAgdGhlIGJ1 ZmZlciwgb3IganVzdCBwYXN0IHRoZSBtb3N0LXJlY2VudGx5IGRpc2NvdmVyZWQgZW5jb2Rp bmcKICAgICAgZXJyb3Igb3IgbGluZSBlbmQuICAqLwogICBjaGFyIGNvbnN0ICpzdWJqZWN0 ID0gYnVmOwpAQCAtMjI5LDE0ICsyMDksMTQgQEAgUGV4ZWN1dGUgKHZvaWQgKnZjcCwgY2hh ciBjb25zdCAqYnVmLCBpZHhfdCBzaXplLCBpZHhfdCAqbWF0Y2hfc2l6ZSwKICAgICAgICAg IGJldHRlciBhbmQgdGhlIGNvcnJlY3RuZXNzIGlzc3VlcyB3ZXJlIHRvbyBwdXp6bGluZy4g IFNlZQogICAgICAgICAgQnVnIzIyNjU1LiAgKi8KICAgICAgIGxpbmVfZW5kID0gcmF3bWVt Y2hyIChwLCBlb2xieXRlKTsKLSAgICAgIGlmIChJTlRfTUFYIDwgbGluZV9lbmQgLSBwKQor ICAgICAgaWYgKFBDUkUyX1NJWkVfTUFYIDwgbGluZV9lbmQgLSBwKQogICAgICAgICBkaWUg KEVYSVRfVFJPVUJMRSwgMCwgXygiZXhjZWVkZWQgUENSRSdzIGxpbmUgbGVuZ3RoIGxpbWl0 IikpOwogCiAgICAgICBmb3IgKDs7KQogICAgICAgICB7CiAgICAgICAgICAgLyogU2tpcCBw YXN0IGJ5dGVzIHRoYXQgYXJlIGVhc2lseSBkZXRlcm1pbmVkIHRvIGJlIGVuY29kaW5nCiAg ICAgICAgICAgICAgZXJyb3JzLCB0cmVhdGluZyB0aGVtIGFzIGRhdGEgdGhhdCBjYW5ub3Qg bWF0Y2guICBUaGlzIGlzCi0gICAgICAgICAgICAgZmFzdGVyIHRoYW4gaGF2aW5nIHBjcmVf ZXhlYyBjaGVjayB0aGVtLiAgKi8KKyAgICAgICAgICAgICBmYXN0ZXIgdGhhbiBoYXZpbmcg UENSRSBjaGVjayB0aGVtLiAgKi8KICAgICAgICAgICB3aGlsZSAobG9jYWxlaW5mby5zYmNs ZW5bdG9fdWNoYXIgKCpwKV0gPT0gLTEpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg IHArKzsKQEAgLTI0NCwxMCArMjI0LDEwIEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIg Y29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAg ICAgIGJvbCA9IGZhbHNlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgaW50IHNlYXJj aF9vZmZzZXQgPSBwIC0gc3ViamVjdDsKKyAgICAgICAgICBQQ1JFMl9TSVpFIHNlYXJjaF9v ZmZzZXQgPSBwIC0gc3ViamVjdDsKIAogICAgICAgICAgIC8qIENoZWNrIGZvciBhbiBlbXB0 eSBtYXRjaDsgdGhpcyBpcyBmYXN0ZXIgdGhhbiBsZXR0aW5nCi0gICAgICAgICAgICAgcGNy ZV9leGVjIGRvIGl0LiAgKi8KKyAgICAgICAgICAgICBQQ1JFIGRvIGl0LiAgKi8KICAgICAg ICAgICBpZiAocCA9PSBsaW5lX2VuZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg c3ViWzBdID0gc3ViWzFdID0gc2VhcmNoX29mZnNldDsKQEAgLTI1NywxMyArMjM3LDE0IEBA IFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4 X3QgKm1hdGNoX3NpemUsCiAKICAgICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CiAgICAgICAg ICAgaWYgKCFib2wpCi0gICAgICAgICAgICBvcHRpb25zIHw9IFBDUkVfTk9UQk9MOworICAg ICAgICAgICAgb3B0aW9ucyB8PSBQQ1JFMl9OT1RCT0w7CiAKLSAgICAgICAgICBlID0gaml0 X2V4ZWMgKHBjLCBzdWJqZWN0LCBsaW5lX2VuZCAtIHN1YmplY3QsIHNlYXJjaF9vZmZzZXQs Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLCBzdWIpOwotICAgICAgICAgIGlm IChlICE9IFBDUkVfRVJST1JfQkFEVVRGOCkKKyAgICAgICAgICBlID0gaml0X2V4ZWMgKHBj LCBzdWJqZWN0LCBsaW5lX2VuZCAtIHN1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAg ICBzZWFyY2hfb2Zmc2V0LCBvcHRpb25zKTsKKyAgICAgICAgICAvKiBQQ1JFMiBwcm92aWRl cyAyMiBkaWZmZXJlbnQgZXJyb3IgY29kZXMgZm9yIGJhZCBVVEYtOCAgKi8KKyAgICAgICAg ICBpZiAoISAoUENSRTJfRVJST1JfVVRGOF9FUlIyMSA8PSBlICYmIGUgPCBQQ1JFMl9FUlJP Ul9VVEY4X0VSUjEpKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgaW50IHZhbGlk X2J5dGVzID0gc3ViWzBdOworICAgICAgICAgIFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBw Y3JlMl9nZXRfc3RhcnRjaGFyIChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNo X29mZnNldCA8PSB2YWxpZF9ieXRlcykKICAgICAgICAgICAgIHsKQEAgLTI3MywxNCArMjU0 LDE1IEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6 ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgdGhl IGVtcHR5LW1hdGNoIGNhc2Ugc3BlY2lhbGx5LCBmb3Igc3BlZWQuCiAgICAgICAgICAgICAg ICAgICAgICBUaGlzIG9wdGltaXphdGlvbiBpcyB2YWxpZCBpZiBWQUxJRF9CWVRFUyBpcyB6 ZXJvLAogICAgICAgICAgICAgICAgICAgICAgd2hpY2ggbWVhbnMgU0VBUkNIX09GRlNFVCBp cyBhbHNvIHplcm8uICAqLworICAgICAgICAgICAgICAgICAgc3ViWzBdID0gdmFsaWRfYnl0 ZXM7CiAgICAgICAgICAgICAgICAgICBzdWJbMV0gPSAwOwogICAgICAgICAgICAgICAgICAg ZSA9IHBjLT5lbXB0eV9tYXRjaFtib2xdOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGUgPSBqaXRfZXhlYyAocGMsIHN1YmplY3Qs IHZhbGlkX2J5dGVzLCBzZWFyY2hfb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3B0aW9ucyB8IFBDUkVfTk9fVVRGOF9DSEVDSyB8IFBDUkVfTk9URU9MLCBzdWIp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8IFBDUkUyX05PX1VU Rl9DSEVDSyB8IFBDUkUyX05PVEVPTCk7CiAKLSAgICAgICAgICAgICAgaWYgKGUgIT0gUENS RV9FUlJPUl9OT01BVENIKQorICAgICAgICAgICAgICBpZiAoZSAhPSBQQ1JFMl9FUlJPUl9O T01BVENIKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgIC8qIFRy ZWF0IHRoZSBlbmNvZGluZyBlcnJvciBhcyBkYXRhIHRoYXQgY2Fubm90IG1hdGNoLiAgKi8K QEAgLTI5MSw3ICsyNzMsNyBAQCBQZXhlY3V0ZSAodm9pZCAqdmNwLCBjaGFyIGNvbnN0ICpi dWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAgICAgIHN1YmplY3Qg Kz0gdmFsaWRfYnl0ZXMgKyAxOwogICAgICAgICB9CiAKLSAgICAgIGlmIChlICE9IFBDUkVf RVJST1JfTk9NQVRDSCkKKyAgICAgIGlmIChlICE9IFBDUkUyX0VSUk9SX05PTUFUQ0gpCiAg ICAgICAgIGJyZWFrOwogICAgICAgYm9sID0gdHJ1ZTsKICAgICAgIHAgPSBzdWJqZWN0ID0g bGluZV9zdGFydCA9IGxpbmVfZW5kICsgMTsKQEAgLTMwMiwyNiArMjg0LDM1IEBAIFBleGVj dXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3QgKm1h dGNoX3NpemUsCiAgICAgewogICAgICAgc3dpdGNoIChlKQogICAgICAgICB7Ci0gICAgICAg IGNhc2UgUENSRV9FUlJPUl9OT01BVENIOgorICAgICAgICBjYXNlIFBDUkUyX0VSUk9SX05P TUFUQ0g6CiAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBQQ1JFX0VSUk9SX05P TUVNT1JZOgorICAgICAgICBjYXNlIFBDUkUyX0VSUk9SX05PTUVNT1JZOgogICAgICAgICAg IGRpZSAoRVhJVF9UUk9VQkxFLCAwLCBfKCIlczogbWVtb3J5IGV4aGF1c3RlZCIpLCBpbnB1 dF9maWxlbmFtZSAoKSk7CiAKLSNpZiBQQ1JFX1NUVURZX0pJVF9DT01QSUxFCi0gICAgICAg IGNhc2UgUENSRV9FUlJPUl9KSVRfU1RBQ0tMSU1JVDoKKyAgICAgICAgY2FzZSBQQ1JFMl9F UlJPUl9KSVRfU1RBQ0tMSU1JVDoKICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwg XygiJXM6IGV4aGF1c3RlZCBQQ1JFIEpJVCBzdGFjayIpLAogICAgICAgICAgICAgICAgaW5w dXRfZmlsZW5hbWUgKCkpOwotI2VuZGlmCiAKLSAgICAgICAgY2FzZSBQQ1JFX0VSUk9SX01B VENITElNSVQ6CisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfTUFUQ0hMSU1JVDoKICAgICAg ICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgXygiJXM6IGV4Y2VlZGVkIFBDUkUncyBiYWNr dHJhY2tpbmcgbGltaXQiKSwKICAgICAgICAgICAgICAgIGlucHV0X2ZpbGVuYW1lICgpKTsK IAotICAgICAgICBjYXNlIFBDUkVfRVJST1JfUkVDVVJTSU9OTElNSVQ6Ci0gICAgICAgICAg ZGllIChFWElUX1RST1VCTEUsIDAsIF8oIiVzOiBleGNlZWRlZCBQQ1JFJ3MgcmVjdXJzaW9u IGxpbWl0IiksCisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfREVQVEhMSU1JVDoKKyAgICAg ICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwKKyAgICAgICAgICAgICAgIF8oIiVzOiBleGNl ZWRlZCBQQ1JFJ3MgbmVzdGVkIGJhY2t0cmFja2luZyBsaW1pdCIpLAogICAgICAgICAgICAg ICAgaW5wdXRfZmlsZW5hbWUgKCkpOwogCisgICAgICAgIGNhc2UgUENSRTJfRVJST1JfUkVD VVJTRUxPT1A6CisgICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIiVzOiBQQ1JF IGRldGVjdGVkIHJlY3Vyc2UgbG9vcCIpLAorICAgICAgICAgICAgICAgaW5wdXRfZmlsZW5h bWUgKCkpOworCisjaWZkZWYgUENSRTJfRVJST1JfSEVBUExJTUlUCisgICAgICAgIGNhc2Ug UENSRTJfRVJST1JfSEVBUExJTUlUOgorICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCAw LCBfKCIlczogZXhjZWVkZWQgUENSRSdzIGhlYXAgbGltaXQiKSwKKyAgICAgICAgICAgICAg IGlucHV0X2ZpbGVuYW1lICgpKTsKKyNlbmRpZgorCiAgICAgICAgIGRlZmF1bHQ6CiAgICAg ICAgICAgLyogRm9yIG5vdywgd2UgbHVtcCBhbGwgcmVtYWluaW5nIFBDUkUgZmFpbHVyZXMg aW50byB0aGlzIGJhc2tldC4KICAgICAgICAgICAgICBJZiBhbnlvbmUgY2FyZXMgdG8gcHJv dmlkZSBzYW1wbGUgZ3JlcCB1c2FnZSB0aGF0IGNhbiB0cmlnZ2VyCmRpZmYgLS1naXQgYS90 ZXN0cy9maWxlbmFtZS1saW5lbm8ucGwgYi90ZXN0cy9maWxlbmFtZS1saW5lbm8ucGwKaW5k ZXggMWU4NGI0NS4uMWZmM2Q2YSAxMDA3NTUKLS0tIGEvdGVzdHMvZmlsZW5hbWUtbGluZW5v LnBsCisrKyBiL3Rlc3RzL2ZpbGVuYW1lLWxpbmVuby5wbApAQCAtMTAxLDEzICsxMDEsMTMg QEAgbXkgQFRlc3RzID0KICAgIF0sCiAgICBbJ2ludmFsaWQtcmUtUC1wYXJlbicsICctUCAi KSInLCB7RVhJVD0+Mn0sCiAgICAge0VSUiA9PiAkRU5We1BDUkVfV09SS1N9ID09IDEKLSAg ICAgICA/ICIkcHJvZzogdW5tYXRjaGVkIHBhcmVudGhlc2VzXG4iCisgICAgICAgPyAiJHBy b2c6IHVubWF0Y2hlZCBjbG9zaW5nIHBhcmVudGhlc2lzXG4iCiAgICAgICAgOiAkbm9fcGNy ZQogICAgIH0sCiAgICBdLAogICAgWydpbnZhbGlkLXJlLVAtc3Rhci1wYXJlbicsICctUCAi YS4qKSInLCB7RVhJVD0+Mn0sCiAgICAge0VSUiA9PiAkRU5We1BDUkVfV09SS1N9ID09IDEK LSAgICAgICA/ICIkcHJvZzogdW5tYXRjaGVkIHBhcmVudGhlc2VzXG4iCisgICAgICAgPyAi JHByb2c6IHVubWF0Y2hlZCBjbG9zaW5nIHBhcmVudGhlc2lzXG4iCiAgICAgICAgOiAkbm9f cGNyZQogICAgIH0sCiAgICBdLAotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0002-maint-minor-rewording-and-reindenting.patch" Content-Disposition: attachment; filename="0002-maint-minor-rewording-and-reindenting.patch" Content-Transfer-Encoding: base64 RnJvbSBiNmI0M2JlYTMyYjVlMDU5OTI5ZmE1OGVkOGFkMTgyZmU1ZmExZWNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDE2OjU2OjUzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMi8xMl0gbWFpbnQ6IG1pbm9yIHJld29yZGluZyBhbmQgcmVpbmRlbnRpbmcKCi0tLQog TkVXUyAgICAgICAgICAgICB8ICA0ICsrKysKIFRPRE8gICAgICAgICAgICAgfCAgNCArKy0t CiBtNC9wY3JlLm00ICAgICAgIHwgIDggKysrKy0tLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA0 NCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMv cGNyZS1hYm9ydCB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyks IDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDRhNjJm YjcuLjJmNjMwNzEgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtNCwxMCArNCwx NCBAQCBHTlUgZ3JlcCBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LSotIG91dGxpbmUgLSotCiAKICoqIENoYW5nZXMgaW4gYmVoYXZpb3IKIAorICBUaGUgLVAg b3B0aW9uIGlzIG5vdyBiYXNlZCBvbiBQQ1JFMiBpbnN0ZWFkIG9mIHRoZSBvbGRlciBQQ1JF LAorICB0aGFua3MgdG8gY29kZSBjb250cmlidXRlZCBieSBDYXJsbyBBcmVuYXMuCisKICAg VGhlIGVncmVwIGFuZCBmZ3JlcCBjb21tYW5kcywgd2hpY2ggaGF2ZSBiZWVuIGRlcHJlY2F0 ZWQgc2luY2UKICAgcmVsZWFzZSAyLjUuMyAoMjAwNyksIG5vdyB3YXJuIHRoYXQgdGhleSBh cmUgb2Jzb2xlc2NlbnQgYW5kIHNob3VsZAogICBiZSByZXBsYWNlZCBieSBncmVwIC1FIGFu ZCBncmVwIC1GLgogCisKICogTm90ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgMy43ICgy MDIxLTA4LTE0KSBbc3RhYmxlXQogCiAqKiBDaGFuZ2VzIGluIGJlaGF2aW9yCmRpZmYgLS1n aXQgYS9UT0RPIGIvVE9ETwppbmRleCA1MjExYWMxLi4wYjgyZWZmIDEwMDY0NAotLS0gYS9U T0RPCisrKyBiL1RPRE8KQEAgLTMxLDEzICszMSwxMyBAQCBHTlUgZ3JlcCBvcmlnaW5hbGx5 IGRpZCAzMi1iaXQgYXJpdGhtZXRpYy4gIEFsdGhvdWdoIGl0IGhhcyBtb3ZlZCB0bwogNjQt Yml0IG9uIDY0LWJpdCBwbGF0Zm9ybXMgYnkgdXNpbmcgdHlwZXMgbGlrZSBwdHJkaWZmX3Qg YW5kIHNpemVfdCwKIHRoaXMgY29udmVyc2lvbiBoYXMgbm90IGJlZW4gZW50aXJlbHkgc3lz dGVtYXRpYyBhbmQgc2hvdWxkIGJlIGNoZWNrZWQuCiAKLUxhenkgZHluYW1pYyBsaW5raW5n IG9mIGxpYnBjcmUuICBTZWUgRGViaWFu4oCZcyAwMy0zOTcyNjItZGxvcGVuLXBjcmUucGF0 Y2guCitMYXp5IGR5bmFtaWMgbGlua2luZyBvZiB0aGUgUENSRSBsaWJyYXJ5LgogCiBDaGVj ayBGcmVlQlNE4oCZcyBpbnRlZ3JhdGlvbiBvZiB6Z3JlcCAoLVopIGFuZCBiemdyZXAgKC1K KSBpbiBvbmUKIGJpbmFyeS4gIElzIHRoZXJlIGEgcG9zc2liaWxpdHkgb2YgZG9pbmcgZXZl biBiZXR0ZXIgYnkgYXV0b21hdGljYWxseQogY2hlY2tpbmcgdGhlIG1hZ2ljIG9mIGJpbmFy eSBmaWxlcyBvdXJzZWx2ZXMgKDB4MUYgMHg4QiBmb3IgZ3ppcCwgMHgxRgogMHg5RCBmb3Ig Y29tcHJlc3MsIGFuZCAweDQyIDB4NUEgMHg2OCBmb3IgYnppcDIpPyAgT25jZSB3aGF0IHRv IGRvIHdpdGgKLWxpYnBjcmUgaXMgZGVjaWRlZCwgZG8gdGhlIHNhbWUgZm9yIGxpYnogYW5k IGxpYmJ6Mi4KK3RoZSBQQ1JFIGxpYnJhcnkgaXMgZGVjaWRlZCwgZG8gdGhlIHNhbWUgZm9y IGxpYnogYW5kIGxpYmJ6Mi4KIAogDAogPT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0 IGEvbTQvcGNyZS5tNCBiL200L3BjcmUubTQKaW5kZXggYTFjNmM4Mi4uOTcwYTIyOSAxMDA2 NDQKLS0tIGEvbTQvcGNyZS5tNAorKysgYi9tNC9wY3JlLm00CkBAIC05LDcgKzksNyBAQCBB Q19ERUZVTihbZ2xfRlVOQ19QQ1JFXSwKIFsKICAgQUNfQVJHX0VOQUJMRShbcGVybC1yZWdl eHBdLAogICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtcGVybC1yZWdleHBdLAotICAg ICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChwY3JlMikgc3VwcG9ydF0p LAorICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlIHBlcmwtcmVnZXhwIChQQ1JFKSBzdXBw b3J0XSksCiAgICAgW2Nhc2UgJGVuYWJsZXZhbCBpbgogICAgICAgIHllc3xubykgdGVzdF9w Y3JlPSRlbmFibGV2YWw7OwogICAgICAgICopIEFDX01TR19FUlJPUihbaW52YWxpZCB2YWx1 ZSAkZW5hYmxldmFsIGZvciAtLWRpc2FibGUtcGVybC1yZWdleHBdKTs7CkBAIC00MiwxNiAr NDIsMTYgQEAgQUNfREVGVU4oW2dsX0ZVTkNfUENSRV0sCiAgICAgaWYgdGVzdCAiJHBjcmVf Y3ZfaGF2ZV9wY3JlMl9jb21waWxlIiA9IHllczsgdGhlbgogICAgICAgdXNlX3BjcmU9eWVz CiAgICAgZWxpZiB0ZXN0ICR0ZXN0X3BjcmUgPSBtYXliZTsgdGhlbgotICAgICAgQUNfTVNH X1dBUk4oW0FDX1BBQ0tBR0VfTkFNRSB3aWxsIGJlIGJ1aWx0IHdpdGhvdXQgcGNyZSBzdXBw b3J0Ll0pCisgICAgICBBQ19NU0dfV0FSTihbQUNfUEFDS0FHRV9OQU1FIHdpbGwgYmUgYnVp bHQgd2l0aG91dCBQQ1JFIHN1cHBvcnQuXSkKICAgICBlbHNlCi0gICAgICBBQ19NU0dfRVJS T1IoW3BjcmUgc3VwcG9ydCBub3QgYXZhaWxhYmxlXSkKKyAgICAgIEFDX01TR19FUlJPUihb UENSRSBzdXBwb3J0IG5vdCBhdmFpbGFibGVdKQogICAgIGZpCiAgIGZpCiAKICAgaWYgdGVz dCAkdXNlX3BjcmUgPSB5ZXM7IHRoZW4KICAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENSRV0s IFsxXSwKICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgUGVybCBDb21wYXRp YmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKLSAgICAgICBsaWJyYXJ5ICgtbHBjcmUyKS5dKQor ICAgICAgIGxpYnJhcnkuXSkKICAgZWxzZQogICAgIFBDUkVfQ0ZMQUdTPQogICAgIFBDUkVf TElCUz0KZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5j CmluZGV4IDYzMDY3OGIuLmRhYTBjNDIgMTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMK KysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTYsOSArMTYsNiBAQAogICAgRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEK ICAgIDAyMTEwLTEzMDEsIFVTQS4gICovCiAKLS8qIFdyaXR0ZW4gQXVndXN0IDE5OTIgYnkg TWlrZSBIYWVydGVsLiAqLwotLyogVXBkYXRlZCBmb3IgUENSRTIgYnkgQ2FybG8gQXJlbmFz LiAqLwotCiAjaW5jbHVkZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSAic2VhcmNoLmgiCiAjaW5j bHVkZSAiZGllLmgiCkBAIC0yNiwyNCArMjMsMjcgQEAKICNkZWZpbmUgUENSRTJfQ09ERV9V TklUX1dJRFRIIDgKICNpbmNsdWRlIDxwY3JlMi5oPgogCi0vKiBOZWVkZWQgZm9yIGJhY2t3 YXJkIGNvbXBhdGliaWxpdHkgZm9yIFBDUkUyIDwgMTAuMzAgICovCisvKiBGb3IgUENSRTIg PCAxMC4zMC4gICovCiAjaWZuZGVmIFBDUkUyX0NPTkZJR19ERVBUSExJTUlUCi0jZGVmaW5l IFBDUkUyX0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05MSU1JVAot I2RlZmluZSBQQ1JFMl9FUlJPUl9ERVBUSExJTUlUICBQQ1JFMl9FUlJPUl9SRUNVUlNJT05M SU1JVAotI2RlZmluZSBwY3JlMl9zZXRfZGVwdGhfbGltaXQgICBwY3JlMl9zZXRfcmVjdXJz aW9uX2xpbWl0CisjIGRlZmluZSBQQ1JFMl9DT05GSUdfREVQVEhMSU1JVCBQQ1JFMl9DT05G SUdfUkVDVVJTSU9OTElNSVQKKyMgZGVmaW5lIFBDUkUyX0VSUk9SX0RFUFRITElNSVQgUENS RTJfRVJST1JfUkVDVVJTSU9OTElNSVQKKyMgZGVmaW5lIHBjcmUyX3NldF9kZXB0aF9saW1p dCBwY3JlMl9zZXRfcmVjdXJzaW9uX2xpbWl0CiAjZW5kaWYKIAogc3RydWN0IHBjcmVfY29t cAogewotICAvKiBUaGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXplLiAgKi8KLSAg cGNyZTJfaml0X3N0YWNrICpqaXRfc3RhY2s7Ci0gIFBDUkUyX1NJWkUgaml0X3N0YWNrX3Np emU7Ci0KICAgLyogQ29tcGlsZWQgaW50ZXJuYWwgZm9ybSBvZiBhIFBlcmwgcmVndWxhciBl eHByZXNzaW9uLiAgKi8KICAgcGNyZTJfY29kZSAqY3JlOworCisgIC8qIE1hdGNoIGNvbnRl eHQgYW5kIGRhdGEgYmxvY2suICAqLwogICBwY3JlMl9tYXRjaF9jb250ZXh0ICptY29udGV4 dDsKICAgcGNyZTJfbWF0Y2hfZGF0YSAqZGF0YTsKLSAgLyogVGFibGUsIGluZGV4ZWQgYnkg ISAoZmxhZyAmIFBDUkVfTk9UQk9MKSwgb2Ygd2hldGhlciB0aGUgZW1wdHkKKworICAvKiBU aGUgSklUIHN0YWNrIGFuZCBpdHMgbWF4aW11bSBzaXplLiAgKi8KKyAgcGNyZTJfaml0X3N0 YWNrICpqaXRfc3RhY2s7CisgIFBDUkUyX1NJWkUgaml0X3N0YWNrX3NpemU7CisKKyAgLyog VGFibGUsIGluZGV4ZWQgYnkgISAoZmxhZyAmIFBDUkUyX05PVEJPTCksIG9mIHdoZXRoZXIg dGhlIGVtcHR5CiAgICAgIHN0cmluZyBtYXRjaGVzIHdoZW4gdGhhdCBmbGFnIGlzIHVzZWQu ICAqLwogICBpbnQgZW1wdHlfbWF0Y2hbMl07CiB9OwpAQCAtNTksNyArNTksNyBAQCBqaXRf ZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIFBDUkUy X1NJWkUgc2VhcmNoX2J5dGVzLAogewogICB3aGlsZSAodHJ1ZSkKICAgICB7Ci0gICAgICBp bnQgZSA9IHBjcmUyX21hdGNoIChwYy0+Y3JlLCAoUENSRTJfU1BUUilzdWJqZWN0LCBzZWFy Y2hfYnl0ZXMsCisgICAgICBpbnQgZSA9IHBjcmUyX21hdGNoIChwYy0+Y3JlLCAoUENSRTJf U1BUUikgc3ViamVjdCwgc2VhcmNoX2J5dGVzLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VhcmNoX29mZnNldCwgb3B0aW9ucywgcGMtPmRhdGEsIHBjLT5tY29udGV4dCk7CiAg ICAgICBpZiAoZSA9PSBQQ1JFMl9FUlJPUl9KSVRfU1RBQ0tMSU1JVAogICAgICAgICAgICYm IDAgPCBwYy0+aml0X3N0YWNrX3NpemUgJiYgcGMtPmppdF9zdGFja19zaXplIDw9IElOVF9N QVggLyAyKQpAQCAtMTE4LDcgKzExOCw3IEBAIFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBp ZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFjdCkKICAgY2hhciAq cGF0bGltID0gcGF0dGVybiArIHNpemU7CiAgIGNoYXIgKm4gPSAoY2hhciAqKXJlOwogICBz dHJ1Y3QgcGNyZV9jb21wICpwYyA9IHhjYWxsb2MgKDEsIHNpemVvZiAoKnBjKSk7Ci0gIHBj cmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRf Y3JlYXRlKE5VTEwpOworICBwY3JlMl9jb21waWxlX2NvbnRleHQgKmNjb250ZXh0ID0gcGNy ZTJfY29tcGlsZV9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7CiAKICAgaWYgKGxvY2FsZWluZm8u bXVsdGlieXRlKQogICAgIHsKQEAgLTEyNiwxMSArMTI2LDExIEBAIFBjb21waWxlIChjaGFy ICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFj dCkKICAgICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIi1QIHN1cHBvcnRzIG9ubHkg dW5pYnl0ZSBhbmQgVVRGLTggbG9jYWxlcyIpKTsKICAgICAgIGZsYWdzIHw9IFBDUkUyX1VU RjsKICNpZiAwCi0gICAgICAvKiBkbyBub3QgbWF0Y2ggaW5kaXZpZHVhbCBjb2RlIHVuaXRz IGJ1dCBvbmx5IFVURi04ICAqLworICAgICAgLyogRG8gbm90IG1hdGNoIGluZGl2aWR1YWwg Y29kZSB1bml0cyBidXQgb25seSBVVEYtOC4gICovCiAgICAgICBmbGFncyB8PSBQQ1JFMl9O RVZFUl9CQUNLU0xBU0hfQzsKICNlbmRpZgogI2lmZGVmIFBDUkUyX01BVENIX0lOVkFMSURf VVRGCi0gICAgICAvKiBjb25zaWRlciBpbnZhbGlkIFVURi04IGFzIGEgYmFycmllciwgaW5z dGVhZCBvZiBlcnJvciAgKi8KKyAgICAgIC8qIENvbnNpZGVyIGludmFsaWQgVVRGLTggYXMg YSBiYXJyaWVyLCBpbnN0ZWFkIG9mIGVycm9yLiAgKi8KICAgICAgIGZsYWdzIHw9IFBDUkUy X01BVENIX0lOVkFMSURfVVRGOwogI2VuZGlmCiAgICAgfQpAQCAtMTQ5LDEzICsxNDksMTMg QEAgUGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBp Z25vcmVkLCBib29sIGV4YWN0KQogICBuICs9IHNpemU7CiAgIGlmIChtYXRjaF93b3JkcyAm JiAhbWF0Y2hfbGluZXMpCiAgICAgewotICAgIHN0cmNweSAobiwgd3N1ZmZpeCk7Ci0gICAg biArPSBzdHJsZW4od3N1ZmZpeCk7CisgICAgICBzdHJjcHkgKG4sIHdzdWZmaXgpOworICAg ICAgbiArPSBzdHJsZW4gKHdzdWZmaXgpOwogICAgIH0KICAgaWYgKG1hdGNoX2xpbmVzKQog ICAgIHsKLSAgICBzdHJjcHkgKG4sIHhzdWZmaXgpOwotICAgIG4gKz0gc3RybGVuKHhzdWZm aXgpOworICAgICAgc3RyY3B5IChuLCB4c3VmZml4KTsKKyAgICAgIG4gKz0gc3RybGVuICh4 c3VmZml4KTsKICAgICB9CiAKICAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250 ZXh0LCBwY3JlMl9tYWtldGFibGVzIChOVUxMKSk7CkBAIC0yMDQsOCArMjA0LDggQEAgUGV4 ZWN1dGUgKHZvaWQgKnZjcCwgY2hhciBjb25zdCAqYnVmLCBpZHhfdCBzaXplLCBpZHhfdCAq bWF0Y2hfc2l6ZSwKIAogICBkbwogICAgIHsKLSAgICAgIC8qIFNlYXJjaCBsaW5lIGJ5IGxp bmUuICBBbHRob3VnaCB0aGlzIGNvZGUgZm9ybWVybHkgdXNlZAotICAgICAgICAgUENSRV9N VUxUSUxJTkUgZm9yIHBlcmZvcm1hbmNlLCB0aGUgcGVyZm9ybWFuY2Ugd2Fzbid0IGFsd2F5 cworICAgICAgLyogU2VhcmNoIGxpbmUgYnkgbGluZS4gIEFsdGhvdWdoIHRoaXMgZm9ybWVy bHkgdXNlZCBzb21ldGhpbmcgbGlrZQorICAgICAgICAgUENSRTJfTVVMVElMSU5FIGZvciBw ZXJmb3JtYW5jZSwgdGhlIHBlcmZvcm1hbmNlIHdhc24ndCBhbHdheXMKICAgICAgICAgIGJl dHRlciBhbmQgdGhlIGNvcnJlY3RuZXNzIGlzc3VlcyB3ZXJlIHRvbyBwdXp6bGluZy4gIFNl ZQogICAgICAgICAgQnVnIzIyNjU1LiAgKi8KICAgICAgIGxpbmVfZW5kID0gcmF3bWVtY2hy IChwLCBlb2xieXRlKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3BjcmUtYWJvcnQgYi90ZXN0cy9w Y3JlLWFib3J0CmluZGV4IDUxY2VlMjUuLjc3MmExZDIgMTAwNzU1Ci0tLSBhL3Rlc3RzL3Bj cmUtYWJvcnQKKysrIGIvdGVzdHMvcGNyZS1hYm9ydApAQCAtMSw1ICsxLDUgQEAKICMhIC9i aW4vc2gKLSMgU2hvdyB0aGF0IGdyZXAgaGFuZGxlcyBQQ1JFJ3MgUENSRV9FUlJPUl9NQVRD SExJTUlULgorIyBTaG93IHRoYXQgZ3JlcCBoYW5kbGVzIFBDUkUyX0VSUk9SX01BVENITElN SVQuCiAjIEluIGdyZXAtMi44LCBpdCB3b3VsZCBhYm9ydC4KICMKICMgQ29weXJpZ2h0IChD KSAyMDExLTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0tIAoyLjMyLjAK Cg== --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0003-grep-Don-t-limit-jitstack_max-to-INT_MAX.patch" Content-Disposition: attachment; filename="0003-grep-Don-t-limit-jitstack_max-to-INT_MAX.patch" Content-Transfer-Encoding: base64 RnJvbSBlODk2ZDhiMGVjZGEwMzYyMzNkZmEyMGFjMGIxN2E2YWMzZDY1NDMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDIxOjMwOjI1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMy8xMl0gPT9VVEYtOD9xP2dyZXA6PTIwRG9uPUUyPTgwPTk5dD0yMGxpbWl0PTIwaml0 c3RhY2s/PQogPT9VVEYtOD9xPz01Rm1heD0yMHRvPTIwSU5UPTVGTUFYPz0KTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL3BjcmVzZWFyY2guYyAoaml0X2V4 ZWMpOiBSZW1vdmUgYXJiaXRyYXJ5IElOVF9NQVggbGltaXQgb24gSklUCnN0YWNrIHNpemUu Ci0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDggKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNl YXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCBkYWEwYzQyLi5iZjk2NmY4IDEwMDY0 NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTU5 LDEwICs1OSwxNiBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNoYXIgY29u c3QgKnN1YmplY3QsIFBDUkUyX1NJWkUgc2VhcmNoX2J5dGVzLAogewogICB3aGlsZSAodHJ1 ZSkKICAgICB7CisgICAgICAvKiBTVEFDS19HUk9XVEhfUkFURSBpcyB0YWtlbiBmcm9tIFBD UkUncyBzcmMvcGNyZTJfaml0X2NvbXBpbGUuYy4KKyAgICAgICAgIEdvaW5nIG92ZXIgdGhl IGppdHN0YWNrX21heCBsaW1pdCBjb3VsZCB0cmlnZ2VyIGFuIGludAorICAgICAgICAgb3Zl cmZsb3cgYnVnIHdpdGhpbiBQQ1JFLiAgKi8KKyAgICAgIGludCBTVEFDS19HUk9XVEhfUkFU RSA9IDgxOTI7CisgICAgICBzaXplX3Qgaml0c3RhY2tfbWF4ID0gU0laRV9NQVggLSAoU1RB Q0tfR1JPV1RIX1JBVEUgLSAxKTsKKwogICAgICAgaW50IGUgPSBwY3JlMl9tYXRjaCAocGMt PmNyZSwgKFBDUkUyX1NQVFIpIHN1YmplY3QsIHNlYXJjaF9ieXRlcywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlYXJjaF9vZmZzZXQsIG9wdGlvbnMsIHBjLT5kYXRhLCBwYy0+ bWNvbnRleHQpOwogICAgICAgaWYgKGUgPT0gUENSRTJfRVJST1JfSklUX1NUQUNLTElNSVQK LSAgICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19zaXplICYmIHBjLT5qaXRfc3RhY2tf c2l6ZSA8PSBJTlRfTUFYIC8gMikKKyAgICAgICAgICAmJiAwIDwgcGMtPmppdF9zdGFja19z aXplICYmIHBjLT5qaXRfc3RhY2tfc2l6ZSA8PSBqaXRzdGFja19tYXggLyAyKQogICAgICAg ICB7CiAgICAgICAgICAgUENSRTJfU0laRSBvbGRfc2l6ZSA9IHBjLT5qaXRfc3RhY2tfc2l6 ZTsKICAgICAgICAgICBQQ1JFMl9TSVpFIG5ld19zaXplID0gcGMtPmppdF9zdGFja19zaXpl ID0gb2xkX3NpemUgKiAyOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0004-grep-improve-pcre2_get_error_message-comments.patch" Content-Disposition: attachment; filename="0004-grep-improve-pcre2_get_error_message-comments.patch" Content-Transfer-Encoding: base64 RnJvbSA4YzljZWI4ODQzNDZjZTI1ZjE1M2ZkMjM2YzI0NWIzNzEzMTgxZjIyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDEyIE5vdiAyMDIxIDIxOjM0OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNC8xMl0gZ3JlcDogaW1wcm92ZSBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSBjb21tZW50 cwoKKiBzcmMvcGNyZXNlYXJjaC5jIChQY29tcGlsZSk6IEltcHJvdmUgY29tbWVudHMgcmUK cGNyZTJfZ2V0X2Vycm9yX21lc3NhZ2UgYnVmZmVyLgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMg fCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5j CmluZGV4IGJmOTY2ZjguLjI4NmUxZGMgMTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMK KysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtMTEyLDcgKzExMiw2IEBAIFBjb21waWxlIChj aGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBl eGFjdCkKIHsKICAgUENSRTJfU0laRSBlOwogICBpbnQgZWM7Ci0gIFBDUkUyX1VDSEFSOCBl cFsxMjhdOyAvKiAxMjAgY29kZSB1bml0cyBpcyBzdWdnZXN0ZWQgdG8gYXZvaWQgdHJ1bmNh dGlvbiAgKi8KICAgc3RhdGljIGNoYXIgY29uc3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86 IjsKICAgc3RhdGljIGNoYXIgY29uc3Qgd3N1ZmZpeFtdID0gIikoPyFcXHcpIjsKICAgc3Rh dGljIGNoYXIgY29uc3QgeHByZWZpeFtdID0gIl4oPzoiOwpAQCAtMTY4LDcgKzE2Nyw5IEBA IFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdu b3JlZCwgYm9vbCBleGFjdCkKICAgcGMtPmNyZSA9IHBjcmUyX2NvbXBpbGUgKHJlLCBuIC0g KGNoYXIgKilyZSwgZmxhZ3MsICZlYywgJmUsIGNjb250ZXh0KTsKICAgaWYgKCFwYy0+Y3Jl KQogICAgIHsKLSAgICAgIHBjcmUyX2dldF9lcnJvcl9tZXNzYWdlIChlYywgZXAsIHNpemVv ZiAoZXApKTsKKyAgICAgIGVudW0geyBFUlJCVUZTSVogPSAyNTYgfTsgLyogVGFrZW4gZnJv bSBwY3JlMmdyZXAuYyBFUlJCVUZTSVouICAqLworICAgICAgUENSRTJfVUNIQVI4IGVwW0VS UkJVRlNJWl07CisgICAgICBwY3JlMl9nZXRfZXJyb3JfbWVzc2FnZSAoZWMsIGVwLCBzaXpl b2YgZXApOwogICAgICAgZGllIChFWElUX1RST1VCTEUsIDAsICIlcyIsIGVwKTsKICAgICB9 CiAKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0005-grep-speed-up-fix-bad-UTF8-check-with-P.patch" Content-Disposition: attachment; filename="0005-grep-speed-up-fix-bad-UTF8-check-with-P.patch" Content-Transfer-Encoding: base64 RnJvbSBhMWI0NDQwMjcyMzFjYWFjMjQ3YWIwZmJkNWJlOGJkYThlYjNkNjI2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDEzIE5vdiAyMDIxIDEzOjUyOjIzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNS8xMl0gZ3JlcDogc3BlZWQgdXAsIGZpeCBiYWQtVVRGOCBjaGVjayB3aXRoIC1QCgoq IHNyYy9wY3Jlc2VhcmNoLmMgKGJhZF91dGY4X2Zyb21fcGNyZTIpOiBOZXcgZnVuY3Rpb24u ICBGaXggYnVnCndoZXJlIFBDUkUyX0VSUk9SX1VURjhfRVJSMSB3YXMgbm90IHRyZWF0ZWQg YXMgYW4gZW5jb2RpbmcgZXJyb3IuCkltcHJvdmUgcGVyZm9ybWFuY2Ugd2hlbiBQQ1JFMl9N QVRDSF9JTlZBTElEX1VURiBpcyBkZWZpbmVkLgooUGV4ZWN1dGUpOiBVc2UgaXQuCi0tLQog c3JjL3BjcmVzZWFyY2guYyB8IDE2ICsrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9w Y3Jlc2VhcmNoLmMgYi9zcmMvcGNyZXNlYXJjaC5jCmluZGV4IDI4NmUxZGMuLjk1M2FjYTIg MTAwNjQ0Ci0tLSBhL3NyYy9wY3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpA QCAtMTA0LDYgKzEwNCwxOCBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAqcGMsIGNo YXIgY29uc3QgKnN1YmplY3QsIFBDUkUyX1NJWkUgc2VhcmNoX2J5dGVzLAogICAgIH0KIH0K IAorLyogUmV0dXJuIHRydWUgaWYgRSBpcyBhbiBlcnJvciBjb2RlIGZvciBiYWQgVVRGLTgs IGFuZCBpZiBwY3JlMl9tYXRjaAorICAgY291bGQgcmV0dXJuIEUgYmVjYXVzZSBQQ1JFIGxh Y2tzIFBDUkUyX01BVENIX0lOVkFMSURfVVRGLiAgKi8KK3N0YXRpYyBib29sCitiYWRfdXRm OF9mcm9tX3BjcmUyIChpbnQgZSkKK3sKKyNpZmRlZiBQQ1JFMl9NQVRDSF9JTlZBTElEX1VU RgorICByZXR1cm4gZmFsc2U7CisjZWxzZQorICByZXR1cm4gUENSRTJfRVJST1JfVVRGOF9F UlIyMSA8PSBlICYmIGUgPD0gUENSRTJfRVJST1JfVVRGOF9FUlIxOworI2VuZGlmCit9CisK IC8qIENvbXBpbGUgdGhlIC1QIHN0eWxlIFBBVFRFUk4sIGNvbnRhaW5pbmcgU0laRSBieXRl cyB0aGF0IGFyZQogICAgZm9sbG93ZWQgYnkgJ1xuJy4gIFJldHVybiBhIGRlc2NyaXB0aW9u IG9mIHRoZSBjb21waWxlZCBwYXR0ZXJuLiAgKi8KIApAQCAtMjQ4LDkgKzI2MCw5IEBAIFBl eGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4X3Qgc2l6ZSwgaWR4X3Qg Km1hdGNoX3NpemUsCiAKICAgICAgICAgICBlID0gaml0X2V4ZWMgKHBjLCBzdWJqZWN0LCBs aW5lX2VuZCAtIHN1YmplY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfb2Zm c2V0LCBvcHRpb25zKTsKLSAgICAgICAgICAvKiBQQ1JFMiBwcm92aWRlcyAyMiBkaWZmZXJl bnQgZXJyb3IgY29kZXMgZm9yIGJhZCBVVEYtOCAgKi8KLSAgICAgICAgICBpZiAoISAoUENS RTJfRVJST1JfVVRGOF9FUlIyMSA8PSBlICYmIGUgPCBQQ1JFMl9FUlJPUl9VVEY4X0VSUjEp KQorICAgICAgICAgIGlmICghYmFkX3V0ZjhfZnJvbV9wY3JlMiAoZSkpCiAgICAgICAgICAg ICBicmVhazsKKwogICAgICAgICAgIFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBwY3JlMl9n ZXRfc3RhcnRjaGFyIChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNoX29mZnNl dCA8PSB2YWxpZF9ieXRlcykKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0006-grep-prefer-signed-integers.patch" Content-Disposition: attachment; filename="0006-grep-prefer-signed-integers.patch" Content-Transfer-Encoding: base64 RnJvbSBjYjI3MjVlMjhlZWQ4MzJjNmQyOTVjZGIyM2UzYzBiNzMwMDI1MjFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDEzIE5vdiAyMDIxIDE3OjMwOjIzIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNi8xMl0gZ3JlcDogcHJlZmVyIHNpZ25lZCBpbnRlZ2VycwoKKiBzcmMvcGNyZXNlYXJj aC5jIChzdHJ1Y3QgcGNyZV9jb21wLCBqaXRfZXhlYywgUGV4ZWN1dGUpOgpQcmVmZXIgc2ln bmVkIHRvIHVuc2lnbmVkIHR5cGVzIHdoZW4gZWl0aGVyIHdpbGwgZG8uCihqaXRfZXhlYyk6 IFVzZSBJTlRfTVVMVElQTFlfV1JBUFYgaW5zdGVhZCBvZiBkb2luZyBpdCBieSBoYW5kLgoo UGV4ZWN1dGUpOiBPbWl0IGxpbmUgbGVuZ3RoIGxpbWl0IHRlc3QgdGhhdCBpcyBubyBsb25n ZXIKbmVlZGVkIHdpdGggUENSRTIuCi0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDI0ICsrKysr KysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9wY3Jlc2VhcmNoLmMgYi9zcmMv cGNyZXNlYXJjaC5jCmluZGV4IDk1M2FjYTIuLmZkZWNiZTggMTAwNjQ0Ci0tLSBhL3NyYy9w Y3Jlc2VhcmNoLmMKKysrIGIvc3JjL3BjcmVzZWFyY2guYwpAQCAtNDEsNyArNDEsNyBAQCBz dHJ1Y3QgcGNyZV9jb21wCiAKICAgLyogVGhlIEpJVCBzdGFjayBhbmQgaXRzIG1heGltdW0g c2l6ZS4gICovCiAgIHBjcmUyX2ppdF9zdGFjayAqaml0X3N0YWNrOwotICBQQ1JFMl9TSVpF IGppdF9zdGFja19zaXplOworICBpZHhfdCBqaXRfc3RhY2tfc2l6ZTsKIAogICAvKiBUYWJs ZSwgaW5kZXhlZCBieSAhIChmbGFnICYgUENSRTJfTk9UQk9MKSwgb2Ygd2hldGhlciB0aGUg ZW1wdHkKICAgICAgc3RyaW5nIG1hdGNoZXMgd2hlbiB0aGF0IGZsYWcgaXMgdXNlZC4gICov CkBAIC01NCwyNCArNTQsMjQgQEAgc3RydWN0IHBjcmVfY29tcAogICAgb3B0aW9ucyBPUFRJ T05TLgogICAgUmV0dXJuIHRoZSAobm9ubmVnYXRpdmUpIG1hdGNoIGNvdW50IG9yIGEgKG5l Z2F0aXZlKSBlcnJvciBudW1iZXIuICAqLwogc3RhdGljIGludAotaml0X2V4ZWMgKHN0cnVj dCBwY3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBQQ1JFMl9TSVpFIHNlYXJj aF9ieXRlcywKLSAgICAgICAgICBQQ1JFMl9TSVpFIHNlYXJjaF9vZmZzZXQsIGludCBvcHRp b25zKQoraml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBjLCBjaGFyIGNvbnN0ICpzdWJq ZWN0LCBpZHhfdCBzZWFyY2hfYnl0ZXMsCisgICAgICAgICAgaWR4X3Qgc2VhcmNoX29mZnNl dCwgaW50IG9wdGlvbnMpCiB7CiAgIHdoaWxlICh0cnVlKQogICAgIHsKICAgICAgIC8qIFNU QUNLX0dST1dUSF9SQVRFIGlzIHRha2VuIGZyb20gUENSRSdzIHNyYy9wY3JlMl9qaXRfY29t cGlsZS5jLgogICAgICAgICAgR29pbmcgb3ZlciB0aGUgaml0c3RhY2tfbWF4IGxpbWl0IGNv dWxkIHRyaWdnZXIgYW4gaW50Ci0gICAgICAgICBvdmVyZmxvdyBidWcgd2l0aGluIFBDUkUu ICAqLworICAgICAgICAgb3ZlcmZsb3cgYnVnLiAgKi8KICAgICAgIGludCBTVEFDS19HUk9X VEhfUkFURSA9IDgxOTI7Ci0gICAgICBzaXplX3Qgaml0c3RhY2tfbWF4ID0gU0laRV9NQVgg LSAoU1RBQ0tfR1JPV1RIX1JBVEUgLSAxKTsKKyAgICAgIGlkeF90IGppdHN0YWNrX21heCA9 IE1JTiAoSURYX01BWCwgU0laRV9NQVggLSAoU1RBQ0tfR1JPV1RIX1JBVEUgLSAxKSk7CiAK ICAgICAgIGludCBlID0gcGNyZTJfbWF0Y2ggKHBjLT5jcmUsIChQQ1JFMl9TUFRSKSBzdWJq ZWN0LCBzZWFyY2hfYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hf b2Zmc2V0LCBvcHRpb25zLCBwYy0+ZGF0YSwgcGMtPm1jb250ZXh0KTsKICAgICAgIGlmIChl ID09IFBDUkUyX0VSUk9SX0pJVF9TVEFDS0xJTUlUCi0gICAgICAgICAgJiYgMCA8IHBjLT5q aXRfc3RhY2tfc2l6ZSAmJiBwYy0+aml0X3N0YWNrX3NpemUgPD0gaml0c3RhY2tfbWF4IC8g MikKKyAgICAgICAgICAmJiBwYy0+aml0X3N0YWNrX3NpemUgPD0gaml0c3RhY2tfbWF4IC8g MikKICAgICAgICAgewotICAgICAgICAgIFBDUkUyX1NJWkUgb2xkX3NpemUgPSBwYy0+aml0 X3N0YWNrX3NpemU7Ci0gICAgICAgICAgUENSRTJfU0laRSBuZXdfc2l6ZSA9IHBjLT5qaXRf c3RhY2tfc2l6ZSA9IG9sZF9zaXplICogMjsKKyAgICAgICAgICBpZHhfdCBvbGRfc2l6ZSA9 IHBjLT5qaXRfc3RhY2tfc2l6ZTsKKyAgICAgICAgICBpZHhfdCBuZXdfc2l6ZSA9IHBjLT5q aXRfc3RhY2tfc2l6ZSA9IG9sZF9zaXplICogMjsKIAogICAgICAgICAgIGlmIChwYy0+aml0 X3N0YWNrKQogICAgICAgICAgICAgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKHBjLT5qaXRfc3Rh Y2spOwpAQCAtOTAsMTAgKzkwLDggQEAgaml0X2V4ZWMgKHN0cnVjdCBwY3JlX2NvbXAgKnBj LCBjaGFyIGNvbnN0ICpzdWJqZWN0LCBQQ1JFMl9TSVpFIHNlYXJjaF9ieXRlcywKICAgICAg ICAgewogICAgICAgICAgIHVpbnQzMl90IGxpbTsKICAgICAgICAgICBwY3JlMl9jb25maWcg KFBDUkUyX0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKLSAgICAgICAgICBpZiAobGltID49 IFVJTlQzMl9NQVggLyAyKQorICAgICAgICAgIGlmIChJTlRfTVVMVElQTFlfV1JBUFYgKGxp bSwgMiwgJmxpbSkpCiAgICAgICAgICAgICByZXR1cm4gZTsKLQotICAgICAgICAgIGxpbSA8 PD0gMTsKICAgICAgICAgICBpZiAoIXBjLT5tY29udGV4dCkKICAgICAgICAgICAgIHBjLT5t Y29udGV4dCA9IHBjcmUyX21hdGNoX2NvbnRleHRfY3JlYXRlIChOVUxMKTsKIApAQCAtMjQz LDcgKzI0MSw3IEBAIFBleGVjdXRlICh2b2lkICp2Y3AsIGNoYXIgY29uc3QgKmJ1ZiwgaWR4 X3Qgc2l6ZSwgaWR4X3QgKm1hdGNoX3NpemUsCiAgICAgICAgICAgICAgIGJvbCA9IGZhbHNl OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgUENSRTJfU0laRSBzZWFyY2hfb2Zmc2V0 ID0gcCAtIHN1YmplY3Q7CisgICAgICAgICAgaWR4X3Qgc2VhcmNoX29mZnNldCA9IHAgLSBz dWJqZWN0OwogCiAgICAgICAgICAgLyogQ2hlY2sgZm9yIGFuIGVtcHR5IG1hdGNoOyB0aGlz IGlzIGZhc3RlciB0aGFuIGxldHRpbmcKICAgICAgICAgICAgICBQQ1JFIGRvIGl0LiAgKi8K QEAgLTI2Myw3ICsyNjEsNyBAQCBQZXhlY3V0ZSAodm9pZCAqdmNwLCBjaGFyIGNvbnN0ICpi dWYsIGlkeF90IHNpemUsIGlkeF90ICptYXRjaF9zaXplLAogICAgICAgICAgIGlmICghYmFk X3V0ZjhfZnJvbV9wY3JlMiAoZSkpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAg IFBDUkUyX1NJWkUgdmFsaWRfYnl0ZXMgPSBwY3JlMl9nZXRfc3RhcnRjaGFyIChwYy0+ZGF0 YSk7CisgICAgICAgICAgaWR4X3QgdmFsaWRfYnl0ZXMgPSBwY3JlMl9nZXRfc3RhcnRjaGFy IChwYy0+ZGF0YSk7CiAKICAgICAgICAgICBpZiAoc2VhcmNoX29mZnNldCA8PSB2YWxpZF9i eXRlcykKICAgICAgICAgICAgIHsKLS0gCjIuMzIuMAoK --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0007-grep-use-PCRE2_EXTRA_MATCH_LINE.patch" Content-Disposition: attachment; filename="0007-grep-use-PCRE2_EXTRA_MATCH_LINE.patch" Content-Transfer-Encoding: base64 RnJvbSBiMDhmZDk2ZjI4Y2M4YjJjNWIxYWZiMmRkZjBmMjY0MjVmMzc3OWFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA4OjEyOjU5IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwNy8xMl0gZ3JlcDogdXNlIFBDUkUyX0VYVFJBX01BVENIX0xJTkUKCiogc3JjL3BjcmVz ZWFyY2guYyAoUGNvbXBpbGUpOiBJZiBhdmFpbGFibGUsIHVzZQpQQ1JFMl9FWFRSQV9NQVRD SF9MSU5FIGluc3RlYWQgb2YgZG9pbmcgaXQgYnkgaGFuZC4KU2ltcGxpZnkgY29uc3RydWN0 aW9uIG9mIHN1YnN0aXR1dGUgcmVndWxhciBleHByZXNzaW9uLgotLS0KIHNyYy9wY3Jlc2Vh cmNoLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwpp bmRleCBmZGVjYmU4Li42ZTFmMjE3IDEwMDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisr KyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTEyMiwxNiArMTIyLDggQEAgUGNvbXBpbGUgKGNo YXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29sIGV4 YWN0KQogewogICBQQ1JFMl9TSVpFIGU7CiAgIGludCBlYzsKLSAgc3RhdGljIGNoYXIgY29u c3Qgd3ByZWZpeFtdID0gIig/PCFcXHcpKD86IjsKLSAgc3RhdGljIGNoYXIgY29uc3Qgd3N1 ZmZpeFtdID0gIikoPyFcXHcpIjsKLSAgc3RhdGljIGNoYXIgY29uc3QgeHByZWZpeFtdID0g Il4oPzoiOwotICBzdGF0aWMgY2hhciBjb25zdCB4c3VmZml4W10gPSAiKSQiOwotICBpbnQg Zml4X2xlbl9tYXggPSBNQVggKHNpemVvZiB3cHJlZml4IC0gMSArIHNpemVvZiB3c3VmZml4 IC0gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgeHByZWZpeCAtIDEgKyBz aXplb2YgeHN1ZmZpeCAtIDEpOwotICB1bnNpZ25lZCBjaGFyICpyZSA9IHhtYWxsb2MgKHNp emUgKyBmaXhfbGVuX21heCArIDEpOwogICBpbnQgZmxhZ3MgPSBQQ1JFMl9ET0xMQVJfRU5E T05MWSB8IChtYXRjaF9pY2FzZSA/IFBDUkUyX0NBU0VMRVNTIDogMCk7CiAgIGNoYXIgKnBh dGxpbSA9IHBhdHRlcm4gKyBzaXplOwotICBjaGFyICpuID0gKGNoYXIgKilyZTsKICAgc3Ry dWN0IHBjcmVfY29tcCAqcGMgPSB4Y2FsbG9jICgxLCBzaXplb2YgKCpwYykpOwogICBwY3Jl Ml9jb21waWxlX2NvbnRleHQgKmNjb250ZXh0ID0gcGNyZTJfY29tcGlsZV9jb250ZXh0X2Ny ZWF0ZSAoTlVMTCk7CiAKQEAgLTE1NCwyNyArMTQ2LDQxIEBAIFBjb21waWxlIChjaGFyICpw YXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwgYm9vbCBleGFjdCkK ICAgaWYgKHJhd21lbWNociAocGF0dGVybiwgJ1xuJykgIT0gcGF0bGltKQogICAgIGRpZSAo RVhJVF9UUk9VQkxFLCAwLCBfKCJ0aGUgLVAgb3B0aW9uIG9ubHkgc3VwcG9ydHMgYSBzaW5n bGUgcGF0dGVybiIpKTsKIAotICAqbiA9ICdcMCc7Ci0gIGlmIChtYXRjaF93b3JkcykKLSAg ICBzdHJjcHkgKG4sIHdwcmVmaXgpOworICB2b2lkICpyZV9zdG9yYWdlID0gTlVMTDsKICAg aWYgKG1hdGNoX2xpbmVzKQotICAgIHN0cmNweSAobiwgeHByZWZpeCk7Ci0gIG4gKz0gc3Ry bGVuIChuKTsKLSAgbWVtY3B5IChuLCBwYXR0ZXJuLCBzaXplKTsKLSAgbiArPSBzaXplOwot ICBpZiAobWF0Y2hfd29yZHMgJiYgIW1hdGNoX2xpbmVzKQogICAgIHsKLSAgICAgIHN0cmNw eSAobiwgd3N1ZmZpeCk7Ci0gICAgICBuICs9IHN0cmxlbiAod3N1ZmZpeCk7CisjaWZkZWYg UENSRTJfRVhUUkFfTUFUQ0hfTElORQorICAgICAgcGNyZTJfc2V0X2NvbXBpbGVfZXh0cmFf b3B0aW9ucyAoY2NvbnRleHQsIFBDUkUyX0VYVFJBX01BVENIX0xJTkUpOworI2Vsc2UKKyAg ICAgIHN0YXRpYyBjaGFyIGNvbnN0IC8qIFRoZXNlIHNpemVzIG9taXQgdHJhaWxpbmcgTlVM LiAgKi8KKyAgICAgICAgeHByZWZpeFs0XSA9ICJeKD86IiwgeHN1ZmZpeFsyXSA9ICIpJCI7 CisgICAgICBpZHhfdCByZV9zaXplID0gc2l6ZSArIHNpemVvZiB4cHJlZml4ICsgc2l6ZW9m IHhzdWZmaXg7CisgICAgICBjaGFyICpyZSA9IHJlX3N0b3JhZ2UgPSB4aW1hbGxvYyAocmVf c2l6ZSk7CisgICAgICBjaGFyICpyZXogPSBtZW1wY3B5IChyZSwgeHByZWZpeCwgc2l6ZW9m IHhwcmVmaXgpOworICAgICAgcmV6ID0gbWVtcGNweSAocmV6LCBwYXR0ZXJuLCBzaXplKTsK KyAgICAgIG1lbWNweSAocmV6LCB4c3VmZml4LCBzaXplb2YgeHN1ZmZpeCk7CisgICAgICBw YXR0ZXJuID0gcmU7CisgICAgICBzaXplID0gcmVfc2l6ZTsKKyNlbmRpZgogICAgIH0KLSAg aWYgKG1hdGNoX2xpbmVzKQorICBlbHNlIGlmIChtYXRjaF93b3JkcykKICAgICB7Ci0gICAg ICBzdHJjcHkgKG4sIHhzdWZmaXgpOwotICAgICAgbiArPSBzdHJsZW4gKHhzdWZmaXgpOwor ICAgICAgLyogUENSRTJfRVhUUkFfTUFUQ0hfV09SRCBpcyBpbmNvbXBhdGlibGUgd2l0aCBn cmVwIC13OworICAgICAgICAgZG8gdGhpbmdzIHRoZSBncmVwIHdheS4gICovCisgICAgICBz dGF0aWMgY2hhciBjb25zdCAvKiBUaGVzZSBzaXplcyBvbWl0IHRyYWlsaW5nIE5VTC4gICov CisgICAgICAgIHdwcmVmaXhbMTBdID0gIig/PCFcXHcpKD86Iiwgd3N1ZmZpeFs3XSA9ICIp KD8hXFx3KSI7CisgICAgICBpZHhfdCByZV9zaXplID0gc2l6ZSArIHNpemVvZiB3cHJlZml4 ICsgc2l6ZW9mIHdzdWZmaXg7CisgICAgICBjaGFyICpyZSA9IHJlX3N0b3JhZ2UgPSB4aW1h bGxvYyAocmVfc2l6ZSk7CisgICAgICBjaGFyICpyZXogPSBtZW1wY3B5IChyZSwgd3ByZWZp eCwgc2l6ZW9mIHdwcmVmaXgpOworICAgICAgcmV6ID0gbWVtcGNweSAocmV6LCBwYXR0ZXJu LCBzaXplKTsKKyAgICAgIG1lbWNweSAocmV6LCB3c3VmZml4LCBzaXplb2Ygd3N1ZmZpeCk7 CisgICAgICBwYXR0ZXJuID0gcmU7CisgICAgICBzaXplID0gcmVfc2l6ZTsKICAgICB9CiAK ICAgcGNyZTJfc2V0X2NoYXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtldGFi bGVzIChOVUxMKSk7Ci0gIHBjLT5jcmUgPSBwY3JlMl9jb21waWxlIChyZSwgbiAtIChjaGFy ICopcmUsIGZsYWdzLCAmZWMsICZlLCBjY29udGV4dCk7CisgIHBjLT5jcmUgPSBwY3JlMl9j b21waWxlICgoUENSRTJfU1BUUikgcGF0dGVybiwgc2l6ZSwgZmxhZ3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZWMsICZlLCBjY29udGV4dCk7CiAgIGlmICghcGMtPmNyZSkK ICAgICB7CiAgICAgICBlbnVtIHsgRVJSQlVGU0laID0gMjU2IH07IC8qIFRha2VuIGZyb20g cGNyZTJncmVwLmMgRVJSQlVGU0laLiAgKi8KQEAgLTE4Myw2ICsxODksOCBAQCBQY29tcGls ZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJv b2wgZXhhY3QpCiAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwgIiVzIiwgZXApOwogICAg IH0KIAorICBmcmVlIChyZV9zdG9yYWdlKTsKKwogICBwYy0+ZGF0YSA9IHBjcmUyX21hdGNo X2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMtPmNyZSwgTlVMTCk7CiAKICAgZWMgPSBw Y3JlMl9qaXRfY29tcGlsZSAocGMtPmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKQEAgLTE5 NCw4ICsyMDIsNiBAQCBQY29tcGlsZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVn X3N5bnRheF90IGlnbm9yZWQsIGJvb2wgZXhhY3QpCiAgICAgICBwYy0+aml0X3N0YWNrX3Np emUgPSAzMiA8PCAxMDsKICAgICB9CiAKLSAgZnJlZSAocmUpOwotCiAgIHBjLT5lbXB0eV9t YXRjaFtmYWxzZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCBQQ1JFMl9OT1RCT0wpOwog ICBwYy0+ZW1wdHlfbWF0Y2hbdHJ1ZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCAwKTsK IAotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0008-grep-simplify-JIT-setup.patch" Content-Disposition: attachment; filename="0008-grep-simplify-JIT-setup.patch" Content-Transfer-Encoding: base64 RnJvbSBjMTFlYTQ1MmIwYmE0OGE0NzkyNmQ4NDRlMWVlN2QwNmE2NGUyMzU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA4OjE4OjQyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOC8xMl0gZ3JlcDogc2ltcGxpZnkgSklUIHNldHVwCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgoqIHNyYy9wY3Jlc2VhcmNoLmMgKFBjb21waWxlKTogU2ltcGxp Znkgc2luY2Ug4oCYZGll4oCZIGNhbm5vdCByZXR1cm4uCi0tLQogc3JjL3BjcmVzZWFyY2gu YyB8IDggKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2Vh cmNoLmMKaW5kZXggNmUxZjIxNy4uOTg5OGUwNCAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFy Y2guYworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0xOTYsMTEgKzE5Niw5IEBAIFBjb21w aWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdub3JlZCwg Ym9vbCBleGFjdCkKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMtPmNyZSwgUENSRTJf SklUX0NPTVBMRVRFKTsKICAgaWYgKGVjICYmIGVjICE9IFBDUkUyX0VSUk9SX0pJVF9CQURP UFRJT04gJiYgZWMgIT0gUENSRTJfRVJST1JfTk9NRU1PUlkpCiAgICAgZGllIChFWElUX1RS T1VCTEUsIDAsIF8oIkpJVCBpbnRlcm5hbCBlcnJvcjogJWQiKSwgZWMpOwotICBlbHNlCi0g ICAgewotICAgICAgLyogVGhlIFBDUkUgZG9jdW1lbnRhdGlvbiBzYXlzIHRoYXQgYSAzMiBL aUIgc3RhY2sgaXMgdGhlIGRlZmF1bHQuICAqLwotICAgICAgcGMtPmppdF9zdGFja19zaXpl ID0gMzIgPDwgMTA7Ci0gICAgfQorCisgIC8qIFRoZSBQQ1JFIGRvY3VtZW50YXRpb24gc2F5 cyB0aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZhdWx0LiAgKi8KKyAgcGMtPmppdF9z dGFja19zaXplID0gMzIgPDwgMTA7CiAKICAgcGMtPmVtcHR5X21hdGNoW2ZhbHNlXSA9IGpp dF9leGVjIChwYywgIiIsIDAsIDAsIFBDUkUyX05PVEJPTCk7CiAgIHBjLT5lbXB0eV9tYXRj aFt0cnVlXSA9IGppdF9leGVjIChwYywgIiIsIDAsIDAsIDApOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0009-grep-improve-memory-exhaustion-checking-with-P.patch" Content-Disposition: attachment; filename*0="0009-grep-improve-memory-exhaustion-checking-with-P.patch" Content-Transfer-Encoding: base64 RnJvbSAzZTdkZTFiNDVjN2U2ZGZhMmQ5MjMxNDJiYzQwZWUxZmJhNTg5YTI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA5OjM0OjE1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAwOS8xMl0gZ3JlcDogaW1wcm92ZSBtZW1vcnkgZXhoYXVzdGlvbiBjaGVja2luZyB3aXRo IC1QCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoqIHNyYy9wY3Jlc2Vh cmNoLmMgKHN0cnVjdCBwY3JlX2NvbXApOiBOZXcgbWVtYmVyIGdjb250ZXh0LgoocHJpdmF0 ZV9tYWxsb2MsIHByaXZhdGVfZnJlZSk6IE5ldyBmdW5jdGlvbnMuCihqaXRfZXhlYyk6IEl0 IGlzIE9LIHRvIGNhbGwgcGNyZTJfaml0X3N0YWNrX2ZyZWUgKE5VTEwpLCBzbyBzaW1wbGlm eS4KVXNlIGdjb250ZXh0IGZvciBhbGxvY2F0aW9uLiAgQ2hlY2sgZm9yIHBjcmUyX2ppdF9z dGFja19jcmVhdGUKZmFpbHVyZSwgc2luY2Ugc2xqaXQgYnlwYXNzZXMgcHJpdmF0ZV9tYWxs b2MuICBSZWRvIHRvIGF2b2lkIHR3bwrigJhjb250aW51ZeKAmXMuCihQY29tcGlsZSk6IENy ZWF0ZSBhbmQgdXNlIGdjb250ZXh0LgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA1MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCA5ODk4ZTA0Li5h OTk4MzVlIDEwMDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2Vh cmNoLmMKQEAgLTMyLDYgKzMyLDkgQEAKIAogc3RydWN0IHBjcmVfY29tcAogeworICAvKiBH ZW5lcmFsIGNvbnRleHQgZm9yIFBDUkUgb3BlcmF0aW9ucy4gICovCisgIHBjcmUyX2dlbmVy YWxfY29udGV4dCAqZ2NvbnRleHQ7CisKICAgLyogQ29tcGlsZWQgaW50ZXJuYWwgZm9ybSBv ZiBhIFBlcmwgcmVndWxhciBleHByZXNzaW9uLiAgKi8KICAgcGNyZTJfY29kZSAqY3JlOwog CkBAIC00OCw2ICs1MSwxOSBAQCBzdHJ1Y3QgcGNyZV9jb21wCiAgIGludCBlbXB0eV9tYXRj aFsyXTsKIH07CiAKKy8qIE1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9ucyBmb3IgUENSRS4g ICovCitzdGF0aWMgdm9pZCAqCitwcml2YXRlX21hbGxvYyAoUENSRTJfU0laRSBzaXplLCBf R0xfVU5VU0VEIHZvaWQgKnVudXNlZCkKK3sKKyAgaWYgKElEWF9NQVggPCBzaXplKQorICAg IHhhbGxvY19kaWUgKCk7CisgIHJldHVybiB4aW1hbGxvYyAoc2l6ZSk7Cit9CitzdGF0aWMg dm9pZAorcHJpdmF0ZV9mcmVlICh2b2lkICpwdHIsIF9HTF9VTlVTRUQgdm9pZCAqdW51c2Vk KQoreworICBmcmVlIChwdHIpOworfQogCiAvKiBNYXRjaCB0aGUgYWxyZWFkeS1jb21waWxl ZCBQQ1JFIHBhdHRlcm4gYWdhaW5zdCB0aGUgZGF0YSBpbiBTVUJKRUNULAogICAgb2Ygc2l6 ZSBTRUFSQ0hfQllURVMgYW5kIHN0YXJ0aW5nIHdpdGggb2Zmc2V0IFNFQVJDSF9PRkZTRVQs IHdpdGgKQEAgLTcyLDMzICs4OCwyNyBAQCBqaXRfZXhlYyAoc3RydWN0IHBjcmVfY29tcCAq cGMsIGNoYXIgY29uc3QgKnN1YmplY3QsIGlkeF90IHNlYXJjaF9ieXRlcywKICAgICAgICAg ewogICAgICAgICAgIGlkeF90IG9sZF9zaXplID0gcGMtPmppdF9zdGFja19zaXplOwogICAg ICAgICAgIGlkeF90IG5ld19zaXplID0gcGMtPmppdF9zdGFja19zaXplID0gb2xkX3NpemUg KiAyOwotCi0gICAgICAgICAgaWYgKHBjLT5qaXRfc3RhY2spCi0gICAgICAgICAgICBwY3Jl Ml9qaXRfc3RhY2tfZnJlZSAocGMtPmppdF9zdGFjayk7Ci0gICAgICAgICAgcGMtPmppdF9z dGFjayA9IHBjcmUyX2ppdF9zdGFja19jcmVhdGUgKG9sZF9zaXplLCBuZXdfc2l6ZSwgTlVM TCk7Ci0KKyAgICAgICAgICBwY3JlMl9qaXRfc3RhY2tfZnJlZSAocGMtPmppdF9zdGFjayk7 CisgICAgICAgICAgcGMtPmppdF9zdGFjayA9IHBjcmUyX2ppdF9zdGFja19jcmVhdGUgKG9s ZF9zaXplLCBuZXdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGMtPmdjb250ZXh0KTsKKyAgICAgICAgICBpZiAoIXBjLT5qaXRf c3RhY2spCisgICAgICAgICAgICB4YWxsb2NfZGllICgpOwogICAgICAgICAgIGlmICghcGMt Pm1jb250ZXh0KQotICAgICAgICAgICAgcGMtPm1jb250ZXh0ID0gcGNyZTJfbWF0Y2hfY29u dGV4dF9jcmVhdGUgKE5VTEwpOwotCi0gICAgICAgICAgaWYgKCFwYy0+aml0X3N0YWNrIHx8 ICFwYy0+bWNvbnRleHQpCi0gICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgMCwKLSAg ICAgICAgICAgICAgICAgXygiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIFBD UkUgSklUIHN0YWNrIikpOworICAgICAgICAgICAgcGMtPm1jb250ZXh0ID0gcGNyZTJfbWF0 Y2hfY29udGV4dF9jcmVhdGUgKHBjLT5nY29udGV4dCk7CiAgICAgICAgICAgcGNyZTJfaml0 X3N0YWNrX2Fzc2lnbiAocGMtPm1jb250ZXh0LCBOVUxMLCBwYy0+aml0X3N0YWNrKTsKLSAg ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgaWYgKGUgPT0gUENSRTJfRVJS T1JfREVQVEhMSU1JVCkKKyAgICAgIGVsc2UgaWYgKGUgPT0gUENSRTJfRVJST1JfREVQVEhM SU1JVCkKICAgICAgICAgewogICAgICAgICAgIHVpbnQzMl90IGxpbTsKICAgICAgICAgICBw Y3JlMl9jb25maWcgKFBDUkUyX0NPTkZJR19ERVBUSExJTUlULCAmbGltKTsKICAgICAgICAg ICBpZiAoSU5UX01VTFRJUExZX1dSQVBWIChsaW0sIDIsICZsaW0pKQogICAgICAgICAgICAg cmV0dXJuIGU7CiAgICAgICAgICAgaWYgKCFwYy0+bWNvbnRleHQpCi0gICAgICAgICAgICBw Yy0+bWNvbnRleHQgPSBwY3JlMl9tYXRjaF9jb250ZXh0X2NyZWF0ZSAoTlVMTCk7Ci0KKyAg ICAgICAgICAgIHBjLT5tY29udGV4dCA9IHBjcmUyX21hdGNoX2NvbnRleHRfY3JlYXRlIChw Yy0+Z2NvbnRleHQpOwogICAgICAgICAgIHBjcmUyX3NldF9kZXB0aF9saW1pdCAocGMtPm1j b250ZXh0LCBsaW0pOwotICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICBy ZXR1cm4gZTsKKyAgICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGU7CiAgICAgfQogfQogCkBA IC0xMjUsNyArMTM1LDkgQEAgUGNvbXBpbGUgKGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUs IHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29sIGV4YWN0KQogICBpbnQgZmxhZ3MgPSBQQ1JF Ml9ET0xMQVJfRU5ET05MWSB8IChtYXRjaF9pY2FzZSA/IFBDUkUyX0NBU0VMRVNTIDogMCk7 CiAgIGNoYXIgKnBhdGxpbSA9IHBhdHRlcm4gKyBzaXplOwogICBzdHJ1Y3QgcGNyZV9jb21w ICpwYyA9IHhjYWxsb2MgKDEsIHNpemVvZiAoKnBjKSk7Ci0gIHBjcmUyX2NvbXBpbGVfY29u dGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRlIChOVUxMKTsK KyAgcGNyZTJfZ2VuZXJhbF9jb250ZXh0ICpnY29udGV4dCA9IHBjLT5nY29udGV4dAorICAg ID0gcGNyZTJfZ2VuZXJhbF9jb250ZXh0X2NyZWF0ZSAocHJpdmF0ZV9tYWxsb2MsIHByaXZh dGVfZnJlZSwgTlVMTCk7CisgIHBjcmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBw Y3JlMl9jb21waWxlX2NvbnRleHRfY3JlYXRlIChnY29udGV4dCk7CiAKICAgaWYgKGxvY2Fs ZWluZm8ubXVsdGlieXRlKQogICAgIHsKQEAgLTE3OCw3ICsxOTAsNyBAQCBQY29tcGlsZSAo Y2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wg ZXhhY3QpCiAgICAgICBzaXplID0gcmVfc2l6ZTsKICAgICB9CiAKLSAgcGNyZTJfc2V0X2No YXJhY3Rlcl90YWJsZXMgKGNjb250ZXh0LCBwY3JlMl9tYWtldGFibGVzIChOVUxMKSk7Cisg IHBjcmUyX3NldF9jaGFyYWN0ZXJfdGFibGVzIChjY29udGV4dCwgcGNyZTJfbWFrZXRhYmxl cyAoZ2NvbnRleHQpKTsKICAgcGMtPmNyZSA9IHBjcmUyX2NvbXBpbGUgKChQQ1JFMl9TUFRS KSBwYXR0ZXJuLCBzaXplLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZl YywgJmUsIGNjb250ZXh0KTsKICAgaWYgKCFwYy0+Y3JlKQpAQCAtMTkxLDcgKzIwMyw3IEBA IFBjb21waWxlIChjaGFyICpwYXR0ZXJuLCBpZHhfdCBzaXplLCByZWdfc3ludGF4X3QgaWdu b3JlZCwgYm9vbCBleGFjdCkKIAogICBmcmVlIChyZV9zdG9yYWdlKTsKIAotICBwYy0+ZGF0 YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMtPmNyZSwgTlVM TCk7CisgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9wYXR0ZXJu IChwYy0+Y3JlLCBnY29udGV4dCk7CiAKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMt PmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKICAgaWYgKGVjICYmIGVjICE9IFBDUkUyX0VS Uk9SX0pJVF9CQURPUFRJT04gJiYgZWMgIT0gUENSRTJfRVJST1JfTk9NRU1PUlkpCi0tIAoy LjMyLjAKCg== --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0010-grep-use-ximalloc-not-xcalloc.patch" Content-Disposition: attachment; filename="0010-grep-use-ximalloc-not-xcalloc.patch" Content-Transfer-Encoding: base64 RnJvbSA4NGE1ZDM1OTgxNWE2ZjBkMjA4ZWM4Y2ViYTFjY2Y4MTA0NzQ5NjM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDA5OjM5OjA1IC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMC8xMl0gZ3JlcDogdXNlIHhpbWFsbG9jLCBub3QgeGNhbGxvYwoKKiBzcmMvcGNyZXNl YXJjaC5jIChQY29tcGlsZSk6IFVzZSB4aW1hbGxvYywgbm90IHhjYWxsb2MsCmFuZCBleHBs aWNpdGx5IGluaXRpYWxpemUgdGhlIHR3byBzbG90cyB0aGF0IHNob3VsZCBiZSBudWxsLgpU aGlzIGlzIG1vcmUgbGlrZWx5IHRvIGNhdGNoIGZ1dHVyZSBlcnJvcnMgaWYgd2UgdXNlIHZh bGdyaW5kLgotLS0KIHNyYy9wY3Jlc2VhcmNoLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNy ZXNlYXJjaC5jIGIvc3JjL3BjcmVzZWFyY2guYwppbmRleCBhOTk4MzVlLi5kZWEzOWYwIDEw MDY0NAotLS0gYS9zcmMvcGNyZXNlYXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAg LTEzNCw3ICsxMzQsNyBAQCBQY29tcGlsZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwg cmVnX3N5bnRheF90IGlnbm9yZWQsIGJvb2wgZXhhY3QpCiAgIGludCBlYzsKICAgaW50IGZs YWdzID0gUENSRTJfRE9MTEFSX0VORE9OTFkgfCAobWF0Y2hfaWNhc2UgPyBQQ1JFMl9DQVNF TEVTUyA6IDApOwogICBjaGFyICpwYXRsaW0gPSBwYXR0ZXJuICsgc2l6ZTsKLSAgc3RydWN0 IHBjcmVfY29tcCAqcGMgPSB4Y2FsbG9jICgxLCBzaXplb2YgKCpwYykpOworICBzdHJ1Y3Qg cGNyZV9jb21wICpwYyA9IHhpbWFsbG9jIChzaXplb2YgKnBjKTsKICAgcGNyZTJfZ2VuZXJh bF9jb250ZXh0ICpnY29udGV4dCA9IHBjLT5nY29udGV4dAogICAgID0gcGNyZTJfZ2VuZXJh bF9jb250ZXh0X2NyZWF0ZSAocHJpdmF0ZV9tYWxsb2MsIHByaXZhdGVfZnJlZSwgTlVMTCk7 CiAgIHBjcmUyX2NvbXBpbGVfY29udGV4dCAqY2NvbnRleHQgPSBwY3JlMl9jb21waWxlX2Nv bnRleHRfY3JlYXRlIChnY29udGV4dCk7CkBAIC0yMDMsNiArMjAzLDcgQEAgUGNvbXBpbGUg KGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29s IGV4YWN0KQogCiAgIGZyZWUgKHJlX3N0b3JhZ2UpOwogCisgIHBjLT5tY29udGV4dCA9IE5V TEw7CiAgIHBjLT5kYXRhID0gcGNyZTJfbWF0Y2hfZGF0YV9jcmVhdGVfZnJvbV9wYXR0ZXJu IChwYy0+Y3JlLCBnY29udGV4dCk7CiAKICAgZWMgPSBwY3JlMl9qaXRfY29tcGlsZSAocGMt PmNyZSwgUENSRTJfSklUX0NPTVBMRVRFKTsKQEAgLTIxMCw2ICsyMTEsNyBAQCBQY29tcGls ZSAoY2hhciAqcGF0dGVybiwgaWR4X3Qgc2l6ZSwgcmVnX3N5bnRheF90IGlnbm9yZWQsIGJv b2wgZXhhY3QpCiAgICAgZGllIChFWElUX1RST1VCTEUsIDAsIF8oIkpJVCBpbnRlcm5hbCBl cnJvcjogJWQiKSwgZWMpOwogCiAgIC8qIFRoZSBQQ1JFIGRvY3VtZW50YXRpb24gc2F5cyB0 aGF0IGEgMzIgS2lCIHN0YWNrIGlzIHRoZSBkZWZhdWx0LiAgKi8KKyAgcGMtPmppdF9zdGFj ayA9IE5VTEw7CiAgIHBjLT5qaXRfc3RhY2tfc2l6ZSA9IDMyIDw8IDEwOwogCiAgIHBjLT5l bXB0eV9tYXRjaFtmYWxzZV0gPSBqaXRfZXhlYyAocGMsICIiLCAwLCAwLCBQQ1JFMl9OT1RC T0wpOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0011-grep-fix-minor-P-memory-leak.patch" Content-Disposition: attachment; filename="0011-grep-fix-minor-P-memory-leak.patch" Content-Transfer-Encoding: base64 RnJvbSAyZWJkZWJmYzg0M2VhNDNmOTNlZjFhNzI5Y2Q4ZmY3ZDc5YWUzMzA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDEwOjU0OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMS8xMl0gZ3JlcDogZml4IG1pbm9yIC1QIG1lbW9yeSBsZWFrCgoqIHNyYy9wY3Jlc2Vh cmNoLmMgKFBjb21waWxlKTogRnJlZSBjY29udGV4dCB3aGVuIG5vIGxvbmdlciBuZWVkZWQu Ci0tLQogc3JjL3BjcmVzZWFyY2guYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3BjcmVzZWFyY2guYyBiL3NyYy9wY3Jlc2VhcmNo LmMKaW5kZXggZGVhMzlmMC4uZWY4MjE1ZiAxMDA2NDQKLS0tIGEvc3JjL3BjcmVzZWFyY2gu YworKysgYi9zcmMvcGNyZXNlYXJjaC5jCkBAIC0yMDIsNiArMjAyLDcgQEAgUGNvbXBpbGUg KGNoYXIgKnBhdHRlcm4sIGlkeF90IHNpemUsIHJlZ19zeW50YXhfdCBpZ25vcmVkLCBib29s IGV4YWN0KQogICAgIH0KIAogICBmcmVlIChyZV9zdG9yYWdlKTsKKyAgcGNyZTJfY29tcGls ZV9jb250ZXh0X2ZyZWUgKGNjb250ZXh0KTsKIAogICBwYy0+bWNvbnRleHQgPSBOVUxMOwog ICBwYy0+ZGF0YSA9IHBjcmUyX21hdGNoX2RhdGFfY3JlYXRlX2Zyb21fcGF0dGVybiAocGMt PmNyZSwgZ2NvbnRleHQpOwotLSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv Content-Type: text/x-patch; charset=UTF-8; name="0012-grep-port-to-PCRE2-10.20.patch" Content-Disposition: attachment; filename="0012-grep-port-to-PCRE2-10.20.patch" Content-Transfer-Encoding: base64 RnJvbSBhYWFmZTNkZTlkMGVjMDBmOTdhN2RiOGVhZjdkZGZlNzMxMmU5ZjVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDE0IE5vdiAyMDIxIDExOjMwOjIxIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxMi8xMl0gZ3JlcDogcG9ydCB0byBQQ1JFMiAxMC4yMAoKKiBzcmMvcGNyZXNlYXJjaC5j IChQQ1JFMl9TSVpFX01BWCk6IERlZmF1bHQgdG8gU0laRV9NQVguCi0tLQogc3JjL3BjcmVz ZWFyY2guYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvcGNyZXNlYXJjaC5jIGIvc3JjL3BjcmVz ZWFyY2guYwppbmRleCBlZjgyMTVmLi5jMTJjNjc0IDEwMDY0NAotLS0gYS9zcmMvcGNyZXNl YXJjaC5jCisrKyBiL3NyYy9wY3Jlc2VhcmNoLmMKQEAgLTIzLDcgKzIzLDEwIEBACiAjZGVm aW5lIFBDUkUyX0NPREVfVU5JVF9XSURUSCA4CiAjaW5jbHVkZSA8cGNyZTIuaD4KIAotLyog Rm9yIFBDUkUyIDwgMTAuMzAuICAqLworLyogRm9yIG9sZGVyIFBDUkUyLiAgKi8KKyNpZm5k ZWYgUENSRTJfU0laRV9NQVgKKyMgZGVmaW5lIFBDUkUyX1NJWkVfTUFYIFNJWkVfTUFYCisj ZW5kaWYKICNpZm5kZWYgUENSRTJfQ09ORklHX0RFUFRITElNSVQKICMgZGVmaW5lIFBDUkUy X0NPTkZJR19ERVBUSExJTUlUIFBDUkUyX0NPTkZJR19SRUNVUlNJT05MSU1JVAogIyBkZWZp bmUgUENSRTJfRVJST1JfREVQVEhMSU1JVCBQQ1JFMl9FUlJPUl9SRUNVUlNJT05MSU1JVAot LSAKMi4zMi4wCgo= --------------yDuj0IMPzT9IVrxNTum0F2Lv-- ------------=_1636922763-29115-5 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 2 Apr 2020 23:17:51 +0000 Received: from localhost ([127.0.0.1]:40930 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK95r-0003sd-4G for submit@debbugs.gnu.org; Thu, 02 Apr 2020 19:17:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:57883) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jK95p-0003sN-Eq for submit@debbugs.gnu.org; Thu, 02 Apr 2020 19:17:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40839) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jK95o-0008Gs-Dv for bug-grep@gnu.org; Thu, 02 Apr 2020 19:17:49 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jK95n-0001kb-Gl for bug-grep@gnu.org; Thu, 02 Apr 2020 19:17:48 -0400 Received: from mail-il1-x12c.google.com ([2607:f8b0:4864:20::12c]:38213) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jK95n-0001jw-Cn for bug-grep@gnu.org; Thu, 02 Apr 2020 19:17:47 -0400 Received: by mail-il1-x12c.google.com with SMTP id n13so5447082ilm.5 for ; Thu, 02 Apr 2020 16:17:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:reply-to:from:date:message-id:subject:to; bh=O5o0tglh4jvwUzO2iMsMaqPFgmB/6BQ6+s/Y1B7i2lU=; b=rlaEu3orusteE2z41LycHDsUI6GU4chYjWEsar3gGnSpsQ43+4zda1SQmDMRJXDW4n VEOz0zEXMasvX26R6gKEVTJVi/X0ilv5Iks7oe+rqhSdo0EkwQbs/C7mrI698pEViObG eqAAvmwzDZcpVG7HDLTAhwXY1I92SCJxx7xhZImNZ5KNbi/zTEGemKDPqwx7Yaxw51JQ HkX0RPgxX1mq+ROaPbTlpZA3Q9OlLPyeqHeqL4aALPU0CbKrHuccW7teMfOF5gKBiQRh zrxbQMi17wVDDqGiTskcPYf50sgTOZYOiHT4YYnYD1kW7+YRq/CYFVUgWbolrLQi6r+i YXFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:from:date:message-id :subject:to; bh=O5o0tglh4jvwUzO2iMsMaqPFgmB/6BQ6+s/Y1B7i2lU=; b=CZkJQleB51+hO2WGq2PQrtfeXd4WnB/+S1a72qxA+Jy9346m3pn8+u9mp5hAXxhoAa EZmzyLJ5nr9D1cNkgX14OC21+rR8XPN41flHfzZHtc0FSvxXeUK9wFKLg0LNw/bqBqMH Fd1HTXxhZ+Ks8bD8Wy1wPZJNnAPZwWerHq55J3BTI3Zt5yS0sO50qh63bs0YCOKJdqDE DGQ8AE7coG2Q6JMvrXZFsQanCIuXlSzzaJ/DSGu2fPQXUe96qum7NDG1U12S8K+PQXaD IVU92UQSvdwHH3HKJ43lNC83ghK5KvaHprBkyLtwuBvXuqSIvzpKf5h/yROsy0sIBvsf ElHg== X-Gm-Message-State: AGi0PuaD5ZSgM7TqNAjMOM/5lAlafuvrhp//wQVbi+XyrP/2A8rSDCaB UzwxWTKQFruN6L0OLxKzKGJOefCP5e9uuj/ZmzbnNADksgg= X-Google-Smtp-Source: APiQypI4fjorFSV2tCNh1xhIidSXNFiDh8Ftb7gLThXHlELD/og0qh9PS3jkebaVRfFrUkbbSOkzhrlDBuhcz0rsILI= X-Received: by 2002:a92:90c:: with SMTP id y12mr5728354ilg.212.1585869466430; Thu, 02 Apr 2020 16:17:46 -0700 (PDT) MIME-Version: 1.0 From: Jeffrey Walton Date: Thu, 2 Apr 2020 19:17:35 -0400 Message-ID: Subject: Building Grep with PCRE support To: bug-grep@gnu.org Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::12c X-Spam-Score: 2.3 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi Everyone, I'm working on OS X 10.12. When I build Grep 3.3 from source tarball I see: checking for PCRE... no checking for pcre_compile... no configure: WARNING: GNU grep will be built without pcre support. Content analysis details: (2.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [209.51.188.17 listed in list.dnswl.org] 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (noloader[at]gmail.com) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 2.0 SPOOFED_FREEMAIL No description available. X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: noloader@gmail.com Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Hi Everyone, I'm working on OS X 10.12. When I build Grep 3.3 from source tarball I see: checking for PCRE... no checking for pcre_compile... no configure: WARNING: GNU grep will be built without pcre support. PCRE2 is installed in /usr/local. PKG_CONFIG_PATH is set and points to /usr/local/lib/pkgconfig. Configure _lacks_ an option --with-pcre-prefix=... Attempting to use it: configure: WARNING: unrecognized options: --with-pcre-prefix Would someone know how to build Grep with PCRE support? Thanks in advance. ------------=_1636922763-29115-5-- From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Carlo Arenas Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sun, 14 Nov 2021 22:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: Jaroslav Skarvada , 47264-done@debbugs.gnu.org Received: via spool by 47264-done@debbugs.gnu.org id=D47264.163692876015266 (code D ref 47264); Sun, 14 Nov 2021 22:26:02 +0000 Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 22:26:00 +0000 Received: from localhost ([127.0.0.1]:51941 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmNwm-0003yA-KY for submit@debbugs.gnu.org; Sun, 14 Nov 2021 17:26:00 -0500 Received: from mail-vk1-f181.google.com ([209.85.221.181]:40745) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmNwl-0003xm-Dl for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 17:26:00 -0500 Received: by mail-vk1-f181.google.com with SMTP id k83so7279356vke.7 for <47264-done@debbugs.gnu.org>; Sun, 14 Nov 2021 14:25:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=EQDfj2VoVdVSkDHu/JQgg+PzA5bNciKYDXxRuyXcf3w=; b=DsSg1ONrJJ0Z8X2IOJ3+BdbbyGS0VVc+fmsBt0zG68NROMUVrHsDX9YfEvCi3tyBzW xrOBP3iMV3Ig10JdQfyJOc8TGHOTDpXbu1yhNMfMNnMSLBATwN5NQiHWy48DtCNHXG7N 08ffEhB96/rbqgMzRajiZ8ehWeM/3D30R3IZg+s/NnzU6KuzZrzrG7ZWzE4fnYxWXzI8 fwTNQg98GtJcxddtuGo1DJ/lLmpfbQmW/vCpqxKeokVWxWvClSaoNB3U8Hy4rmiQ83TA gxx91HVkemxuOZet8nZUeNYwoV19uZf8A/dvNHIv0Qm7JGAzx2vVWqT4wQgKGqSyj+hp QWvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=EQDfj2VoVdVSkDHu/JQgg+PzA5bNciKYDXxRuyXcf3w=; b=qiffJK3CLZBmEljyFYiq2DMRJujLnpqp9wUcdLg+nrWEhIcaNMvV7tojlf+3aLh7lm Mlr50N3FNvoYLTK6K0/YST+iqXGOyXynoARbk3R5Gov0xpH1yJ21Fi84gXxT/GdOp/hC Lcz3v9stz/ZtAh8Q35nvMy0uBOD/04IygfuVIihySK8WIuo3HAvgYmdGu+2G9I4ccO8S EjvQgYPW+i+E3zmR1ZFK+lo4fkyd6Z2SVhLaKSdG19vGeNQpC56NqniG37DQYo9kjCHY QRya+25eT5OPhXOTEnUGQt5ZGHd6B6k8JMcHWBLGEPf/AauAE8CtGX5Ol8fnlvWZ7kCv nPHw== X-Gm-Message-State: AOAM532l5JzJTqgc1HkqolQrxwiqM6KKGzC9nk9C+ut4XwLJ55CnO7z2 F8lHc9dMASdDqYz8TjT+36+cDHcpCcu+V0CR5kU= X-Google-Smtp-Source: ABdhPJy11FCaA/bB6gWhLziRuGoGx9z4DosesqQhbQiifrDJQhOSZN6FMVSTPj/ICjSxWYNCMkO8MElfT/D7H7XMZYM= X-Received: by 2002:a05:6122:ca7:: with SMTP id ba39mr52431311vkb.25.1636928753853; Sun, 14 Nov 2021 14:25:53 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> In-Reply-To: <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> From: Carlo Arenas Date: Sun, 14 Nov 2021 14:25:42 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 14, 2021 at 12:45 PM Paul Eggert wrote: > > On 11/9/21 02:58, Carlo Marcelo Arenas Bel=C3=B3n wrote: > > Sadly, hadn't been able to generate a release, > > Does this mean you're having trouble running 'make dist'? If so, what's > the trouble? I seem to be unlucky; getting certificate errors in Debian sid, FTBFS errors when building the info in macOS, but the latest master was able to run `make dist` successfully in Debian 10, so it is just likely a PBKAC problem. > Also, I followed up with several related patches (also attached as > 0002-0012). Please take a look at them and let us know of any problems. > In the attached patch "grep: prefer signed integers" I followed the > usual grep approach of preferring signed to unsigned integers (e.g., > idx_t to size_t) when either will do; this lets us debug better with > -fsanitize=3Dundefined to catch integer overflow. the one in patch6 where a uint32_t option is doubled, triggers warnings because of comparing an unsigned variable with 0 AFAIK, but there are several of those in the upstream gnulib so presumably not a concern? using idx_t instead of size_t should be fine (if only halves the max size of the objects managed), but I am concerned that assuming PCRE2_SIZE_MAX is always equivalent to SIZE_MAX (as done in patch 4) might be risky (at least without a comment), and considering that is part of the API anyway might be better if kept as PCRE2_SIZE_MAX IMHO. > One issue I discovered: PCRE2_EXTRA_MATCH_WORD (which is used by > pcre2grep -w) is incompatible with 'grep -w'. For example, 'echo a%%a | > grep -Pw %%' outputs nothing, whereas 'echo a%%a | pcre2grep -w %%' > outputs 'a%%a'. I think the GNU grep behavior (which is the same as with > 'grep -w', either on Linux or OpenBSD) is more intuitive here: do you > happen to know why PCRE behaves the way it does? Is that worth a PCRE2 > bug report? Anyway, the attached patches avoid using > PCRE2_EXTRA_MATCH_WORD for that reason. As I mentioned before, PCRE matches the Perl definition as mentioned before in an early draft that also had this change reversed. I would suggest instead that -P should also follow perl convention instead when used together with -w, but maybe that is something that a -P feature flag could enable or disable as needed? Note that "word" definition also has a different meaning in a post Unicode world, and so I expect that will have to change eventually as well. Carlo From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Jeffrey Walton Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sun, 14 Nov 2021 22:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Arenas Cc: 47264-done@debbugs.gnu.org Reply-To: noloader@gmail.com Received: via spool by 47264-done@debbugs.gnu.org id=D47264.163692995217246 (code D ref 47264); Sun, 14 Nov 2021 22:46:01 +0000 Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 22:45:52 +0000 Received: from localhost ([127.0.0.1]:51963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmOG0-0004U6-7l for submit@debbugs.gnu.org; Sun, 14 Nov 2021 17:45:52 -0500 Received: from mail-pj1-f53.google.com ([209.85.216.53]:34518) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmOFy-0004Tr-0r for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 17:45:50 -0500 Received: by mail-pj1-f53.google.com with SMTP id j5-20020a17090a318500b001a6c749e697so9689377pjb.1 for <47264-done@debbugs.gnu.org>; Sun, 14 Nov 2021 14:45:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=XTTImxzo/nfC8I0TjiJIJ5jl6VeVL+nrHdYGdCVi7Bo=; b=A0V4BEJ8AIQ9Wzt1DzvAw6FPU66laWjAAGfiMvIgak9oYUQLYPWuULuFuhn9Q2u1p6 HPEC5Fd/V7xMItEvrwbRZ9hXscLy44FXNNYiLNFOOUwCyjk1A8UEUjYJdZAuHcLCve+l 5efzO18rvz/4pJoysxvrwiGBSjXh60Vrs+jUIDCYlXx5Y8bJJOFc8Wr0EIG+dFRmYp3T eytQmig75xV06DULO4wcCty3NlYNO2jA6BXGhWnWZ8N78p/uEcQ9nZDdMwSSuA270bhW b2+QqS8WmvMZ8j0/ny3qLcJSQJ7meEvhR6D5x8otv3S0h7cJTJMRm+gmRjy6AfiSE3P6 6OZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=XTTImxzo/nfC8I0TjiJIJ5jl6VeVL+nrHdYGdCVi7Bo=; b=FVSiEN2n/bmuk1bF5i2mRk8QS2sezts8pyQexoaJUk5xaUtM4+bBOa0UDgSFmUApC9 hkram0FTZlQzIanqKKnciTJWzqPnEoq7FJRQC2KiNSDoe+8xIXFF8orw5EIL05PABvYO FFAGnHjW5PqBMPmxTviAWj8rPHfJFC8lcO3fsVKVS8eFPujHcQVYkq2oCdj6thjWC4bs 4+hYUylZrpddB9J5XbosS/91gkaA9jCNvMmKUIZnkl6npYZNCf7fgv2YiN2La23JNRPF ZJtVqMrtEP9CBXQAM0jUtcOiXOPBixOmYURM7NinN2ZYaPC+XufQn9FGgsbiy7TinPBz G1ow== X-Gm-Message-State: AOAM5309pLBBNuATjnC0A7QRm06atu0Am3xwCBHDw49noDWYfsKlL32s 2ndr/xyQ05WHjTsI/OiscqmD2ydxpc/jGQEWQxg= X-Google-Smtp-Source: ABdhPJxCsxl0LUojDZ2HyAYsneaXJKgAUlO9Ftd8vv35UWHSLRfN9fftHA3xaqv9WdorYa5XdJQ5Zz/ukgSdNDX5B/Y= X-Received: by 2002:a17:90b:4a83:: with SMTP id lp3mr58923943pjb.34.1636929944123; Sun, 14 Nov 2021 14:45:44 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> In-Reply-To: From: Jeffrey Walton Date: Sun, 14 Nov 2021 17:44:53 -0500 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 14, 2021 at 5:26 PM Carlo Arenas wrote: > On Sun, Nov 14, 2021 at 12:45 PM Paul Eggert wrote: > > ... > using idx_t instead of size_t should be fine (if only halves the max > size of the objects managed), but I am concerned that assuming > PCRE2_SIZE_MAX is always equivalent to SIZE_MAX (as done in patch 4) > might be risky (at least without a comment), and considering that is > part of the API anyway might be better if kept as PCRE2_SIZE_MAX IMHO. GNU Hurd may not have SIZE_MAX defined. The Hurd folks {sometimes|often} want developers to make a runtime call for the limit. See docs like https://www.gnu.org/software/libc/manual/html_node/File-Minimums.html and https://pubs.opengroup.org/onlinepubs/009695399/basedefs/limits.h.html. Jeff From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Jeffrey Walton Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sun, 14 Nov 2021 22:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Arenas Cc: 47264-done@debbugs.gnu.org Reply-To: noloader@gmail.com Received: via spool by 47264-done@debbugs.gnu.org id=D47264.163693023117808 (code D ref 47264); Sun, 14 Nov 2021 22:51:02 +0000 Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 22:50:31 +0000 Received: from localhost ([127.0.0.1]:51968 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmOKU-0004dA-Qq for submit@debbugs.gnu.org; Sun, 14 Nov 2021 17:50:30 -0500 Received: from mail-pg1-f182.google.com ([209.85.215.182]:38679) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmOKS-0004cw-Jm for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 17:50:30 -0500 Received: by mail-pg1-f182.google.com with SMTP id q12so1254396pgh.5 for <47264-done@debbugs.gnu.org>; Sun, 14 Nov 2021 14:50:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=piDAz01SZpILlzQkQ8e5zfkF5wxG+8d10NjejmlJ2lU=; b=NJzaDH7nDHmlm2F1vTNAQX0vnTKqR5IIHcrVRQI8/9njUPjHe+9c30V/tqo0WveJAf osNdMxT+aoYxxDy+QoMIboWkd7Px5N4kB+n/NHRBqYNQDomtQsqXizobaL1smgtx8UtX zaZxE5LNf0WqxyR1KkDVTC4MNdoenY2cgIRjPs8wk0ikYu9LNZ/PGJERd5GjcjAqjbh3 tn5yp7k1X9QkWqc8Q3bmf1XV4eHi02uaY+JBp9/GKKU0bDkpYkC8hMQb2Eb8DgNO8jOc gFAkYXF6+hsgyC9nHjgEjtmgq78g1ErPrwJcod3ULU/epU6pHDoShC+9KLGgdjErnVWh DtlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=piDAz01SZpILlzQkQ8e5zfkF5wxG+8d10NjejmlJ2lU=; b=Z93fSEhPMqPpFBy3zzpM9OzKPWuEOZ7swWWn1xoSx8gOqZPF93CFzQbIptxsim+XFd alLxeP1rqP9D0M7krY7nEAVG+nXucjQfZghLHPNjSip1fy7soLBJmwHj3hMYaFlnHg7A 1o2FqkI4WKGVmrNo5UKNtRWHpBYTEx2Pb/DHdA+zuWc4wRym11/pY4m7Z/VzPhyBbz7P mYR9RZ3gutXmitUIzl0kB/Dq/wDXIKa7wwBOeD/gcoF40XFhcpZLS/bI/9PqQT1G2zGE tYjEGMZq9WhQK0lEX7yN7Q3X7mXJf4QyxEwX8A4F1o0rnnf2BO8SeJXcePCkhMajVULa 0O1w== X-Gm-Message-State: AOAM532HUPRQeRK5l0RWL+wrT5B/dmHXBcFoIgKTkMQpVVKUi8ntywaZ zcMYCRv8suL0/h77OuWVJCo3mAeASK9v3/JVqGI= X-Google-Smtp-Source: ABdhPJybZiJ9yoZ9mHdMVn5ltyQ0S5vp/XP21b+GZeJHOpVB0EMqswibnCojpcp+2IEfPcJ32gaLYD95EqF4oPQS4uc= X-Received: by 2002:a63:f702:: with SMTP id x2mr21274919pgh.162.1636930222830; Sun, 14 Nov 2021 14:50:22 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> In-Reply-To: From: Jeffrey Walton Date: Sun, 14 Nov 2021 17:49:32 -0500 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 14, 2021 at 5:26 PM Carlo Arenas wrote: > ... > I seem to be unlucky; getting certificate errors in Debian sid, FTBFS > errors when building the info in macOS, but the latest master was able > to run `make dist` successfully in Debian 10, so it is just likely a > PBKAC problem. 'sudo dpkg-reconfigure ca-certificates' may help. I needed it a few months ago to use Wget with GitHub. Also see https://www.mail-archive.com/ubuntu-devel-discuss@lists.ubuntu.com/msg18883.html. Jeff From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Carlo Arenas Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Sun, 14 Nov 2021 23:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: noloader@gmail.com Cc: 47264-done@debbugs.gnu.org Received: via spool by 47264-done@debbugs.gnu.org id=D47264.163693193520572 (code D ref 47264); Sun, 14 Nov 2021 23:19:02 +0000 Received: (at 47264-done) by debbugs.gnu.org; 14 Nov 2021 23:18:55 +0000 Received: from localhost ([127.0.0.1]:51986 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmOlz-0005Lk-17 for submit@debbugs.gnu.org; Sun, 14 Nov 2021 18:18:55 -0500 Received: from mail-ua1-f42.google.com ([209.85.222.42]:37847) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmOlx-0005LV-HR for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 18:18:54 -0500 Received: by mail-ua1-f42.google.com with SMTP id l43so31044684uad.4 for <47264-done@debbugs.gnu.org>; Sun, 14 Nov 2021 15:18:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=64gF8oWCDgzr7BuT4THFGm/OjZcTPnrcm5xoc2qcjAc=; b=nBRuRDMKm+J87azyuHM8YfKYSE/YUWs+e2B7PLK4LqzPnRaCH9YpA/UR33LNwrZe2z cjfB2ZRpPijLhWJgjijbif2cF5soZcz4/07JUL5I8PNeR+ymzGhl/7qdEiJOXpG13fDG DvxlKpMD4o4CKuGNPiEH+FmVW8AIZwgTEC3n1GxMybYFDwg/035Zogp98Ywh0ISljpxT 6y6G3rumsdM0ajs3PNl+8636HtPfzvxrOGPyAnSrUfQLIW6jRuxIPo7ugoXOQz47Wp53 35+WvyDe5N5AibNqDf+sicaL9qWoxlsqXsse6iKb6ej6Bbgb+2Pvrr/EC50JuoSSylHO ggag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=64gF8oWCDgzr7BuT4THFGm/OjZcTPnrcm5xoc2qcjAc=; b=fKRaHVwSHla1EP6OqUMx+k7lJCNFfJRhZGbkwtbzais87K+WMnJ61F+YM/a1M+gcLd l5bq5dcCdYRuQNnO/kztmarwZT8bZs75WX7Az5HK/z4DWs09FV/JZqtT3rl0/iFSvvc6 xwwI9FSHmvt+YdERQWxTiLwtqGO/zkDzSZh6OBl6w/S091dBGR8coE7Gr+FuhvP+EJKc Bf9oX+klT1hJMojCc9Ik0OxXGmVyX0l5S5NAcICMy4U1lShEfKx1j/64FMh5Pgfol/xH WRTJztJSY3+gNlXarsU0TH/OOmDlasqXAK9fzKU/GGCq6B/DwXgmJP+tqvNGlrIEIT9h ux9w== X-Gm-Message-State: AOAM533Q2UNltxZ26uMti8sdQ3vpdK/tPh98YsqAT7ZtVDTJ9n6jMEDz pw4ovH92jV0/EpxILDfTcCfIzIkTBObpCDilefg= X-Google-Smtp-Source: ABdhPJxnRYUBNBvggzXoATVcsPVC6LsMflj1NkPoxXe1QZ4MqPZHephtwpB4W8x+pvPvN6y9uQDgAbcxLtOetG3RDvQ= X-Received: by 2002:a67:26c7:: with SMTP id m190mr25647700vsm.57.1636931927972; Sun, 14 Nov 2021 15:18:47 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> In-Reply-To: From: Carlo Arenas Date: Sun, 14 Nov 2021 15:18:37 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 14, 2021 at 2:45 PM Jeffrey Walton wrote: > > On Sun, Nov 14, 2021 at 5:26 PM Carlo Arenas wrote: > > On Sun, Nov 14, 2021 at 12:45 PM Paul Eggert wrote: > > > ... > > using idx_t instead of size_t should be fine (if only halves the max > > size of the objects managed), but I am concerned that assuming > > PCRE2_SIZE_MAX is always equivalent to SIZE_MAX (as done in patch 4) > > might be risky (at least without a comment), and considering that is > > part of the API anyway might be better if kept as PCRE2_SIZE_MAX IMHO. > > GNU Hurd may not have SIZE_MAX defined. The Hurd folks > {sometimes|often} want developers to make a runtime call for the > limit. don't have any GNU Hurd system to test on, but would assume that in that case PCRE2 failed to build as well and then this code will never be compiled. Either way my suggestion to use PCRE2_SIZE_MAX instead (which should work, except on ancient 10.00 or so) sounds even better, and then the fix could be made in PCRE2 for both. Carlo From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Carlo Arenas Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 01:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: noloader@gmail.com Cc: 47264-done@debbugs.gnu.org Received: via spool by 47264-done@debbugs.gnu.org id=D47264.163693809830753 (code D ref 47264); Mon, 15 Nov 2021 01:02:01 +0000 Received: (at 47264-done) by debbugs.gnu.org; 15 Nov 2021 01:01:38 +0000 Received: from localhost ([127.0.0.1]:52058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmQNO-0007zx-DE for submit@debbugs.gnu.org; Sun, 14 Nov 2021 20:01:38 -0500 Received: from mail-ua1-f43.google.com ([209.85.222.43]:33436) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmQNM-0007zh-MH for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 20:01:37 -0500 Received: by mail-ua1-f43.google.com with SMTP id b17so31472987uas.0 for <47264-done@debbugs.gnu.org>; Sun, 14 Nov 2021 17:01:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sJvAVS6z81SHFeD9h5rdcyW16murI53cOGe7j72gGjk=; b=UBDGcf0kWqBbkp5R9DfHDW3tuyq91KSjujsm430FEyQNRXmqeLGHnSeMyS4FTKxZg8 3FumAAjIlYLHO/F4LpIgQKwHo0lqAIy5Nu6Zm1j/9bXd+XvPVuyCarHgWK4x49BABN9v IAQP1CHw3Oyaef9BRH4Uej10GrVLbg3ecWrQ2Pgjtj++Y9GaSbDUXkvFwZb+/ch7loEa J51Of45aOa7cuHdNt0FYfVnGSeoeg9/n4RuMqArBuctAPjYleJh5M/APJc9tbNXKcemN hyAqFo6Kj1H+DHNq3wjdsFYJFdGpuCS9V/CSp8DCHTjbHCxQdN7ncp4wdjEpPkmmgDVZ 7CLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sJvAVS6z81SHFeD9h5rdcyW16murI53cOGe7j72gGjk=; b=GqzzT2DTKhvcixSpMld5oSxEDym+D8UTPCcPRaiLDht9RlZY4BCWUv+NlguxqMdWdI H+zH8fQJrXJPKjLV/q5wDLj/DjXxDWxstn4As/Q9qrmtO4vmYx+9KHkct5BvqVg561Fa NvA1LufVhDGRDmMojLFZz+KFnTuFPdL6J9AWQMzHJMOEOBLM96OEFJxUQ3exLciw/IY+ 6f2ubLOUZxub/xaQvqwButWw6A0huuRsRpyY0jNjpmTS7ok2cAkBQ31OI8ffBr2EcSOY WDfeWQsqgs8WHL/q1Yhq1aidMnyPrwMDl0BGvke03ek0Pdu49ZlWd6IfJSZHwHyJHr88 lQYw== X-Gm-Message-State: AOAM533ehVFGFnPi1z3B79wyEnJ5JYeZapX5Z6Fw+CU49XHB/ieaIrHK 5oYTo7TISdP+3eNSLaIezECLfG553TDMp2AJVXhdn9gv X-Google-Smtp-Source: ABdhPJxGN1YMOMu2w4Gf6jpJA9xNByXXfFWDP+iyvrC5SzgkXkQeZvZsUaMmdNYd95uF3BtnWwDA9HvspCVoVY7Uxs0= X-Received: by 2002:a67:c181:: with SMTP id h1mr37037324vsj.3.1636938090988; Sun, 14 Nov 2021 17:01:30 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> In-Reply-To: From: Carlo Arenas Date: Sun, 14 Nov 2021 17:01:20 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 14, 2021 at 3:18 PM Carlo Arenas wrote: > On Sun, Nov 14, 2021 at 2:45 PM Jeffrey Walton wrote: > > On Sun, Nov 14, 2021 at 5:26 PM Carlo Arenas wrote: > > > On Sun, Nov 14, 2021 at 12:45 PM Paul Eggert wrote: > > > > ... > > > using idx_t instead of size_t should be fine (if only halves the max > > > size of the objects managed), but I am concerned that assuming > > > PCRE2_SIZE_MAX is always equivalent to SIZE_MAX (as done in patch 4) > > > might be risky (at least without a comment), and considering that is > > > part of the API anyway might be better if kept as PCRE2_SIZE_MAX IMHO. > > > > GNU Hurd may not have SIZE_MAX defined. The Hurd folks > > {sometimes|often} want developers to make a runtime call for the > > limit. > > don't have any GNU Hurd system to test on, but would assume that in > that case PCRE2 failed to build as well and then this code will never > be compiled. FWIW got Debian GNU Hurd and it has pcre2 and builds fine against it because SIZE_MAX is where POSIX said it should (stdint.h) Carlo From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 03:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: noloader@gmail.com, Carlo Arenas Cc: 47264-done@debbugs.gnu.org Received: via spool by 47264-done@debbugs.gnu.org id=D47264.163694561610582 (code D ref 47264); Mon, 15 Nov 2021 03:07:01 +0000 Received: (at 47264-done) by debbugs.gnu.org; 15 Nov 2021 03:06:56 +0000 Received: from localhost ([127.0.0.1]:52099 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmSKe-0002kc-CC for submit@debbugs.gnu.org; Sun, 14 Nov 2021 22:06:56 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:58906) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmSKc-0002kI-La for 47264-done@debbugs.gnu.org; Sun, 14 Nov 2021 22:06:55 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 8B2551600EA; Sun, 14 Nov 2021 19:06:48 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id eD8UARH_4C-Z; Sun, 14 Nov 2021 19:06:48 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E7D181600EF; Sun, 14 Nov 2021 19:06:47 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id uOgT--Db3T0H; Sun, 14 Nov 2021 19:06:47 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id BEDE816010B; Sun, 14 Nov 2021 19:06:47 -0800 (PST) Message-ID: Date: Sun, 14 Nov 2021 19:06:47 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) On 11/14/21 14:44, Jeffrey Walton wrote: > GNU Hurd may not have SIZE_MAX defined. I doubt whether that's an issue with recent Hurd. And even if it is, Gnulib will arrange for a substitute SIZE_MAX in stdint.h (this is for ancient, pre-C99 compilers) that will work just fine. So we're OK here. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 03:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Arenas Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163694628711750 (code B ref 47264); Mon, 15 Nov 2021 03:19:01 +0000 Received: (at 47264) by debbugs.gnu.org; 15 Nov 2021 03:18:07 +0000 Received: from localhost ([127.0.0.1]:52111 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmSVS-00033S-Ls for submit@debbugs.gnu.org; Sun, 14 Nov 2021 22:18:06 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:59934) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmSVR-00032x-Bs for 47264@debbugs.gnu.org; Sun, 14 Nov 2021 22:18:05 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E6DDB1600EA; Sun, 14 Nov 2021 19:17:59 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id p-ead5jVCZgh; Sun, 14 Nov 2021 19:17:59 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 046FC1600EF; Sun, 14 Nov 2021 19:17:59 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QROKn4s4ZWk4; Sun, 14 Nov 2021 19:17:58 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id CD47B1600EA; Sun, 14 Nov 2021 19:17:58 -0800 (PST) Message-ID: Date: Sun, 14 Nov 2021 19:17:58 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) On 11/14/21 14:25, Carlo Arenas wrote: > the one in patch6 where a uint32_t option is doubled, triggers > warnings because of comparing an unsigned variable with 0 AFAIK, but > there are several of those in the upstream gnulib so presumably not a > concern? Yes, that's right. intprops.h can generate tons of bogus warnings with older or non-GCC compilers. We typically don't worry about those warnings. Recent GCC should be OK here. > using idx_t instead of size_t should be fine (if only halves the max > size of the objects managed), but I am concerned that assuming > PCRE2_SIZE_MAX is always equivalent to SIZE_MAX (as done in patch 4) > might be risky (at least without a comment), and considering that is > part of the API anyway might be better if kept as PCRE2_SIZE_MAX IMHO. This shouldn't be a problem in practice. Surely PCRE2_SIZE_MAX is for forward compatibility to a potential future version of PCRE2 that may define PCRE2_SIZE to be some other type. For PCRE2 10.20 and earlier PCRE2_SIZE is hardwired to size_t, so there is only one plausible default for PCRE2_SIZE_MAX, namely SIZE_MAX. > As I mentioned before, PCRE matches the Perl definition as mentioned > before in an early draft that also had this change reversed. I see that PCRE2 documents that PCRE2_EXTRA_MATCH_WORD surrounds the pattern with "\b(?:" and ")\b". However, this is bogus: it doesn't correspond to the intuitive meaning of "match words", and it doesn't correspond to how grep -w behaves for any grep that I know of. Which "early draft" are you talking about? This appears to be merely a bug in libpcre2's documentation and implementation. > I would suggest instead that -P should also follow perl convention > instead when used together with -w, but maybe that is something that a > -P feature flag could enable or disable as needed? I can't imagine anybody intuitively saying in an English locale that "%%" is a word in the string "aa%%aa". PCRE2 is broken, that's all. If a user really wants PCRE2's buggy interpretation, they can simply surround their regexp with "\b(?:" and ")\b" and not use -w; so there's no need to have a different flag for pcre2grep's bizarre interpretation of -w. Here's another reason why pcre2grep -w is obviously busted: $ pcre2grep -w ',' <<'EOF' > a,a > a, a > a, > EOF a,a Why is "," a word in the first input line, but not in the second or third? pcre2grep is simply wrong here. > Note that "word" definition also has a different meaning in a post > Unicode world Yes, but that's an independent issue. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Carlo Arenas Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 04:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163695149321062 (code B ref 47264); Mon, 15 Nov 2021 04:45:01 +0000 Received: (at 47264) by debbugs.gnu.org; 15 Nov 2021 04:44:53 +0000 Received: from localhost ([127.0.0.1]:52166 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmTrQ-0005Tc-Gu for submit@debbugs.gnu.org; Sun, 14 Nov 2021 23:44:53 -0500 Received: from mail-vk1-f173.google.com ([209.85.221.173]:46037) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmTrO-0005TO-Gc for 47264@debbugs.gnu.org; Sun, 14 Nov 2021 23:44:51 -0500 Received: by mail-vk1-f173.google.com with SMTP id m19so3674977vko.12 for <47264@debbugs.gnu.org>; Sun, 14 Nov 2021 20:44:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=QxdQVlXrUcIILwQzDn4O4f1sW1BK/szGSkcCXaN9+T8=; b=lxbj1vVU1FmzY7J765mtTaCJBahJ6M+ZOY6GcnWC5C0DofrKE6yMtuaT1A79pmqqBN YFZrTswsnYH0FFwq1pqc8ga2cXxslNEAIkqyvc368VUaPsPDyF9IlxfhtxvxCV9672ZO 3ZtdHBDC9/8TfJZwXQ85Urm1fXLNG64F/P+i3sR/ZR9BIacwkDBhDzrAR36hcHBB/wzd cTC9a0BIIzRXeArwAfQLB54nWJSorAQRd08xlxmF2DjrvL1BB4skANFwIdL8BzSL9Iul kvl5Cn6w500vEv3tkk1/qajQMR+YRmpueEawBCgA20Rr3I5stX4YrZ54Vn/DnxU0Tej5 HhQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=QxdQVlXrUcIILwQzDn4O4f1sW1BK/szGSkcCXaN9+T8=; b=ZPI2nulPEVDMkHhcVNCtd4kCqOQrrfmdCwrjzg67wRJhUPJXlnICbUZlbIMPjMDCKZ Fd8xTK/wqhWOoMJxvkxpL9/wyAqQzk/PXVVm9Hxeo1rDAeSKMskmszQZYqhmjuXuLMJs sm0AT2TjD9DAINJZ0Ge9WbuNpoL8iIs94LI8hehfC9qGt0ne7boHHRf96UHeWzEs5XGH Nb+E5Ko0KyDma04VTRs+Ls+Xd7gj4wXOQv2LdO3tiNADR2zJzLLnfQa2TQ+ehcDGXQVd idzwTfFBu2z7dtE6GZltGhb4zXT7y2QuZ1n0byyEYaAs2ZFqd760q0UjucLwJuoBBZ0H peqg== X-Gm-Message-State: AOAM532t02RtwhxlsOlkuxuSjna/8SYg9k6kv3Kakb4uaYe8Q6XJ+1y8 fpFJkXoY01kM8L+f2RcDPQ+G5YiV+P7R329JZFY= X-Google-Smtp-Source: ABdhPJyRzSVYwJDrRbiJlcia74UrmbGTqR8qDpNeVDeLsvYnoEzSLmNKVmxoThKWyqZavI02G2mHCBWrLkcMGQm2d3A= X-Received: by 2002:a05:6122:ca7:: with SMTP id ba39mr55404098vkb.25.1636951484560; Sun, 14 Nov 2021 20:44:44 -0800 (PST) MIME-Version: 1.0 References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> In-Reply-To: From: Carlo Arenas Date: Sun, 14 Nov 2021 20:44:33 -0800 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Sun, Nov 14, 2021 at 7:18 PM Paul Eggert wrote: > On 11/14/21 14:25, Carlo Arenas wrote: > > using idx_t instead of size_t should be fine (if only halves the max > > size of the objects managed), but I am concerned that assuming > > PCRE2_SIZE_MAX is always equivalent to SIZE_MAX (as done in patch 4) > > might be risky (at least without a comment), and considering that is > > part of the API anyway might be better if kept as PCRE2_SIZE_MAX IMHO. > > This shouldn't be a problem in practice. Surely PCRE2_SIZE_MAX is for > forward compatibility to a potential future version of PCRE2 that may > define PCRE2_SIZE to be some other type. For PCRE2 10.20 and earlier > PCRE2_SIZE is hardwired to size_t, so there is only one plausible > default for PCRE2_SIZE_MAX, namely SIZE_MAX. which is why I mention that it will be better to at least document that in a comment, as it was done everywhere else where assumptions made in the pcre library were used. Interestingly enough this discussion gave me an idea for a feature in PCRE where that value will be set to something else than SIZE_MAX and that might break grep in a future release if it lands. > > As I mentioned before, PCRE matches the Perl definition as mentioned > > before in an early draft that also had this change reversed. > > I see that PCRE2 documents that PCRE2_EXTRA_MATCH_WORD surrounds the > pattern with "\b(?:" and ")\b". However, this is bogus: it doesn't > correspond to the intuitive meaning of "match words", and it doesn't > correspond to how grep -w behaves for any grep that I know of. It all comes from what perl defines[1] as a word character (\w), and that I presume came from the fact it was used earlier for text processing and most of that text was computer code (which currently can include unicode). > Which "early draft" are you talking about? This appears to be merely a > bug in libpcre2's documentation and implementation. https://lists.gnu.org/archive/html/grep-devel/2021-10/msg00000.html > > I would suggest instead that -P should also follow perl convention > > instead when used together with -w, but maybe that is something that a > > -P feature flag could enable or disable as needed? > > I can't imagine anybody intuitively saying in an English locale that > "%%" is a word in the string "aa%%aa". PCRE2 is broken, that's all. If a > user really wants PCRE2's buggy interpretation, they can simply surround > their regexp with "\b(?:" and ")\b" and not use -w; so there's no need > to have a different flag for pcre2grep's bizarre interpretation of -w. > > Here's another reason why pcre2grep -w is obviously busted: > > $ pcre2grep -w ',' <<'EOF' > > a,a > > a, a > > a, > > EOF > a,a > > Why is "," a word in the first input line, but not in the second or > third? pcre2grep is simply wrong here. that is indeed likely a "bug", but is one that PCRE shares with perl (and at least JavaScript, Java, Net, Python and Ruby) : $ echo 'a,a' | perl -nle '/\b(,)\b/ and print "$1"' , but it is also because the feature is not being used correctly as ',' is not a word and therefore logically none of them should match > > Note that "word" definition also has a different meaning in a post > > Unicode world > > Yes, but that's an independent issue. for the '%' example was not, as it was the fact that it has a Unicode property indicating is a character used for punctuation as the reason why it was not matched as expected by grep. Carlo [1] https://perldoc.perl.org/perlrebackslash#%5Cb%7B%7D,-%5Cb,-%5CB%7B%7D,-%5CB From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 16:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Arenas Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163699303228895 (code B ref 47264); Mon, 15 Nov 2021 16:18:01 +0000 Received: (at 47264) by debbugs.gnu.org; 15 Nov 2021 16:17:12 +0000 Received: from localhost ([127.0.0.1]:55903 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmefP-0007Vy-Iw for submit@debbugs.gnu.org; Mon, 15 Nov 2021 11:17:11 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:55922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmefN-0007Vi-Iu for 47264@debbugs.gnu.org; Mon, 15 Nov 2021 11:17:10 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 72FA716004F; Mon, 15 Nov 2021 08:17:03 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id U8Xx44Z68VP2; Mon, 15 Nov 2021 08:17:02 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 925FF1600EA; Mon, 15 Nov 2021 08:17:02 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id AiDwv1nXAa6w; Mon, 15 Nov 2021 08:17:02 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 6760D16004F; Mon, 15 Nov 2021 08:17:02 -0800 (PST) Message-ID: Date: Mon, 15 Nov 2021 08:17:02 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.1 Content-Language: en-US References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) On 11/14/21 20:44, Carlo Arenas wrote: >> This shouldn't be a problem in practice. Surely PCRE2_SIZE_MAX is for >> forward compatibility to a potential future version of PCRE2 that may >> define PCRE2_SIZE to be some other type. For PCRE2 10.20 and earlier >> PCRE2_SIZE is hardwired to size_t, so there is only one plausible >> default for PCRE2_SIZE_MAX, namely SIZE_MAX. > > which is why I mention that it will be better to at least document > that in a comment, as it was done everywhere else where assumptions > made in the pcre library were used. What sort of documentation did you have in mind, exactly? > Interestingly enough this discussion gave me an idea for a feature in > PCRE where that value will be set to something else than SIZE_MAX and > that might break grep in a future release if it lands. How would it break grep? I'm not following. If a future version of PCRE defines PCRE_SIZE_MAX to something other than SIZE_MAX, grep should work just fine because it will use what PCRE defines. >>> As I mentioned before, PCRE matches the Perl definition as mentioned >>> before in an early draft that also had this change reversed. >> >> I see that PCRE2 documents that PCRE2_EXTRA_MATCH_WORD surrounds the >> pattern with "\b(?:" and ")\b". However, this is bogus: it doesn't >> correspond to the intuitive meaning of "match words", and it doesn't >> correspond to how grep -w behaves for any grep that I know of. > > It all comes from what perl defines[1] as a word character (\w) No it doesn't. It comes merely from how PCRE2 documents and implements PCRE2_EXTRA_MATCH_WORD. Perl's definition of \w does not determine how PCRE2_EXTRA_MATCH_WORD behaves; it determines only which characters are word characters and which are not. As things stand, PCRE2_EXTRA_MATCH_WORD is bizarre because it causes 'pcre2grep -w' to match strings consisting entirely of non-word (i.e., non-\w) characters. This cannot be right. > that is indeed likely a "bug", but is one that PCRE shares with perl > (and at least JavaScript, Java, Net, Python and Ruby) : > > $ echo 'a,a' | perl -nle '/\b(,)\b/ and print "$1"' That is a different issue. \b matches word *boundaries*; it's different from -w which is supposed to match *words*. There is indeed a word boundary between "a" (a \w character) and "," (a non-\w character), and another word boundary between "," and the following "a", but this doesn't mean "," is a word. Attempting to implement -w with \b is a mistake. That mistake is made in PCRE2 and the mistake should be corrected. PCRE2 should implement PCRE2_EXTRA_MATCH_WORD the same way that grep -P implements -w. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 20:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.16370093702673 (code B ref 47264); Mon, 15 Nov 2021 20:50:02 +0000 Received: (at 47264) by debbugs.gnu.org; 15 Nov 2021 20:49:30 +0000 Received: from localhost ([127.0.0.1]:56297 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmiuw-0000h1-4B for submit@debbugs.gnu.org; Mon, 15 Nov 2021 15:49:30 -0500 Received: from mail-ot1-f52.google.com ([209.85.210.52]:38796) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmiut-0000go-M9 for 47264@debbugs.gnu.org; Mon, 15 Nov 2021 15:49:28 -0500 Received: by mail-ot1-f52.google.com with SMTP id z2-20020a9d71c2000000b0055c6a7d08b8so29634536otj.5 for <47264@debbugs.gnu.org>; Mon, 15 Nov 2021 12:49:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=gFJpzQHFsNFat1wK/WpszIeDa+hcs9d5ACFIJkKagIc=; b=Lf8kcek42XsSOQHTh05O0x3StnnR9MJDuySTWbLHv4BnWdvw13KV1xal24uCNXFu9h W9QSsqJDCwNyfpiKw3GUisMqbLDK4skkds+n02n0aFexGK3QthJmVaIBGL8j4RDJjcoV 7fm/k1+JL0isKAunq12n2J8QS9pSh0tsnjjY0dzyOW3KnGoHcfHQwzdRK2188l20Wh/h 4jBjcWxH+h7jIPApU1M9q35VqTkPzbArtHDQmkmyk9XCdhL521yPEGXGdQ3QRuueWlum EgZuE9eANksASYViGQx0ON+4bmE2e19AvyRPl8lhL3+8K7OkUmpxS10ku8KQoh9yScNP BzqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=gFJpzQHFsNFat1wK/WpszIeDa+hcs9d5ACFIJkKagIc=; b=OZPJ1mveABfJ/Qvf+rcspldaAEBUZJfIA/7u9meQW6p6x6HdOnI7vAq3LE9AZcv1G7 oMk4GplzC3j0mubwL7+dYiByZ5Y1P0Iz5BG7urDSk9etD+NCOsA6k2jBc/cVbHsda+sZ V4vRLwTqyczmeJUYNdx5a8lUZ4w+CRJTkpwE5oNZUr7mFeh98LVnWTV+BI4p5iiVlvYP i+mwrBtoqg4OnuWwEpRr3ye5vbXzfSY6QmywJnaMKQhHdcUM7ajSpJ+dTaNFSI5X0lYR rBjzfy5YERl204zgazFm2dPsdXlzSqJkX9/DmLnaAAkKadXMFoWsIgkME/k9HgKHK8C3 Y6ng== X-Gm-Message-State: AOAM532sLF9nlcOZYHoHXocSwMRPQCUiPm+qWDMPiUvt5IfjpFs4agWN 6ZKqajLIUcMET6D5VWOpcqA= X-Google-Smtp-Source: ABdhPJxfDYWplUmBZsTBkQ2c9Sdh+TWJOLB5GhMpLxQ2tflPQrsgZfYt21b2/pEGOi56dpLknM0fTw== X-Received: by 2002:a05:6830:453:: with SMTP id d19mr1650117otc.72.1637009362073; Mon, 15 Nov 2021 12:49:22 -0800 (PST) Received: from carlos-mbp.lan (104-1-92-200.lightspeed.sntcca.sbcglobal.net. [104.1.92.200]) by smtp.gmail.com with ESMTPSA id q10sm3495711oiw.17.2021.11.15.12.49.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Nov 2021 12:49:21 -0800 (PST) Date: Mon, 15 Nov 2021 12:49:17 -0800 From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Message-ID: References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="3i4Ez+1DIaV81pZ/" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --3i4Ez+1DIaV81pZ/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Nov 15, 2021 at 08:17:02AM -0800, Paul Eggert wrote: > On 11/14/21 20:44, Carlo Arenas wrote: > > > > This shouldn't be a problem in practice. Surely PCRE2_SIZE_MAX is for > > > forward compatibility to a potential future version of PCRE2 that may > > > define PCRE2_SIZE to be some other type. For PCRE2 10.20 and earlier > > > PCRE2_SIZE is hardwired to size_t, so there is only one plausible > > > default for PCRE2_SIZE_MAX, namely SIZE_MAX. > > > > which is why I mention that it will be better to at least document > > that in a comment, as it was done everywhere else where assumptions > > made in the pcre library were used. > > What sort of documentation did you have in mind, exactly? Apologies, I realize it is difficult to talk about code in abstract when not inlined, but I think it will better addressed by "fixing" it as shown in the attached patch. > > Interestingly enough this discussion gave me an idea for a feature in > > PCRE where that value will be set to something else than SIZE_MAX and > > that might break grep in a future release if it lands. > > How would it break grep? I'm not following. If a future version of PCRE > defines PCRE_SIZE_MAX to something other than SIZE_MAX, grep should work > just fine because it will use what PCRE defines. only if we always use PCRE2_SIZE_MAX Carlo --3i4Ez+1DIaV81pZ/ Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-pcre-avoid-using-SIZE_MAX.patch" Content-Transfer-Encoding: 8bit >From fc459a80d20d437ce244753434371d02cf016a62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Mon, 15 Nov 2021 12:36:17 -0800 Subject: [PATCH] pcre: avoid using SIZE_MAX MIME-Version: 1.0 Content-Type: text/x-patch; charset=UTF-8 Content-Transfer-Encoding: 8bit Not a problem in practice, as all versions of PCRE2 that define PCRE2_SIZE_MAX do it as SIZE_MAX, but lets avoid any surprises by using the same value we are using everywhere else in case it ever changes. Signed-off-by: Carlo Marcelo Arenas Belón --- src/pcresearch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pcresearch.c b/src/pcresearch.c index c12c674..dcf146a 100644 --- a/src/pcresearch.c +++ b/src/pcresearch.c @@ -82,7 +82,8 @@ jit_exec (struct pcre_comp *pc, char const *subject, idx_t search_bytes, Going over the jitstack_max limit could trigger an int overflow bug. */ int STACK_GROWTH_RATE = 8192; - idx_t jitstack_max = MIN (IDX_MAX, SIZE_MAX - (STACK_GROWTH_RATE - 1)); + idx_t jitstack_max = MIN (IDX_MAX, + PCRE2_SIZE_MAX - (STACK_GROWTH_RATE - 1)); int e = pcre2_match (pc->cre, (PCRE2_SPTR) subject, search_bytes, search_offset, options, pc->data, pc->mcontext); -- 2.34.0.352.g07dee3c5e1 --3i4Ez+1DIaV81pZ/-- From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 15 Nov 2021 23:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163701869120386 (code B ref 47264); Mon, 15 Nov 2021 23:25:01 +0000 Received: (at 47264) by debbugs.gnu.org; 15 Nov 2021 23:24:51 +0000 Received: from localhost ([127.0.0.1]:56525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmlLH-0005Ik-Lk for submit@debbugs.gnu.org; Mon, 15 Nov 2021 18:24:51 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:58836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmlLE-0005IT-Pf for 47264@debbugs.gnu.org; Mon, 15 Nov 2021 18:24:49 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B3DEF160100; Mon, 15 Nov 2021 15:24:42 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id PzUO3pZpM7CO; Mon, 15 Nov 2021 15:24:42 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1402D16010B; Mon, 15 Nov 2021 15:24:42 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id gaRTKMaPswTU; Mon, 15 Nov 2021 15:24:41 -0800 (PST) Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id E01631600EF; Mon, 15 Nov 2021 15:24:41 -0800 (PST) Message-ID: Date: Mon, 15 Nov 2021 15:24:41 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Content-Language: en-US References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.4 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.4 (---) On 11/15/21 12:49, Carlo Marcelo Arenas Bel=C3=B3n wrote: > Apologies, I realize it is difficult to talk about code in abstract whe= n > not inlined, but I think it will better addressed by "fixing" it as sho= wn > in the attached patch. That patch isn't right, because the relevant code inside libpcre2 uses=20 size_t, not PCRE2_SIZE and that means our hacky workaround should use=20 SIZE_MAX, not PCRE2_SIZE_MAX, so that it's consistent with libpcre2's=20 internals. Of course this is all academic on all existing platforms, since IDX_MAX=20 is way less than SIZE_MAX. From unknown Thu Jun 19 14:18:24 2025 X-Loop: help-debbugs@gnu.org Subject: bug#47264: [PATCH v2] pcre: migrate to pcre2 Resent-From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Tue, 16 Nov 2021 00:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47264 X-GNU-PR-Package: grep X-GNU-PR-Keywords: To: Paul Eggert Cc: Jaroslav Skarvada , 47264@debbugs.gnu.org Received: via spool by 47264-submit@debbugs.gnu.org id=B47264.163702148925732 (code B ref 47264); Tue, 16 Nov 2021 00:12:01 +0000 Received: (at 47264) by debbugs.gnu.org; 16 Nov 2021 00:11:29 +0000 Received: from localhost ([127.0.0.1]:56576 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmm4O-0006gy-KB for submit@debbugs.gnu.org; Mon, 15 Nov 2021 19:11:28 -0500 Received: from mail-oi1-f178.google.com ([209.85.167.178]:42769) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmm4N-0006gj-20 for 47264@debbugs.gnu.org; Mon, 15 Nov 2021 19:11:27 -0500 Received: by mail-oi1-f178.google.com with SMTP id n66so38334090oia.9 for <47264@debbugs.gnu.org>; Mon, 15 Nov 2021 16:11:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=FuPiYN7tgMcASpk8fvGSCkZw1Bbh/c7ZdktVQ5rnYcI=; b=avM7dD6lB1Or1Pde//MpGBqS70L2llyW+YxDRNFDtWk4FK5wO/Y2mG0phM+FbEZYMQ 5ej15bvFZdvkhd5N2THcyuHmtx6yitJjhAwpW57WyE0pEtOamzq/bE1uKgzX3oZ+C2hP IBesFaCKJRYxECzduLsov0nBWjkT6S9WHf82FELWUhKTSLDAq1Zb9LEjYrYmEnmbn1e/ r6IcPr2+GeYT+rMaU5m8cFT7W+ET05WC3/8pUTI8IB+7oHBB1ulPWpZzepNJPh8pH0aa rYu0BLJiDaKleT452+vRVM5Da+OLJRRXd+mkFGe+7NUidMmPveSS01KWL+hmX3Tlahds F4JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=FuPiYN7tgMcASpk8fvGSCkZw1Bbh/c7ZdktVQ5rnYcI=; b=kl6WViyOGuI5nPmGxNwEvzkwezd0YalMSRQHiWCxxRYn0WJTqkCjX2jJm+HcG21RT8 XOFvPt3u1S/dq8HNFggxf9IAbrJ5Usy3c9rmqIc8W3UDXcP50NT8YI1CVRcwp45jsOlB z/GZ4bExeTMmuqzths0aJ0lTF2LsCWLvRdEJJK7WEI/WVkNbpVPoXtRT27J/lZfozNaV C8zY2joqVDAmg9v9alMalcdgtsLOA8d2/VjT5AvVDLNJ985oQ5Hgw+ybFS0kXVx5d0YC N+RUlE4kdO1dT69l/Y2HcAUFl8yjEA+7SrjowD5UKlCt0Tk7ytr+rv/zFaPLw1bsClwE sqow== X-Gm-Message-State: AOAM532qk6N/WlavkFEPcBLf2OQWt+YGsauufjc9TjZdPF9lgzZ+K6LD 14deqrcnSk8H/ZPkN0bNq6A= X-Google-Smtp-Source: ABdhPJw3w7KrklDpMg8FvrLtkxGFmJbqmrlgTQQzG/63JSBSHW7fdx8h7leLnWbaQ2xQQYffeH89QA== X-Received: by 2002:a05:6808:120e:: with SMTP id a14mr48908432oil.122.1637021481452; Mon, 15 Nov 2021 16:11:21 -0800 (PST) Received: from carlos-mbp.lan (104-1-92-200.lightspeed.sntcca.sbcglobal.net. [104.1.92.200]) by smtp.gmail.com with ESMTPSA id j187sm3445586oih.5.2021.11.15.16.11.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Nov 2021 16:11:20 -0800 (PST) Date: Mon, 15 Nov 2021 16:11:19 -0800 From: Carlo Marcelo Arenas =?UTF-8?Q?Bel=C3=B3n?= Message-ID: References: <216102465.13294974.1616167335723.JavaMail.zimbra@redhat.com> <2fc13013-90f8-e63e-c833-6636dd28bdf6@cs.ucla.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MtN8308W8JWUpi5m" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --MtN8308W8JWUpi5m Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Mon, Nov 15, 2021 at 03:24:41PM -0800, Paul Eggert wrote: > On 11/15/21 12:49, Carlo Marcelo Arenas Belón wrote: > > > Apologies, I realize it is difficult to talk about code in abstract when > > not inlined, but I think it will better addressed by "fixing" it as shown > > in the attached patch. > > That patch isn't right, because the relevant code inside libpcre2 uses > size_t, not PCRE2_SIZE and that means our hacky workaround should use > SIZE_MAX, not PCRE2_SIZE_MAX, so that it's consistent with libpcre2's > internals. You are correct, got confused by the changes going to PCRE2_SIZE -> idx, and should had check, thanks for catching this. Hopefully the next patch (which I was planning to do with some of the cleanup you beat me to), will at least clear some possible future valgrind complain. > Of course this is all academic on all existing platforms, since IDX_MAX is > way less than SIZE_MAX. Agree, and frankly I still think it will be better if IDX_MAX would be used unconditionally instead. Carlo --MtN8308W8JWUpi5m Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="0001-pcre-only-make-tables-when-needed-and-make-them-alwa.patch" Content-Transfer-Encoding: 8bit >From 75cd3b441c216134c9708e3e4b67720a4cdb096b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Mon, 15 Nov 2021 14:19:15 -0800 Subject: [PATCH] pcre: only make tables when needed and make them always reachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When doing a match in non utf mode, chartables that reflect the corresponding attributes that the locale define are needed, and therefore that information is passed through a compile context. Before ad6e5cb (grep: fix minor -P memory leak, 2021-11-14), the table will leak together with the compile context on the hopes it will be eventually free if a cleanup callback is even invented, but now is not only leaking but unreachable, so at least make it reachable again and while at it, make sure it is only created when needed. Signed-off-by: Carlo Marcelo Arenas Belón --- src/pcresearch.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pcresearch.c b/src/pcresearch.c index c12c674..1f322f4 100644 --- a/src/pcresearch.c +++ b/src/pcresearch.c @@ -41,6 +41,9 @@ struct pcre_comp /* Compiled internal form of a Perl regular expression. */ pcre2_code *cre; + /* Charset tables. */ + const uint8_t *tables; + /* Match context and data block. */ pcre2_match_context *mcontext; pcre2_match_data *data; @@ -193,7 +196,14 @@ Pcompile (char *pattern, idx_t size, reg_syntax_t ignored, bool exact) size = re_size; } - pcre2_set_character_tables (ccontext, pcre2_maketables (gcontext)); + if (! localeinfo.using_utf8) + { + pc->tables = pcre2_maketables (gcontext); + pcre2_set_character_tables (ccontext, pc->tables); + } + else + pc->tables = NULL; + pc->cre = pcre2_compile ((PCRE2_SPTR) pattern, size, flags, &ec, &e, ccontext); if (!pc->cre) -- 2.34.0.352.g07dee3c5e1 --MtN8308W8JWUpi5m--