From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Newsgroups: gmane.emacs.bugs Subject: bug#41754: [feature/native-comp] Fix crash when loading lambdas from dumps with --enable-checking. Date: Tue, 9 Jun 2020 08:54:45 -0300 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000074297d05a7a5656f" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="6880"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 41754@debbugs.gnu.org To: Andrea Corallo Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 09 13:56:12 2020 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 1jicrU-0001kx-9P for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Jun 2020 13:56:12 +0200 Original-Received: from localhost ([::1]:41438 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jicrT-0004AK-7Y for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 09 Jun 2020 07:56:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38382) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jicrK-00049c-C4 for bug-gnu-emacs@gnu.org; Tue, 09 Jun 2020 07:56:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47622) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jicrK-0000li-33 for bug-gnu-emacs@gnu.org; Tue, 09 Jun 2020 07:56:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jicrK-0006V3-0u for bug-gnu-emacs@gnu.org; Tue, 09 Jun 2020 07:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 09 Jun 2020 11:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41754 X-GNU-PR-Package: emacs Original-Received: via spool by 41754-submit@debbugs.gnu.org id=B41754.159170370924904 (code B ref 41754); Tue, 09 Jun 2020 11:56:01 +0000 Original-Received: (at 41754) by debbugs.gnu.org; 9 Jun 2020 11:55:09 +0000 Original-Received: from localhost ([127.0.0.1]:59165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jicqS-0006Tc-OJ for submit@debbugs.gnu.org; Tue, 09 Jun 2020 07:55:08 -0400 Original-Received: from mail-ot1-f43.google.com ([209.85.210.43]:41905) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jicqM-0006Su-TF for 41754@debbugs.gnu.org; Tue, 09 Jun 2020 07:55:06 -0400 Original-Received: by mail-ot1-f43.google.com with SMTP id k15so16373371otp.8 for <41754@debbugs.gnu.org>; Tue, 09 Jun 2020 04:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1cqJY7twizjGZQUeGppjpEDIE5XJrFZHrj9QJbwzFPE=; b=u31jWqAfKIuDQbh2fspRLEbgPxxacMwA8K1wDoWbSJseafIz60M+sc6XEYkVQixtWE b6nrM5/Y+NTs479NU5Ls7TBZdLlkxF4fea+4/1lc9wM2ANT84BR/clyA28/88/kczAQ8 sAEr/0zl+S5hm2th29X1QOC4SkTg0Gmy1cGuTuQdjcaRZuxoKcVxjeMQttZcrHhOhRh6 GcaQuQfTKVt0oQB5Us3Ef3NiYTA1BjisURtNBn2BzFe9rROyU5zTW6VzaMjyoVSrd3yC 0lSNp0WxOrCXyF/6ZLrVlbMEr8x2I3GqhiBZzeG3BCwl/DdeX/tM72WsSUCvSzMP4aZP f3bA== 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:from:date :message-id:subject:to:cc; bh=1cqJY7twizjGZQUeGppjpEDIE5XJrFZHrj9QJbwzFPE=; b=CIwTKy9g6tFMMIRBGLUMS3gUsJoUYyq2gFXYBdyO1JnIHDfAwkmd6ZAtzrJsEbrKhL q+SvhUsEYQeOqftKXG7JNXSHeTIIGzrmSiO7JLea7VTnaLW1u6n016pwILFkQhOJShaU 7SgEHTRqmjuJeLdvC5+KtjTas6uIjjfgInmPllDUqefrVnhdL51CG0wh+nusTtlXzcGf wbe0MaLpj4yFmJMWwBOtAHsNRim1MR0WKbHUPF8UO1VgLPig4UZlf905SZkEK3hnfPco X/mwVOqMeeNmVmMoZ4Jjh1IcnjgAlgiloVB7qP2QAdlkd+68ruOMSIJSt6bI6aA58ebT XiAQ== X-Gm-Message-State: AOAM530L5DYy6WQJ0t/FQ7KN55V/cOMVfQON0ujULInawEGf7WtVe5HY MAPoxatI5Halr9nIqwBq3LMzN6eBt5Tt7AgZNyk= X-Google-Smtp-Source: ABdhPJygpM0McoLxhHwOien7clnM9VHiSODmXMB5lTcBBRUKMnjI5+iSIfJjyip6VTH2mEq6oNvcjFZR6RRJaEctHV4= X-Received: by 2002:a9d:4c19:: with SMTP id l25mr20190540otf.193.1591703697096; Tue, 09 Jun 2020 04:54:57 -0700 (PDT) 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" Xref: news.gmane.io gmane.emacs.bugs:181767 Archived-At: --00000000000074297d05a7a5656f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Andrea, I can confirm that the issue with lambdas is fixed. I have attached three bug fixes: - Copy the suffixes before building the heap-based list in openp. I know th= is is not the solution I proposed in the bug report, but I couldn't adapt the c= ode without increasing its complexity way too much for my liking. If you thin= k this is not an appropriate solution I will come up with another one. - Fix a simple bug caused by using cl-destructuring-bind incorrectly. - Use a C array to keep the list of native compilation units. This one fixe= s the crashes when closing Emacs. Ideally I would figure out why iterating over a weak hash-table does not skip elements that were already GC'd, but I co= uld not do it. I feel fixing this bug is very important, so I used a C array = to keep the list of native compilation units. Thanks, Nico. El lun., 8 jun. 2020 a las 18:30, Andrea Corallo () escribi= =C3=B3: > > Hi, > > with "4784bcc * Fix load logic for the reloading CU case (bug#41754)" > this issue should be fixed. > > Reverting on my local branch "e38678b268 * Reduce the number of..." I > did boot-strapped it with and without --enable-checking. > > Please have a run to confirm when you can. > > Thanks > > Andrea > > -- > akrl@sdf.org --00000000000074297d05a7a5656f Content-Type: application/octet-stream; name="0001-Fix-usage-of-cl-destructuring-bind-in-package-delete.patch" Content-Disposition: attachment; filename="0001-Fix-usage-of-cl-destructuring-bind-in-package-delete.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kb7v9o8u1 RnJvbSAxZjJlNTM2NmUxM2VjZTRiMWI2MjYyMzIyMjI0OGY2OTY3YjgwNWEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEp1biAyMDIwIDIwOjQ3 OjA2IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRml4IHVzYWdlIG9mIGNsLWRlc3RydWN0dXJpbmct YmluZCBpbgogcGFja2FnZS0tZGVsZXRlLWRpcmVjdG9yeS4KCiogbGlzcC9lbWFjcy1saXNwL3Bh Y2thZ2UuZWwgKHBhY2thZ2UtLWRlbGV0ZS1kaXJlY3RvcnkpOiBGaXggdXNhZ2Ugb2YKY2wtZGVz dHJ1Y3R1cmluZy1iaW5kLgotLS0KIGxpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UuZWwgYi9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5l bAppbmRleCA5MDRmYzllMTA5NC4uMDE3MWZkNTZmZmQgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3Mt bGlzcC9wYWNrYWdlLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsCkBAIC0yMjE1 LDcgKzIyMTUsNyBAQCBwYWNrYWdlLS1kZWxldGUtZGlyZWN0b3J5CiAgICAgICAgICAgICAgKGNv bmRpdGlvbi1jYXNlIGVycgogICAgICAgICAgICAgICAgICAoZGVsZXRlLWRpcmVjdG9yeSBkaXIg dCkKICAgICAgICAgICAgICAgIChmaWxlLWVycm9yCi0gICAgICAgICAgICAgICAgKGNsLWRlc3Ry dWN0dXJpbmctYmluZCAocmVhc29uMSByZWFzb24yIGZpbGVuYW1lKSBlcnIKKyAgICAgICAgICAg ICAgICAoY2wtZGVzdHJ1Y3R1cmluZy1iaW5kIChfIHJlYXNvbjEgcmVhc29uMiBmaWxlbmFtZSkg ZXJyCiAgICAgICAgICAgICAgICAgICAoaWYgKGFuZCAoc3RyaW5nPSAiUmVtb3Zpbmcgb2xkIG5h bWUiIHJlYXNvbjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nPSAiUGVybWlz c2lvbiBkZW5pZWQiIHJlYXNvbjIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n LXByZWZpeC1wIChleHBhbmQtZmlsZS1uYW1lIHBhY2thZ2UtdXNlci1kaXIpCi0tIAoyLjI1LjEu d2luZG93cy4xCgo= --00000000000074297d05a7a5656f Content-Type: application/octet-stream; name="0001-Copy-suffixes-passed-to-openp-to-avoid-GC-crashes.-F.patch" Content-Disposition: attachment; filename="0001-Copy-suffixes-passed-to-openp-to-avoid-GC-crashes.-F.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kb7v9o7b0 RnJvbSA0YjRmZDUyNmFiZTEyNGM4YTc0YmZhMTEyMDlkZDUzYzNhNTY0Y2M3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEp1biAyMDIwIDIyOjAx OjI1IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gQ29weSBzdWZmaXhlcyBwYXNzZWQgdG8gJ29wZW5w JyB0byBhdm9pZCBHQyBjcmFzaGVzLiBGaXhlcwogYnVnIzQxNzU1CgpJbiBvcGVucF9hZGRfbWlk ZGxlX2Rpcl90b19zdWZmaXhlcyB3ZSBidWlsZCBhIGhlYXAtYmFzZWQgbGlzdCBmcm9tCnRoZSBw YXNzZWQgc3VmZml4ZXMuICBJdCBpcyBjcnVjaWFsIHRoYXQgd2UgZG9uJ3QgY3JlYXRlIGEgaGVh cC1iYXNlZApjb25zIHRoYXQgcG9pbnRzIHRvIGEgc3RhY2stYmFzZWQgbGlzdC4KCiogc3JjL2xy ZWFkLmMgKG9wZW5wX2FkZF9taWRkbGVfZGlyX3RvX3N1ZmZpeGVzKTogQ29weSBzdWZmaXhlcyB3 aGVuCmJ1aWxkaW5nIGEgbGlzdCBvZiBtaWRkbGUtZGlycyBhbmQgc3VmZml4ZXMuCi0tLQogc3Jj L2xyZWFkLmMgfCAxNCArKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2xyZWFkLmMgYi9zcmMvbHJl YWQuYwppbmRleCBjMTI3ZDMyZWIxNy4uNjVkODQ0NjJjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9scmVh ZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC0xNjM1LDIxICsxNjM1LDI3IEBAIG9wZW5wX2FkZF9t aWRkbGVfZGlyX3RvX3N1ZmZpeGVzIChMaXNwX09iamVjdCBzdWZmaXhlcykKICAgTGlzcF9PYmpl Y3QgZXh0ZW5kZWRfc3VmID0gUW5pbDsKICAgRk9SX0VBQ0hfVEFJTF9TQUZFICh0YWlsKQogICAg IHsKLSNpZmRlZiBIQVZFX05BVElWRV9DT01QCisgICAgICAvKiAgc3VmZml4ZXMgbWF5IGJlIGEg c3RhY2stYmFzZWQgY29ucyBwb2ludGluZyB0byBzdGFjay1iYXNlZAorICAgICAgICAgIHN0cmlu Z3MuICBXZSBtdXN0IGNvcHkgdGhlIHN1ZmZpeCBpZiB3ZSBhcmUgcHV0dGluZyBpdCBpbnRvCisg ICAgICAgICAgYSBoZWFwLWJhc2VkIGNvbnMgdG8gYXZvaWQgYSBkYW5nbGluZyByZWZlcmVuY2Uu ICBUaGlzIHdvdWxkCisgICAgICAgICAgbGVhZCB0byBjcmFzaGVzIGR1cmluZyB0aGUgR0MuICAq LwogICAgICAgQ0hFQ0tfU1RSSU5HX0NBUiAodGFpbCk7CiAgICAgICBjaGFyICogc3VmID0gU1NE QVRBIChYQ0FSICh0YWlsKSk7CisgICAgICBMaXNwX09iamVjdCBjb3BpZWRfc3VmZml4ID0gYnVp bGRfc3RyaW5nIChzdWYpOworI2lmZGVmIEhBVkVfTkFUSVZFX0NPTVAKICAgICAgIGlmIChzdHJj bXAgKE5BVElWRV9FTElTUF9TVUZGSVgsIHN1ZikgPT0gMCkKICAgICAgICAgewogICAgICAgICAg IENIRUNLX1NUUklORyAoVmNvbXBfbmF0aXZlX3BhdGhfcG9zdGZpeCk7CiAgICAgICAgICAgLyog SGVyZSB3ZSBhZGQgdGhlbSBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIgc28gdGhhdCBucmV2ZXJzZQog ICAgICAgICAgICAgIGNvcnJlY3RzIGl0LiAgKi8KLSAgICAgICAgICBleHRlbmRlZF9zdWYgPSBG Y29ucyAoRmNvbnMgKFFuaWwsIFhDQVIgKHRhaWwpKSwgZXh0ZW5kZWRfc3VmKTsKLSAgICAgICAg ICBleHRlbmRlZF9zdWYgPSBGY29ucyAoRmNvbnMgKFZjb21wX25hdGl2ZV9wYXRoX3Bvc3RmaXgs IFhDQVIgKHRhaWwpKSwKKyAgICAgICAgICBleHRlbmRlZF9zdWYgPSBGY29ucyAoRmNvbnMgKFFu aWwsIGNvcGllZF9zdWZmaXgpLCBleHRlbmRlZF9zdWYpOworICAgICAgICAgIGV4dGVuZGVkX3N1 ZiA9IEZjb25zIChGY29ucyAoVmNvbXBfbmF0aXZlX3BhdGhfcG9zdGZpeCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcGllZF9zdWZmaXgpLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBleHRlbmRlZF9zdWYpOwogICAgICAgICB9CiAgICAgICBlbHNl CiAjZW5kaWYKLQlleHRlbmRlZF9zdWYgPSBGY29ucyAoRmNvbnMgKFFuaWwsIFhDQVIgKHRhaWwp KSwgZXh0ZW5kZWRfc3VmKTsKKwlleHRlbmRlZF9zdWYgPSBGY29ucyAoRmNvbnMgKFFuaWwsIGNv cGllZF9zdWZmaXgpLCBleHRlbmRlZF9zdWYpOwogICAgIH0KIAogICBzdWZmaXhlcyA9IEZucmV2 ZXJzZSAoZXh0ZW5kZWRfc3VmKTsKLS0gCjIuMjUuMS53aW5kb3dzLjEKCg== --00000000000074297d05a7a5656f Content-Type: application/octet-stream; name="0001-Use-a-C-array-to-keep-the-list-of-live-native-compil.patch" Content-Disposition: attachment; filename="0001-Use-a-C-array-to-keep-the-list-of-live-native-compil.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kb7v9o8y2 RnJvbSA3MTc0Mzc4NTJiN2U5MWE1ZmI5Y2Y4N2RhYjIxYjQ2NjFmM2JiM2I0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIEJlcnRvbG8gPG5pY29sYXNiZXJ0b2xvQGdtYWls LmNvbT4KRGF0ZTogU3VuLCA3IEp1biAyMDIwIDE1OjU0OjUwIC0wMzAwClN1YmplY3Q6IFtQQVRD SF0gVXNlIGEgQyBhcnJheSB0byBrZWVwIHRoZSBsaXN0IG9mIGxpdmUgbmF0aXZlIGNvbXBpbGF0 aW9uCiB1bml0cy4KCkkgd2FzIGdldHRpbmcgY3Jhc2hlcyByZWxhdGVkIHRvIHRoZSBhY2Nlc3Mg dG8gdGhlIGhhc2h0YWJsZSB3aGVuCkVtYWNzIHdhcyBhYm91dCB0byBjbG9zZS4gSSBjb3VsZG4n dCBkZWJ1ZyB0aGVtLCBzbyBJIHJlcGxhY2VkIGl0IHdpdGgKYSBzaW1wbGUgQyBhcnJheS4KCiog c3JjL2xpc3AuaCAoYWxsb2NhdGVfbmF0aXZlX2NvbXBfdW5pdCk6IHJlZ2lzdGVyIGV2ZXJ5IG5h dGl2ZQpjb21waWxhdGlvbiB1bml0IGFsbG9jYXRlZC4KKiBzcmMvY29tcC5oOiBFeHBvc2UgcmVn aXN0ZXJfbmF0aXZlX2NvbXBfdW5pdCAoKSB0byBsaXNwLmguCiogc3JjL2NvbXAuYzogUmVtb3Zl IGFsbF9sb2FkZWRfY29tcF91bml0c19oLiBSZXBsYWNlIGl0IHdpdGggYQpkeW5hbWljYWxseSBz aXplZCBhcnJheS4KLS0tCiBzcmMvY29tcC5jIHwgOTQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvY29tcC5oIHwgIDUgKysrCiBzcmMv bGlzcC5oIHwgIDkgKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDQy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4 IDUyMWNhZGNiMTBjLi4xYTdlYWZhYWFkZiAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9z cmMvY29tcC5jCkBAIC00MTExLDE3ICs0MTExLDE3IEBAIGhlbHBlcl9QU0VVRE9WRUNUT1JfVFlQ RVBfWFVOVEFHIChMaXNwX09iamVjdCBhLCBlbnVtIHB2ZWNfdHlwZSBjb2RlKQogCiAgIFRoZXJl IGFyZSB0d28gZGF0YSBzdHJ1Y3R1cmVzIHVzZWQ6CiAKLSAgLSBUaGUgYGFsbF9sb2FkZWRfY29t cF91bml0c19oYCBoYXNodGFibGUuCisgIC0gVGhlIGBhbGxfbG9hZGVkX2NvbXBfdW5pdHNgIGxp c3QuCiAKLSAgVGhpcyBoYXNodGFibGUgaXMgdXNlZCBsaWtlIGFuIGFycmF5IG9mIHdlYWsgcmVm ZXJlbmNlcyB0byBuYXRpdmUKLSAgY29tcGlsYXRpb24gdW5pdHMuICBUaGlzIGhhc2ggdGFibGUg aXMgZmlsbGVkIGJ5IGxvYWRfY29tcF91bml0ICgpCi0gIGFuZCBkaXNwb3NlX2FsbF9yZW1haW5p bmdfY29tcF91bml0cyAoKSBpdGVyYXRlcyBvdmVyIGFsbCB2YWx1ZXMKLSAgdGhhdCB3ZXJlIG5v dCBkaXNwb3NlZCBieSB0aGUgR0MgYW5kIHBlcmZvcm1zIGFsbCBkaXNwb3NhbCBzdGVwcwotICB3 aGVuIEVtYWNzIGlzIGNsb3NpbmcuCisgIFRoaXMgbGlzdCBpcyBmaWxsZWQgYnkgYWxsb2NhdGVf bmF0aXZlX2NvbXBfdW5pdCAoKSBhbmQKKyAgZGlzcG9zZV9hbGxfcmVtYWluaW5nX2NvbXBfdW5p dHMgKCkgaXRlcmF0ZXMgb3ZlciBhbGwgdmFsdWVzIHRoYXQKKyAgcmVtYWluIGFuZCBwZXJmb3Jt cyBhbGwgZGlzcG9zYWwgc3RlcHMgd2hlbiBFbWFjcyBpcyBjbG9zaW5nLiAgVGhlCisgIGRpc3Bv c2VfY29tcF91bml0ICgpIGZ1bmN0aW9uIHJlbW92ZXMgZW50cmllcyB0aGF0IHdlcmUgZGlzcG9z ZWQgYnkKKyAgdGhlIEdDLgogCiAgIC0gVGhlIGBkZWxheWVkX2NvbXBfdW5pdF9kaXNwb3NhbF9s aXN0YCBsaXN0LgogCi0gIFRoaXMgaXMgd2VyZSB0aGUgZGlzcG9zZV9jb21wX3VuaXQgKCkgZnVu Y3Rpb24sIHdoZW4gY2FsbGVkIGJ5IHRoZQorICBUaGlzIGlzIHdoZXJlIHRoZSBkaXNwb3NlX2Nv bXBfdW5pdCAoKSBmdW5jdGlvbiwgd2hlbiBjYWxsZWQgYnkgdGhlCiAgIEdDIHN3ZWVwIHN0YWdl LCBzdG9yZXMgdGhlIG9yaWdpbmFsIGZpbGVuYW1lcyBvZiB0aGUgZGlzcG9zZWQgbmF0aXZlCiAg IGNvbXBpbGF0aW9uIHVuaXRzLiAgVGhpcyBpcyBhbiBhZC1ob2MgQyBzdHJ1Y3R1cmUgaW5zdGVh ZCBvZiBhIExpc3AKICAgY29ucyBiZWNhdXNlIHdlIG5lZWQgdG8gYWxsb2NhdGUgaW5zdGFuY2Vz IG9mIHRoaXMgc3RydWN0dXJlIGR1cmluZwpAQCAtNDEzNiw3ICs0MTM2LDM1IEBAIGhlbHBlcl9Q U0VVRE9WRUNUT1JfVFlQRVBfWFVOVEFHIChMaXNwX09iamVjdCBhLCBlbnVtIHB2ZWNfdHlwZSBj b2RlKQogI2lmZGVmIFdJTkRPV1NOVAogI2RlZmluZSBPTERfRUxOX1NVRkZJWF9SRUdFWFAgYnVp bGRfc3RyaW5nICgiXFwuZWxuXFwub2xkXFwnIikKIAotc3RhdGljIExpc3BfT2JqZWN0IGFsbF9s b2FkZWRfY29tcF91bml0c19oOworc3RydWN0IGFsbF9sb2FkZWRfY29tcF91bml0c19zIHsKKyAg c3RydWN0IExpc3BfTmF0aXZlX0NvbXBfVW5pdCAqKm1lbTsKKyAgc2l6ZV90IHNpemU7CisgIHNp emVfdCBjYXBhY2l0eTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgYWxsX2xvYWRlZF9jb21wX3VuaXRz X3MgYWxsX2xvYWRlZF9jb21wX3VuaXRzOworCitzdGF0aWMgdm9pZAorbG9hZGVkX2NvbXBfdW5p dHNfcmVtb3ZlIChzdHJ1Y3QgTGlzcF9OYXRpdmVfQ29tcF9Vbml0ICogY29tcF91KQoreworICBz aXplX3QgaTsKKyAgYm9vbCBmb3VuZCA9IGZhbHNlOworICBmb3IgKGkgPSAwIDsgaSA8IGFsbF9s b2FkZWRfY29tcF91bml0cy5zaXplOyArK2kpCisgICAgaWYgKGFsbF9sb2FkZWRfY29tcF91bml0 cy5tZW1baV0gPT0gY29tcF91KQorICAgICAgeworICAgICAgICBmb3VuZCA9IHRydWU7CisgICAg ICAgIGJyZWFrOworICAgICAgfQorICBpZiAoIWZvdW5kKQorICAgIGVtYWNzX2Fib3J0ICgpOwor CisgIHNpemVfdCBlbGVtZW50c19vbl9yaWdodCA9IGFsbF9sb2FkZWRfY29tcF91bml0cy5zaXpl IC0gaSAtIDE7CisgIG1lbW1vdmUgKCZhbGxfbG9hZGVkX2NvbXBfdW5pdHMubWVtW2ldLAorICAg ICAgICAgICAmYWxsX2xvYWRlZF9jb21wX3VuaXRzLm1lbVtpICsgMV0sCisgICAgICAgICAgIGVs ZW1lbnRzX29uX3JpZ2h0ICogc2l6ZW9mIChzdHJ1Y3QgTGlzcF9OYXRpdmVfQ29tcF9Vbml0ICop KTsKKworICBhbGxfbG9hZGVkX2NvbXBfdW5pdHMubWVtWy0tYWxsX2xvYWRlZF9jb21wX3VuaXRz LnNpemVdID0gTlVMTDsKK30KIAogLyogV2UgbmVlZCB0byBhbGxvY2F0ZSBpbnN0YW5jZXMgb2Yg dGhpcyBzdHJ1Y3QgZHVyaW5nIGEgR0Mgc3dlZXAuCiAgICBUaGlzIGlzIHdoeSBpdCBjYW4ndCBi ZSB0cmFuc2Zvcm1lZCBpbnRvIGEgc2ltcGxlIGNvbnMuICAqLwpAQCAtNDE5MywxNyArNDIyMSw5 IEBAIGNsZWFuX3BhY2thZ2VfdXNlcl9kaXJfb2Zfb2xkX2NvbXBfdW5pdHMgKHZvaWQpCiB2b2lk CiBkaXNwb3NlX2FsbF9yZW1haW5pbmdfY29tcF91bml0cyAodm9pZCkKIHsKLSAgc3RydWN0IExp c3BfSGFzaF9UYWJsZSAqaCA9IFhIQVNIX1RBQkxFIChhbGxfbG9hZGVkX2NvbXBfdW5pdHNfaCk7 Ci0KLSAgZm9yIChwdHJkaWZmX3QgaSA9IDA7IGkgPCBIQVNIX1RBQkxFX1NJWkUgKGgpOyArK2kp CisgIGZvciAocHRyZGlmZl90IGkgPSBhbGxfbG9hZGVkX2NvbXBfdW5pdHMuc2l6ZSAtIDE7IGkg Pj0gMDsgLS1pKQogICAgIHsKLSAgICAgIExpc3BfT2JqZWN0IGsgPSBIQVNIX0tFWSAoaCwgaSk7 Ci0gICAgICBpZiAoIUVRIChrLCBRdW5ib3VuZCkpCi0gICAgICAgIHsKLSAgICAgICAgICBMaXNw X09iamVjdCB2YWwgPSBIQVNIX1ZBTFVFIChoLCBpKTsKLSAgICAgICAgICBzdHJ1Y3QgTGlzcF9O YXRpdmVfQ29tcF9Vbml0ICpjdSA9IFhOQVRJVkVfQ09NUF9VTklUICh2YWwpOwotICAgICAgICAg IGRpc3Bvc2VfY29tcF91bml0IChjdSwgZmFsc2UpOwotICAgICAgICB9CisgICAgICBkaXNwb3Nl X2NvbXBfdW5pdCAoYWxsX2xvYWRlZF9jb21wX3VuaXRzLm1lbVtpXSwgZmFsc2UpOwogICAgIH0K IH0KIApAQCAtNDIyNywyMiArNDI0NywyNiBAQCBmaW5pc2hfZGVsYXllZF9kaXNwb3NhbF9vZl9j b21wX3VuaXRzICh2b2lkKQogICAgICAgeGZyZWUgKGl0ZW0pOwogICAgIH0KIH0KLSNlbmRpZgog CiAvKiBUaGlzIGZ1bmN0aW9uIHB1dHMgdGhlIGNvbXBpbGF0aW9uIHVuaXQgaW4gdGhlCi0gIGBh bGxfbG9hZGVkX2NvbXBfdW5pdHNfaGAgaGFzaG1hcC4gICovCi1zdGF0aWMgdm9pZAotcmVnaXN0 ZXJfbmF0aXZlX2NvbXBfdW5pdCAoTGlzcF9PYmplY3QgY29tcF91KQorICBgYWxsX2xvYWRlZF9j b21wX3VuaXRzYCBsaXN0LiAgKi8KK3ZvaWQKK3JlZ2lzdGVyX25hdGl2ZV9jb21wX3VuaXQgKHN0 cnVjdCBMaXNwX05hdGl2ZV9Db21wX1VuaXQgKiBjb21wX3UpCiB7Ci0jaWZkZWYgV0lORE9XU05U Ci0gIC8qIFdlIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSB3ZSBjYW4ndCB1c2UgYGdlbnN5bScuIFRo aXMgZnVuY3Rpb24gaXMKLSAgICAgY2FsbGVkIGVhcmx5IHdoZW4gbG9hZGluZyBhIGR1bXAgZmls ZSBhbmQgc3Vici5lbCBtYXkgbm90IGhhdmUKLSAgICAgYmVlbiBsb2FkZWQgeWV0LiAgKi8KLSAg c3RhdGljIGludG1heF90IGNvdW50OworICAvKiAgR3JvdyB0aGUgYXJyYXkgaWYgbmVjZXNzYXJ5 LiAgKi8KKyAgaWYgKGFsbF9sb2FkZWRfY29tcF91bml0cy5zaXplICsgMSA+IGFsbF9sb2FkZWRf Y29tcF91bml0cy5jYXBhY2l0eSkKKyAgICB7CisgICAgICBhbGxfbG9hZGVkX2NvbXBfdW5pdHMu Y2FwYWNpdHkgPSBtYXggKDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDIgKiBhbGxfbG9hZGVkX2NvbXBfdW5pdHMuY2FwYWNpdHkpOworICAgICAgYWxsX2xv YWRlZF9jb21wX3VuaXRzLm1lbQorICAgICAgICA9IHhyZWFsbG9jIChhbGxfbG9hZGVkX2NvbXBf dW5pdHMubWVtLAorICAgICAgICAgICAgICAgICAgICBhbGxfbG9hZGVkX2NvbXBfdW5pdHMuY2Fw YWNpdHkKKyAgICAgICAgICAgICAgICAgICAgKiBzaXplb2YgKHN0cnVjdCBMaXNwX05hdGl2ZV9D b21wX1VuaXQgKikpOworICAgIH0KIAotICBGcHV0aGFzaCAobWFrZV9pbnQgKGNvdW50KyspLCBj b21wX3UsIGFsbF9sb2FkZWRfY29tcF91bml0c19oKTsKLSNlbmRpZgorICBhbGxfbG9hZGVkX2Nv bXBfdW5pdHMubWVtW2FsbF9sb2FkZWRfY29tcF91bml0cy5zaXplKytdID0gY29tcF91OwogfQor I2VuZGlmCiAKIC8qIFRoaXMgZnVuY3Rpb24gZGlzcG9zZXMgY29tcGlsYXRpb24gdW5pdHMuICBJ dCBpcyBjYWxsZWQgZHVyaW5nIHRoZSBHQyBzd2VlcAogICAgc3RhZ2UgYW5kIHdoZW4gRW1hY3Mg aXMgY2xvc2luZy4KQEAgLTQyNTcsNiArNDI4MSw3IEBAIGRpc3Bvc2VfY29tcF91bml0IChzdHJ1 Y3QgTGlzcF9OYXRpdmVfQ29tcF9Vbml0ICpjb21wX2hhbmRsZSwgYm9vbCBkZWxheSkKICAgZWFz c2VydCAoY29tcF9oYW5kbGUtPmhhbmRsZSk7CiAgIGR5bmxpYl9jbG9zZSAoY29tcF9oYW5kbGUt PmhhbmRsZSk7CiAjaWZkZWYgV0lORE9XU05UCisgIGxvYWRlZF9jb21wX3VuaXRzX3JlbW92ZSAo Y29tcF9oYW5kbGUpOwogICBpZiAoIWRlbGF5KQogICAgIHsKICAgICAgIExpc3BfT2JqZWN0IGRp cm5hbWUgPSBpbnRlcm5hbF9jb25kaXRpb25fY2FzZV8xICgKQEAgLTQ1MDEsMTIgKzQ1MjYsNiBA QCBsb2FkX2NvbXBfdW5pdCAoc3RydWN0IExpc3BfTmF0aXZlX0NvbXBfVW5pdCAqY29tcF91LCBi b29sIGxvYWRpbmdfZHVtcCwKICAgICAgIGRfdmVjX2xlbiA9IFhGSVhOVU0gKEZsZW5ndGggKGNv bXBfdS0+ZGF0YV9pbXB1cmVfdmVjKSk7CiAgICAgICBmb3IgKEVNQUNTX0lOVCBpID0gMDsgaSA8 IGRfdmVjX2xlbjsgaSsrKQogCWRhdGFfaW1wX3JlbG9jc1tpXSA9IEFSRUYgKGNvbXBfdS0+ZGF0 YV9pbXB1cmVfdmVjLCBpKTsKLQotICAgICAgLyogSWYgd2UgcmVnaXN0ZXIgdGhlbSB3aGlsZSBk dW1waW5nIHdlIHdpbGwgZ2V0IHNvbWUgZW50cmllcyBpbgotCSB0aGUgaGFzaCB0YWJsZSB0aGF0 IHdpbGwgYmUgZHVwbGljYXRlZCB3aGVuIHBkdW1wZXIgY2FsbHMKLQkgbG9hZF9jb21wX3VuaXQu ICAqLwotICAgICAgaWYgKCF3aWxsX2R1bXBfcCAoKSkKLQlyZWdpc3Rlcl9uYXRpdmVfY29tcF91 bml0IChjb21wX3VfbGlzcF9vYmopOwogICAgIH0KIAogICBpZiAoIWxvYWRpbmdfZHVtcCkKQEAg LTQ4MTgsMTEgKzQ4MzcsNiBAQCBzeW1zX29mX2NvbXAgKHZvaWQpCiAgIHN0YXRpY3BybyAoJmRl bGF5ZWRfc291cmNlcyk7CiAgIGRlbGF5ZWRfc291cmNlcyA9IFFuaWw7CiAKLSNpZmRlZiBXSU5E T1dTTlQKLSAgc3RhdGljcHJvICgmYWxsX2xvYWRlZF9jb21wX3VuaXRzX2gpOwotICBhbGxfbG9h ZGVkX2NvbXBfdW5pdHNfaCA9IENBTExOIChGbWFrZV9oYXNoX3RhYmxlLCBRQ3dlYWtuZXNzLCBR dmFsdWUpOwotI2VuZGlmCi0KICAgREVGVkFSX0xJU1AgKCJjb21wLWN0eHQiLCBWY29tcF9jdHh0 LAogCSAgICAgICBkb2M6IC8qIFRoZSBjb21waWxlciBjb250ZXh0LiAgKi8pOwogICBWY29tcF9j dHh0ID0gUW5pbDsKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmggYi9zcmMvY29tcC5oCmluZGV4IDUw NzM3OWJmNWU2Li5lNDE5NmQ0YTVmOSAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuaAorKysgYi9zcmMv Y29tcC5oCkBAIC0xMDEsNiArMTAxLDExIEBAIFhOQVRJVkVfQ09NUF9VTklUIChMaXNwX09iamVj dCBhKQogCiBleHRlcm4gdm9pZCBjbGVhbl9wYWNrYWdlX3VzZXJfZGlyX29mX29sZF9jb21wX3Vu aXRzICh2b2lkKTsKIAorI2lmZGVmIFdJTkRPV1NOVAorZXh0ZXJuIHZvaWQKK3JlZ2lzdGVyX25h dGl2ZV9jb21wX3VuaXQgKHN0cnVjdCBMaXNwX05hdGl2ZV9Db21wX1VuaXQgKiBjb21wX3VuaXQp OworI2VuZGlmCisKICNlbHNlIC8qICNpZmRlZiBIQVZFX05BVElWRV9DT01QICovCiAKIHN0YXRp YyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0IGEvc3JjL2xpc3AuaCBiL3NyYy9saXNwLmgKaW5kZXgg MjJjZDE2NmM5NTQuLmY2NDQ2M2FmZWVjIDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3Ny Yy9saXNwLmgKQEAgLTQ3NjQsOCArNDc2NCwxMyBAQCBTVUJSX05BVElWRV9DT01QSUxFRFAgKExp c3BfT2JqZWN0IGEpCiBJTkxJTkUgc3RydWN0IExpc3BfTmF0aXZlX0NvbXBfVW5pdCAqCiBhbGxv Y2F0ZV9uYXRpdmVfY29tcF91bml0ICh2b2lkKQogewotICByZXR1cm4gQUxMT0NBVEVfWkVST0VE X1BTRVVET1ZFQ1RPUiAoc3RydWN0IExpc3BfTmF0aXZlX0NvbXBfVW5pdCwKLQkJCQkgICAgICAg ZGF0YV9pbXB1cmVfdmVjLCBQVkVDX05BVElWRV9DT01QX1VOSVQpOworICBzdHJ1Y3QgTGlzcF9O YXRpdmVfQ29tcF9Vbml0ICogY29tcF91CisgICAgPSBBTExPQ0FURV9aRVJPRURfUFNFVURPVkVD VE9SIChzdHJ1Y3QgTGlzcF9OYXRpdmVfQ29tcF9Vbml0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YV9pbXB1cmVfdmVjLCBQVkVDX05BVElWRV9DT01QX1VOSVQpOwor I2lmZGVmIFdJTkRPV1NOVAorICByZWdpc3Rlcl9uYXRpdmVfY29tcF91bml0IChjb21wX3UpOwor I2VuZGlmCisgIHJldHVybiBjb21wX3U7CiB9CiAjZWxzZQogSU5MSU5FIGJvb2wKLS0gCjIuMjUu MS53aW5kb3dzLjEKCg== --00000000000074297d05a7a5656f--