From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.bugs Subject: bug#61514: 30.0.50; sadistically long xml line hangs emacs Date: Mon, 20 Feb 2023 11:28:44 +0000 Message-ID: References: <87lel0c65v.fsf@everybody.org> <838rgvymcd.fsf@gnu.org> <886c06e50e9cfacb7954@heytings.org> <83h6vixik1.fsf@gnu.org> <886c06e50e707ab83560@heytings.org> <886c06e50e876183758c@heytings.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Z1TXJaJrKj" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38365"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , 61514@debbugs.gnu.org, mah@everybody.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Feb 20 12:29:21 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pU4MB-0009o6-Fk for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 20 Feb 2023 12:29:19 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pU4Lx-0004tr-BQ; Mon, 20 Feb 2023 06:29:05 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pU4Lv-0004sF-J2 for bug-gnu-emacs@gnu.org; Mon, 20 Feb 2023 06:29:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pU4Lv-0001Gf-9V for bug-gnu-emacs@gnu.org; Mon, 20 Feb 2023 06:29:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pU4Lt-0005P2-Ms for bug-gnu-emacs@gnu.org; Mon, 20 Feb 2023 06:29:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Gregory Heytings Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 20 Feb 2023 11:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61514 X-GNU-PR-Package: emacs Original-Received: via spool by 61514-submit@debbugs.gnu.org id=B61514.167689252920750 (code B ref 61514); Mon, 20 Feb 2023 11:29:01 +0000 Original-Received: (at 61514) by debbugs.gnu.org; 20 Feb 2023 11:28:49 +0000 Original-Received: from localhost ([127.0.0.1]:50669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pU4Lg-0005Ob-CT for submit@debbugs.gnu.org; Mon, 20 Feb 2023 06:28:49 -0500 Original-Received: from heytings.org ([95.142.160.155]:36748) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pU4Ld-0005OS-VC for 61514@debbugs.gnu.org; Mon, 20 Feb 2023 06:28:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20220101; t=1676892524; bh=iO+q/4UGY7xfluBxCAYuls3349bUB4q09Y4Dq4JI8xQ=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=0gxmfSex8YrhYt1VY9gvOTRBp9HuinCWp7V2Zgn6/QazLT4NAOWSz8sRn6qzBdxW/ BFIoJRKyBmGJMzaa2BktrRCoy4ZjbbqT03tZUafJuN0ybNpwM8pyT7n/6GGJe1qmPf Yz/LEOdJJTQ6pOczfenRSYNTaMzV/tS5OiQHozM9CmEFAN1p7kAoERKInsUNTQ0rWH Kbml/fKbhZFAyzdTkwBy5un8p921IVa4tOxscopLpy/R0e06CPB++VZOxds/zJURjv CBQJqCs9N33O0LaGg6bibIHhBkBa9RNA9FUfxAZ7VgYYtOnYIamKhElMoTh7y9/vCs fipW6blxbwLUQ== In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:256140 Archived-At: --Z1TXJaJrKj Content-Type: text/plain; format=flowed; charset=us-ascii >> Looking at the history of that variable, which is in fact a >> compile-time constant, I see that it was initially (May 1995) set to >> 200000. A few months later (Nov 1995) it was set to 20000, and reduced >> again (apparently because of bug reports) to 8000 and to 4000 (both in >> Jun 1996). Two months later it was again set to 20000 (Aug 1996), and >> a year later to 40000 (Dec 1997). It kept that value since then. As >> these changes (and this bug report) demonstrate, it is not possible to >> give that variable a "one size fits all" value. > > Note that the stack is allocated with `SAFE_ALLOCA` and used to be > allocated with just `alloca`. So the constant was probably reduced > (back in the 90s) in response to reports of segfaults due to C stack > overflows. > Indeed. But now that we use SAFE_ALLOCA, we fallback to malloc when there is not enough room for an alloca, so the constant seems even more arbitrary. > > Nowadays we should be hopefully(?) safe from such segfaults since > `SAFE_ALLOCA` only uses `alloca` for smallish allocations. > That's not the case in regex-emacs.c: REGEX_USE_SAFE_ALLOCA sets sa_avail to emacs_re_safe_alloca (~6 MiB) instead of its default MAX_ALLOCA value (16 KiB). > > This really needs a comment (at least one referring to this bug report). > I think the idea is that we hope the regexp will need at most one stack > entry per character, so the above means that we're willing to limit the > regexp search to about 1kB of text, which sounds fair given it's > supposed to match just a single XML attribute. > Indeed, thanks! >> + DEFVAR_INT ("regexp-max-failures", Vregexp_max_failures, >> + doc: /* Maximum number of failures points in a regexp search. */); >> + Vregexp_max_failures = max_regexp_max_failures; > > This name is misleading. It suggests it's talking about how many times > we fail, whereas the reality is that it's about the number of pending > branches in the search space (which the source code calls "failure > points" because it's info to be used in case the current branch fails to > match). It could also be described as the number of "pending > continuations" or "stacked failure continuations" or some wording like > that. > > But for the var name itself, how 'bout `regexp-max-backtracking-depth`? > Indeed again, and thanks again! Updated patch attached. --Z1TXJaJrKj Content-Type: text/x-diff; name=Make-the-backtracking-depth-of-regexp-searches-modif.patch Content-Transfer-Encoding: base64 Content-ID: Content-Disposition: attachment; filename=Make-the-backtracking-depth-of-regexp-searches-modif.patch RnJvbSA0NTIzMzg3YWM2NDVkOGQ2ZGFhYjA3MTE0ZTI5ZDkzODZhMDI0NTBh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogR3JlZ29yeSBIZXl0 aW5ncyA8Z3JlZ29yeUBoZXl0aW5ncy5vcmc+DQpEYXRlOiBNb24sIDIwIEZl YiAyMDIzIDExOjE4OjMwICswMDAwDQpTdWJqZWN0OiBbUEFUQ0hdIE1ha2Ug dGhlIGJhY2t0cmFja2luZyBkZXB0aCBvZiByZWdleHAgc2VhcmNoZXMgbW9k aWZpYWJsZQ0KDQoqIHNyYy9zZWFyY2guYyAoc3ltc19vZl9zZWFyY2gpIDxy ZWdleHAtbWF4LWJhY2t0cmFja2luZy1kZXB0aD46DQpOZXcgdmFyaWFibGUs IHJlcGxhY2luZyB0aGUgY29uc3RhbnQgdmFyaWFibGUNCidlbWFjc19yZV9t YXhfZmFpbHVyZXMnLiAgSW5pdGlhbGl6ZSBpdCB3aXRoIHRoZSBjb25zdGFu dA0KJ21heF9yZWdleHBfbWF4X2JhY2t0cmFja2luZ19kZXB0aCcuDQoNCiog c3JjL3JlZ2V4LWVtYWNzLmg6IFJlcGxhY2UgdGhlIGV4dGVybmFsIGRlZmlu aXRpb24gb2YNCidlbWFjc19yZV9tYXhfZmFpbHVyZXMnIHdpdGggdGhlIGNv bnN0YW50DQonbWF4X3JlZ2V4cF9tYXhfYmFja3RyYWNraW5nX2RlcHRoJy4N Cg0KKiBzcmMvcmVnZXgtZW1hY3MuYyAoR1JPV19GQUlMX1NUQUNLKTogVXNl IHRoZSBuZXcgdmFyaWFibGUNCmluc3RlYWQgb2YgdGhlIGNvbnN0YW50LiAg UmVzZXQgaXQgdG8gaXRzIG1heGltdW0gdmFsdWUgd2hlbg0KbmVjZXNzYXJ5 Lg0KDQoqIHNyYy9lbWFjcy5jIChtYWluKTogVXNlIHRoZSBuZXcgY29uc3Rh bnQNCidtYXhfcmVnZXhwX21heF9iYWNrdHJhY2tpbmdfZGVwdGgnIGluIHRo ZSBjYWxjdWxhdGlvbnMuDQoNCiogbGlzcC9ueG1sL3htbHRvay5lbCAoeG1s dG9rLXNjYW4tYXR0cmlidXRlcyk6IEJpbmQNCidyZWdleHAtbWF4LWJhY2t0 cmFja2luZy1kZXB0aCcgdG8gYSBzbWFsbCB2YWx1ZSwgYW5kIGFkZCBhDQpj b21tZW50LiAgRml4ZXMgYnVnIzYxNTE0Lg0KLS0tDQogbGlzcC9ueG1sL3ht bHRvay5lbCB8ICA3ICsrKysrKy0NCiBzcmMvZW1hY3MuYyAgICAgICAgIHwg IDggKysrKy0tLS0NCiBzcmMvcmVnZXgtZW1hY3MuYyAgIHwgMjYgKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0NCiBzcmMvcmVnZXgtZW1hY3MuaCAgIHwg IDcgKysrKystLQ0KIHNyYy9zZWFyY2guYyAgICAgICAgfCAxMyArKysrKysr KysrKysrDQogNSBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAy MiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2xpc3AvbnhtbC94bWx0 b2suZWwgYi9saXNwL254bWwveG1sdG9rLmVsDQppbmRleCBjMzZkMjI1Yzdj OS4uODIwMWI3NzNlMGYgMTAwNjQ0DQotLS0gYS9saXNwL254bWwveG1sdG9r LmVsDQorKysgYi9saXNwL254bWwveG1sdG9rLmVsDQpAQCAtNzMxLDcgKzcz MSwxMiBAQCB4bWx0b2stc2Nhbi1hZnRlci1jb21tZW50LW9wZW4NCiANCiAo ZGVmdW4geG1sdG9rLXNjYW4tYXR0cmlidXRlcyAoKQ0KICAgKGxldCAoKHJl Y292ZXJpbmcgbmlsKQ0KLQkoYXR0cy1uZWVkaW5nLW5vcm1hbGl6YXRpb24g bmlsKSkNCisJKGF0dHMtbmVlZGluZy1ub3JtYWxpemF0aW9uIG5pbCkNCisg ICAgICAgIDs7IExpbWl0IHRoZSBiYWNrdHJhY2tpbmcgZGVwdGggb2YgcmVn ZXhwIHNlYXJjaGVzLCB0byBmYWlsDQorICAgICAgICA7OyB3aXRoIGEgIlN0 YWNrIG92ZXJmbG93IGluIHJlZ2V4cCBtYXRjaGVyIiBlcnJvciBpbnN0ZWFk IG9mDQorICAgICAgICA7OyBpbmZsb29waW5nIGluIGxvb2tpbmctYXQuICBU aGlzIGFzc3VtZXMgdGhhdCBYTUwgYXR0cmlidXRlcw0KKyAgICAgICAgOzsg ZG8gbm90IHVzZSBtb3JlIHRoYW4gYWJvdXQgMSBLQiBjaGFyYWN0ZXJzLiAg U2VlIGJ1ZyM2MTUxNC4NCisJKHJlZ2V4cC1tYXgtYmFja3RyYWNraW5nLWRl cHRoIDEwMDApKQ0KICAgICAod2hpbGUgKGNvbmQgKChvciAobG9va2luZy1h dCAoeG1sdG9rLWF0dHJpYnV0ZSByZWdleHApKQ0KIAkJICAgICAgOzsgdXNl IG5vbi1ncmVlZHkgZ3JvdXANCiAJCSAgICAgICh3aGVuIChsb29raW5nLWF0 IChjb25jYXQgIltePD5cbl0rPyINCmRpZmYgLS1naXQgYS9zcmMvZW1hY3Mu YyBiL3NyYy9lbWFjcy5jDQppbmRleCAyMTRlMmUyYTI5Ni4uZDBkY2EzZjAz ZWMgMTAwNjQ0DQotLS0gYS9zcmMvZW1hY3MuYw0KKysrIGIvc3JjL2VtYWNz LmMNCkBAIC0xNDk5LDkgKzE0OTksOSBAQCBtYWluIChpbnQgYXJnYywgY2hh ciAqKmFyZ3YpDQogICAgICAgcmxpbV90IGxpbSA9IHJsaW0ucmxpbV9jdXI7 DQogDQogICAgICAgLyogQXBwcm94aW1hdGUgdGhlIGFtb3VudCByZWdleC1l bWFjcy5jIG5lZWRzIHBlciB1bml0IG9mDQotCSBlbWFjc19yZV9tYXhfZmFp bHVyZXMsIHRoZW4gYWRkIDMzJSB0byBjb3ZlciB0aGUgc2l6ZSBvZiB0aGUN Ci0JIHNtYWxsZXIgc3RhY2tzIHRoYXQgcmVnZXgtZW1hY3MuYyBzdWNjZXNz aXZlbHkgYWxsb2NhdGVzIGFuZA0KLQkgZGlzY2FyZHMgb24gaXRzIHdheSB0 byB0aGUgbWF4aW11bS4gICovDQorCSBtYXhfcmVnZXhwX21heF9iYWNrdHJh Y2tpbmdfZGVwdGgsIHRoZW4gYWRkIDMzJSB0byBjb3ZlciB0aGUNCisJIHNp emUgb2YgdGhlIHNtYWxsZXIgc3RhY2tzIHRoYXQgcmVnZXgtZW1hY3MuYyBz dWNjZXNzaXZlbHkNCisJIGFsbG9jYXRlcyBhbmQgZGlzY2FyZHMgb24gaXRz IHdheSB0byB0aGUgbWF4aW11bS4gICovDQogICAgICAgaW50IG1pbl9yYXRp byA9IDIwICogc2l6ZW9mIChjaGFyICopOw0KICAgICAgIGludCByYXRpbyA9 IG1pbl9yYXRpbyArIG1pbl9yYXRpbyAvIDM7DQogDQpAQCAtMTUxNCw3ICsx NTE0LDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KIA0KICAg ICAgIGlmICh0cnlfdG9fZ3Jvd19zdGFjaykNCiAJew0KLQkgIHJsaW1fdCBu ZXdsaW0gPSBlbWFjc19yZV9tYXhfZmFpbHVyZXMgKiByYXRpbyArIGV4dHJh Ow0KKwkgIHJsaW1fdCBuZXdsaW0gPSBtYXhfcmVnZXhwX21heF9iYWNrdHJh Y2tpbmdfZGVwdGggKiByYXRpbyArIGV4dHJhOw0KIA0KIAkgIC8qIFJvdW5k IHRoZSBuZXcgbGltaXQgdG8gYSBwYWdlIGJvdW5kYXJ5OyB0aGlzIGlzIG5l ZWRlZA0KIAkgICAgIGZvciBEYXJ3aW4ga2VybmVsIDE1LjQuMCAoc2VlIEJ1 ZyMyMzYyMikgYW5kIHBlcmhhcHMNCmRpZmYgLS1naXQgYS9zcmMvcmVnZXgt ZW1hY3MuYyBiL3NyYy9yZWdleC1lbWFjcy5jDQppbmRleCAyZGNhMGQxNmFk OS4uOTMxZGI5ODBlMzkgMTAwNjQ0DQotLS0gYS9zcmMvcmVnZXgtZW1hY3Mu Yw0KKysrIGIvc3JjL3JlZ2V4LWVtYWNzLmMNCkBAIC04NjgsMTcgKzg2OCw2 IEBAIHByaW50X2RvdWJsZV9zdHJpbmcgKHJlX2NoYXIgKndoZXJlLCByZV9j aGFyICpzdHJpbmcxLCBwdHJkaWZmX3Qgc2l6ZTEsDQogICAgc3BhY2UsIHNv IGl0IGlzIG5vdCBhIGhhcmQgbGltaXQuICAqLw0KICNkZWZpbmUgSU5JVF9G QUlMVVJFX0FMTE9DIDIwDQogDQotLyogUm91Z2hseSB0aGUgbWF4aW11bSBu dW1iZXIgb2YgZmFpbHVyZSBwb2ludHMgb24gdGhlIHN0YWNrLiAgV291bGQg YmUNCi0gICBleGFjdGx5IHRoYXQgaWYgZmFpbHVyZSBhbHdheXMgdXNlZCBU WVBJQ0FMX0ZBSUxVUkVfU0laRSBpdGVtcy4NCi0gICBUaGlzIGlzIGEgdmFy aWFibGUgb25seSBzbyB1c2VycyBvZiByZWdleCBjYW4gYXNzaWduIHRvIGl0 OyB3ZSBuZXZlcg0KLSAgIGNoYW5nZSBpdCBvdXJzZWx2ZXMuICBXZSBhbHdh eXMgbXVsdGlwbHkgaXQgYnkgVFlQSUNBTF9GQUlMVVJFX1NJWkUNCi0gICBi ZWZvcmUgdXNpbmcgaXQsIHNvIGl0IHNob3VsZCBwcm9iYWJseSBiZSBhIGJ5 dGUtY291bnQgaW5zdGVhZC4gICovDQotLyogTm90ZSB0aGF0IDQ0MDAgd2Fz IGVub3VnaCB0byBjYXVzZSBhIGNyYXNoIG9uIEFscGhhIE9TRi8xLA0KLSAg IHdob3NlIGRlZmF1bHQgc3RhY2sgbGltaXQgaXMgMm1iLiAgSW4gb3JkZXIg Zm9yIGEgbGFyZ2VyDQotICAgdmFsdWUgdG8gd29yayByZWxpYWJseSwgeW91 IGhhdmUgdG8gdHJ5IHRvIG1ha2UgaXQgYWNjb3JkDQotICAgd2l0aCB0aGUg cHJvY2VzcyBzdGFjayBsaW1pdC4gICovDQotcHRyZGlmZl90IGVtYWNzX3Jl X21heF9mYWlsdXJlcyA9IDQwMDAwOw0KLQ0KIHVuaW9uIGZhaWxfc3RhY2tf ZWx0DQogew0KICAgcmVfY2hhciAqcG9pbnRlcjsNCkBAIC05MTIsNyArOTAx LDcgQEAgI2RlZmluZSBJTklUX0ZBSUxfU1RBQ0soKQkJCQkJCVwNCiANCiAN CiAvKiBEb3VibGUgdGhlIHNpemUgb2YgRkFJTF9TVEFDSywgdXAgdG8gYSBs aW1pdA0KLSAgIHdoaWNoIGFsbG93cyBhcHByb3hpbWF0ZWx5ICdlbWFjc19y ZV9tYXhfZmFpbHVyZXMnIGl0ZW1zLg0KKyAgIHdoaWNoIGFsbG93cyBhcHBy b3hpbWF0ZWx5ICdWcmVnZXhwX21heF9iYWNrdHJhY2tpbmdfZGVwdGgnIGl0 ZW1zLg0KIA0KICAgIFJldHVybiAxIGlmIHN1Y2NlZWRzLCBhbmQgMCBpZiBl aXRoZXIgcmFuIG91dCBvZiBtZW1vcnkNCiAgICBhbGxvY2F0aW5nIHNwYWNl IGZvciBpdCBvciBpdCB3YXMgYWxyZWFkeSB0b28gbGFyZ2UuDQpAQCAtOTI2 LDE2ICs5MTUsMjMgQEAgI2RlZmluZSBJTklUX0ZBSUxfU1RBQ0soKQkJCQkJ CVwNCiAjZGVmaW5lIEZBSUxfU1RBQ0tfR1JPV1RIX0ZBQ1RPUiA0DQogDQog I2RlZmluZSBHUk9XX0ZBSUxfU1RBQ0soZmFpbF9zdGFjaykJCQkJCVwNCi0g ICgoKGZhaWxfc3RhY2spLnNpemUgPj0gZW1hY3NfcmVfbWF4X2ZhaWx1cmVz ICogVFlQSUNBTF9GQUlMVVJFX1NJWkUpICAgICAgICBcDQorICAoKFZyZWdl eHBfbWF4X2JhY2t0cmFja2luZ19kZXB0aCA9CQkJCQlcDQorICAgIFZyZWdl eHBfbWF4X2JhY2t0cmFja2luZ19kZXB0aCA8PSAwCQkJCQlcDQorICAgIHx8 IFZyZWdleHBfbWF4X2JhY2t0cmFja2luZ19kZXB0aAkJCQkJXA0KKyAgICAg ICA+IG1heF9yZWdleHBfbWF4X2JhY2t0cmFja2luZ19kZXB0aAkJCQlcDQor ICAgID8gbWF4X3JlZ2V4cF9tYXhfYmFja3RyYWNraW5nX2RlcHRoCQkJCQlc DQorICAgIDogVnJlZ2V4cF9tYXhfYmFja3RyYWNraW5nX2RlcHRoKSwJCQkJ CVwNCisgICAoKGZhaWxfc3RhY2spLnNpemUJCQkJCQkJXA0KKyAgICA+PSBW cmVnZXhwX21heF9iYWNrdHJhY2tpbmdfZGVwdGggKiBUWVBJQ0FMX0ZBSUxV UkVfU0laRSkJCVwNCiAgICA/IDAJCQkJCQkJCQlcDQogICAgOiAoKGZhaWxf c3RhY2spLnN0YWNrCQkJCQkJXA0KICAgICAgID0gUkVHRVhfUkVBTExPQ0FU RSAoKGZhaWxfc3RhY2spLnN0YWNrLAkJCQlcDQogCSAgKGZhaWxfc3RhY2sp LmF2YWlsICogc2l6ZW9mIChmYWlsX3N0YWNrX2VsdF90KSwJCVwNCi0gICAg ICAgICAgbWluIChlbWFjc19yZV9tYXhfZmFpbHVyZXMgKiBUWVBJQ0FMX0ZB SUxVUkVfU0laRSwgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgIG1p biAoVnJlZ2V4cF9tYXhfYmFja3RyYWNraW5nX2RlcHRoICogVFlQSUNBTF9G QUlMVVJFX1NJWkUsICAgXA0KICAgICAgICAgICAgICAgICgoZmFpbF9zdGFj aykuc2l6ZSAqIEZBSUxfU1RBQ0tfR1JPV1RIX0ZBQ1RPUikpICAgICAgICAg IFwNCiAgICAgICAgICAgKiBzaXplb2YgKGZhaWxfc3RhY2tfZWx0X3QpKSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQogICAgICAgKChm YWlsX3N0YWNrKS5zaXplCQkJCQkJXA0KLSAgICAgICA9IChtaW4gKGVtYWNz X3JlX21heF9mYWlsdXJlcyAqIFRZUElDQUxfRkFJTFVSRV9TSVpFLAkJXA0K KyAgICAgICA9IChtaW4gKFZyZWdleHBfbWF4X2JhY2t0cmFja2luZ19kZXB0 aCAqIFRZUElDQUxfRkFJTFVSRV9TSVpFLAlcDQogCSAgICAgICAoKGZhaWxf c3RhY2spLnNpemUgKiBGQUlMX1NUQUNLX0dST1dUSF9GQUNUT1IpKSkpLAlc DQogICAgICAgMSkpDQogDQpkaWZmIC0tZ2l0IGEvc3JjL3JlZ2V4LWVtYWNz LmggYi9zcmMvcmVnZXgtZW1hY3MuaA0KaW5kZXggMWJjOTczMzYzZTkuLjlj Y2M0MTc3NDg3IDEwMDY0NA0KLS0tIGEvc3JjL3JlZ2V4LWVtYWNzLmgNCisr KyBiL3NyYy9yZWdleC1lbWFjcy5oDQpAQCAtNDksOCArNDksMTEgQEAgI2Rl ZmluZSBFTUFDU19SRUdFWF9IIDENCiAgICBUT0RPOiB0dXJuIGludG8gYW4g YWN0dWFsIGZ1bmN0aW9uIHBhcmFtZXRlci4gICovDQogZXh0ZXJuIExpc3Bf T2JqZWN0IHJlX21hdGNoX29iamVjdDsNCiANCi0vKiBSb3VnaGx5IHRoZSBt YXhpbXVtIG51bWJlciBvZiBmYWlsdXJlIHBvaW50cyBvbiB0aGUgc3RhY2su ICAqLw0KLWV4dGVybiBwdHJkaWZmX3QgZW1hY3NfcmVfbWF4X2ZhaWx1cmVz Ow0KKy8qIE1heGltdW0gdmFsdWUgZm9yIFZyZWdleHBfbWF4X2JhY2t0cmFj a2luZ19kZXB0aC4gIFRoaXMgaXMgcm91Z2hseQ0KKyAgIHRoZSBtYXhpbXVt IGFsbG93ZWQgbnVtYmVyIG9mIGZhaWx1cmUgcG9pbnRzIG9uIHRoZSBzdGFj ay4gIEl0DQorICAgd291bGQgYmUgZXhhY3RseSB0aGF0IGlmIGZhaWx1cmUg YWx3YXlzIHVzZWQgVFlQSUNBTF9GQUlMVVJFX1NJWkUNCisgICBpdGVtcy4g ICovDQorI2RlZmluZSBtYXhfcmVnZXhwX21heF9iYWNrdHJhY2tpbmdfZGVw dGggNDAwMDANCiANCiAvKiBBbW91bnQgb2YgbWVtb3J5IHRoYXQgd2UgY2Fu IHNhZmVseSBzdGFjayBhbGxvY2F0ZS4gICovDQogZXh0ZXJuIHB0cmRpZmZf dCBlbWFjc19yZV9zYWZlX2FsbG9jYTsNCmRpZmYgLS1naXQgYS9zcmMvc2Vh cmNoLmMgYi9zcmMvc2VhcmNoLmMNCmluZGV4IDBiYjUyYzAzZWVmLi5mYzVk N2MyYjhlMiAxMDA2NDQNCi0tLSBhL3NyYy9zZWFyY2guYw0KKysrIGIvc3Jj L3NlYXJjaC5jDQpAQCAtMzQzMSw2ICszNDMxLDE5IEBAIHN5bXNfb2Zfc2Vh cmNoICh2b2lkKQ0KIGlzIHRvIGJpbmQgaXQgd2l0aCBgbGV0JyBhcm91bmQg YSBzbWFsbCBleHByZXNzaW9uLiAgKi8pOw0KICAgVmluaGliaXRfY2hhbmdp bmdfbWF0Y2hfZGF0YSA9IFFuaWw7DQogDQorICBERUZWQVJfSU5UICgicmVn ZXhwLW1heC1iYWNrdHJhY2tpbmctZGVwdGgiLCBWcmVnZXhwX21heF9iYWNr dHJhY2tpbmdfZGVwdGgsDQorCSAgICAgIGRvYzogLyogTWF4aW11bSBiYWNr dHJhY2tpbmcgZGVwdGggaW4gYSByZWdleHAgc2VhcmNoLg0KKw0KK1doZW4g dGhlIG51bWJlciBvZiBwZW5kaW5nIGJyYW5jaGVzIGluIHRoZSBzZWFyY2gg c3BhY2UgcmVhY2hlcyB0aGF0DQordGhyZXNob2xkLCBhIHJlZ2V4cCBzZWFy Y2ggZmFpbHMgd2l0aCBhICJTdGFjayBvdmVyZmxvdyBpbiByZWdleHANCitt YXRjaGVyIi4gIFJvdWdobHkgc3BlYWtpbmcsIHRoaXMgaXMgdGhlIG51bWJl ciBvZiBjaGFyYWN0ZXJzIHRvIHdoaWNoDQorYSByZWdleHAgc2VhcmNoIGlz IGxpbWl0ZWQsIHdpdGggYSBjb21wbGV4IGVub3VnaCByZWdleHAuDQorDQor Tm90ZSB0aGF0IHRoaXMgdmFyaWFibGUgd2lsbCBiZSByZXNldCB0byBpdHMg ZGVmYXVsdCB2YWx1ZSBpZiBpdCBpcw0KK3NldCB0byBhIG5vbi1wb3NpdGl2 ZSB2YWx1ZSwgb3IgdG8gYSBoaWdoZXIgdmFsdWUgdGhhbiBpdHMgZGVmYXVs dA0KK3ZhbHVlLiAgKi8pOw0KKyAgVnJlZ2V4cF9tYXhfYmFja3RyYWNraW5n X2RlcHRoID0gbWF4X3JlZ2V4cF9tYXhfYmFja3RyYWNraW5nX2RlcHRoOw0K Kw0KICAgZGVmc3ViciAoJlNsb29raW5nX2F0KTsNCiAgIGRlZnN1YnIgKCZT cG9zaXhfbG9va2luZ19hdCk7DQogICBkZWZzdWJyICgmU3N0cmluZ19tYXRj aCk7DQotLSANCjIuMzkuMA0KDQo= --Z1TXJaJrKj--