From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 85895 invoked by alias); 19 Feb 2019 23:25:10 -0000 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 Received: (qmail 85765 invoked by uid 89); 19 Feb 2019 23:25:04 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,MIME_BASE64_BLANKS autolearn=ham version=3.3.2 spammy=explain, distributed, 394, sk:history X-HELO: sessmg23.ericsson.net Received: from sessmg23.ericsson.net (HELO sessmg23.ericsson.net) (193.180.251.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 19 Feb 2019 23:25:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; d=ericsson.com; s=mailgw201801; c=relaxed/relaxed; q=dns/txt; i=@ericsson.com; t=1550618697; x=1553210697; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Hew+rFtf+alQtApgvZvch/ExHpy3SmlVBnIy8QsxdL0=; b=Ft/XGspsc4VsUejPKpkgjv3lEKoPF6foTB9Wx9NEajMOD1NPu1f5PZ8f63076mCc 7vnMJ4W2+WlUGtin2oKaO/5bj79XhettwfV1aLyP9IA0JduUWgGbjbUyT0GcrhxV b2pYEkW3st2FGHy9OYmCOx5xOYwaCxT0Ki68+lEARks=; Received: from ESESSMB501.ericsson.se (Unknown_Domain [153.88.183.119]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id ED.55.01583.9409C6C5; Wed, 20 Feb 2019 00:24:57 +0100 (CET) Received: from ESESBMB505.ericsson.se (153.88.183.172) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 20 Feb 2019 00:24:05 +0100 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB505.ericsson.se (153.88.183.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Wed, 20 Feb 2019 00:24:05 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hew+rFtf+alQtApgvZvch/ExHpy3SmlVBnIy8QsxdL0=; b=M6vNl+wkUcwBgRXo1qUCg/si90RDkdDJfW14OfxPKYrJrS1FtRhocuI1ya6WH/+wcHYuPpkmmGKS99BJJRWYmQ0eCElkAbHvQ/91ang8iCdq6A6dGr8ABsNUiCCuZQVT4fDjVQ0pqKvop0l9WiISDr8DpUJ+9fhG9TTvYk3vPrs= Received: from BYAPR15MB2390.namprd15.prod.outlook.com (52.135.198.30) by BYAPR15MB3301.namprd15.prod.outlook.com (20.179.58.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.14; Tue, 19 Feb 2019 23:24:02 +0000 Received: from BYAPR15MB2390.namprd15.prod.outlook.com ([fe80::5445:37d6:bd5d:b8ce]) by BYAPR15MB2390.namprd15.prod.outlook.com ([fe80::5445:37d6:bd5d:b8ce%5]) with mapi id 15.20.1622.018; Tue, 19 Feb 2019 23:24:02 +0000 From: Simon Marchi To: Kevin Buettner , "gdb-patches@sourceware.org" CC: Simon Marchi Subject: Re: [PATCH] Fix error message and use-after-free on errors in nested source files Date: Tue, 19 Feb 2019 23:25:00 -0000 Message-ID: <7eed7ae3-6f2a-285b-1270-6006d524e87a@ericsson.com> References: <20190218234640.25664-1-simon.marchi@polymtl.ca> <20190219153729.35348891@f29-4.lan> In-Reply-To: <20190219153729.35348891@f29-4.lan> authentication-results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; x-ms-exchange-purlcount: 1 received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 Content-Type: text/plain; charset="utf-8" Content-ID: <8636DBF562EF244381F232473F050254@namprd15.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED Return-Path: simon.marchi@ericsson.com X-IsSubscribed: yes X-SW-Source: 2019-02/txt/msg00317.txt.bz2 T24gMjAxOS0wMi0xOSAxNzozNywgS2V2aW4gQnVldHRuZXIgd3JvdGU6DQo+ IE9uIE1vbiwgMTggRmViIDIwMTkgMTg6NDY6NDAgLTA1MDANCj4gU2ltb24g TWFyY2hpIDxzaW1vbi5tYXJjaGlAcG9seW10bC5jYT4gd3JvdGU6DQo+DQo+ PiBFcnJvcnMgdGhhdCBoYXBwZW4gaW4gbmVzdGVkIHNvdXJjZWQgZmlsZXMg KHdoZW4gYSBzb3VyY2VkIGZpbGUgc291cmNlcw0KPj4gYW5vdGhlciBmaWxl KSBsZWFkIHRvIGEgd3JvbmcgZXJyb3IgbWVzc2FnZSwgb3IgdXNlLWFmdGVy LWZyZWUuDQo+Pg0KPj4gRm9yIGV4YW1wbGUsIGlmIEkgcHV0IHRoaXMgaW4g ImEuZ2RiIjoNCj4+DQo+PiAgICAgY29tbWFuZF90aGF0X2RvZXNudF9leGlz dA0KPj4NCj4+IGFuZCB0aGlzIGluICJiLmdkYiI6DQo+Pg0KPj4gICAgc291 cmNlIGEuZ2RiDQo+Pg0KPj4gYW5kIHRyeSB0byAic291cmNlIGIuZ2RiIiBp biBHREIsIHRoZSByZXN1bHQgbWF5IGxvb2sgbGlrZSB0aGlzOg0KPj4NCj4+ ICAgICAoZ2RiKSBzb3VyY2UgYi5nZGINCj4+ICAgICBiLmdkYjoxOiBFcnJv ciBpbiBzb3VyY2VkIGNvbW1hbmQgZmlsZToNCj4+ICAgICBfdGhhdF9kb2Vz bnRfZXhpc3Q6MTogRXJyb3IgaW4gc291cmNlZCBjb21tYW5kIGZpbGU6DQo+ PiAgICAgVW5kZWZpbmVkIGNvbW1hbmQ6ICJjb21tYW5kX3RoYXRfZG9lc250 X2V4aXN0Ii4gIFRyeSAiaGVscCIuDQo+Pg0KPj4gTm90aWNlIHRoZSB3cm9u ZyBmaWxlIG5hbWUgd2hlcmUgImEuZ2RiIiBzaG91bGQgYmUuICBUaGUgZXhh Y3QgcmVzdWx0DQo+PiBtYXkgZGlmZmVyLCBkZXBlbmRpbmcgb24gdGhlIGZl ZWxpbmdzIG9mIHRoZSBtZW1vcnkgYWxsb2NhdG9yLg0KPj4NCj4+IFdoYXQg aGFwcGVucyBpczoNCj4+DQo+PiAtIFRoZSAic291cmNlIGEuZ2RiIiBjb21t YW5kIGlzIHNhdmVkIGJ5IGNvbW1hbmRfbGluZV9hcHBlbmRfaW5wdXRfbGlu ZQ0KPj4gICBpbiBjb21tYW5kX2xpbmVfaW5wdXQncyBzdGF0aWMgYnVmZmVy Lg0KPj4gLSBTaW5jZSB3ZSBhcmUgc291cmNpbmcgYSBmaWxlLCB0aGUgc2Ny aXB0X2Zyb21fZmlsZSBmdW5jdGlvbiBzdG9yZXMgdGhlDQo+PiAgIHNjcmlw dCBuYW1lIChhLmdkYikgaW4gdGhlIHNvdXJjZV9maWxlX25hbWUgZ2xvYmFs LiAgSG93ZXZlciwgaXQgZG9lc24ndA0KPj4gICBkbyBhIGNvcHksIGl0IGp1 c3Qgc2F2ZXMgYSBwb2ludGVyIHRvIGNvbW1hbmRfbGluZV9pbnB1dCdzIHN0 YXRpYyBidWZmZXIuDQo+PiAtIFRoZSAiY29tbWFuZF90aGF0X2RvZXNudF9l eGlzdCIgY29tbWFuZCBpcyBzYXZlZCBieQ0KPj4gICBjb21tYW5kX2xpbmVf YXBwZW5kX2lucHV0X2xpbmUgaW4gY29tbWFuZF9saW5lX2lucHV0J3Mgc3Rh dGljIGJ1ZmZlci4NCj4+ICAgRGVwZW5kaW5nIG9uIHdoYXQgeHJlYWxsb2Mg ZG9lcywgc291cmNlX2ZpbGVfbmFtZSBtYXkgbm93IHBvaW50IHRvDQo+PiAg IGZyZWVkIG1lbW9yeSwgb3IgYXQgdGhlIG1pbmltdW0gdGhlIGRhdGEgaXQg d2FzIHBvaW50aW5nIHRvIHdhcw0KPj4gICBvdmVyd3JpdHRlbi4NCj4+IC0g V2hlbiB0aGUgZXJyb3IgaXMgaGFuZGxlZCBpbiBzY3JpcHRfZnJvbV9maWxl LCB3ZSBkZXJlcmVuY2UNCj4+ICAgc291cmNlX2ZpbGVfbmFtZSB0byBwcmlu dCB0aGUgbmFtZSBvZiB0aGUgZmlsZSBpbiB3aGljaCB0aGUgZXJyb3INCj4+ ICAgb2NjdXJlZC4NCj4+DQo+PiBUbyBmaXggaXQsIEkgbWFkZSBzb3VyY2Vf ZmlsZV9uYW1lIGFuIHN0ZDo6c3RyaW5nLCBzbyB0aGF0IGtlZXBzIGEgY29w eSBvZg0KPj4gdGhlIGZpbGUgbmFtZSBpbnN0ZWFkIG9mIHBvaW50aW5nIHRv IGEgYnVmZmVyIHdpdGggYSB0b28gc21hbGwNCj4+IGxpZmV0aW1lLg0KPj4N Cj4+IFdpdGggdGhpcyBwYXRjaCwgdGhlIGV4cGVjdGVkIGZpbGVuYW1lIGlz IHByaW50ZWQsIGFuZCBubyB1c2UtYWZ0ZXItZnJlZQ0KPj4gb2NjdXJzOg0K Pj4NCj4+ICAgICAoZ2RiKSBzb3VyY2UgYi5nZGINCj4+ICAgICBiLmdkYjox OiBFcnJvciBpbiBzb3VyY2VkIGNvbW1hbmQgZmlsZToNCj4+ICAgICBhLmdk YjoxOiBFcnJvciBpbiBzb3VyY2VkIGNvbW1hbmQgZmlsZToNCj4+ICAgICBV bmRlZmluZWQgY29tbWFuZDogImNvbW1hbmRfdGhhdF9kb2VzbnRfZXhpc3Qi LiAgVHJ5ICJoZWxwIi4NCj4+DQo+PiBJIHBhc3NlZCBleHBsaWNpdCB0ZW1w bGF0ZSBwYXJhbWV0ZXJzIHRvIG1ha2Vfc2NvcGVkX3Jlc3RvcmUNCj4+ICg8 c3RkOjpzdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICY+KSwgc28gdGhhdCB0 aGUgc2Vjb25kIHBhcmFtZXRlciBpcw0KPj4gcGFzc2VkIGJ5IHJlZmVyZW5j ZSBhbmQgYXZvaWQgYSBjb3B5Lg0KPj4NCj4+IEl0IHdhcyBub3QgYXMgb2J2 aW91cyBhcyBJIGZpcnN0IHRob3VnaHQgdG8gY2hhbmdlIGdkYi5iYXNlL3Nv dXJjZS5leHANCj4+IHRvIHRlc3QgdGhpcywgYmVjYXVzZSBzb3VyY2UgY29t bWFuZHMgaW5zaWRlIHNvdXJjZWQgZmlsZXMgYXJlDQo+PiBpbnRlcnByZXRl ZCByZWxhdGl2ZSB0byBHREIncyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5 LCBub3QgdGhlDQo+PiBkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnRseSBzb3Vy Y2VkIGZpbGUuICBBcyBhIHdvcmthcm91bmQsIEkgbW92ZWQgdGhlDQo+PiBz bmlwcGV0IHRoYXQgdGVzdHMgZXJyb3JzIGFmdGVyIHRoZSBzbmlwcGV0IHRo YXQgYWRkcyB0aGUgc291cmNlDQo+PiBkaXJlY3RvcnkgdG8gdGhlIHNlYXJj aCBwYXRoLiAgVGhpcyB3YXksIHRoZSAic291cmNlIHNvdXJjZS1lcnJvci0x LmV4cCINCj4NCj4gSSB0aGluayB5b3UgbWVhbnQgc291cmNlLWVycm9yLTEu Z2RiIChpbnN0ZWFkIG9mIC5leHApLg0KDQpXb29wcywgeWVzLg0KDQo+PiBs aW5lIGluIHNvdXJjZS1lcnJvci5leHAgbWFuYWdlcyB0byBmaW5kIHRoZSBm aWxlLg0KPg0KPiBUaGFua3MgZm9yIHRoaXMgZGV0YWlsZWQgZXhwbGFuYXRp b24hDQo+DQo+IE1pZ2h0IGl0IGJlIHBvc3NpYmxlIHRvIChhZGRpdGlvbmFs bHkpIHBsYWNlIHNvbWUgc2VtYmxhbmNlIG9mIHRoYXQNCj4gbGFzdCBwYXJh Z3JhcGggaW50byB0aGUgLmV4cCBmaWxlPyAgKEknbSB0aGlua2luZyB0aGF0 IGl0IG1pZ2h0IGJlIHVzZWZ1bA0KPiB0byBleHBsYWluIHRoZSBwaXRmYWxs cyBvZiBtb3ZpbmcgdGhhdCB0ZXN0IGZyb20gd2hlcmUgeW91IGhhdmUgaXQN Cj4gbm93IHRvIGVhcmxpZXIgaW4gdGhlIGZpbGUuKQ0KDQpHb29kIGlkZWEs IEkgYWRkZWQgYSBjb21tZW50Lg0KDQo+IFRoZSBwYXRjaCBsb29rcyAobW9z dGx5KSBnb29kIHRvIG1lLCB0aG91Z2ggSSBkbyBoYXZlIGEgcXVlc3Rpb24u Li4NCj4NCj4+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3NvdXJjZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvdXJjZS5l eHANCj4+IGluZGV4IGM2ZmY2NTc4M2RhMC4uNWRkNGRlY2Y2YTVlIDEwMDY0 NA0KPj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb3VyY2UuZXhw DQo+PiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvdXJjZS5leHAN Cj4+IEBAIC0yMywxMCArMjMsNiBAQCBzdGFuZGFyZF90ZXN0ZmlsZSBzdHJ1 Y3RzLmMNCj4+DQo+PiAgZ2RiX3N0YXJ0DQo+Pg0KPj4gLWdkYl90ZXN0ICJz b3VyY2UgJHtzcmNkaXJ9LyR7c3ViZGlyfS9zb3VyY2UtZXJyb3IuZ2RiIiBc DQo+PiAtICAgICJzb3VyY2UtZXJyb3IuZ2RiOjIxOiBFcnJvciBpbiBzb3Vy Y2VkIGNvbW1hbmQgZmlsZTpcW1xyXG5cXSpDYW5ub3QgYWNjZXNzIG1lbW9y eSBhdCBhZGRyZXNzIDB4MC4qIiBcDQo+PiAtICAgICJzY3JpcHQgY29udGFp bnMgZXJyb3IiDQo+PiAtDQo+PiAgZ2RiX3Rlc3QgInNvdXJjZSAtdiAke3Ny Y2Rpcn0vJHtzdWJkaXJ9L3NvdXJjZS10ZXN0LmdkYiIgXA0KPj4gICAgICAi ZWNobyB0ZXN0IHNvdXJjZSBvcHRpb25zLioiIFwNCj4+ICAgICAgInNvdXJj ZSAtdiINCj4+IEBAIC02Niw0ICs2Miw5IEBAIGdkYl90ZXN0ICJzb3VyY2Ug Zm9yLXN1cmUtbm9uZXhpc3RhbnQtZmlsZSIgXA0KPj4gIGdkYl90ZXN0ICJz b3VyY2Ugc291cmNlLW5vZmlsZS5nZGIiIFwNCj4+ICAgICAgICAgICAid2Fy bmluZzogZm9yLXN1cmUtbm9uZXhpc3RhbnQtZmlsZTogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeVwuXFtcclxuXF0qc291cmNlIGVycm9yIG5vdCBmYXRh bCINCj4+DQo+PiAtZ2RiX2V4aXQNCj4+ICsNCj4+ICtnZGJfdGVzdCAic291 cmNlICR7c3JjZGlyfS8ke3N1YmRpcn0vc291cmNlLWVycm9yLmdkYiIgXA0K Pj4gKyAgICBbbXVsdGlfbGluZSAiLipzb3VyY2UtZXJyb3IuZ2RiOjIwOiBF cnJvciBpbiBzb3VyY2VkIGNvbW1hbmQgZmlsZToiIFwNCj4+ICsJCSJzb3Vy Y2UtZXJyb3ItMS5nZGI6MjE6IEVycm9yIGluIHNvdXJjZWQgY29tbWFuZCBm aWxlOiIgXA0KPj4gKwkJIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJl c3MgMHgwIiBdIFwNCj4+ICsgICAgInNjcmlwdCBjb250YWlucyBlcnJvciIN Cj4NCj4gRGlkIHlvdSBtZWFuIHRvIHJlbW92ZSBnZGJfZXhpdCBhYm92ZT8g IElmIHNvLCB3aHk/DQoNClllcywgbWFueSB0ZXN0cyBoYXZlIGEgZ2RiX2V4 aXQgYXQgdGhlIGVuZC4gIEkgYmVsaWV2ZSB0aGlzIGlzIG5vdCBuZWNlc3Nh cnkgKHRob3VnaCBpdCBkb2Vzbid0IGh1cnQpDQpiZWNhdXNlIGl0J3MgZG9u ZSBhbnl3YXkgYWZ0ZXIgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgdGVzdC4gIFNv IGl0IGhhcyBiZWNvbWUgYW4gYXV0b21hdGlzbSB0byByZW1vdmUNCml0IGlm IEkgYW0gbW9kaWZ5aW5nIHRoYXQgYXJlYSBvZiB0aGUgdGVzdHMuICBJIGNh biBsZWF2ZSBpdCB0aGVyZSBpZiB5b3UgcHJlZmVyLg0KDQpUaGFua3MgZm9y IHRoZSByZXZpZXcsIGhlcmUncyB0aGUgdXBkYXRlZCB2ZXJzaW9uLiAgSSBh bHNvIGZpeGVkIHRoZSB0aXRsZSwNCndoZXJlIGl0IHNob3VsZCByZWFkICJz b3VyY2VkIiBpbnN0ZWFkIG9mICJzb3VyY2UiLg0KDQpGcm9tIGFhMzg4NTVh ZDE0Yzg1Y2MxMDYxMDgyZjgzZDVkZDRiOTFiMjhkOTggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxDQpGcm9tOiBTaW1vbiBNYXJjaGkgPHNpbW9uLm1hcmNo aUBwb2x5bXRsLmNhPg0KRGF0ZTogTW9uLCAxOCBGZWIgMjAxOSAxODo0Njo0 MCAtMDUwMA0KU3ViamVjdDogW1BBVENIXSBGaXggZXJyb3IgbWVzc2FnZSBh bmQgdXNlLWFmdGVyLWZyZWUgb24gZXJyb3JzIGluIG5lc3RlZA0KIHNvdXJj ZWQgZmlsZXMNCg0KRXJyb3JzIHRoYXQgaGFwcGVuIGluIG5lc3RlZCBzb3Vy Y2VkIGZpbGVzICh3aGVuIGEgc291cmNlZCBmaWxlIHNvdXJjZXMNCmFub3Ro ZXIgZmlsZSkgbGVhZCB0byBhIHdyb25nIGVycm9yIG1lc3NhZ2UsIG9yIHVz ZS1hZnRlci1mcmVlLg0KDQpGb3IgZXhhbXBsZSwgaWYgSSBwdXQgdGhpcyBp biAiYS5nZGIiOg0KDQogICAgY29tbWFuZF90aGF0X2RvZXNudF9leGlzdA0K DQphbmQgdGhpcyBpbiAiYi5nZGIiOg0KDQogICBzb3VyY2UgYS5nZGINCg0K YW5kIHRyeSB0byAic291cmNlIGIuZ2RiIiBpbiBHREIsIHRoZSByZXN1bHQg bWF5IGxvb2sgbGlrZSB0aGlzOg0KDQogICAgKGdkYikgc291cmNlIGIuZ2Ri DQogICAgYi5nZGI6MTogRXJyb3IgaW4gc291cmNlZCBjb21tYW5kIGZpbGU6 DQogICAgX3RoYXRfZG9lc250X2V4aXN0OjE6IEVycm9yIGluIHNvdXJjZWQg Y29tbWFuZCBmaWxlOg0KICAgIFVuZGVmaW5lZCBjb21tYW5kOiAiY29tbWFu ZF90aGF0X2RvZXNudF9leGlzdCIuICBUcnkgImhlbHAiLg0KDQpOb3RpY2Ug dGhlIHdyb25nIGZpbGUgbmFtZSB3aGVyZSAiYS5nZGIiIHNob3VsZCBiZS4g IFRoZSBleGFjdCByZXN1bHQNCm1heSBkaWZmZXIsIGRlcGVuZGluZyBvbiB0 aGUgZmVlbGluZ3Mgb2YgdGhlIG1lbW9yeSBhbGxvY2F0b3IuDQoNCldoYXQg aGFwcGVucyBpczoNCg0KLSBUaGUgInNvdXJjZSBhLmdkYiIgY29tbWFuZCBp cyBzYXZlZCBieSBjb21tYW5kX2xpbmVfYXBwZW5kX2lucHV0X2xpbmUNCiAg aW4gY29tbWFuZF9saW5lX2lucHV0J3Mgc3RhdGljIGJ1ZmZlci4NCi0gU2lu Y2Ugd2UgYXJlIHNvdXJjaW5nIGEgZmlsZSwgdGhlIHNjcmlwdF9mcm9tX2Zp bGUgZnVuY3Rpb24gc3RvcmVzIHRoZQ0KICBzY3JpcHQgbmFtZSAoYS5nZGIp IGluIHRoZSBzb3VyY2VfZmlsZV9uYW1lIGdsb2JhbC4gIEhvd2V2ZXIsIGl0 IGRvZXNuJ3QNCiAgZG8gYSBjb3B5LCBpdCBqdXN0IHNhdmVzIGEgcG9pbnRl ciB0byBjb21tYW5kX2xpbmVfaW5wdXQncyBzdGF0aWMgYnVmZmVyLg0KLSBU aGUgImNvbW1hbmRfdGhhdF9kb2VzbnRfZXhpc3QiIGNvbW1hbmQgaXMgc2F2 ZWQgYnkNCiAgY29tbWFuZF9saW5lX2FwcGVuZF9pbnB1dF9saW5lIGluIGNv bW1hbmRfbGluZV9pbnB1dCdzIHN0YXRpYyBidWZmZXIuDQogIERlcGVuZGlu ZyBvbiB3aGF0IHhyZWFsbG9jIGRvZXMsIHNvdXJjZV9maWxlX25hbWUgbWF5 IG5vdyBwb2ludCB0bw0KICBmcmVlZCBtZW1vcnksIG9yIGF0IHRoZSBtaW5p bXVtIHRoZSBkYXRhIGl0IHdhcyBwb2ludGluZyB0byB3YXMNCiAgb3Zlcndy aXR0ZW4uDQotIFdoZW4gdGhlIGVycm9yIGlzIGhhbmRsZWQgaW4gc2NyaXB0 X2Zyb21fZmlsZSwgd2UgZGVyZXJlbmNlDQogIHNvdXJjZV9maWxlX25hbWUg dG8gcHJpbnQgdGhlIG5hbWUgb2YgdGhlIGZpbGUgaW4gd2hpY2ggdGhlIGVy cm9yDQogIG9jY3VyZWQuDQoNClRvIGZpeCBpdCwgSSBtYWRlIHNvdXJjZV9m aWxlX25hbWUgYW4gc3RkOjpzdHJpbmcsIHNvIHRoYXQga2VlcHMgYSBjb3B5 IG9mDQp0aGUgZmlsZSBuYW1lIGluc3RlYWQgb2YgcG9pbnRpbmcgdG8gYSBi dWZmZXIgd2l0aCBhIHRvbyBzbWFsbA0KbGlmZXRpbWUuDQoNCldpdGggdGhp cyBwYXRjaCwgdGhlIGV4cGVjdGVkIGZpbGVuYW1lIGlzIHByaW50ZWQsIGFu ZCBubyB1c2UtYWZ0ZXItZnJlZQ0Kb2NjdXJzOg0KDQogICAgKGdkYikgc291 cmNlIGIuZ2RiDQogICAgYi5nZGI6MTogRXJyb3IgaW4gc291cmNlZCBjb21t YW5kIGZpbGU6DQogICAgYS5nZGI6MTogRXJyb3IgaW4gc291cmNlZCBjb21t YW5kIGZpbGU6DQogICAgVW5kZWZpbmVkIGNvbW1hbmQ6ICJjb21tYW5kX3Ro YXRfZG9lc250X2V4aXN0Ii4gIFRyeSAiaGVscCIuDQoNCkkgcGFzc2VkIGV4 cGxpY2l0IHRlbXBsYXRlIHBhcmFtZXRlcnMgdG8gbWFrZV9zY29wZWRfcmVz dG9yZQ0KKDxzdGQ6OnN0cmluZywgY29uc3Qgc3RkOjpzdHJpbmcgJj4pLCBz byB0aGF0IHRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzDQpwYXNzZWQgYnkgcmVm ZXJlbmNlIGFuZCBhdm9pZCBhIGNvcHkuDQoNCkl0IHdhcyBub3QgYXMgb2J2 aW91cyBhcyBJIGZpcnN0IHRob3VnaHQgdG8gY2hhbmdlIGdkYi5iYXNlL3Nv dXJjZS5leHANCnRvIHRlc3QgdGhpcywgYmVjYXVzZSBzb3VyY2UgY29tbWFu ZHMgaW5zaWRlIHNvdXJjZWQgZmlsZXMgYXJlDQppbnRlcnByZXRlZCByZWxh dGl2ZSB0byBHREIncyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LCBub3Qg dGhlDQpkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnRseSBzb3VyY2VkIGZpbGUu ICBBcyBhIHdvcmthcm91bmQsIEkgbW92ZWQgdGhlDQpzbmlwcGV0IHRoYXQg dGVzdHMgZXJyb3JzIGFmdGVyIHRoZSBzbmlwcGV0IHRoYXQgYWRkcyB0aGUg c291cmNlDQpkaXJlY3RvcnkgdG8gdGhlIHNlYXJjaCBwYXRoLiAgVGhpcyB3 YXksIHRoZSAic291cmNlIHNvdXJjZS1lcnJvci0xLmdkYiINCmxpbmUgaW4g c291cmNlLWVycm9yLmV4cCBtYW5hZ2VzIHRvIGZpbmQgdGhlIGZpbGUuDQoN CkZvciByZWZlcmVuY2UsIGhlcmUgaXMgd2hhdCBBU0FOIHJlcG9ydHMgd2hl biB1c2UtYWZ0ZXItZnJlZSBvY2N1cnM6DQoNCihnZGIpIHNvdXJjZSBiLmdk Yg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCj09MTg0OTg9PUVSUk9SOiBBZGRy ZXNzU2FuaXRpemVyOiBoZWFwLXVzZS1hZnRlci1mcmVlIG9uIGFkZHJlc3Mg MHg2MGMwMDAwMTk4NDcgYXQgcGMgMHg3ZjFkMzY0NWRlOGUgYnAgMHg3ZmZk Y2I4OTJlNTAgc3AgMHg3ZmZkY2I4OTI1YzgNClJFQUQgb2Ygc2l6ZSA2IGF0 IDB4NjBjMDAwMDE5ODQ3IHRocmVhZCBUMA0KICAgICMwIDB4N2YxZDM2NDVk ZThkIGluIHByaW50Zl9jb21tb24gL2J1aWxkL2djYy9zcmMvZ2NjL2xpYnNh bml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9jb21tb25faW50 ZXJjZXB0b3JzX2Zvcm1hdC5pbmM6NTQ2DQogICAgIzEgMHg3ZjFkMzY0Nzcx NzUgaW4gX19pbnRlcmNlcHRvcl92YXNwcmludGYgL2J1aWxkL2djYy9zcmMv Z2NjL2xpYnNhbml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXplcl9j b21tb25faW50ZXJjZXB0b3JzLmluYzoxNTI1DQogICAgIzIgMHg1NjMyZWFm ZmEyNzcgaW4geHN0cnZwcmludGYoY2hhciBjb25zdCosIF9fdmFfbGlzdF90 YWcqKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY29tbW9u L2NvbW1vbi11dGlscy5jOjEyMg0KICAgICMzIDB4NTYzMmVhZmY5NmQxIGlu IHRocm93X2l0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9j b21tb24vY29tbW9uLWV4Y2VwdGlvbnMuYzozNTENCiAgICAjNCAweDU2MzJl YWZmOThkZiBpbiB0aHJvd192ZXJyb3IoZXJyb3JzLCBjaGFyIGNvbnN0Kiwg X192YV9saXN0X3RhZyopIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2Ri L2dkYi9jb21tb24vY29tbW9uLWV4Y2VwdGlvbnMuYzozNzkNCiAgICAjNSAw eDU2MzJlYWZmOWEyYSBpbiB0aHJvd19lcnJvcihlcnJvcnMsIGNoYXIgY29u c3QqLCAuLi4pIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9j b21tb24vY29tbW9uLWV4Y2VwdGlvbnMuYzozOTQNCiAgICAjNiAweDU2MzJl YWZjYTIxYSBpbiBzY3JpcHRfZnJvbV9maWxlKF9JT19GSUxFKiwgY2hhciBj b25zdCopIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkv Y2xpLXNjcmlwdC5jOjE1NTMNCiAgICAjNyAweDU2MzJlYWY4YTUwMCBpbiBz b3VyY2Vfc2NyaXB0X2Zyb21fc3RyZWFtIC9ob21lL3NpbWFyay9zcmMvYmlu dXRpbHMtZ2RiL2dkYi9jbGkvY2xpLWNtZHMuYzo1NjkNCiAgICAjOCAweDU2 MzJlYWY4YTczNSBpbiBzb3VyY2Vfc2NyaXB0X3dpdGhfc2VhcmNoIC9ob21l L3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkvY2xpLWNtZHMuYzo2 MDUNCiAgICAjOSAweDU2MzJlYWY4YWIyMCBpbiBzb3VyY2VfY29tbWFuZCAv aG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY2xpL2NsaS1jbWRz LmM6NjY0DQogICAgIzEwIDB4NTYzMmVhZmE4YjRhIGluIGRvX2NvbnN0X2Nm dW5jIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkvY2xp LWRlY29kZS5jOjEwNg0KICAgICMxMSAweDU2MzJlYWZiMDY4NyBpbiBjbWRf ZnVuYyhjbWRfbGlzdF9lbGVtZW50KiwgY2hhciBjb25zdCosIGludCkgL2hv bWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2NsaS9jbGktZGVjb2Rl LmM6MTg5Mg0KICAgICMxMiAweDU2MzJlYmYzZGQ4NyBpbiBleGVjdXRlX2Nv bW1hbmQoY2hhciBjb25zdCosIGludCkgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL3RvcC5jOjYzMA0KICAgICMxMyAweDU2MzJlYjNiMjVk MyBpbiBjb21tYW5kX2hhbmRsZXIoY2hhciBjb25zdCopIC9ob21lL3NpbWFy ay9zcmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC10b3AuYzo1ODMNCiAgICAj MTQgMHg1NjMyZWJmM2NmMDkgaW4gcmVhZF9jb21tYW5kX2ZpbGUoX0lPX0ZJ TEUqKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvdG9wLmM6 NDI1DQogICAgIzE1IDB4NTYzMmVhZmNhMDU0IGluIHNjcmlwdF9mcm9tX2Zp bGUoX0lPX0ZJTEUqLCBjaGFyIGNvbnN0KikgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL2NsaS9jbGktc2NyaXB0LmM6MTU0Nw0KICAgICMx NiAweDU2MzJlYWY4YTUwMCBpbiBzb3VyY2Vfc2NyaXB0X2Zyb21fc3RyZWFt IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkvY2xpLWNt ZHMuYzo1NjkNCiAgICAjMTcgMHg1NjMyZWFmOGE3MzUgaW4gc291cmNlX3Nj cmlwdF93aXRoX3NlYXJjaCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdk Yi9nZGIvY2xpL2NsaS1jbWRzLmM6NjA1DQogICAgIzE4IDB4NTYzMmVhZjhh YjIwIGluIHNvdXJjZV9jb21tYW5kIC9ob21lL3NpbWFyay9zcmMvYmludXRp bHMtZ2RiL2dkYi9jbGkvY2xpLWNtZHMuYzo2NjQNCiAgICAjMTkgMHg1NjMy ZWFmYThiNGEgaW4gZG9fY29uc3RfY2Z1bmMgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL2NsaS9jbGktZGVjb2RlLmM6MTA2DQogICAgIzIw IDB4NTYzMmVhZmIwNjg3IGluIGNtZF9mdW5jKGNtZF9saXN0X2VsZW1lbnQq LCBjaGFyIGNvbnN0KiwgaW50KSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxz LWdkYi9nZGIvY2xpL2NsaS1kZWNvZGUuYzoxODkyDQogICAgIzIxIDB4NTYz MmViZjNkZDg3IGluIGV4ZWN1dGVfY29tbWFuZChjaGFyIGNvbnN0KiwgaW50 KSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvdG9wLmM6NjMw DQogICAgIzIyIDB4NTYzMmViM2IyNWQzIGluIGNvbW1hbmRfaGFuZGxlcihj aGFyIGNvbnN0KikgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L2V2ZW50LXRvcC5jOjU4Mw0KICAgICMyMyAweDU2MzJlYjNiMmY4NyBpbiBj b21tYW5kX2xpbmVfaGFuZGxlcihzdGQ6OnVuaXF1ZV9wdHI8Y2hhciwgZ2Ri Ojp4ZnJlZV9kZWxldGVyPGNoYXI+ID4mJikgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL2V2ZW50LXRvcC5jOjc3MA0KICAgICMyNCAweDU2 MzJlYjNiMGZlMSBpbiBnZGJfcmxfY2FsbGJhY2tfaGFuZGxlciAvaG9tZS9z aW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvZXZlbnQtdG9wLmM6MjEzDQog ICAgIzI1IDB4NTYzMmVjMWM4NzI5IGluIHJsX2NhbGxiYWNrX3JlYWRfY2hh ciAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9yZWFkbGluZS9jYWxs YmFjay5jOjIyMA0KICAgICMyNiAweDU2MzJlYjNiMGI4ZiBpbiBnZGJfcmxf Y2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBwZXJfbm9leGNlcHQgL2hvbWUvc2lt YXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LXRvcC5jOjE3NQ0KICAg ICMyNyAweDU2MzJlYjNiMGRhMSBpbiBnZGJfcmxfY2FsbGJhY2tfcmVhZF9j aGFyX3dyYXBwZXIgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L2V2ZW50LXRvcC5jOjE5Mg0KICAgICMyOCAweDU2MzJlYjNiMjE4NiBpbiBz dGRpbl9ldmVudF9oYW5kbGVyKGludCwgdm9pZCopIC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC10b3AuYzo1MTENCiAgICAjMjkg MHg1NjMyZWIzYWE2YTkgaW4gaGFuZGxlX2ZpbGVfZXZlbnQgL2hvbWUvc2lt YXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LWxvb3AuYzo3MzMNCiAg ICAjMzAgMHg1NjMyZWIzYWFmNDEgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50IC9o b21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC1sb29wLmM6 ODU5DQogICAgIzMxIDB4NTYzMmViM2E4OGVhIGluIGdkYl9kb19vbmVfZXZl bnQoKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvZXZlbnQt bG9vcC5jOjM0Nw0KICAgICMzMiAweDU2MzJlYjNhODliZiBpbiBzdGFydF9l dmVudF9sb29wKCkgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L2V2ZW50LWxvb3AuYzozNzENCiAgICAjMzMgMHg1NjMyZWI3NmZiZmMgaW4g Y2FwdHVyZWRfY29tbWFuZF9sb29wIC9ob21lL3NpbWFyay9zcmMvYmludXRp bHMtZ2RiL2dkYi9tYWluLmM6MzMwDQogICAgIzM0IDB4NTYzMmViNzcyZWE4 IGluIGNhcHR1cmVkX21haW4gL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1n ZGIvZ2RiL21haW4uYzoxMTc2DQogICAgIzM1IDB4NTYzMmViNzczMDcxIGlu IGdkYl9tYWluKGNhcHR1cmVkX21haW5fYXJncyopIC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi9tYWluLmM6MTE5Mg0KICAgICMzNiAweDU2 MzJlYWJmZTdmOSBpbiBtYWluIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9nZGIuYzozMg0KICAgICMzNyAweDdmMWQzNTU0ZjIyMiBpbiBf X2xpYmNfc3RhcnRfbWFpbiAoL3Vzci9saWIvbGliYy5zby42KzB4MjQyMjIp DQogICAgIzM4IDB4NTYzMmVhYmZlNWRkIGluIF9zdGFydCAoL2hvbWUvc2lt YXJrL2J1aWxkL2JpbnV0aWxzLWdkYi9nZGIvZ2RiKzB4MTk1ZDVkZCkNCg0K MHg2MGMwMDAwMTk4NDcgaXMgbG9jYXRlZCA3IGJ5dGVzIGluc2lkZSBvZiAx MjgtYnl0ZSByZWdpb24gWzB4NjBjMDAwMDE5ODQwLDB4NjBjMDAwMDE5OGMw KQ0KZnJlZWQgYnkgdGhyZWFkIFQwIGhlcmU6DQogICAgIzAgMHg3ZjFkMzY1 MDI0OTEgaW4gX19pbnRlcmNlcHRvcl9yZWFsbG9jIC9idWlsZC9nY2Mvc3Jj L2djYy9saWJzYW5pdGl6ZXIvYXNhbi9hc2FuX21hbGxvY19saW51eC5jYzox MDUNCiAgICAjMSAweDU2MzJlYWZmOWY0NyBpbiB4cmVhbGxvYyAvaG9tZS9z aW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY29tbW9uL2NvbW1vbi11dGls cy5jOjYyDQogICAgIzIgMHg1NjMyZWFmZjZiNDQgaW4gYnVmZmVyX2dyb3co YnVmZmVyKiwgY2hhciBjb25zdCosIHVuc2lnbmVkIGxvbmcpIC9ob21lL3Np bWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jb21tb24vYnVmZmVyLmM6NDAN CiAgICAjMyAweDU2MzJlYjNiMjcxZCBpbiBjb21tYW5kX2xpbmVfYXBwZW5k X2lucHV0X2xpbmUgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L2V2ZW50LXRvcC5jOjYxNA0KICAgICM0IDB4NTYzMmViM2IyOGM2IGluIGhh bmRsZV9saW5lX29mX2lucHV0KGJ1ZmZlciosIGNoYXIgY29uc3QqLCBpbnQs IGNoYXIgY29uc3QqKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGIvZXZlbnQtdG9wLmM6NjU0DQogICAgIzUgMHg1NjMyZWJmNDAyYTYgaW4g Y29tbWFuZF9saW5lX2lucHV0KGNoYXIgY29uc3QqLCBjaGFyIGNvbnN0Kikg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL3RvcC5jOjEyNTIN CiAgICAjNiAweDU2MzJlYmYzY2VlOSBpbiByZWFkX2NvbW1hbmRfZmlsZShf SU9fRklMRSopIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi90 b3AuYzo0MjINCiAgICAjNyAweDU2MzJlYWZjYTA1NCBpbiBzY3JpcHRfZnJv bV9maWxlKF9JT19GSUxFKiwgY2hhciBjb25zdCopIC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi9jbGkvY2xpLXNjcmlwdC5jOjE1NDcNCiAg ICAjOCAweDU2MzJlYWY4YTUwMCBpbiBzb3VyY2Vfc2NyaXB0X2Zyb21fc3Ry ZWFtIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkvY2xp LWNtZHMuYzo1NjkNCiAgICAjOSAweDU2MzJlYWY4YTczNSBpbiBzb3VyY2Vf c2NyaXB0X3dpdGhfc2VhcmNoIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9jbGkvY2xpLWNtZHMuYzo2MDUNCiAgICAjMTAgMHg1NjMyZWFm OGFiMjAgaW4gc291cmNlX2NvbW1hbmQgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL2NsaS9jbGktY21kcy5jOjY2NA0KICAgICMxMSAweDU2 MzJlYWZhOGI0YSBpbiBkb19jb25zdF9jZnVuYyAvaG9tZS9zaW1hcmsvc3Jj L2JpbnV0aWxzLWdkYi9nZGIvY2xpL2NsaS1kZWNvZGUuYzoxMDYNCiAgICAj MTIgMHg1NjMyZWFmYjA2ODcgaW4gY21kX2Z1bmMoY21kX2xpc3RfZWxlbWVu dCosIGNoYXIgY29uc3QqLCBpbnQpIC9ob21lL3NpbWFyay9zcmMvYmludXRp bHMtZ2RiL2dkYi9jbGkvY2xpLWRlY29kZS5jOjE4OTINCiAgICAjMTMgMHg1 NjMyZWJmM2RkODcgaW4gZXhlY3V0ZV9jb21tYW5kKGNoYXIgY29uc3QqLCBp bnQpIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi90b3AuYzo2 MzANCiAgICAjMTQgMHg1NjMyZWIzYjI1ZDMgaW4gY29tbWFuZF9oYW5kbGVy KGNoYXIgY29uc3QqKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGIvZXZlbnQtdG9wLmM6NTgzDQogICAgIzE1IDB4NTYzMmViZjNjZjA5IGlu IHJlYWRfY29tbWFuZF9maWxlKF9JT19GSUxFKikgL2hvbWUvc2ltYXJrL3Ny Yy9iaW51dGlscy1nZGIvZ2RiL3RvcC5jOjQyNQ0KICAgICMxNiAweDU2MzJl YWZjYTA1NCBpbiBzY3JpcHRfZnJvbV9maWxlKF9JT19GSUxFKiwgY2hhciBj b25zdCopIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkv Y2xpLXNjcmlwdC5jOjE1NDcNCiAgICAjMTcgMHg1NjMyZWFmOGE1MDAgaW4g c291cmNlX3NjcmlwdF9mcm9tX3N0cmVhbSAvaG9tZS9zaW1hcmsvc3JjL2Jp bnV0aWxzLWdkYi9nZGIvY2xpL2NsaS1jbWRzLmM6NTY5DQogICAgIzE4IDB4 NTYzMmVhZjhhNzM1IGluIHNvdXJjZV9zY3JpcHRfd2l0aF9zZWFyY2ggL2hv bWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2NsaS9jbGktY21kcy5j OjYwNQ0KICAgICMxOSAweDU2MzJlYWY4YWIyMCBpbiBzb3VyY2VfY29tbWFu ZCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY2xpL2NsaS1j bWRzLmM6NjY0DQogICAgIzIwIDB4NTYzMmVhZmE4YjRhIGluIGRvX2NvbnN0 X2NmdW5jIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9jbGkv Y2xpLWRlY29kZS5jOjEwNg0KICAgICMyMSAweDU2MzJlYWZiMDY4NyBpbiBj bWRfZnVuYyhjbWRfbGlzdF9lbGVtZW50KiwgY2hhciBjb25zdCosIGludCkg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2NsaS9jbGktZGVj b2RlLmM6MTg5Mg0KICAgICMyMiAweDU2MzJlYmYzZGQ4NyBpbiBleGVjdXRl X2NvbW1hbmQoY2hhciBjb25zdCosIGludCkgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL3RvcC5jOjYzMA0KICAgICMyMyAweDU2MzJlYjNi MjVkMyBpbiBjb21tYW5kX2hhbmRsZXIoY2hhciBjb25zdCopIC9ob21lL3Np bWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC10b3AuYzo1ODMNCiAg ICAjMjQgMHg1NjMyZWIzYjJmODcgaW4gY29tbWFuZF9saW5lX2hhbmRsZXIo c3RkOjp1bmlxdWVfcHRyPGNoYXIsIGdkYjo6eGZyZWVfZGVsZXRlcjxjaGFy PiA+JiYpIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9ldmVu dC10b3AuYzo3NzANCiAgICAjMjUgMHg1NjMyZWIzYjBmZTEgaW4gZ2RiX3Js X2NhbGxiYWNrX2hhbmRsZXIgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1n ZGIvZ2RiL2V2ZW50LXRvcC5jOjIxMw0KICAgICMyNiAweDU2MzJlYzFjODcy OSBpbiBybF9jYWxsYmFja19yZWFkX2NoYXIgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvcmVhZGxpbmUvY2FsbGJhY2suYzoyMjANCiAgICAjMjcg MHg1NjMyZWIzYjBiOGYgaW4gZ2RiX3JsX2NhbGxiYWNrX3JlYWRfY2hhcl93 cmFwcGVyX25vZXhjZXB0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2Ri L2dkYi9ldmVudC10b3AuYzoxNzUNCiAgICAjMjggMHg1NjMyZWIzYjBkYTEg aW4gZ2RiX3JsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIC9ob21lL3Np bWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC10b3AuYzoxOTINCiAg ICAjMjkgMHg1NjMyZWIzYjIxODYgaW4gc3RkaW5fZXZlbnRfaGFuZGxlcihp bnQsIHZvaWQqKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIv ZXZlbnQtdG9wLmM6NTExDQoNCnByZXZpb3VzbHkgYWxsb2NhdGVkIGJ5IHRo cmVhZCBUMCBoZXJlOg0KICAgICMwIDB4N2YxZDM2NTAyNDkxIGluIF9faW50 ZXJjZXB0b3JfcmVhbGxvYyAvYnVpbGQvZ2NjL3NyYy9nY2MvbGlic2FuaXRp emVyL2FzYW4vYXNhbl9tYWxsb2NfbGludXguY2M6MTA1DQogICAgIzEgMHg1 NjMyZWFmZjlmNDcgaW4geHJlYWxsb2MgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL2NvbW1vbi9jb21tb24tdXRpbHMuYzo2Mg0KICAgICMy IDB4NTYzMmVhZmY2YjQ0IGluIGJ1ZmZlcl9ncm93KGJ1ZmZlciosIGNoYXIg Y29uc3QqLCB1bnNpZ25lZCBsb25nKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0 aWxzLWdkYi9nZGIvY29tbW9uL2J1ZmZlci5jOjQwDQogICAgIzMgMHg1NjMy ZWIzYjI3MWQgaW4gY29tbWFuZF9saW5lX2FwcGVuZF9pbnB1dF9saW5lIC9o b21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC10b3AuYzo2 MTQNCiAgICAjNCAweDU2MzJlYjNiMjhjNiBpbiBoYW5kbGVfbGluZV9vZl9p bnB1dChidWZmZXIqLCBjaGFyIGNvbnN0KiwgaW50LCBjaGFyIGNvbnN0Kikg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LXRvcC5j OjY1NA0KICAgICM1IDB4NTYzMmViZjQwMmE2IGluIGNvbW1hbmRfbGluZV9p bnB1dChjaGFyIGNvbnN0KiwgY2hhciBjb25zdCopIC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi90b3AuYzoxMjUyDQogICAgIzYgMHg1NjMy ZWJmM2NlZTkgaW4gcmVhZF9jb21tYW5kX2ZpbGUoX0lPX0ZJTEUqKSAvaG9t ZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvdG9wLmM6NDIyDQogICAg IzcgMHg1NjMyZWFmY2EwNTQgaW4gc2NyaXB0X2Zyb21fZmlsZShfSU9fRklM RSosIGNoYXIgY29uc3QqKSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdk Yi9nZGIvY2xpL2NsaS1zY3JpcHQuYzoxNTQ3DQogICAgIzggMHg1NjMyZWFm OGE1MDAgaW4gc291cmNlX3NjcmlwdF9mcm9tX3N0cmVhbSAvaG9tZS9zaW1h cmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY2xpL2NsaS1jbWRzLmM6NTY5DQog ICAgIzkgMHg1NjMyZWFmOGE3MzUgaW4gc291cmNlX3NjcmlwdF93aXRoX3Nl YXJjaCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY2xpL2Ns aS1jbWRzLmM6NjA1DQogICAgIzEwIDB4NTYzMmVhZjhhYjIwIGluIHNvdXJj ZV9jb21tYW5kIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9j bGkvY2xpLWNtZHMuYzo2NjQNCiAgICAjMTEgMHg1NjMyZWFmYThiNGEgaW4g ZG9fY29uc3RfY2Z1bmMgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIv Z2RiL2NsaS9jbGktZGVjb2RlLmM6MTA2DQogICAgIzEyIDB4NTYzMmVhZmIw Njg3IGluIGNtZF9mdW5jKGNtZF9saXN0X2VsZW1lbnQqLCBjaGFyIGNvbnN0 KiwgaW50KSAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvY2xp L2NsaS1kZWNvZGUuYzoxODkyDQogICAgIzEzIDB4NTYzMmViZjNkZDg3IGlu IGV4ZWN1dGVfY29tbWFuZChjaGFyIGNvbnN0KiwgaW50KSAvaG9tZS9zaW1h cmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvdG9wLmM6NjMwDQogICAgIzE0IDB4 NTYzMmViM2IyNWQzIGluIGNvbW1hbmRfaGFuZGxlcihjaGFyIGNvbnN0Kikg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LXRvcC5j OjU4Mw0KICAgICMxNSAweDU2MzJlYjNiMmY4NyBpbiBjb21tYW5kX2xpbmVf aGFuZGxlcihzdGQ6OnVuaXF1ZV9wdHI8Y2hhciwgZ2RiOjp4ZnJlZV9kZWxl dGVyPGNoYXI+ID4mJikgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIv Z2RiL2V2ZW50LXRvcC5jOjc3MA0KICAgICMxNiAweDU2MzJlYjNiMGZlMSBp biBnZGJfcmxfY2FsbGJhY2tfaGFuZGxlciAvaG9tZS9zaW1hcmsvc3JjL2Jp bnV0aWxzLWdkYi9nZGIvZXZlbnQtdG9wLmM6MjEzDQogICAgIzE3IDB4NTYz MmVjMWM4NzI5IGluIHJsX2NhbGxiYWNrX3JlYWRfY2hhciAvaG9tZS9zaW1h cmsvc3JjL2JpbnV0aWxzLWdkYi9yZWFkbGluZS9jYWxsYmFjay5jOjIyMA0K ICAgICMxOCAweDU2MzJlYjNiMGI4ZiBpbiBnZGJfcmxfY2FsbGJhY2tfcmVh ZF9jaGFyX3dyYXBwZXJfbm9leGNlcHQgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL2V2ZW50LXRvcC5jOjE3NQ0KICAgICMxOSAweDU2MzJl YjNiMGRhMSBpbiBnZGJfcmxfY2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBwZXIg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LXRvcC5j OjE5Mg0KICAgICMyMCAweDU2MzJlYjNiMjE4NiBpbiBzdGRpbl9ldmVudF9o YW5kbGVyKGludCwgdm9pZCopIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9ldmVudC10b3AuYzo1MTENCiAgICAjMjEgMHg1NjMyZWIzYWE2 YTkgaW4gaGFuZGxlX2ZpbGVfZXZlbnQgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL2V2ZW50LWxvb3AuYzo3MzMNCiAgICAjMjIgMHg1NjMy ZWIzYWFmNDEgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50IC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi9ldmVudC1sb29wLmM6ODU5DQogICAgIzIz IDB4NTYzMmViM2E4OGVhIGluIGdkYl9kb19vbmVfZXZlbnQoKSAvaG9tZS9z aW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvZXZlbnQtbG9vcC5jOjM0Nw0K ICAgICMyNCAweDU2MzJlYjNhODliZiBpbiBzdGFydF9ldmVudF9sb29wKCkg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2V2ZW50LWxvb3Au YzozNzENCiAgICAjMjUgMHg1NjMyZWI3NmZiZmMgaW4gY2FwdHVyZWRfY29t bWFuZF9sb29wIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9t YWluLmM6MzMwDQogICAgIzI2IDB4NTYzMmViNzcyZWE4IGluIGNhcHR1cmVk X21haW4gL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL21haW4u YzoxMTc2DQogICAgIzI3IDB4NTYzMmViNzczMDcxIGluIGdkYl9tYWluKGNh cHR1cmVkX21haW5fYXJncyopIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9tYWluLmM6MTE5Mg0KICAgICMyOCAweDU2MzJlYWJmZTdmOSBp biBtYWluIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9nZGIu YzozMg0KICAgICMyOSAweDdmMWQzNTU0ZjIyMiBpbiBfX2xpYmNfc3RhcnRf bWFpbiAoL3Vzci9saWIvbGliYy5zby42KzB4MjQyMjIpDQoNClNVTU1BUlk6 IEFkZHJlc3NTYW5pdGl6ZXI6IGhlYXAtdXNlLWFmdGVyLWZyZWUgL2J1aWxk L2djYy9zcmMvZ2NjL2xpYnNhbml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nh bml0aXplcl9jb21tb25faW50ZXJjZXB0b3JzX2Zvcm1hdC5pbmM6NTQ2IGlu IHByaW50Zl9jb21tb24NCg0KZ2RiL0NoYW5nZUxvZzoNCg0KCSogdG9wLmgg KHNvdXJjZV9maWxlX25hbWUpOiBDaGFuZ2UgdG8gc3RkOjpzdHJpbmcuDQoJ KiB0b3AuYyAoc291cmNlX2ZpbGVfbmFtZSk6IExpa2V3aXNlLg0KCShjb21t YW5kX2xpbmVfaW5wdXQpOiBBZGp1c3QuDQoJKiBjbGkvY2xpLXNjcmlwdC5j IChzY3JpcHRfZnJvbV9maWxlKTogQWRqdXN0Lg0KDQpnZGIvdGVzdHN1aXRl L0NoYW5nZUxvZzoNCg0KCSogZ2RiLmJhc2Uvc291cmNlLmV4cDogTW92ZSAi ZXJyb3IgaW4gc291cmNlZCBzY3JpcHQiIGNvZGUgdG8NCgl0aGUgZW5kLg0K CSogZ2RiLmJhc2Uvc291cmNlLWVycm9yLmdkYjogTW92ZSBjb250ZW50cyB0 bw0KCXNvdXJjZS1lcnJvci0xLmdkYi4gIEFkZCBuZXcgY29kZSB0byBzb3Vy Y2Ugc291cmNlLWVycm9yLTEuZ2RiLg0KCSogZ2RiLmJhc2Uvc291cmNlLWVy cm9yLTEuZ2RiOiBOZXcgZmlsZSwgZnJvbSBwcmV2aW91cw0KCXNvdXJjZS1l cnJvci5nZGIuDQotLS0NCiBnZGIvY2xpL2NsaS1zY3JpcHQuYyAgICAgICAg ICAgICAgICAgICAgICB8ICA2ICsrKy0tLQ0KIGdkYi90ZXN0c3VpdGUvZ2Ri LmJhc2Uvc291cmNlLWVycm9yLTEuZ2RiIHwgMjIgKysrKysrKysrKysrKysr KysrKysrKw0KIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc291cmNlLWVycm9y LmdkYiAgIHwgIDYgKystLS0tDQogZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9z b3VyY2UuZXhwICAgICAgICAgfCAxNiArKysrKysrKysrKy0tLS0tDQogZ2Ri L3RvcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCAr Ky0tDQogZ2RiL3RvcC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQ0KIDYgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygr KSwgMTUgZGVsZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvc291cmNlLWVycm9yLTEuZ2RiDQoNCmRpZmYg LS1naXQgYS9nZGIvY2xpL2NsaS1zY3JpcHQuYyBiL2dkYi9jbGkvY2xpLXNj cmlwdC5jDQppbmRleCBhYWVhZDAwYTEwMS4uYmEzY2RkNTY2Y2IgMTAwNjQ0 DQotLS0gYS9nZGIvY2xpL2NsaS1zY3JpcHQuYw0KKysrIGIvZ2RiL2NsaS9j bGktc2NyaXB0LmMNCkBAIC0xNTM3LDggKzE1MzcsOCBAQCBzY3JpcHRfZnJv bV9maWxlIChGSUxFICpzdHJlYW0sIGNvbnN0IGNoYXIgKmZpbGUpDQoNCiAg IHNjb3BlZF9yZXN0b3JlIHJlc3RvcmVfbGluZV9udW1iZXINCiAgICAgPSBt YWtlX3Njb3BlZF9yZXN0b3JlICgmc291cmNlX2xpbmVfbnVtYmVyLCAwKTsN Ci0gIHNjb3BlZF9yZXN0b3JlIHJlc290cmVfZmlsZQ0KLSAgICA9IG1ha2Vf c2NvcGVkX3Jlc3RvcmUgKCZzb3VyY2VfZmlsZV9uYW1lLCBmaWxlKTsNCisg IHNjb3BlZF9yZXN0b3JlIHJlc3RvcmVfZmlsZQ0KKyAgICA9IG1ha2Vfc2Nv cGVkX3Jlc3RvcmU8c3RkOjpzdHJpbmcsIGNvbnN0IHN0ZDo6c3RyaW5nICY+ ICgmc291cmNlX2ZpbGVfbmFtZSwgZmlsZSk7DQoNCiAgIHNjb3BlZF9yZXN0 b3JlIHNhdmVfYXN5bmMgPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmY3VycmVu dF91aS0+YXN5bmMsIDApOw0KDQpAQCAtMTU1Miw3ICsxNTUyLDcgQEAgc2Ny aXB0X2Zyb21fZmlsZSAoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpmaWxl KQ0KIAkgcHJlcGVuZGVkLiAgKi8NCiAgICAgICB0aHJvd19lcnJvciAoZS5l cnJvciwNCiAJCSAgIF8oIiVzOiVkOiBFcnJvciBpbiBzb3VyY2VkIGNvbW1h bmQgZmlsZTpcbiVzIiksDQotCQkgICBzb3VyY2VfZmlsZV9uYW1lLCBzb3Vy Y2VfbGluZV9udW1iZXIsIGUubWVzc2FnZSk7DQorCQkgICBzb3VyY2VfZmls ZV9uYW1lLmNfc3RyICgpLCBzb3VyY2VfbGluZV9udW1iZXIsIGUubWVzc2Fn ZSk7DQogICAgIH0NCiAgIEVORF9DQVRDSA0KIH0NCmRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvdXJjZS1lcnJvci0xLmdkYiBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc291cmNlLWVycm9yLTEuZ2RiDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmM4NzlmZDJh ZjZmDQotLS0gL2Rldi9udWxsDQorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3NvdXJjZS1lcnJvci0xLmdkYg0KQEAgLTAsMCArMSwyMiBAQA0KKyMg VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4NCisNCisjIENvcHlyaWdodCAyMDA1LTIwMTkgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuDQorDQorIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQ0KKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCisjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yDQorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLg0KKyMNCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YNCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCisjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQorIw0KKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UNCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ Lg0KKw0KKyMgVGVzdCBHREIncyAic291cmNlIiBjb21tYW5kIC0gcmVhZHMg aW4gYSBHREIgc2NyaXB0Lg0KKw0KK2VjaG8gd29ya2luZyBsaW5lXG4NCit4 IDANCitlY2hvIHNob3VsZCBub3QgcmVhY2ggdGhpcyBsaW5lXG4NCmRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvdXJjZS1lcnJvci5n ZGIgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvdXJjZS1lcnJvci5nZGIN CmluZGV4IGM4NzlmZDJhZjZmLi44NWUwZDlmOGNmMSAxMDA2NDQNCi0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc291cmNlLWVycm9yLmdkYg0KKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb3VyY2UtZXJyb3IuZ2RiDQpA QCAtMSw2ICsxLDYgQEANCiAjIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuDQoNCi0jIENvcHlyaWdodCAyMDA1LTIw MTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQorIyBDb3B5cmln aHQgMjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCg0KICMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiAjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQpAQCAtMTcsNiArMTcsNCBAQA0KDQogIyBUZXN0IEdEQidzICJz b3VyY2UiIGNvbW1hbmQgLSByZWFkcyBpbiBhIEdEQiBzY3JpcHQuDQoNCi1l Y2hvIHdvcmtpbmcgbGluZVxuDQoteCAwDQotZWNobyBzaG91bGQgbm90IHJl YWNoIHRoaXMgbGluZVxuDQorc291cmNlIHNvdXJjZS1lcnJvci0xLmdkYg0K ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc291cmNlLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc291cmNlLmV4cA0KaW5kZXgg YzZmZjY1NzgzZGEuLmE4ZmVmMDk4ZjEwIDEwMDY0NA0KLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9zb3VyY2UuZXhwDQorKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3NvdXJjZS5leHANCkBAIC0yMywxMCArMjMsNiBAQCBz dGFuZGFyZF90ZXN0ZmlsZSBzdHJ1Y3RzLmMNCg0KIGdkYl9zdGFydA0KDQot Z2RiX3Rlc3QgInNvdXJjZSAke3NyY2Rpcn0vJHtzdWJkaXJ9L3NvdXJjZS1l cnJvci5nZGIiIFwNCi0gICAgInNvdXJjZS1lcnJvci5nZGI6MjE6IEVycm9y IGluIHNvdXJjZWQgY29tbWFuZCBmaWxlOlxbXHJcblxdKkNhbm5vdCBhY2Nl c3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwLioiIFwNCi0gICAgInNjcmlwdCBj b250YWlucyBlcnJvciINCi0NCiBnZGJfdGVzdCAic291cmNlIC12ICR7c3Jj ZGlyfS8ke3N1YmRpcn0vc291cmNlLXRlc3QuZ2RiIiBcDQogICAgICJlY2hv IHRlc3Qgc291cmNlIG9wdGlvbnMuKiIgXA0KICAgICAic291cmNlIC12Ig0K QEAgLTY2LDQgKzYyLDE0IEBAIGdkYl90ZXN0ICJzb3VyY2UgZm9yLXN1cmUt bm9uZXhpc3RhbnQtZmlsZSIgXA0KIGdkYl90ZXN0ICJzb3VyY2Ugc291cmNl LW5vZmlsZS5nZGIiIFwNCiAgICAgICAgICAid2FybmluZzogZm9yLXN1cmUt bm9uZXhpc3RhbnQtZmlsZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwu XFtcclxuXF0qc291cmNlIGVycm9yIG5vdCBmYXRhbCINCg0KLWdkYl9leGl0 DQorDQorIyBUZXN0IGNvbW1hbmRzIHRoYXQgZXJyb3Igb3V0IGluIHNvdXJj ZWQgZmlsZXMsIGluY2x1ZGluZyBpbiBuZXN0ZWQgc291cmNlZA0KKyMgZmls ZXMuDQorIw0KKyMgVGhpcyBuZWVkcyB0byBjb21lIGFmdGVyIHRoZSAiZGly IiBjb21tYW5kIHRlc3RlZCBhYm92ZSBmb3Igc291cmNlLWVycm9yLmdkYg0K KyMgdG8gZmluZCBzb3VyY2UtZXJyb3ItMS5nZGIuDQorZ2RiX3Rlc3QgInNv dXJjZSAke3NyY2Rpcn0vJHtzdWJkaXJ9L3NvdXJjZS1lcnJvci5nZGIiIFwN CisgICAgW211bHRpX2xpbmUgIi4qc291cmNlLWVycm9yLmdkYjoyMDogRXJy b3IgaW4gc291cmNlZCBjb21tYW5kIGZpbGU6IiBcDQorCQkic291cmNlLWVy cm9yLTEuZ2RiOjIxOiBFcnJvciBpbiBzb3VyY2VkIGNvbW1hbmQgZmlsZToi IFwNCisJCSJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIg XSBcDQorICAgICJzY3JpcHQgY29udGFpbnMgZXJyb3IiDQpkaWZmIC0tZ2l0 IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jDQppbmRleCBjNzU2YTY5NzhlOC4u MjJlNmY3ZTI5YWIgMTAwNjQ0DQotLS0gYS9nZGIvdG9wLmMNCisrKyBiL2dk Yi90b3AuYw0KQEAgLTQwMCw3ICs0MDAsNyBAQCBxdWl0X2NvdmVyICh2b2lk KQ0KIC8qIE5PVEUgMTk5OS0wNC0yOTogVGhpcyB2YXJpYWJsZSB3aWxsIGJl IHN0YXRpYyBhZ2Fpbiwgb25jZSB3ZSBtb2RpZnkNCiAgICBnZGIgdG8gdXNl IHRoZSBldmVudCBsb29wIGFzIHRoZSBkZWZhdWx0IGNvbW1hbmQgbG9vcCBh bmQgd2UgbWVyZ2UNCiAgICBldmVudC10b3AuYyBpbnRvIHRoaXMgZmlsZSwg dG9wLmMuICAqLw0KLS8qIHN0YXRpYyAqLyBjb25zdCBjaGFyICpzb3VyY2Vf ZmlsZV9uYW1lOw0KKy8qIHN0YXRpYyAqLyBzdGQ6OnN0cmluZyBzb3VyY2Vf ZmlsZV9uYW1lOw0KDQogLyogUmVhZCBjb21tYW5kcyBmcm9tIFNUUkVBTS4g ICovDQogdm9pZA0KQEAgLTEyMjEsNyArMTIyMSw3IEBAIGNvbW1hbmRfbGlu ZV9pbnB1dCAoY29uc3QgY2hhciAqcHJvbXB0X2FyZywgY29uc3QgY2hhciAq YW5ub3RhdGlvbl9zdWZmaXgpDQogICAgICAgZ2RiX2ZsdXNoIChnZGJfc3Rk b3V0KTsNCiAgICAgICBnZGJfZmx1c2ggKGdkYl9zdGRlcnIpOw0KDQotICAg ICAgaWYgKHNvdXJjZV9maWxlX25hbWUgIT0gTlVMTCkNCisgICAgICBpZiAo IXNvdXJjZV9maWxlX25hbWUuZW1wdHkgKCkpDQogCSsrc291cmNlX2xpbmVf bnVtYmVyOw0KDQogICAgICAgaWYgKGZyb21fdHR5ICYmIGFubm90YXRpb25f bGV2ZWwgPiAxKQ0KZGlmZiAtLWdpdCBhL2dkYi90b3AuaCBiL2dkYi90b3Au aA0KaW5kZXggMWQ4NjAxODhjNmQuLjAyNWQ5Mzg5ZDYwIDEwMDY0NA0KLS0t IGEvZ2RiL3RvcC5oDQorKysgYi9nZGIvdG9wLmgNCkBAIC0yODEsNyArMjgx LDcgQEAgZXh0ZXJuIHZvaWQgZ2RiX2luaXQgKGNoYXIgKik7DQogLyogRm9y IHVzZSBieSBldmVudC10b3AuYy4gICovDQogLyogVmFyaWFibGVzIGZyb20g dG9wLmMuICAqLw0KIGV4dGVybiBpbnQgc291cmNlX2xpbmVfbnVtYmVyOw0K LWV4dGVybiBjb25zdCBjaGFyICpzb3VyY2VfZmlsZV9uYW1lOw0KK2V4dGVy biBzdGQ6OnN0cmluZyBzb3VyY2VfZmlsZV9uYW1lOw0KIGV4dGVybiBpbnQg aGlzdG9yeV9leHBhbnNpb25fcDsNCiBleHRlcm4gaW50IHNlcnZlcl9jb21t YW5kOw0KIGV4dGVybiBjaGFyICpsaW1fYXRfc3RhcnQ7DQotLSANCjIuMjAu MQ0KDQo= >From gdb-patches-return-154051-listarch-gdb-patches=sources.redhat.com@sourceware.org Tue Feb 19 23:44:11 2019 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 19223 invoked by alias); 19 Feb 2019 23:44:11 -0000 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 Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 19124 invoked by uid 89); 19 Feb 2019 23:44:10 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=waroquiers, philippewaroquiersskynetbe, philippe.waroquiers@skynet.be, sk:philipp X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 19 Feb 2019 23:44:08 +0000 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 92D6E5945B; Tue, 19 Feb 2019 23:44:07 +0000 (UTC) Received: from f29-4.lan (ovpn-117-11.phx2.redhat.com [10.3.117.11]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3EB075DD63; Tue, 19 Feb 2019 23:44:07 +0000 (UTC) Date: Tue, 19 Feb 2019 23:44:00 -0000 From: Kevin Buettner To: gdb-patches@sourceware.org Subject: Re: [RFA] Fix regcache leak, and avoid possible regcache access after detach. Message-ID: <20190219164406.43969e3c@f29-4.lan> In-Reply-To: <20190216205810.1253-1-philippe.waroquiers@skynet.be> References: <20190216205810.1253-1-philippe.waroquiers@skynet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2019-02/txt/msg00318.txt.bz2 Content-length: 3145 On Sat, 16 Feb 2019 21:58:10 +0100 Philippe Waroquiers wrote: > Valgrind reports leaks like the below in various tests, > e.g. gdb.threads/attach-slow-waitpid.exp, gdb.ada/task_switch_in_core.exp, ... > > Fix the leak by clearing the regcache when detaching from an inferior. > Note that these leaks are 'created' when GDB exits, > when the regcache::current_regcache is destroyed : the elements > of the forward_list are pointers, and the 'pointed to' memory is not > deleted by the forward_list destructor. > > Nevertheless, fixing this leak is good as it makes a bunch of > tests 'leak clean'. > > Also, it seems strange to keep a register cache for a process from > which GDB detached : it is not clear if this cache is still valid > after detach. And effectively, when clearing only the regcache, > (and not the frame cache), then the frame cache was still 'pointing' > at this regcache and was used when switching to the child process > in the test gdb.threads/watchpoint-fork.exp, which seems strange. > > So, we solve the leak and avoid possible accesses to the regcache > and frame cache of the detached inferior, by clearing both the > regcache and the frame cache. > > Tested on debian/amd64, natively and under Valgrind. Before committing, could you also test against native-gdbserver? I.e... make check RUNTESTFLAGS="--target_board=native-gdbserver" (I'd like the detach code in remote.c to be exercised as well. I've run into some subtle bugs in this area of remote.c in the past.) My remaining comments consist of a few nits... > diff --git a/gdb/target.c b/gdb/target.c > index 116510e8cb..0f10628590 100644 > --- a/gdb/target.c > +++ b/gdb/target.c > @@ -2010,6 +2010,8 @@ target_preopen (int from_tty) > void > target_detach (inferior *inf, int from_tty) > { > + ptid_t pid_ptid = ptid_t (inf->pid); > + Please move this declaration / initialization to the line just before where it's used. Since it's only used once, you could also just pass ptid_t (inf->pid) directly to registers_changed_ptid() and get rid of the declaration entirely. > /* As long as some to_detach implementations rely on the current_inferior > (either directly, or indirectly, like through target_gdbarch or by > reading memory), INF needs to be the current inferior. When that > @@ -2029,6 +2031,15 @@ target_detach (inferior *inf, int from_tty) > prepare_for_detach (); > > current_top_target ()->detach (inf, from_tty); > + > + /* After we have detached, clear the register cache for this inferior. */ > + registers_changed_ptid (pid_ptid); > + > + /* We have to ensure we have no frame cached left. Normally, s/cached/cache/ > + registers_changed_ptid (pid_ptid) calls reinit_frame_cache when > + inferior_ptid matches pid_ptid, but in our case, it does not > + call it, as inferior_pid has been reset. */ s/inferior_pid/inferior_ptid/ Thanks for that comment though; I was wondering why reinit_frame_cache needed to be called. > + reinit_frame_cache (); > } Okay with those changes, assuming that all goes well with the native-gdbserver testing.