From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12856 invoked by alias); 19 Apr 2012 19:18:27 -0000 Received: (qmail 12830 invoked by uid 22791); 19 Apr 2012 19:18:25 -0000 X-SWARE-Spam-Status: No, hits=-5.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_EG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-vx0-f169.google.com (HELO mail-vx0-f169.google.com) (209.85.220.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 19 Apr 2012 19:18:11 +0000 Received: by vcbfy7 with SMTP id fy7so916622vcb.0 for ; Thu, 19 Apr 2012 12:18:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:x-system-of-record:x-gm-message-state; bh=+puFnkRzOvIwG2y42EJXlqzMXLYikl0yfco1CpZfcRw=; b=fubPouDvxip+NtToATWxbFC0p7BxOpJc9eQVky/WV7mK8HsUHQ8ZYWweWyq6ZtixAo bDPvy61q2vBCvL4ciY/w7xyQ+TJ+pS5E9fcVdF3/vyzwhjUn+EvBHaTFJY/NPijKscH0 gNuIsCwPdoxbhqPehgwQdrAx1lHwoPYVtCbvM9KLVEb8ebo4wtXY7PQed1eYrflgF4KB jXcKyPVIO1HifNOZJGn99SzfnVHuHFiJlJJ/RyJ8+3q0AK2rSdAzV/BBubOCB8L/aZ6e WgbJSkXtmfMcWDcBGncu2YPYp3XQRtf4ex/8K29PWNc4MCRPwurx6CEHVHtOHwV42ZaY SETg== Received: by 10.52.67.11 with SMTP id j11mr1398728vdt.132.1334863090116; Thu, 19 Apr 2012 12:18:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.52.67.11 with SMTP id j11mr1398719vdt.132.1334863089997; Thu, 19 Apr 2012 12:18:09 -0700 (PDT) Received: by 10.220.115.78 with HTTP; Thu, 19 Apr 2012 12:18:09 -0700 (PDT) In-Reply-To: <87sjg1qf7o.fsf@fleche.redhat.com> References: <20120416144011.GH2852@adacore.com> <4F8C3350.1030601@redhat.com> <4F8E88E3.1010900@redhat.com> <4F8ECE4F.1070004@redhat.com> <87sjg1qf7o.fsf@fleche.redhat.com> Date: Thu, 19 Apr 2012 19:24:00 -0000 Message-ID: Subject: Re: [RFA] Ensure result of make_cleanup is never NULL. From: Doug Evans To: Tom Tromey Cc: Pedro Alves , Joel Brobecker , gdb-patches Content-Type: multipart/mixed; boundary=20cf307f35924d993904be0d0830 X-System-Of-Record: true X-Gm-Message-State: ALoCoQnUREVXKSW8pbaF5S+iUb/BlwHO4GBnj2Paktvzcn6GUPLrld7OOjv8XFD35m/C1GRe0BYK9Qih6GymKMOunywq5yYr8RevXHql/1F7Km7zndYv1j5kQtEfJkLUDXHkwyoQE7sbspODZfCT3rrYTafSPIPKZw== X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-04/txt/msg00643.txt.bz2 --20cf307f35924d993904be0d0830 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1547 On Wed, Apr 18, 2012 at 7:36 AM, Tom Tromey wrote: >>>>>> "Pedro" =3D=3D Pedro Alves writes: > > Pedro> Well, aren't all places using the sentinel, using it throught the = macro? > Pedro> What does this make more robust? > > If you initialize the object it can end up in a read-only section, so > writes to it will SEGV. > > In this particular case I don't see that this would help a lot, since > the object is just a sentinel. =A0But, it wouldn't hurt and maybe it would > catch some really unusual bug. Hi. fyi, here is what I committed. I changed the name cleanup_sentinel -> sentinel_cleanup because I went to print the value in gdb and spelled it the latter way and when that failed I cursed because I was darn sure I had spelled it correctly. That told me I liked the latter spelling better. :-) Anyways ... 2012-04-19 Doug Evans * cleanups.h (struct cleanup): Move to cleanups.c. (make_cleanup_dtor_ftype): New typedef. (make_cleanup_dtor): Use it. (ALL_CLEANUPS): Replace with ... (all_cleanups): ... this. Declare. All uses updated. * cleanups.c: #include "gdb_assert.h". (sentinel_cleanup): New static global. (SENTINEL_CLEANUP): Define. (cleanup_chain, final_cleanup_chain): Initialize to SENTINEL_CLEANU= P. (make_my_cleanup2): Assert result is non-NULL. (all_cleanups): New function. (save_my_cleanups): Initialize new chain to SENTINEL_CLEANUP instead of NULL. --20cf307f35924d993904be0d0830 Content-Type: text/plain; charset=US-ASCII; name="gdb-120419-cleanups-3b.patch.txt" Content-Disposition: attachment; filename="gdb-120419-cleanups-3b.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h186zhtt0 Content-length: 11424 MjAxMi0wNC0xOSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog Y2xlYW51cHMuaCAoc3RydWN0IGNsZWFudXApOiBNb3ZlIHRvIGNsZWFudXBz LmMuCgkobWFrZV9jbGVhbnVwX2R0b3JfZnR5cGUpOiBOZXcgdHlwZWRlZi4K CShtYWtlX2NsZWFudXBfZHRvcik6IFVzZSBpdC4KCShBTExfQ0xFQU5VUFMp OiBSZXBsYWNlIHdpdGggLi4uCgkoYWxsX2NsZWFudXBzKTogLi4uIHRoaXMu ICBEZWNsYXJlLiAgQWxsIHVzZXMgdXBkYXRlZC4KCSogY2xlYW51cHMuYzog I2luY2x1ZGUgImdkYl9hc3NlcnQuaCIuCgkoc2VudGluZWxfY2xlYW51cCk6 IE5ldyBzdGF0aWMgZ2xvYmFsLgoJKFNFTlRJTkVMX0NMRUFOVVApOiBEZWZp bmUuCgkoY2xlYW51cF9jaGFpbiwgZmluYWxfY2xlYW51cF9jaGFpbik6IElu aXRpYWxpemUgdG8gU0VOVElORUxfQ0xFQU5VUC4KCShtYWtlX215X2NsZWFu dXAyKTogQXNzZXJ0IHJlc3VsdCBpcyBub24tTlVMTC4KCShhbGxfY2xlYW51 cHMpOiBOZXcgZnVuY3Rpb24uCgkoc2F2ZV9teV9jbGVhbnVwcyk6IEluaXRp YWxpemUgbmV3IGNoYWluIHRvIFNFTlRJTkVMX0NMRUFOVVAgaW5zdGVhZAoJ b2YgTlVMTC4KCkluZGV4OiBjbGVhbnVwcy5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvY2xlYW51cHMuYyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgY2xl YW51cHMuYwotLS0gY2xlYW51cHMuYwkxNyBBcHIgMjAxMiAyMToyNDo0NyAt MDAwMAkxLjIKKysrIGNsZWFudXBzLmMJMTkgQXByIDIwMTIgMTc6NTI6NDQg LTAwMDAKQEAgLTE4LDE1ICsxOCw1MyBAQAogICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUg ImdkYl9hc3NlcnQuaCIKKworLyogVGhlIGNsZWFudXAgbGlzdCByZWNvcmRz IHRoaW5ncyB0aGF0IGhhdmUgdG8gYmUgdW5kb25lCisgICBpZiBhbiBlcnJv ciBoYXBwZW5zIChkZXNjcmlwdG9ycyB0byBiZSBjbG9zZWQsIG1lbW9yeSB0 byBiZSBmcmVlZCwgZXRjLikKKyAgIEVhY2ggbGluayBpbiB0aGUgY2hhaW4g cmVjb3JkcyBhIGZ1bmN0aW9uIHRvIGNhbGwgYW5kIGFuCisgICBhcmd1bWVu dCB0byBnaXZlIGl0LgorCisgICBVc2UgbWFrZV9jbGVhbnVwIHRvIGFkZCBh biBlbGVtZW50IHRvIHRoZSBjbGVhbnVwIGNoYWluLgorICAgVXNlIGRvX2Ns ZWFudXBzIHRvIGRvIGFsbCBjbGVhbnVwIGFjdGlvbnMgYmFjayB0byBhIGdp dmVuCisgICBwb2ludCBpbiB0aGUgY2hhaW4uICBVc2UgZGlzY2FyZF9jbGVh bnVwcyB0byByZW1vdmUgY2xlYW51cHMKKyAgIGZyb20gdGhlIGNoYWluIGJh Y2sgdG8gYSBnaXZlbiBwb2ludCwgbm90IGRvaW5nIHRoZW0uCisKKyAgIElm IHRoZSBhcmd1bWVudCBpcyBwb2ludGVyIHRvIGFsbG9jYXRlZCBtZW1vcnks IHRoZW4geW91IG5lZWQKKyAgIHRvIGFkZGl0aW9uYWxseSBzZXQgdGhlICdm cmVlX2FyZycgbWVtYmVyIHRvIGEgZnVuY3Rpb24gdGhhdCB3aWxsCisgICBm cmVlIHRoYXQgbWVtb3J5LiAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxl ZCBib3RoIHdoZW4gdGhlIGNsZWFudXAKKyAgIGlzIGV4ZWN1dGVkIGFuZCB3 aGVuIGl0J3MgZGlzY2FyZGVkLiAgKi8KKworc3RydWN0IGNsZWFudXAKK3sK KyAgc3RydWN0IGNsZWFudXAgKm5leHQ7CisgIHZvaWQgKCpmdW5jdGlvbikg KHZvaWQgKik7CisgIHZvaWQgKCpmcmVlX2FyZykgKHZvaWQgKik7CisgIHZv aWQgKmFyZzsKK307CisKKy8qIFVzZWQgdG8gbWFyayB0aGUgZW5kIG9mIGEg Y2xlYW51cCBjaGFpbi4KKyAgIFRoZSB2YWx1ZSBpcyBjaG9zZW4gc28gdGhh dCBpdDoKKyAgIC0gaXMgbm9uLU5VTEwgc28gdGhhdCBtYWtlX2NsZWFudXAg bmV2ZXIgcmV0dXJucyBOVUxMLAorICAgLSBjYXVzZXMgYSBzZWd2IGlmIGRl cmVmZXJlbmNlZAorICAgICBbdGhvdWdoIHRoaXMgd29uJ3QgY2F0Y2ggZXJy b3JzIHRoYXQgYSB2YWx1ZSBvZiwgc2F5LAorICAgICAoKHN0cnVjdCBjbGVh bnVwICopIC0xKSB3aWxsXQorICAgLSBkaXNwbGF5cyBhcyBzb21ldGhpbmcg dXNlZnVsIHdoZW4gcHJpbnRlZCBpbiBnZGIuCisgICBUaGlzIGlzIGNvbnN0 IGZvciBhIGJpdCBvZiBleHRyYSByb2J1c3RuZXNzLgorICAgSXQgaXMgaW5p dGlhbGl6ZWQgdG8gY29heCBnY2MgaW50byBwdXR0aW5nIGl0IGludG8gLnJv ZGF0YS4KKyAgIEFsbCBmaWVsZHMgYXJlIGluaXRpYWxpemVkIHRvIHN1cnZp dmUgLVdleHRyYS4gICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGNsZWFudXAg c2VudGluZWxfY2xlYW51cCA9IHsgMCwgMCwgMCwgMCB9OworCisvKiBIYW5k eSBtYWNybyB0byB1c2Ugd2hlbiByZWZlcnJpbmcgdG8gc2VudGluZWxfY2xl YW51cC4gICovCisjZGVmaW5lIFNFTlRJTkVMX0NMRUFOVVAgKChzdHJ1Y3Qg Y2xlYW51cCAqKSAmc2VudGluZWxfY2xlYW51cCkKIAogLyogQ2hhaW4gb2Yg Y2xlYW51cCBhY3Rpb25zIGVzdGFibGlzaGVkIHdpdGggbWFrZV9jbGVhbnVw LAogICAgdG8gYmUgZXhlY3V0ZWQgaWYgYW4gZXJyb3IgaGFwcGVucy4gICov CitzdGF0aWMgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hhaW4gPSBTRU5U SU5FTF9DTEVBTlVQOwogCi0vKiBDbGVhbmVkIHVwIGFmdGVyIGEgZmFpbGVk IGNvbW1hbmQuICAqLwotc3RhdGljIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVw X2NoYWluOwotCi0vKiBDbGVhbmVkIHVwIHdoZW4gZ2RiIGV4aXRzLiAgKi8K LXN0YXRpYyBzdHJ1Y3QgY2xlYW51cCAqZmluYWxfY2xlYW51cF9jaGFpbjsK Ky8qIENoYWluIG9mIGNsZWFudXAgYWN0aW9ucyBlc3RhYmxpc2hlZCB3aXRo IG1ha2VfZmluYWxfY2xlYW51cCwKKyAgIHRvIGJlIGV4ZWN1dGVkIHdoZW4g Z2RiIGV4aXRzLiAgKi8KK3N0YXRpYyBzdHJ1Y3QgY2xlYW51cCAqZmluYWxf Y2xlYW51cF9jaGFpbiA9IFNFTlRJTkVMX0NMRUFOVVA7CiAKIC8qIE1haW4g d29ya2VyIHJvdXRpbmUgdG8gY3JlYXRlIGEgY2xlYW51cC4KICAgIFBNWV9D SEFJTiBpcyBhIHBvaW50ZXIgdG8gZWl0aGVyIGNsZWFudXBfY2hhaW4gb3Ig ZmluYWxfY2xlYW51cF9jaGFpbi4KQEAgLTUxLDYgKzg5LDcgQEAgbWFrZV9t eV9jbGVhbnVwMiAoc3RydWN0IGNsZWFudXAgKipwbXlfYwogICBuZXctPmFy ZyA9IGFyZzsKICAgKnBteV9jaGFpbiA9IG5ldzsKIAorICBnZGJfYXNzZXJ0 IChvbGRfY2hhaW4gIT0gTlVMTCk7CiAgIHJldHVybiBvbGRfY2hhaW47CiB9 CiAKQEAgLTEyMCw2ICsxNTksMTUgQEAgZG9fbXlfY2xlYW51cHMgKHN0cnVj dCBjbGVhbnVwICoqcG15X2NoYQogICAgIH0KIH0KIAorLyogUmV0dXJuIGEg dmFsdWUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGRvX2NsZWFudXBzLCBkb19m aW5hbF9jbGVhbnVwcyB0bworICAgaW5kaWNhdGUgcGVyZm9ybSBhbGwgY2xl YW51cHMuICAqLworCitzdHJ1Y3QgY2xlYW51cCAqCithbGxfY2xlYW51cHMg KHZvaWQpCit7CisgIHJldHVybiBTRU5USU5FTF9DTEVBTlVQOworfQorCiAv KiBEaXNjYXJkIGNsZWFudXBzIGFuZCBkbyB0aGUgYWN0aW9ucyB0aGV5IGRl c2NyaWJlCiAgICB1bnRpbCB3ZSBnZXQgYmFjayB0byB0aGUgcG9pbnQgT0xE X0NIQUlOIGluIHRoZSBjbGVhbnVwX2NoYWluLiAgKi8KIApAQCAtMTg1LDcg KzIzMyw3IEBAIHNhdmVfbXlfY2xlYW51cHMgKHN0cnVjdCBjbGVhbnVwICoq cG15X2MKIHsKICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbiA9ICpwbXlf Y2hhaW47CiAKLSAgKnBteV9jaGFpbiA9IDA7CisgICpwbXlfY2hhaW4gPSBT RU5USU5FTF9DTEVBTlVQOwogICByZXR1cm4gb2xkX2NoYWluOwogfQogCklu ZGV4OiBjbGVhbnVwcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9jdnMvc3JjL3NyYy9nZGIvY2xlYW51cHMuaCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4yCmRpZmYgLXUgLXAgLXIxLjIgY2xlYW51cHMuaAotLS0g Y2xlYW51cHMuaAkxNyBBcHIgMjAxMiAyMToyNDo0NyAtMDAwMAkxLjIKKysr IGNsZWFudXBzLmgJMTkgQXByIDIwMTIgMTc6NTI6NDQgLTAwMDAKQEAgLTE5 LDI4ICsxOSw4IEBACiAjaWZuZGVmIENMRUFOVVBTX0gKICNkZWZpbmUgQ0xF QU5VUFNfSAogCi0vKiBUaGUgY2xlYW51cCBsaXN0IHJlY29yZHMgdGhpbmdz IHRoYXQgaGF2ZSB0byBiZSB1bmRvbmUKLSAgIGlmIGFuIGVycm9yIGhhcHBl bnMgKGRlc2NyaXB0b3JzIHRvIGJlIGNsb3NlZCwgbWVtb3J5IHRvIGJlIGZy ZWVkLCBldGMuKQotICAgRWFjaCBsaW5rIGluIHRoZSBjaGFpbiByZWNvcmRz IGEgZnVuY3Rpb24gdG8gY2FsbCBhbmQgYW4KLSAgIGFyZ3VtZW50IHRvIGdp dmUgaXQuCi0KLSAgIFVzZSBtYWtlX2NsZWFudXAgdG8gYWRkIGFuIGVsZW1l bnQgdG8gdGhlIGNsZWFudXAgY2hhaW4uCi0gICBVc2UgZG9fY2xlYW51cHMg dG8gZG8gYWxsIGNsZWFudXAgYWN0aW9ucyBiYWNrIHRvIGEgZ2l2ZW4KLSAg IHBvaW50IGluIHRoZSBjaGFpbi4gIFVzZSBkaXNjYXJkX2NsZWFudXBzIHRv IHJlbW92ZSBjbGVhbnVwcwotICAgZnJvbSB0aGUgY2hhaW4gYmFjayB0byBh IGdpdmVuIHBvaW50LCBub3QgZG9pbmcgdGhlbS4KLQotICAgSWYgdGhlIGFy Z3VtZW50IGlzIHBvaW50ZXIgdG8gYWxsb2NhdGVkIG1lbW9yeSwgdGhlbiB5 b3UgbmVlZAotICAgdG8gYWRkaXRpb25hbGx5IHNldCB0aGUgJ2ZyZWVfYXJn JyBtZW1iZXIgdG8gYSBmdW5jdGlvbiB0aGF0IHdpbGwKLSAgIGZyZWUgdGhh dCBtZW1vcnkuICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJvdGgg d2hlbiB0aGUgY2xlYW51cAotICAgaXMgZXhlY3V0ZWQgYW5kIHdoZW4gaXQn cyBkaXNjYXJkZWQuICAqLwotCi1zdHJ1Y3QgY2xlYW51cAotICB7Ci0gICAg c3RydWN0IGNsZWFudXAgKm5leHQ7Ci0gICAgdm9pZCAoKmZ1bmN0aW9uKSAo dm9pZCAqKTsKLSAgICB2b2lkICgqZnJlZV9hcmcpICh2b2lkICopOwotICAg IHZvaWQgKmFyZzsKLSAgfTsKKy8qIE91dHNpZGUgb2YgY2xlYW51cHMuYywg dGhpcyBpcyBhbiBvcGFxdWUgdHlwZS4gICovCitzdHJ1Y3QgY2xlYW51cDsK IAogLyogTk9URTogY2FnbmV5LzIwMDAtMDMtMDQ6IFRoaXMgdHlwZWRlZiBp cyBzdHJpY3RseSBmb3IgdGhlCiAgICBtYWtlX2NsZWFudXAgZnVuY3Rpb24g ZGVjbGFyYXRpb25zIGJlbG93LiAgRG8gbm90IHVzZSB0aGlzIHR5cGVkZWYK QEAgLTQ5LDIxICsyOSwyNSBAQCBzdHJ1Y3QgY2xlYW51cAogICAgQ2FsbGlu ZyBhIGYoY2hhciopIGZ1bmN0aW9uIHdpdGggZih2b2lkKikgaXMgbm9uLXBv cnRhYmxlLiAgKi8KIHR5cGVkZWYgdm9pZCAobWFrZV9jbGVhbnVwX2Z0eXBl KSAodm9pZCAqKTsKIAorLyogRnVuY3Rpb24gdHlwZSBmb3IgdGhlIGR0b3Ig aW4gbWFrZV9jbGVhbnVwX2R0b3IuICAqLwordHlwZWRlZiB2b2lkIChtYWtl X2NsZWFudXBfZHRvcl9mdHlwZSkgKHZvaWQgKik7CisKIC8qIFdBUk5JTkc6 IFRoZSByZXN1bHQgb2YgdGhlICJtYWtlIGNsZWFudXAiIHJvdXRpbmVzIGlz IG5vdCB0aGUgaW50dWl0aXZlCiAgICBjaG9pY2Ugb2YgYmVpbmcgYSBoYW5k bGUgb24gdGhlIGp1c3QtY3JlYXRlZCBjbGVhbnVwLiAgSW5zdGVhZCBpdCBp cyBhbgogICAgb3BhcXVlIGhhbmRsZSBvZiB0aGUgY2xlYW51cCBtZWNoYW5p c20gYW5kIHJlcHJlc2VudHMgYWxsIGNsZWFudXBzIGNyZWF0ZWQKLSAgIGZy b20gdGhhdCBwb2ludCBvbndhcmRzLiAgKi8KKyAgIGZyb20gdGhhdCBwb2lu dCBvbndhcmRzLgorICAgVGhlIHJlc3VsdCBpcyBndWFyYW50ZWVkIHRvIGJl IG5vbi1OVUxMIHRob3VnaC4gICovCiAKIGV4dGVybiBzdHJ1Y3QgY2xlYW51 cCAqbWFrZV9jbGVhbnVwIChtYWtlX2NsZWFudXBfZnR5cGUgKiwgdm9pZCAq KTsKIAogZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFudXBfZHRv ciAobWFrZV9jbGVhbnVwX2Z0eXBlICosIHZvaWQgKiwKLQkJCQkJICB2b2lk ICgqZHRvcikgKHZvaWQgKikpOworCQkJCQkgIG1ha2VfY2xlYW51cF9kdG9y X2Z0eXBlICopOwogCiBleHRlcm4gc3RydWN0IGNsZWFudXAgKm1ha2VfZmlu YWxfY2xlYW51cCAobWFrZV9jbGVhbnVwX2Z0eXBlICosIHZvaWQgKik7CiAK IC8qIEEgc3BlY2lhbCB2YWx1ZSB0byBwYXNzIHRvIGRvX2NsZWFudXBzIGFu ZCBkb19maW5hbF9jbGVhbnVwcwogICAgdG8gdGVsbCB0aGVtIHRvIGRvIGFs bCBjbGVhbnVwcy4gICovCi0jZGVmaW5lCUFMTF9DTEVBTlVQUwkoKHN0cnVj dCBjbGVhbnVwICopMCkKK2V4dGVybiBzdHJ1Y3QgY2xlYW51cCAqYWxsX2Ns ZWFudXBzICh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgZG9fY2xlYW51cHMgKHN0 cnVjdCBjbGVhbnVwICopOwogZXh0ZXJuIHZvaWQgZG9fZmluYWxfY2xlYW51 cHMgKHN0cnVjdCBjbGVhbnVwICopOwpJbmRleDogZXhjZXB0aW9ucy5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9n ZGIvZXhjZXB0aW9ucy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUwCmRp ZmYgLXUgLXAgLXIxLjUwIGV4Y2VwdGlvbnMuYwotLS0gZXhjZXB0aW9ucy5j CTQgSmFuIDIwMTIgMDg6MTc6MDEgLTAwMDAJMS41MAorKysgZXhjZXB0aW9u cy5jCTE5IEFwciAyMDEyIDE3OjUyOjQ0IC0wMDAwCkBAIC0yMjQsNyArMjI0 LDcgQEAgdGhyb3dfZXhjZXB0aW9uIChzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBl eAogICBxdWl0X2ZsYWcgPSAwOwogICBpbW1lZGlhdGVfcXVpdCA9IDA7CiAK LSAgZG9fY2xlYW51cHMgKEFMTF9DTEVBTlVQUyk7CisgIGRvX2NsZWFudXBz IChhbGxfY2xlYW51cHMgKCkpOwogCiAgIC8qIEp1bXAgdG8gdGhlIGNvbnRh aW5pbmcgY2F0Y2hfZXJyb3JzKCkgY2FsbCwgY29tbXVuaWNhdGluZyBSRUFT T04KICAgICAgdG8gdGhhdCBjYWxsIHZpYSBzZXRqbXAncyByZXR1cm4gdmFs dWUuICBOb3RlIHRoYXQgUkVBU09OIGNhbid0CkluZGV4OiBtYWluLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dk Yi9tYWluLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA4CmRpZmYgLXUg LXAgLXIxLjEwOCBtYWluLmMKLS0tIG1haW4uYwkxNyBBcHIgMjAxMiAxNTo1 NjoyMSAtMDAwMAkxLjEwOAorKysgbWFpbi5jCTE5IEFwciAyMDEyIDE3OjUy OjQ0IC0wMDAwCkBAIC0yMzEsNyArMjMxLDcgQEAgY2FwdHVyZWRfY29tbWFu ZF9sb29wICh2b2lkICpkYXRhKQogICAgICBhcmUgbm90IHRoYXQgd2VsbCBi ZWhhdmVkLiAgZG9fY2xlYW51cHMgc2hvdWxkIGVpdGhlciBiZSByZXBsYWNl ZAogICAgICB3aXRoIGEgZG9fY2xlYW51cHMgY2FsbCAodG8gY292ZXIgdGhl IHByb2JsZW0pIG9yIGFuIGFzc2VydGlvbgogICAgICBjaGVjayB0byBkZXRl Y3QgYmFkIEZVTkNzIGNvZGUuICAqLwotICBkb19jbGVhbnVwcyAoQUxMX0NM RUFOVVBTKTsKKyAgZG9fY2xlYW51cHMgKGFsbF9jbGVhbnVwcyAoKSk7CiAg IC8qIElmIHRoZSBjb21tYW5kX2xvb3AgcmV0dXJuZWQsIG5vcm1hbGx5IChy YXRoZXIgdGhhbiB0aHJldyBhbgogICAgICBlcnJvcikgd2UgdHJ5IHRvIHF1 aXQuICBJZiB0aGUgcXVpdCBpcyBhYm9ydGVkLCBjYXRjaF9lcnJvcnMoKQog ICAgICB3aGljaCBjYWxsZWQgdGhpcyBjYXRjaCB0aGUgc2lnbmFsIGFuZCBy ZXN0YXJ0IHRoZSBjb21tYW5kCkluZGV4OiB0b3AuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3RvcC5jLHYK cmV0cmlldmluZyByZXZpc2lvbiAxLjIxNApkaWZmIC11IC1wIC1yMS4yMTQg dG9wLmMKLS0tIHRvcC5jCTEgTWFyIDIwMTIgMTk6MzA6MjAgLTAwMDAJMS4y MTQKKysrIHRvcC5jCTE5IEFwciAyMDEyIDE3OjUyOjQ0IC0wMDAwCkBAIC0x Mjk3LDggKzEyOTcsOSBAQCBxdWl0X3RhcmdldCAodm9pZCAqYXJnKQogICBp ZiAod3JpdGVfaGlzdG9yeV9wICYmIGhpc3RvcnlfZmlsZW5hbWUpCiAgICAg d3JpdGVfaGlzdG9yeSAoaGlzdG9yeV9maWxlbmFtZSk7CiAKLSAgZG9fZmlu YWxfY2xlYW51cHMgKEFMTF9DTEVBTlVQUyk7ICAgIC8qIERvIGFueSBmaW5h bCBjbGVhbnVwcyBiZWZvcmUKLQkJCQkJICBleGl0aW5nLiAgKi8KKyAgLyog RG8gYW55IGZpbmFsIGNsZWFudXBzIGJlZm9yZSBleGl0aW5nLiAgKi8KKyAg ZG9fZmluYWxfY2xlYW51cHMgKGFsbF9jbGVhbnVwcyAoKSk7CisKICAgcmV0 dXJuIDA7CiB9CiAK --20cf307f35924d993904be0d0830--