From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-4.1 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RCVD_IN_DNSWL_HI,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id BAB481F8C4 for ; Wed, 23 Mar 2022 17:35:44 +0000 (UTC) Received: from localhost ([::1]:36770 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nX4tb-0007PC-K0 for normalperson@yhbt.net; Wed, 23 Mar 2022 13:35:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46434) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nX4tE-0007ND-NV for bug-gnulib@gnu.org; Wed, 23 Mar 2022 13:35:22 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:35308) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nX4t4-00057l-5P for bug-gnulib@gnu.org; Wed, 23 Mar 2022 13:35:19 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B06DE1600C4; Wed, 23 Mar 2022 10:35:05 -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 xKAs0tmkICZe; Wed, 23 Mar 2022 10:35:03 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4ECAF1600CC; Wed, 23 Mar 2022 10:35:03 -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 TLmW-_eFsXYU; Wed, 23 Mar 2022 10:35:03 -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 1636C1600C4; Wed, 23 Mar 2022 10:35:03 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------ew32gGlVxkj7604oR4LHwpkw" Message-ID: <10114b5a-e146-e326-150d-f9973e36c956@cs.ucla.edu> Date: Wed, 23 Mar 2022 10:35:02 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US To: DJ Delorie References: From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: [patch v2] glob: resolve DT_UNKNOWN via is_dir In-Reply-To: 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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bug-gnulib@gnu.org Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" This is a multi-part message in MIME format. --------------ew32gGlVxkj7604oR4LHwpkw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/22/22 21:34, DJ Delorie wrote: >> Of course performance will suffer with all these correctness patches, >> but that can wait until a rewrite. > > Modern XFS and EXT filesystems should not hit these code paths at all, > except for symbolic links, and even then only with GLOB_ONLYDIR. Right, though glob uses GLOB_ONLYDIR internally so this slower code will execute in some cases even when the user doesn't specify GLOB_ONLYDIR. >> +# define dirfd(str) __dirfd (str) > > This needs an #undef before it, else it causes build errors as glibc > already has a definition for dirfd() and it conflicts with this one. > Prudence says they should *all* be protected as such, but I only mention > the new one. Thanks, I protected it with an ifdef instead as that's more likely perform better. Also, I noticed that the Gnulib glob module needs to be GPL not LGPLv2+, since it now depends on GPL modules like fstatat. So I fixed this (Gnulib-specific) issue as well. > I contemplated the case of symbolic links; I couldn't find anything in > the standards about it but I went with "glob does what shell wildcards > do" and those followed links, and I think that makes sense, so OK. I > added that case to my local test area and it seems to do what I think > people will expect it to do. Thanks for checking that. I installed the attached into Gnulib. The first two patches are the same as what I sent earlier, except with the ifdef and GPL changes mentioned above. The 3rd patch tests for glibc bug 25659, replaces glibc glob if the bug is present, and makes sure the resulting glob passes a sanity check. I hope this lets us make the Gnulib and glibc glob.c identical. --------------ew32gGlVxkj7604oR4LHwpkw Content-Type: text/x-patch; charset=UTF-8; name="0001-glob-resolve-DT_UNKNOWN-via-is_dir.patch" Content-Disposition: attachment; filename="0001-glob-resolve-DT_UNKNOWN-via-is_dir.patch" Content-Transfer-Encoding: base64 RnJvbSBhYjhiM2FmZGEyYWFkY2ZkMWFiN2ZkOWY3YmVkOTI0NjdkZmUyNGFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBESiBEZWxvcmllIDxkakByZWRoYXQuY29tPgpEYXRl OiBXZWQsIDIzIE1hciAyMDIyIDA5OjM5OjM3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxLzNd IGdsb2I6IHJlc29sdmUgRFRfVU5LTk9XTiB2aWEgaXNfZGlyCgpUaGUgRFRfKiB2YWx1ZXMg cmV0dXJuZWQgYnkgZ2V0ZGVudHMgKHJlYWRkaXIpIGFyZSBvbmx5IGhpbnRzIGFuZApub3Qg cmVxdWlyZWQuICBJbiBmYWN0LCBzb21lIExpbnV4IGZpbGVzeXN0ZW1zIHJldHVybiBEVF9V TktOT1dOCmZvciBtb3N0IGVudHJpZXMsIHJlZ2FyZGxlc3Mgb2YgYWN0dWFsIHR5cGUuICBU aGlzIGNhdXNlcyBtYWtlCnRvIG1pcy1tYXRjaCBwYXR0ZXJucyB3aXRoIGEgdHJhaWxpbmcg c2xhc2ggKHZpYSBHTE9CX09OTFlESVIpCihzZWUgbWFrZSdzIGZ1bmN0aW9ucy93aWxkY2Fy ZCB0ZXN0IGNhc2UpLiAgVGh1cywgdGhpcyBwYXRjaApkZXRlY3RzIHRoYXQgY2FzZSBhbmQg dXNlcyBpc19kaXIoKSB0byBtYWtlIHRoZSB0eXBlIGtub3duIGVub3VnaApmb3IgcHJvcGVy IG9wZXJhdGlvbi4KClBlcmZvcm1hbmNlIGluIG5vbi1EVF9VTktOT1dOIGNhc2VzIGlzIG5v dCBhZmZlY3RlZC4KClRoZSBsYWNrIG9mIERUXyogaXMgYSB3ZWxsIGtub3duIGlzc3VlIG9u IG9sZGVyIFhGUyBpbnN0YWxsYXRpb25zCihmb3IgZXhhbXBsZSwgUkhFTCA3IGFuZCA4LCBG ZWRvcmEgMjgpIGJ1dCBjYW4gYmUgcmVjcmVhdGVkIGJ5CmNyZWF0aW5nIGFuIFhGUyBmaWxl c3lzdGVtIHdpdGggZmxhZ3MgdGhhdCBtaW1pYyBvbGRlciBiZWhhdmlvcjoKCiQgZmFsbG9j YXRlIC1sIDEwRyAveGZzLmZzCiQgbWtmcy54ZnMgLW4gZnR5cGU9MCAtbSBjcmM9MCAtZiAv eGZzLmZzCiQgbWtkaXIgL3hmcwokIG1vdW50IC1vIGxvb3AgL3hmcy5mcyAveGZzCi0tLQog Q2hhbmdlTG9nICB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvZ2xvYi5jIHwg MjggKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA1MCBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIv Q2hhbmdlTG9nCmluZGV4IDVmYWI1ODQ5NzQuLjhjNTBhNTJjNzggMTAwNjQ0Ci0tLSBhL0No YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMi0wMy0yMyAg REogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CisKKwlnbG9iOiByZXNvbHZlIERUX1VOS05P V04gdmlhIGlzX2RpcgorCisJVGhlIERUXyogdmFsdWVzIHJldHVybmVkIGJ5IGdldGRlbnRz IChyZWFkZGlyKSBhcmUgb25seSBoaW50cyBhbmQKKwlub3QgcmVxdWlyZWQuICBJbiBmYWN0 LCBzb21lIExpbnV4IGZpbGVzeXN0ZW1zIHJldHVybiBEVF9VTktOT1dOCisJZm9yIG1vc3Qg ZW50cmllcywgcmVnYXJkbGVzcyBvZiBhY3R1YWwgdHlwZS4gIFRoaXMgY2F1c2VzIG1ha2UK Kwl0byBtaXMtbWF0Y2ggcGF0dGVybnMgd2l0aCBhIHRyYWlsaW5nIHNsYXNoICh2aWEgR0xP Ql9PTkxZRElSKQorCShzZWUgbWFrZSdzIGZ1bmN0aW9ucy93aWxkY2FyZCB0ZXN0IGNhc2Up LiAgVGh1cywgdGhpcyBwYXRjaAorCWRldGVjdHMgdGhhdCBjYXNlIGFuZCB1c2VzIGlzX2Rp cigpIHRvIG1ha2UgdGhlIHR5cGUga25vd24gZW5vdWdoCisJZm9yIHByb3BlciBvcGVyYXRp b24uCisKKwlQZXJmb3JtYW5jZSBpbiBub24tRFRfVU5LTk9XTiBjYXNlcyBpcyBub3QgYWZm ZWN0ZWQuCisKKwlUaGUgbGFjayBvZiBEVF8qIGlzIGEgd2VsbCBrbm93biBpc3N1ZSBvbiBv bGRlciBYRlMgaW5zdGFsbGF0aW9ucworCShmb3IgZXhhbXBsZSwgUkhFTCA3IGFuZCA4LCBG ZWRvcmEgMjgpIGJ1dCBjYW4gYmUgcmVjcmVhdGVkIGJ5CisJY3JlYXRpbmcgYW4gWEZTIGZp bGVzeXN0ZW0gd2l0aCBmbGFncyB0aGF0IG1pbWljIG9sZGVyIGJlaGF2aW9yOgorCisJJCBm YWxsb2NhdGUgLWwgMTBHIC94ZnMuZnMKKwkkIG1rZnMueGZzIC1uIGZ0eXBlPTAgLW0gY3Jj PTAgLWYgL3hmcy5mcworCSQgbWtkaXIgL3hmcworCSQgbW91bnQgLW8gbG9vcCAveGZzLmZz IC94ZnMKKwogMjAyMi0wMy0yMCAgSmltIE1leWVyaW5nICA8bWV5ZXJpbmdAZmIuY29tPgog CiAJbWFpbnQ6IGJvb3RzdHJhcDogc3BsaXQgYSB0b28tbG9uZyBsaW5lCmRpZmYgLS1naXQg YS9saWIvZ2xvYi5jIGIvbGliL2dsb2IuYwppbmRleCBmOGQ4YTMwNmYyLi4wZGE0NmFjMTM4 IDEwMDY0NAotLS0gYS9saWIvZ2xvYi5jCisrKyBiL2xpYi9nbG9iLmMKQEAgLTEzODEsNyAr MTM4MSwzMyBAQCBnbG9iX2luX2RpciAoY29uc3QgY2hhciAqcGF0dGVybiwgY29uc3QgY2hh ciAqZGlyZWN0b3J5LCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAgIGlmIChmbGFncyAmIEdM T0JfT05MWURJUikKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlYWRkaXJfcmVzdWx0X3R5 cGUgKGQpKQogICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgY2FzZSBE VF9ESVI6IGNhc2UgRFRfTE5LOiBjYXNlIERUX1VOS05PV046IGJyZWFrOworICAgICAgICAg ICAgICAgICAgY2FzZSBEVF9ESVI6IGNhc2UgRFRfTE5LOiBicmVhazsKKyAgICAgICAgICAg ICAgICAgIGNhc2UgRFRfVU5LTk9XTjoKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAgIC8qIFRoZSBmaWxlc3lzdGVtIHdhcyB0b28gbGF6eSB0byBnaXZl IHVzIGEgaGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzbyB3ZSBoYXZlIHRvIGRv IGl0IHRoZSBoYXJkIHdheS4gICovCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZnVs bHBhdGgsICpwOworICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNkaXI7CisgICAgICAg ICAgICAgICAgICAgICAgaW50IG5lZWQgPSBzdHJsZW4gKGRpcmVjdG9yeSkgKyBzdHJsZW4g KGQubmFtZSkgKyAyOworICAgICAgICAgICAgICAgICAgICAgIGludCB1c2VfYWxsb2NhID0g Z2xvYl91c2VfYWxsb2NhIChhbGxvY2FfdXNlZCwgbmVlZCk7CisgICAgICAgICAgICAgICAg ICAgICAgaWYgKHVzZV9hbGxvY2EpCisgICAgICAgICAgICAgICAgICAgICAgICBmdWxscGF0 aCA9IGFsbG9jYV9hY2NvdW50IChuZWVkLCBhbGxvY2FfdXNlZCk7CisgICAgICAgICAgICAg ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgICAgICBmdWxscGF0aCA9IG1hbGxvYyAobmVlZCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChmdWxscGF0aCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdvdG8gbWVtb3J5X2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgIHAgPSBzdHBjcHkgKGZ1bGxwYXRoLCBkaXJlY3Rv cnkpOworICAgICAgICAgICAgICAgICAgICAgICpwKysgPSAnLyc7CisgICAgICAgICAgICAg ICAgICAgICAgc3RyY3B5IChwLCBkLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgIGlz ZGlyID0gaXNfZGlyIChmdWxscGF0aCwgZmxhZ3MsIHBnbG9iKTsKKyAgICAgICAgICAgICAg ICAgICAgICBpZiAoIXVzZV9hbGxvY2EpCisgICAgICAgICAgICAgICAgICAgICAgICBmcmVl IChmdWxscGF0aCk7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzZGlyKQorICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6 IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgfQogCi0tIAoyLjMyLjAKCg== --------------ew32gGlVxkj7604oR4LHwpkw Content-Type: text/x-patch; charset=UTF-8; name="0002-glob-fix-symlink-and-issues-improve-speed.patch" Content-Disposition: attachment; filename="0002-glob-fix-symlink-and-issues-improve-speed.patch" Content-Transfer-Encoding: base64 RnJvbSAyZjdmMDI5ODZmOWQzMzhiNWJiMGU4NjViZmQyNzg2NzhmYjk2MzI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDIzIE1hciAyMDIyIDA5OjUyOjU4IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyLzNdIGdsb2I6IGZpeCBzeW1saW5rIGFuZCAvLyBpc3N1ZXM7IGltcHJvdmUgc3BlZWQK CiogbGliL2dsb2IuYzogSW5jbHVkZSBmY250bC5oLgooZGlyZmQpIFtfTElCQ106IE5ldyBt YWNyby4KKEdMT0JfU1RBVDY0LCBHTE9CX0xTVEFUNjQpOiBSZW1vdmUuICBSZXBsYWNlIGFs bCB1c2VzIHdpdGggLi4uCihHTE9CX0ZTVEFUQVQ2NCk6IC4uLiB0aGlzIG5ldyBtYWNyby4K KGdsb2JfaW5fZGlyKTogVHJlYXQgRFRfTE5LIGxpa2UgRFRfVU5LTk9XTi4KVXNlIGRpcmVj dG9yeS1yZWxhdGl2ZSBmc3RhdGF0IHVubGVzcyBHTE9CX0FMVERJUkZVTkMsIG9yIGRpcmZk IGZhaWxzLgpBdm9pZCBkdXBsaWNhdGUgc3RybGVuIChkaXJlY3RvcnkpLgpXb3JrIGV2ZW4g aWYgZGlyZWN0b3J5IGlzICIvIiwgd2l0aG91dCB0dXJuaW5nIGl0IGludG8gIi8vIi4KVXNl IGEgc2NyYXRjaCBidWZmZXIgaW5zdGVhZCBvZiBieS1oYW5kIGFsbG9jYSBzdHVmZi4KVXNl IG1lbXBjcHkgYW5kIG1lbWNweSBpbnN0ZWFkIG9mIHN0cGNweSBhbmQgc3RyY3B5LgoqIG1v ZHVsZXMvZ2xvYiAoRGVwZW5kcy1vbik6IEFkZCBkaXJmZCwgZnN0YXRhdC4gIFJlbW92ZSBz dGF0LgooTGljZW5zZSk6IENoYW5nZSBmcm9tIExHUEx2MisgdG8gR1BMLCBzaW5jZSBpdCBk ZXBlbmRzIG9uCmZzdGF0YXQuCi0tLQogQ2hhbmdlTG9nICAgIHwgMTcgKysrKysrKysrKysr CiBsaWIvZ2xvYi5jICAgfCA3NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiBtb2R1bGVzL2dsb2IgfCAgNSArKy0tCiAzIGZpbGVzIGNo YW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4YzUwYTUyYzc4Li5hMGQzNTE5MTYyIDEw MDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK KzIwMjItMDMtMjMgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJZ2xv YjogZml4IHN5bWxpbmsgYW5kIC8vIGlzc3VlczsgaW1wcm92ZSBzcGVlZAorCSogbGliL2ds b2IuYzogSW5jbHVkZSBmY250bC5oLgorCShkaXJmZCkgW19MSUJDXTogTmV3IG1hY3JvLgor CShHTE9CX1NUQVQ2NCwgR0xPQl9MU1RBVDY0KTogUmVtb3ZlLiAgUmVwbGFjZSBhbGwgdXNl cyB3aXRoIC4uLgorCShHTE9CX0ZTVEFUQVQ2NCk6IC4uLiB0aGlzIG5ldyBtYWNyby4KKwko Z2xvYl9pbl9kaXIpOiBUcmVhdCBEVF9MTksgbGlrZSBEVF9VTktOT1dOLgorCVVzZSBkaXJl Y3RvcnktcmVsYXRpdmUgZnN0YXRhdCB1bmxlc3MgR0xPQl9BTFRESVJGVU5DLCBvciBkaXJm ZCBmYWlscy4KKwlBdm9pZCBkdXBsaWNhdGUgc3RybGVuIChkaXJlY3RvcnkpLgorCVdvcmsg ZXZlbiBpZiBkaXJlY3RvcnkgaXMgIi8iLCB3aXRob3V0IHR1cm5pbmcgaXQgaW50byAiLy8i LgorCVVzZSBhIHNjcmF0Y2ggYnVmZmVyIGluc3RlYWQgb2YgYnktaGFuZCBhbGxvY2Egc3R1 ZmYuCisJVXNlIG1lbXBjcHkgYW5kIG1lbWNweSBpbnN0ZWFkIG9mIHN0cGNweSBhbmQgc3Ry Y3B5LgorCSogbW9kdWxlcy9nbG9iIChEZXBlbmRzLW9uKTogQWRkIGRpcmZkLCBmc3RhdGF0 LiAgUmVtb3ZlIHN0YXQuCisJKExpY2Vuc2UpOiBDaGFuZ2UgZnJvbSBMR1BMdjIrIHRvIEdQ TCwgc2luY2UgaXQgZGVwZW5kcyBvbgorCWZzdGF0YXQuCisKIDIwMjItMDMtMjMgIERKIERl bG9yaWUgIDxkakByZWRoYXQuY29tPgogCiAJZ2xvYjogcmVzb2x2ZSBEVF9VTktOT1dOIHZp YSBpc19kaXIKZGlmZiAtLWdpdCBhL2xpYi9nbG9iLmMgYi9saWIvZ2xvYi5jCmluZGV4IDBk YTQ2YWMxMzguLjUyYzc5YjRjZDggMTAwNjQ0Ci0tLSBhL2xpYi9nbG9iLmMKKysrIGIvbGli L2dsb2IuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGdsb2IuaD4KIAogI2luY2x1 ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KQEAgLTU2 LDYgKzU3LDkgQEAKICMgZGVmaW5lIHN5c2NvbmYoaWQpIF9fc3lzY29uZiAoaWQpCiAjIGRl ZmluZSBjbG9zZWRpcihkaXIpIF9fY2xvc2VkaXIgKGRpcikKICMgZGVmaW5lIG9wZW5kaXIo bmFtZSkgX19vcGVuZGlyIChuYW1lKQorIyBpZm5kZWYgZGlyZmQKKyMgIGRlZmluZSBkaXJm ZChzdHIpIF9fZGlyZmQgKHN0cikKKyMgZW5kaWYKICMgZGVmaW5lIHJlYWRkaXIoc3RyKSBf X3JlYWRkaXI2NCAoc3RyKQogIyBkZWZpbmUgZ2V0cHduYW1fcihuYW1lLCBidWZwLCBidWYs IGxlbiwgcmVzKSBcCiAgICAgX19nZXRwd25hbV9yIChuYW1lLCBidWZwLCBidWYsIGxlbiwg cmVzKQpAQCAtNjksMTEgKzczLDggQEAKICMgaWZuZGVmIEdMT0JfTFNUQVQKICMgIGRlZmlu ZSBHTE9CX0xTVEFUICAgICAgICAgICAgZ2xfbHN0YXQKICMgZW5kaWYKLSMgaWZuZGVmIEdM T0JfU1RBVDY0Ci0jICBkZWZpbmUgR0xPQl9TVEFUNjQgICAgICAgICAgIF9fc3RhdDY0Ci0j IGVuZGlmCi0jIGlmbmRlZiBHTE9CX0xTVEFUNjQKLSMgIGRlZmluZSBHTE9CX0xTVEFUNjQg ICAgICAgICAgX19sc3RhdDY0CisjIGlmbmRlZiBHTE9CX0ZTVEFUQVQ2NAorIyAgZGVmaW5l IEdMT0JfRlNUQVRBVDY0ICAgICAgICBfX2ZzdGF0YXQ2NAogIyBlbmRpZgogIyBpbmNsdWRl IDxzaGxpYi1jb21wYXQuaD4KICNlbHNlIC8qICFfTElCQyAqLwpAQCAtODgsOCArODksNyBA QAogIyBkZWZpbmUgc3RydWN0X3N0YXQgICAgICAgICAgICBzdHJ1Y3Qgc3RhdAogIyBkZWZp bmUgc3RydWN0X3N0YXQ2NCAgICAgICAgICBzdHJ1Y3Qgc3RhdAogIyBkZWZpbmUgR0xPQl9M U1RBVCAgICAgICAgICAgICBnbF9sc3RhdAotIyBkZWZpbmUgR0xPQl9TVEFUNjQgICAgICAg ICAgICBzdGF0Ci0jIGRlZmluZSBHTE9CX0xTVEFUNjQgICAgICAgICAgIGxzdGF0CisjIGRl ZmluZSBHTE9CX0ZTVEFUQVQ2NCAgICAgICAgIGZzdGF0YXQKICNlbmRpZiAvKiBfTElCQyAq LwogCiAjaW5jbHVkZSA8Zm5tYXRjaC5oPgpAQCAtMjE1LDcgKzIxNSw4IEBAIGdsb2JfbHN0 YXQgKGdsb2JfdCAqcGdsb2IsIGludCBmbGFncywgY29uc3QgY2hhciAqZnVsbG5hbWUpCiAg IH0gdXN0OwogICByZXR1cm4gKF9fZ2xpYmNfdW5saWtlbHkgKGZsYWdzICYgR0xPQl9BTFRE SVJGVU5DKQogICAgICAgICAgID8gcGdsb2ItPkdMT0JfTFNUQVQgKGZ1bGxuYW1lLCAmdXN0 LnN0KQotICAgICAgICAgIDogR0xPQl9MU1RBVDY0IChmdWxsbmFtZSwgJnVzdC5zdDY0KSk7 CisgICAgICAgICAgOiBHTE9CX0ZTVEFUQVQ2NCAoQVRfRkRDV0QsIGZ1bGxuYW1lLCAmdXN0 LnN0NjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRfU1lNTElOS19OT0ZPTExP VykpOwogfQogCiAvKiBTZXQgKlIgPSBBICsgQi4gIFJldHVybiB0cnVlIGlmIHRoZSBhbnN3 ZXIgaXMgbWF0aGVtYXRpY2FsbHkKQEAgLTI1Nyw3ICsyNTgsOCBAQCBpc19kaXIgKGNoYXIg Y29uc3QgKmZpbGVuYW1lLCBpbnQgZmxhZ3MsIGdsb2JfdCBjb25zdCAqcGdsb2IpCiAgIHN0 cnVjdF9zdGF0NjQgc3Q2NDsKICAgcmV0dXJuIChfX2dsaWJjX3VubGlrZWx5IChmbGFncyAm IEdMT0JfQUxURElSRlVOQykKICAgICAgICAgICA/IHBnbG9iLT5nbF9zdGF0IChmaWxlbmFt ZSwgJnN0KSA9PSAwICYmIFNfSVNESVIgKHN0LnN0X21vZGUpCi0gICAgICAgICAgOiBHTE9C X1NUQVQ2NCAoZmlsZW5hbWUsICZzdDY0KSA9PSAwICYmIFNfSVNESVIgKHN0NjQuc3RfbW9k ZSkpOworICAgICAgICAgIDogKEdMT0JfRlNUQVRBVDY0IChBVF9GRENXRCwgZmlsZW5hbWUs ICZzdDY0LCAwKSA9PSAwCisgICAgICAgICAgICAgJiYgU19JU0RJUiAoc3Q2NC5zdF9tb2Rl KSkpOwogfQogCiAvKiBGaW5kIHRoZSBlbmQgb2YgdGhlIHN1Yi1wYXR0ZXJuIGluIGEgYnJh Y2UgZXhwcmVzc2lvbi4gICovCkBAIC0xMjgzLDYgKzEyODUsOCBAQCBnbG9iX2luX2RpciAo Y29uc3QgY2hhciAqcGF0dGVybiwgY29uc3QgY2hhciAqZGlyZWN0b3J5LCBpbnQgZmxhZ3Ms CiB7CiAgIHNpemVfdCBkaXJsZW4gPSBzdHJsZW4gKGRpcmVjdG9yeSk7CiAgIHZvaWQgKnN0 cmVhbSA9IE5VTEw7CisgIHN0cnVjdCBzY3JhdGNoX2J1ZmZlciBzOworICBzY3JhdGNoX2J1 ZmZlcl9pbml0ICgmcyk7CiAjIGRlZmluZSBHTE9CTkFNRVNfTUVNQkVSUyhubmFtZXMpIFwK ICAgICBzdHJ1Y3QgZ2xvYm5hbWVzICpuZXh0OyBzaXplX3QgY291bnQ7IGNoYXIgKm5hbWVb bm5hbWVzXTsKICAgc3RydWN0IGdsb2JuYW1lcyB7IEdMT0JOQU1FU19NRU1CRVJTIChGTEVY SUJMRV9BUlJBWV9NRU1CRVIpIH07CkBAIC0xMzU0LDYgKzEzNTgsNyBAQCBnbG9iX2luX2Rp ciAoY29uc3QgY2hhciAqcGF0dGVybiwgY29uc3QgY2hhciAqZGlyZWN0b3J5LCBpbnQgZmxh Z3MsCiAgICAgICAgIH0KICAgICAgIGVsc2UKICAgICAgICAgeworICAgICAgICAgIGludCBk ZmQgPSBkaXJmZCAoc3RyZWFtKTsKICAgICAgICAgICBpbnQgZm5tX2ZsYWdzID0gKCghKGZs YWdzICYgR0xPQl9QRVJJT0QpID8gRk5NX1BFUklPRCA6IDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICgoZmxhZ3MgJiBHTE9CX05PRVNDQVBFKSA/IEZOTV9OT0VTQ0FQRSA6 IDApKTsKICAgICAgICAgICBmbGFncyB8PSBHTE9CX01BR0NIQVI7CkBAIC0xMzgxLDM0ICsx Mzg2LDMyIEBAIGdsb2JfaW5fZGlyIChjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFy ICpkaXJlY3RvcnksIGludCBmbGFncywKICAgICAgICAgICAgICAgaWYgKGZsYWdzICYgR0xP Ql9PTkxZRElSKQogICAgICAgICAgICAgICAgIHN3aXRjaCAocmVhZGRpcl9yZXN1bHRfdHlw ZSAoZCkpCiAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBjYXNlIERU X0RJUjogY2FzZSBEVF9MTks6IGJyZWFrOwotICAgICAgICAgICAgICAgICAgY2FzZSBEVF9V TktOT1dOOgotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg LyogVGhlIGZpbGVzeXN0ZW0gd2FzIHRvbyBsYXp5IHRvIGdpdmUgdXMgYSBoaW50LAotICAg ICAgICAgICAgICAgICAgICAgICAgIHNvIHdlIGhhdmUgdG8gZG8gaXQgdGhlIGhhcmQgd2F5 LiAgKi8KLSAgICAgICAgICAgICAgICAgICAgICBjaGFyICpmdWxscGF0aCwgKnA7Ci0gICAg ICAgICAgICAgICAgICAgICAgYm9vbCBpc2RpcjsKLSAgICAgICAgICAgICAgICAgICAgICBp bnQgbmVlZCA9IHN0cmxlbiAoZGlyZWN0b3J5KSArIHN0cmxlbiAoZC5uYW1lKSArIDI7Ci0g ICAgICAgICAgICAgICAgICAgICAgaW50IHVzZV9hbGxvY2EgPSBnbG9iX3VzZV9hbGxvY2Eg KGFsbG9jYV91c2VkLCBuZWVkKTsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAodXNlX2Fs bG9jYSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxwYXRoID0gYWxsb2NhX2FjY291 bnQgKG5lZWQsIGFsbG9jYV91c2VkKTsKLSAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGZ1 bGxwYXRoID0gbWFsbG9jIChuZWVkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGZ1bGxwYXRoID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBt ZW1vcnlfZXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICAgICAgcCA9IHN0cGNweSAoZnVsbHBhdGgsIGRpcmVjdG9yeSk7Ci0gICAgICAgICAg ICAgICAgICAgICAgKnArKyA9ICcvJzsKLSAgICAgICAgICAgICAgICAgICAgICBzdHJjcHkg KHAsIGQubmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgaXNkaXIgPSBpc19kaXIgKGZ1 bGxwYXRoLCBmbGFncywgcGdsb2IpOwotICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNl X2FsbG9jYSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUgKGZ1bGxwYXRoKTsKLSAg ICAgICAgICAgICAgICAgICAgICBpZiAoaXNkaXIpCi0gICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgZGVmYXVsdDogY29udGludWU7CisgICAg ICAgICAgICAgICAgICBjYXNlIERUX0RJUjogYnJlYWs7CisgICAgICAgICAgICAgICAgICBj YXNlIERUX0xOSzogY2FzZSBEVF9VTktOT1dOOgorICAgICAgICAgICAgICAgICAgICAvKiBU aGUgZmlsZXN5c3RlbSB3YXMgdG9vIGxhenkgdG8gZ2l2ZSB1cyBhIGhpbnQsCisgICAgICAg ICAgICAgICAgICAgICAgIHNvIHdlIGhhdmUgdG8gZG8gaXQgdGhlIGhhcmQgd2F5LiAgKi8K KyAgICAgICAgICAgICAgICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGRmZCA8IDAgfHwg ZmxhZ3MgJiBHTE9CX0FMVERJUkZVTkMpKQorICAgICAgICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuYW1lbGVuID0gc3RybGVuIChkLm5hbWUp OworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5lZWQgPSBkaXJsZW4gKyAxICsg bmFtZWxlbiArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocy5sZW5ndGggPCBu ZWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXNjcmF0Y2hfYnVmZmVyX3Nl dF9hcnJheV9zaXplICgmcywgbmVlZCwgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg IGdvdG8gbWVtb3J5X2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqcCA9 IG1lbXBjcHkgKHMuZGF0YSwgZGlyZWN0b3J5LCBkaXJsZW4pOworICAgICAgICAgICAgICAg ICAgICAgICAgKnAgPSAnLyc7CisgICAgICAgICAgICAgICAgICAgICAgICBwICs9IHBbLTFd ICE9ICcvJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSAocCwgZC5uYW1lLCBu YW1lbGVuICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBpc19kaXIgKHMu ZGF0YSwgZmxhZ3MsIHBnbG9iKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0X3N0YXQ2NCBzdDY0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEgKEdMT0Jf RlNUQVRBVDY0IChkZmQsIGQubmFtZSwgJnN0NjQsIDApID09IDAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmJiBTX0lTRElSIChzdDY0LnN0X21vZGUpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgIGlmIChmbm1hdGNoIChwYXR0 ZXJuLCBkLm5hbWUsIGZubV9mbGFncykgPT0gMCkKQEAgLTE1NDAsNSArMTU0Myw2IEBAIGds b2JfaW5fZGlyIChjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpkaXJlY3Rvcnks IGludCBmbGFncywKICAgICAgIF9fc2V0X2Vycm5vIChzYXZlKTsKICAgICB9CiAKKyAgc2Ny YXRjaF9idWZmZXJfZnJlZSAoJnMpOwogICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0 IGEvbW9kdWxlcy9nbG9iIGIvbW9kdWxlcy9nbG9iCmluZGV4IGJhMjcwZTg0MjcuLjgzY2Q3 MjljZWIgMTAwNjQ0Ci0tLSBhL21vZHVsZXMvZ2xvYgorKysgYi9tb2R1bGVzL2dsb2IKQEAg LTE3LDggKzE3LDEwIEBAIGFsbG9jYSAgICAgICAgICBbdGVzdCAkSEFWRV9HTE9CID0gMCB8 fCB0ZXN0ICRSRVBMQUNFX0dMT0IgPSAxXQogYnVpbHRpbi1leHBlY3QgIFt0ZXN0ICRIQVZF X0dMT0IgPSAwIHx8IHRlc3QgJFJFUExBQ0VfR0xPQiA9IDFdCiBjbG9zZWRpciAgICAgICAg W3Rlc3QgJEhBVkVfR0xPQiA9IDAgfHwgdGVzdCAkUkVQTEFDRV9HTE9CID0gMV0KIGQtdHlw ZSAgICAgICAgICBbdGVzdCAkSEFWRV9HTE9CID0gMCB8fCB0ZXN0ICRSRVBMQUNFX0dMT0Ig PSAxXQorZGlyZmQgICAgICAgICAgIFt0ZXN0ICRIQVZFX0dMT0IgPSAwIHx8IHRlc3QgJFJF UExBQ0VfR0xPQiA9IDFdCiBmbGV4bWVtYmVyICAgICAgW3Rlc3QgJEhBVkVfR0xPQiA9IDAg fHwgdGVzdCAkUkVQTEFDRV9HTE9CID0gMV0KIGZubWF0Y2ggICAgICAgICBbdGVzdCAkSEFW RV9HTE9CID0gMCB8fCB0ZXN0ICRSRVBMQUNFX0dMT0IgPSAxXQorZnN0YXRhdCAgICAgICAg IFt0ZXN0ICRIQVZFX0dMT0IgPSAwIHx8IHRlc3QgJFJFUExBQ0VfR0xPQiA9IDFdCiBnZXRs b2dpbl9yICAgICAgW3Rlc3QgJEhBVkVfR0xPQiA9IDAgfHwgdGVzdCAkUkVQTEFDRV9HTE9C ID0gMV0KIGxpYmMtY29uZmlnICAgICBbdGVzdCAkSEFWRV9HTE9CID0gMCB8fCB0ZXN0ICRS RVBMQUNFX0dMT0IgPSAxXQogbWVtY2hyICAgICAgICAgIFt0ZXN0ICRIQVZFX0dMT0IgPSAw IHx8IHRlc3QgJFJFUExBQ0VfR0xPQiA9IDFdCkBAIC0yNiw3ICsyOCw2IEBAIG1lbXBjcHkg ICAgICAgICBbdGVzdCAkSEFWRV9HTE9CID0gMCB8fCB0ZXN0ICRSRVBMQUNFX0dMT0IgPSAx XQogb3BlbmRpciAgICAgICAgIFt0ZXN0ICRIQVZFX0dMT0IgPSAwIHx8IHRlc3QgJFJFUExB Q0VfR0xPQiA9IDFdCiByZWFkZGlyICAgICAgICAgW3Rlc3QgJEhBVkVfR0xPQiA9IDAgfHwg dGVzdCAkUkVQTEFDRV9HTE9CID0gMV0KIHNjcmF0Y2hfYnVmZmVyICBbdGVzdCAkSEFWRV9H TE9CID0gMCB8fCB0ZXN0ICRSRVBMQUNFX0dMT0IgPSAxXQotc3RhdCAgICAgICAgICAgIFt0 ZXN0ICRIQVZFX0dMT0IgPSAwIHx8IHRlc3QgJFJFUExBQ0VfR0xPQiA9IDFdCiBzdGRib29s ICAgICAgICAgW3Rlc3QgJEhBVkVfR0xPQiA9IDAgfHwgdGVzdCAkUkVQTEFDRV9HTE9CID0g MV0KIHN0ZGludCAgICAgICAgICBbdGVzdCAkSEFWRV9HTE9CID0gMCB8fCB0ZXN0ICRSRVBM QUNFX0dMT0IgPSAxXQogc3RyZHVwICAgICAgICAgIFt0ZXN0ICRIQVZFX0dMT0IgPSAwIHx8 IHRlc3QgJFJFUExBQ0VfR0xPQiA9IDFdCkBAIC02MSw3ICs2Miw3IEBAIExpbms6CiAkKExJ Ql9NQlJUT1dDKQogCiBMaWNlbnNlOgotTEdQTHYyKworR1BMCiAKIE1haW50YWluZXI6CiBh bGwsIGdsaWJjCi0tIAoyLjMyLjAKCg== --------------ew32gGlVxkj7604oR4LHwpkw Content-Type: text/x-patch; charset=UTF-8; name="0003-glob-test-for-glibc-bug-25659.patch" Content-Disposition: attachment; filename="0003-glob-test-for-glibc-bug-25659.patch" Content-Transfer-Encoding: base64 RnJvbSBlMjY1ZGRkNTU3YWE2ZjhkOTY5MTlmODc2ODBjODUyNWFlOGZhODRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDIzIE1hciAyMDIyIDEwOjIyOjUxIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAzLzNdIGdsb2I6IHRlc3QgZm9yIGdsaWJjIGJ1ZyAyNTY1OQoKaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjU2NTkKKiBtNC9nbG9iLm00IChn bF9HTE9CKTogUmVwbGFjZSBnbG9iIGlmIGl0IGhhcyBidWcgMjU2NTkuCiogdGVzdHMvdGVz dC1nbG9iLmMgKG1haW4pOiBUZXN0IGZvciBnbGliYyBidWcgMjU2NTkuCi0tLQogQ2hhbmdl TG9nICAgICAgICAgfCAgNSArKysrKwogbTQvZ2xvYi5tNCAgICAgICAgfCA0MSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogdGVzdHMvdGVzdC1nbG9iLmMg fCAgOSArKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXgg YTBkMzUxOTE2Mi4uN2VhNGY3Nzk3YiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0No YW5nZUxvZwpAQCAtMSw1ICsxLDEwIEBACiAyMDIyLTAzLTIzICBQYXVsIEVnZ2VydCAgPGVn Z2VydEBjcy51Y2xhLmVkdT4KIAorCWdsb2I6IHRlc3QgZm9yIGdsaWJjIGJ1ZyAyNTY1OQor CWh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI1NjU5 CisJKiBtNC9nbG9iLm00IChnbF9HTE9CKTogUmVwbGFjZSBnbG9iIGlmIGl0IGhhcyBidWcg MjU2NTkuCisJKiB0ZXN0cy90ZXN0LWdsb2IuYyAobWFpbik6IFRlc3QgZm9yIGdsaWJjIGJ1 ZyAyNTY1OS4KKwogCWdsb2I6IGZpeCBzeW1saW5rIGFuZCAvLyBpc3N1ZXM7IGltcHJvdmUg c3BlZWQKIAkqIGxpYi9nbG9iLmM6IEluY2x1ZGUgZmNudGwuaC4KIAkoZGlyZmQpIFtfTElC Q106IE5ldyBtYWNyby4KZGlmZiAtLWdpdCBhL200L2dsb2IubTQgYi9tNC9nbG9iLm00Cmlu ZGV4IDBkMTQyNjM4OWIuLmNmNWY5MzkzMGMgMTAwNjQ0Ci0tLSBhL200L2dsb2IubTQKKysr IGIvbTQvZ2xvYi5tNApAQCAtMSw0ICsxLDQgQEAKLSMgZ2xvYi5tNCBzZXJpYWwgMjQKKyMg Z2xvYi5tNCBzZXJpYWwgMjUKIGRubCBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNywgMjAwOS0y MDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogZG5sIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiBkbmwgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKQEAg LTY2LDYgKzY2LDQ1IEBAIGNoYXIgYVtfR05VX0dMT0JfSU5URVJGQUNFX1ZFUlNJT04gPT0g MSB8fCBfR05VX0dMT0JfSU5URVJGQUNFX1ZFUlNJT04gPT0gMiA/IDEKICAgICAgIGVzYWMK ICAgICBmaQogCisgICAgaWYgdGVzdCAkUkVQTEFDRV9HTE9CID0gMDsgdGhlbgorICAgICAg QUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgZ2xvYiBOT1RESVIqLyBvbWl0cyBzeW1saW5rIHRv IG5vbmRpcl0sCisgICAgICAgICAgICAgICAgICAgICBbZ2xfY3ZfZ2xvYl9vbWl0X25vbmRp cl9zeW1saW5rc10sCisgICAgICAgIFtpZiB0ZXN0ICRjcm9zc19jb21waWxpbmcgIT0geWVz OyB0aGVuCisgICAgICAgICAgIGlmIGxuIC1zIGNvbmYtZmlsZSBjb25mJCQtZ2xvYnRlc3Qg Mj4vZGV2L251bGwgJiYgdG91Y2ggY29uZi1maWxlCisgICAgICAgICAgIHRoZW4KKyAgICAg ICAgICAgICBnbF9jdl9nbG9iX29taXRfbm9uZGlyX3N5bWxpbmtzPW1heWJlCisgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAjIElmIHdlIGNhbid0IG1ha2UgYSBzeW1saW5rLCB0 aGVuIHdlIGNhbm5vdCB0ZXN0IHRoaXMgaXNzdWUuICBCZQorICAgICAgICAgICAgICMgcGVz c2ltaXN0aWMgYWJvdXQgdGhpcy4KKyAgICAgICAgICAgICBnbF9jdl9nbG9iX29taXRfbm9u ZGlyX3N5bWxpbmtzPW5vCisgICAgICAgICAgIGZpCisgICAgICAgICAgIGlmIHRlc3QgJGds X2N2X2dsb2Jfb21pdF9ub25kaXJfc3ltbGlua3MgPSBtYXliZTsgdGhlbgorICAgICAgICAg ICAgIEFDX1JVTl9JRkVMU0UoCisgICAgICAgICAgICAgICBbQUNfTEFOR19QUk9HUkFNKAor ICAgICAgICAgICAgICAgICAgW1sjaW5jbHVkZSA8c3RkZGVmLmg+CisgICAgICAgICAgICAg ICAgICAgICNpbmNsdWRlIDxnbG9iLmg+XV0sCisgICAgICAgICAgICAgICAgICBbW2dsb2Jf dCBmb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2IgKCJjb25mKi1nbG9idGVz dC8iLCAwLCBOVUxMLCAmZm91bmQpICE9IEdMT0JfTk9NQVRDSCkKKyAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmZyZWUgKCZmb3Vu ZCk7CisgICAgICAgICAgICAgICAgICBdXSldLAorICAgICAgICAgICAgICAgW2dsX2N2X2ds b2Jfb21pdF9ub25kaXJfc3ltbGlua3M9eWVzXSwKKyAgICAgICAgICAgICAgIFtnbF9jdl9n bG9iX29taXRfbm9uZGlyX3N5bWxpbmtzPW5vXSwKKyAgICAgICAgICAgICAgIFtkbmwgV2Ug ZG9uJ3QgZ2V0IGhlcmUuCisgICAgICAgICAgICAgICAgOgorICAgICAgICAgICAgICAgXSkK KyAgICAgICAgICAgZmkKKyAgICAgICAgICAgcm0gLWYgY29uZiQkLWdsb2J0ZXN0CisgICAg ICAgICBlbHNlCisgICAgICAgICAgIGdsX2N2X2dsb2Jfb21pdF9ub25kaXJfc3ltbGlua3M9 IiRnbF9jcm9zc19ndWVzc19ub3JtYWwiCisgICAgICAgICBmaQorICAgICAgICBdKQorICAg ICAgY2FzZSAiJGdsX2N2X2dsb2Jfb21pdF9ub25kaXJfc3ltbGlua3MiIGluCisgICAgICAg ICp5ZXMpIDs7CisgICAgICAgICopIFJFUExBQ0VfR0xPQj0xIDs7CisgICAgICBlc2FjCisg ICAgZmkKKwogICBmaQogCiAgIGlmIHRlc3QgJGFjX2N2X2Z1bmNfZ2xvYl9wYXR0ZXJuX3Ag PSBubzsgdGhlbgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC1nbG9iLmMgYi90ZXN0cy90ZXN0 LWdsb2IuYwppbmRleCAyNzA5MDgwYmM3Li41NjhhY2YxNGI3IDEwMDY0NAotLS0gYS90ZXN0 cy90ZXN0LWdsb2IuYworKysgYi90ZXN0cy90ZXN0LWdsb2IuYwpAQCAtNzIsNyArNzIsOSBA QCBtYWluICgpCiAgIGdsb2JmcmVlICgmZyk7CiAKICAgaWYgKChzeW1saW5rIChHTF9OT19T VUNIX0ZJTEUsIEJBU0UgImdsb2JsaW5rMSIpID09IDAgfHwgZXJybm8gPT0gRUVYSVNUKQot ICAgICAgJiYgKHN5bWxpbmsgKCIuIiwgQkFTRSAiZ2xvYmxpbmsyIikgPT0gMCB8fCBlcnJu byA9PSBFRVhJU1QpKQorICAgICAgJiYgKHN5bWxpbmsgKCIuIiwgQkFTRSAiZ2xvYmxpbmsy IikgPT0gMCB8fCBlcnJubyA9PSBFRVhJU1QpCisgICAgICAmJiAoc3ltbGluayAoQkFTRSAi Z2xvYmZpbGUiLCBCQVNFICJnbG9ibGluazMiKSA9PSAwIHx8IGVycm5vID09IEVFWElTVCkK KyAgICAgICYmIGNsb3NlIChjcmVhdCAoQkFTRSAiZ2xvYmZpbGUiLCAwNjY2KSkgPT0gMCkK ICAgICB7CiAgICAgICByZXMgPSBnbG9iIChCQVNFICJnbG9ibGlua1sxMl0iLCAwLCBOVUxM LCAmZyk7CiAgICAgICBBU1NFUlQgKHJlcyA9PSAwICYmIGcuZ2xfcGF0aGMgPT0gMik7CkBA IC04MCw2ICs4MiwxMSBAQCBtYWluICgpCiAgICAgICBBU1NFUlQgKHN0cmNtcCAoZy5nbF9w YXRodlsxXSwgQkFTRSAiZ2xvYmxpbmsyIikgPT0gMCk7CiAgICAgICBnbG9iZnJlZSAoJmcp OwogCisgICAgICByZXMgPSBnbG9iIChCQVNFICJnbG9ibGlua1sxMjNdLyIsIDAsIE5VTEws ICZnKTsKKyAgICAgIEFTU0VSVCAocmVzID09IDAgJiYgZy5nbF9wYXRoYyA9PSAxKTsKKyAg ICAgIEFTU0VSVCAoc3RyY21wIChnLmdsX3BhdGh2WzBdLCBCQVNFICJnbG9ibGluazIvIikg PT0gMCk7CisgICAgICBnbG9iZnJlZSAoJmcpOworCiAgICAgICByZXMgPSBnbG9iIChCQVNF ICJnbG9ibGlua1sxMl0iLCBHTE9CX01BUkssIE5VTEwsICZnKTsKICAgICAgIEFTU0VSVCAo cmVzID09IDAgJiYgZy5nbF9wYXRoYyA9PSAyKTsKICAgICAgIEFTU0VSVCAoc3RyY21wIChn LmdsX3BhdGh2WzBdLCBCQVNFICJnbG9ibGluazEiKSA9PSAwKTsKLS0gCjIuMzIuMAoK --------------ew32gGlVxkj7604oR4LHwpkw--