From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CD610C54EE9 for ; Mon, 19 Sep 2022 09:52:52 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.408662.651467 (Exim 4.92) (envelope-from ) id 1oaDRz-0001qa-Fk; Mon, 19 Sep 2022 09:52:27 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 408662.651467; Mon, 19 Sep 2022 09:52:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oaDRz-0001qT-D8; Mon, 19 Sep 2022 09:52:27 +0000 Received: by outflank-mailman (input) for mailman id 408662; Mon, 19 Sep 2022 09:52:26 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oaDRy-0001q9-A2 for xen-devel@lists.xenproject.org; Mon, 19 Sep 2022 09:52:26 +0000 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id c37ddd6c-3800-11ed-9647-05401a9f4f97; Mon, 19 Sep 2022 11:52:25 +0200 (CEST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id AF83221D88; Mon, 19 Sep 2022 09:52:24 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 714AE13ABD; Mon, 19 Sep 2022 09:52:24 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id /TXzGdg7KGMzYQAAMHmgww (envelope-from ); Mon, 19 Sep 2022 09:52:24 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c37ddd6c-3800-11ed-9647-05401a9f4f97 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1663581144; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=ni1KGj6fHNi2L8wZnDcDKSF7+VC35L2jQ93te+J2OPo=; b=jqw9eWwRlKsDUFZ3uQnMSehEr1B4GflMhccfF1aPb7DzrTUOwajxaAps6+HbC0nR6RJ4Hu 9NdUEw2VaS1+7qJAk1RW8vEv+odB+L9CVM+W7DukB0+I7xqPQTTETD7zZ4wvSwqFlVAYlQ 9DdxIO0/fdF7SCjhJnA8qbbsdMyQB2s= Message-ID: Date: Mon, 19 Sep 2022 11:52:23 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH 1/2] xen/gntdev: Prevent leaking grants To: "M. Vefa Bicakci" , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org Cc: Stefano Stabellini , Oleksandr Tyshchenko , Demi Marie Obenour , Gerd Hoffmann References: <20220912040002.198191-1-m.v.b@runbox.com> <20220912040002.198191-2-m.v.b@runbox.com> Content-Language: en-US From: Juergen Gross In-Reply-To: <20220912040002.198191-2-m.v.b@runbox.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------aFjZl0pJMi9O2HQyrVB08eZJ" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------aFjZl0pJMi9O2HQyrVB08eZJ Content-Type: multipart/mixed; boundary="------------eV0m9qh006RDgFkMVNGTjRkm"; protected-headers="v1" From: Juergen Gross To: "M. Vefa Bicakci" , xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org Cc: Stefano Stabellini , Oleksandr Tyshchenko , Demi Marie Obenour , Gerd Hoffmann Message-ID: Subject: Re: [PATCH 1/2] xen/gntdev: Prevent leaking grants References: <20220912040002.198191-1-m.v.b@runbox.com> <20220912040002.198191-2-m.v.b@runbox.com> In-Reply-To: <20220912040002.198191-2-m.v.b@runbox.com> --------------eV0m9qh006RDgFkMVNGTjRkm Content-Type: multipart/mixed; boundary="------------0HZAFkn1IrghtMNUXP7cOlbR" --------------0HZAFkn1IrghtMNUXP7cOlbR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gMTIuMDkuMjIgMDY6MDAsIE0uIFZlZmEgQmljYWtjaSB3cm90ZToNCj4gUHJpb3IgdG8g dGhpcyBjb21taXQsIGlmIGEgZ3JhbnQgbWFwcGluZyBvcGVyYXRpb24gZmFpbGVkIHBhcnRp YWxseSwNCj4gc29tZSBvZiB0aGUgZW50cmllcyBpbiB0aGUgbWFwX29wcyBhcnJheSB3b3Vs ZCBiZSBpbnZhbGlkLCB3aGVyZWFzIGFsbA0KPiBvZiB0aGUgZW50cmllcyBpbiB0aGUga21h cF9vcHMgYXJyYXkgd291bGQgYmUgdmFsaWQuIFRoaXMgaW4gdHVybiB3b3VsZA0KPiBjYXVz ZSB0aGUgZm9sbG93aW5nIGxvZ2ljIGluIGdudGRldl9tYXBfZ3JhbnRfcGFnZXMgdG8gYmVj b21lIGludmFsaWQ6DQo+IA0KPiAgICBmb3IgKGkgPSAwOyBpIDwgbWFwLT5jb3VudDsgaSsr KSB7DQo+ICAgICAgaWYgKG1hcC0+bWFwX29wc1tpXS5zdGF0dXMgPT0gR05UU1Rfb2theSkg ew0KPiAgICAgICAgbWFwLT51bm1hcF9vcHNbaV0uaGFuZGxlID0gbWFwLT5tYXBfb3BzW2ld LmhhbmRsZTsNCj4gICAgICAgIGlmICghdXNlX3B0ZW1vZCkNCj4gICAgICAgICAgYWxsb2Nl ZCsrOw0KPiAgICAgIH0NCj4gICAgICBpZiAodXNlX3B0ZW1vZCkgew0KPiAgICAgICAgaWYg KG1hcC0+a21hcF9vcHNbaV0uc3RhdHVzID09IEdOVFNUX29rYXkpIHsNCj4gICAgICAgICAg aWYgKG1hcC0+bWFwX29wc1tpXS5zdGF0dXMgPT0gR05UU1Rfb2theSkNCj4gICAgICAgICAg ICBhbGxvY2VkKys7DQo+ICAgICAgICAgIG1hcC0+a3VubWFwX29wc1tpXS5oYW5kbGUgPSBt YXAtPmttYXBfb3BzW2ldLmhhbmRsZTsNCj4gICAgICAgIH0NCj4gICAgICB9DQo+ICAgIH0N Cj4gICAgLi4uDQo+ICAgIGF0b21pY19hZGQoYWxsb2NlZCwgJm1hcC0+bGl2ZV9ncmFudHMp Ow0KPiANCj4gQXNzdW1lIHRoYXQgdXNlX3B0ZW1vZCBpcyB0cnVlIChpLmUuLCB0aGUgZG9t YWluIG1hcHBpbmcgdGhlIGdyYW50ZWQNCj4gcGFnZXMgaXMgYSBwYXJhdmlydHVhbGl6ZWQg ZG9tYWluKS4gSW4gdGhlIGNvZGUgZXhjZXJwdCBhYm92ZSwgbm90ZSB0aGF0DQo+IHRoZSAi YWxsb2NlZCIgdmFyaWFibGUgaXMgb25seSBpbmNyZW1lbnRlZCB3aGVuIGJvdGgga21hcF9v cHNbaV0uc3RhdHVzDQo+IGFuZCBtYXBfb3BzW2ldLnN0YXR1cyBhcmUgc2V0IHRvIEdOVFNU X29rYXkgKGkuZS4sIGJvdGggbWFwcGluZw0KPiBvcGVyYXRpb25zIGFyZSBzdWNjZXNzZnVs KS4gIEhvd2V2ZXIsIGFzIGFsc28gbm90ZWQgYWJvdmUsIHRoZXJlIGFyZQ0KPiBjYXNlcyB3 aGVyZSBhIGdyYW50IG1hcHBpbmcgb3BlcmF0aW9uIGZhaWxzIHBhcnRpYWxseSwgYnJlYWtp bmcgdGhlDQo+IGFzc3VtcHRpb24gb2YgdGhlIGNvZGUgZXhjZXJwdCBhYm92ZS4NCj4gDQo+ IFRoZSBhZm9yZW1lbnRpb25lZCBjYXVzZXMgbWFwLT5saXZlX2dyYW50cyB0byBiZSBpbmNv cnJlY3RseSBzZXQuIEluDQo+IHNvbWUgY2FzZXMsIGFsbCBvZiB0aGUgbWFwX29wcyBtYXBw aW5ncyBmYWlsLCBidXQgYWxsIG9mIHRoZSBrbWFwX29wcw0KPiBtYXBwaW5ncyBzdWNjZWVk LCBtZWFuaW5nIHRoYXQgbGl2ZV9ncmFudHMgbWF5IHJlbWFpbiB6ZXJvLiBUaGlzIGluIHR1 cm4NCj4gbWFrZXMgaXQgaW1wb3NzaWJsZSB0byB1bm1hcCB0aGUgc3VjY2Vzc2Z1bGx5IGdy YW50LW1hcHBlZCBwYWdlcyBwb2ludGVkDQo+IHRvIGJ5IGttYXBfb3BzLCBiZWNhdXNlIHVu bWFwX2dyYW50X3BhZ2VzIGhhcyB0aGUgZm9sbG93aW5nIHNuaXBwZXQgb2YNCj4gY29kZSBh dCBpdHMgYmVnaW5uaW5nOg0KPiANCj4gICAgaWYgKGF0b21pY19yZWFkKCZtYXAtPmxpdmVf Z3JhbnRzKSA9PSAwKQ0KPiAgICAgIHJldHVybjsgLyogTm90aGluZyB0byBkbyAqLw0KPiAN Cj4gSW4gb3RoZXIgY2FzZXMgd2hlcmUgb25seSBzb21lIG9mIHRoZSBtYXBfb3BzIG1hcHBp bmdzIGZhaWwgYnV0IGFsbA0KPiBrbWFwX29wcyBtYXBwaW5ncyBzdWNjZWVkLCBsaXZlX2dy YW50cyBpcyBtYWRlIHBvc2l0aXZlLCBidXQgd2hlbiB0aGUNCj4gdXNlciByZXF1ZXN0cyB1 bm1hcHBpbmcgdGhlIGdyYW50LW1hcHBlZCBwYWdlcywgX191bm1hcF9ncmFudF9wYWdlc19k b25lDQo+IHdpbGwgdGhlbiBtYWtlIG1hcC0+bGl2ZV9ncmFudHMgbmVnYXRpdmUsIGJlY2F1 c2UgdGhlIGxhdHRlciBmdW5jdGlvbg0KPiBkb2VzIG5vdCBjaGVjayBpZiBhbGwgb2YgdGhl IHBhZ2VzIHRoYXQgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdW5tYXBwZWQNCj4gd2VyZSBhY3R1 YWxseSB1bm1hcHBlZCwgYW5kIHRoZSBzYW1lIGZ1bmN0aW9uIHVuY29uZGl0aW9uYWxseSBz dWJ0cmFjdHMNCj4gImRhdGEtPmNvdW50IiAoaS5lLiwgYSB2YWx1ZSB0aGF0IGNhbiBiZSBn cmVhdGVyIHRoYW4gbWFwLT5saXZlX2dyYW50cykNCj4gZnJvbSBtYXAtPmxpdmVfZ3JhbnRz LiBUaGUgc2lkZSBlZmZlY3RzIG9mIGEgbmVnYXRpdmUgbGl2ZV9ncmFudHMgdmFsdWUNCj4g aGF2ZSBub3QgYmVlbiBzdHVkaWVkLg0KPiANCj4gVGhlIG5ldCBlZmZlY3Qgb2YgYWxsIG9m IHRoaXMgaXMgdGhhdCBncmFudCByZWZlcmVuY2VzIGFyZSBsZWFrZWQgaW4gb25lDQo+IG9m IHRoZSBhYm92ZSBjb25kaXRpb25zLiBJbiBRdWJlcyBPUyB2NC4xICh3aGljaCB1c2VzIFhl bidzIGdyYW50DQo+IG1lY2hhbmlzbSBleHRlbnNpdmVseSBmb3IgWDExIEdVSSBpc29sYXRp b24pLCB0aGlzIGlzc3VlIG1hbmlmZXN0cw0KPiBpdHNlbGYgd2l0aCB3YXJuaW5nIG1lc3Nh Z2VzIGxpa2UgdGhlIGZvbGxvd2luZyB0byBiZSBwcmludGVkIG91dCBieSB0aGUNCj4gTGlu dXgga2VybmVsIGluIHRoZSBWTSB0aGF0IGhhZCBncmFudGVkIHBhZ2VzICh0aGF0IGNvbnRh aW4gWDExIEdVSQ0KPiB3aW5kb3cgZGF0YSkgdG8gZG9tMDogImcuZS4gMHgxMjM0IHN0aWxs IHBlbmRpbmciLCBlc3BlY2lhbGx5IGFmdGVyIHRoZQ0KPiB1c2VyIHJhcGlkbHkgcmVzaXpl cyBHVUkgVk0gd2luZG93cyAoY2F1c2luZyBzb21lIGdyYW50LW1hcHBpbmcNCj4gb3BlcmF0 aW9ucyB0byBwYXJ0aWFsbHkgb3IgY29tcGxldGVseSBmYWlsLCBkdWUgdG8gdGhlIGZhY3Qg dGhhdCB0aGUgVk0NCj4gdW5zaGFyZXMgc29tZSBvZiB0aGUgcGFnZXMgYXMgcGFydCBvZiB0 aGUgd2luZG93IHJlc2l6aW5nLCBtYWtpbmcgdGhlDQo+IHBhZ2VzIGltcG9zc2libGUgdG8g Z3JhbnQtbWFwIGZyb20gZG9tMCkuDQo+IA0KPiBUaGUgZml4IGZvciB0aGlzIGlzc3VlIGlu dm9sdmVzIGNvdW50aW5nIGFsbCBzdWNjZXNzZnVsIG1hcF9vcHMgYW5kDQo+IGttYXBfb3Bz IG1hcHBpbmdzIHNlcGFyYXRlbHksIGFuZCB0aGVuIGFkZGluZyB0aGUgc3VtIHRvIGxpdmVf Z3JhbnRzLg0KPiBEdXJpbmcgdW5tYXBwaW5nLCBvbmx5IHRoZSBudW1iZXIgb2Ygc3VjY2Vz c2Z1bGx5IHVubWFwcGVkIGdyYW50cyBpcw0KPiBzdWJ0cmFjdGVkIGZyb20gbGl2ZV9ncmFu dHMuIFRvIGRldGVybWluZSB3aGljaCBncmFudHMgd2VyZSBzdWNjZXNzZnVsbHkNCj4gdW5t YXBwZWQsIHRoZWlyIHN0YXR1cyBmaWVsZHMgYXJlIHNldCB0byBhbiBhcmJpdHJhcnkgcG9z aXRpdmUgbnVtYmVyDQo+ICgxKSwgYXMgd2FzIGRvbmUgaW4gY29tbWl0IGViZWUwZWFiMDg1 OSAoIlhlbi9nbnRkZXY6IGNvcnJlY3QgZXJyb3INCj4gY2hlY2tpbmcgaW4gZ250ZGV2X21h cF9ncmFudF9wYWdlcygpIikuIFRoZSBjb2RlIGlzIGFsc28gbW9kaWZpZWQgdG8NCj4gY2hl Y2sgZm9yIG5lZ2F0aXZlIGxpdmVfZ3JhbnRzIHZhbHVlcyBhZnRlciB0aGUgc3VidHJhY3Rp b24gYW5kIHdhcm4gdGhlDQo+IHVzZXIuDQo+IA0KPiBMaW5rOiBodHRwczovL2dpdGh1Yi5j b20vUXViZXNPUy9xdWJlcy1pc3N1ZXMvaXNzdWVzLzc2MzENCj4gRml4ZXM6IGRiZTk3Y2Zm N2RkOSAoInhlbi9nbnRkZXY6IEF2b2lkIGJsb2NraW5nIGluIHVubWFwX2dyYW50X3BhZ2Vz KCkiKQ0KPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZw0KPiBTaWduZWQtb2ZmLWJ5OiBN LiBWZWZhIEJpY2FrY2kgPG0udi5iQHJ1bmJveC5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMv eGVuL2dudGRldi5jIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4g ICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4g DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9nbnRkZXYuYyBiL2RyaXZlcnMveGVuL2du dGRldi5jDQo+IGluZGV4IDg0YjE0M2VlZjM5NS4uNDg1ZmE5YzYzMGFhIDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL3hlbi9nbnRkZXYuYw0KPiArKysgYi9kcml2ZXJzL3hlbi9nbnRkZXYu Yw0KPiBAQCAtMzY3LDggKzM2Nyw3IEBAIGludCBnbnRkZXZfbWFwX2dyYW50X3BhZ2VzKHN0 cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXApDQo+ICAgCWZvciAoaSA9IDA7IGkgPCBtYXAt PmNvdW50OyBpKyspIHsNCj4gICAJCWlmIChtYXAtPm1hcF9vcHNbaV0uc3RhdHVzID09IEdO VFNUX29rYXkpIHsNCj4gICAJCQltYXAtPnVubWFwX29wc1tpXS5oYW5kbGUgPSBtYXAtPm1h cF9vcHNbaV0uaGFuZGxlOw0KPiAtCQkJaWYgKCF1c2VfcHRlbW9kKQ0KPiAtCQkJCWFsbG9j ZWQrKzsNCj4gKwkJCWFsbG9jZWQrKzsNCj4gICAJCX0gZWxzZSBpZiAoIWVycikNCj4gICAJ CQllcnIgPSAtRUlOVkFMOw0KPiAgIA0KPiBAQCAtMzc3LDggKzM3Niw3IEBAIGludCBnbnRk ZXZfbWFwX2dyYW50X3BhZ2VzKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXApDQo+ICAg DQo+ICAgCQlpZiAodXNlX3B0ZW1vZCkgew0KPiAgIAkJCWlmIChtYXAtPmttYXBfb3BzW2ld LnN0YXR1cyA9PSBHTlRTVF9va2F5KSB7DQo+IC0JCQkJaWYgKG1hcC0+bWFwX29wc1tpXS5z dGF0dXMgPT0gR05UU1Rfb2theSkNCj4gLQkJCQkJYWxsb2NlZCsrOw0KPiArCQkJCWFsbG9j ZWQrKzsNCj4gICAJCQkJbWFwLT5rdW5tYXBfb3BzW2ldLmhhbmRsZSA9IG1hcC0+a21hcF9v cHNbaV0uaGFuZGxlOw0KPiAgIAkJCX0gZWxzZSBpZiAoIWVycikNCj4gICAJCQkJZXJyID0g LUVJTlZBTDsNCj4gQEAgLTM5NCw4ICszOTIsMTMgQEAgc3RhdGljIHZvaWQgX191bm1hcF9n cmFudF9wYWdlc19kb25lKGludCByZXN1bHQsDQo+ICAgCXVuc2lnbmVkIGludCBpOw0KPiAg IAlzdHJ1Y3QgZ250ZGV2X2dyYW50X21hcCAqbWFwID0gZGF0YS0+ZGF0YTsNCj4gICAJdW5z aWduZWQgaW50IG9mZnNldCA9IGRhdGEtPnVubWFwX29wcyAtIG1hcC0+dW5tYXBfb3BzOw0K PiArCWludCBzdWNjZXNzZnVsX3VubWFwcyA9IDA7DQo+ICsJaW50IGxpdmVfZ3JhbnRzOw0K PiAgIA0KPiAgIAlmb3IgKGkgPSAwOyBpIDwgZGF0YS0+Y291bnQ7IGkrKykgew0KPiArCQlp ZiAobWFwLT51bm1hcF9vcHNbb2Zmc2V0ICsgaV0uc3RhdHVzID09IEdOVFNUX29rYXkpDQo+ ICsJCQlzdWNjZXNzZnVsX3VubWFwcysrOw0KDQpTaG91bGRuJ3QgdGhpcyB0ZXN0IGluY2x1 ZGUgIiYmIGhhbmRsZSAhPSBJTlZBTElEX0dSQU5UX0hBTkRMRSIgPw0KDQpUaGlzIHNob3Vs ZCBlbmFibGUgeW91IHRvIGRyb3Agc2V0dGluZyBzdGF0dXMgdG8gMSBiZWxvdy4NCg0KPiAr DQo+ICAgCQlXQVJOX09OKG1hcC0+dW5tYXBfb3BzW29mZnNldCArIGldLnN0YXR1cyAhPSBH TlRTVF9va2F5ICYmDQo+ICAgCQkJbWFwLT51bm1hcF9vcHNbb2Zmc2V0ICsgaV0uaGFuZGxl ICE9IElOVkFMSURfR1JBTlRfSEFORExFKTsNCj4gICAJCXByX2RlYnVnKCJ1bm1hcCBoYW5k bGU9JWQgc3Q9JWRcbiIsDQo+IEBAIC00MDMsNiArNDA2LDkgQEAgc3RhdGljIHZvaWQgX191 bm1hcF9ncmFudF9wYWdlc19kb25lKGludCByZXN1bHQsDQo+ICAgCQkJbWFwLT51bm1hcF9v cHNbb2Zmc2V0K2ldLnN0YXR1cyk7DQo+ICAgCQltYXAtPnVubWFwX29wc1tvZmZzZXQraV0u aGFuZGxlID0gSU5WQUxJRF9HUkFOVF9IQU5ETEU7DQo+ICAgCQlpZiAodXNlX3B0ZW1vZCkg ew0KPiArCQkJaWYgKG1hcC0+a3VubWFwX29wc1tvZmZzZXQgKyBpXS5zdGF0dXMgPT0gR05U U1Rfb2theSkNCj4gKwkJCQlzdWNjZXNzZnVsX3VubWFwcysrOw0KPiArDQo+ICAgCQkJV0FS Tl9PTihtYXAtPmt1bm1hcF9vcHNbb2Zmc2V0ICsgaV0uc3RhdHVzICE9IEdOVFNUX29rYXkg JiYNCj4gICAJCQkJbWFwLT5rdW5tYXBfb3BzW29mZnNldCArIGldLmhhbmRsZSAhPSBJTlZB TElEX0dSQU5UX0hBTkRMRSk7DQo+ICAgCQkJcHJfZGVidWcoImt1bm1hcCBoYW5kbGU9JXUg c3Q9JWRcbiIsDQo+IEBAIC00MTEsMTEgKzQxNywxNSBAQCBzdGF0aWMgdm9pZCBfX3VubWFw X2dyYW50X3BhZ2VzX2RvbmUoaW50IHJlc3VsdCwNCj4gICAJCQltYXAtPmt1bm1hcF9vcHNb b2Zmc2V0K2ldLmhhbmRsZSA9IElOVkFMSURfR1JBTlRfSEFORExFOw0KPiAgIAkJfQ0KPiAg IAl9DQo+ICsNCj4gICAJLyoNCj4gICAJICogRGVjcmVhc2UgdGhlIGxpdmUtZ3JhbnQgY291 bnRlci4gIFRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgdGhlIGxvb3AgdG8NCj4gICAJICogcHJl dmVudCBwcmVtYXR1cmUgcmV1c2Ugb2YgdGhlIGdyYW50cyBieSBnbnR0YWJfbW1hcCgpLg0K PiAgIAkgKi8NCj4gLQlhdG9taWNfc3ViKGRhdGEtPmNvdW50LCAmbWFwLT5saXZlX2dyYW50 cyk7DQo+ICsJbGl2ZV9ncmFudHMgPSBhdG9taWNfc3ViX3JldHVybihzdWNjZXNzZnVsX3Vu bWFwcywgJm1hcC0+bGl2ZV9ncmFudHMpOw0KPiArCWlmIChXQVJOX09OKGxpdmVfZ3JhbnRz IDwgMCkpDQo+ICsJCXByX2VycigiJXM6IGxpdmVfZ3JhbnRzIGJlY2FtZSBuZWdhdGl2ZSAo JWQpIGFmdGVyIHVubWFwcGluZyAlZCBwYWdlcyFcbiIsDQo+ICsJCSAgICAgICBfX2Z1bmNf XywgbGl2ZV9ncmFudHMsIHN1Y2Nlc3NmdWxfdW5tYXBzKTsNCj4gICANCj4gICAJLyogUmVs ZWFzZSByZWZlcmVuY2UgdGFrZW4gYnkgX191bm1hcF9ncmFudF9wYWdlcyAqLw0KPiAgIAln bnRkZXZfcHV0X21hcChOVUxMLCBtYXApOw0KPiBAQCAtNDI0LDYgKzQzNCw4IEBAIHN0YXRp YyB2b2lkIF9fdW5tYXBfZ3JhbnRfcGFnZXNfZG9uZShpbnQgcmVzdWx0LA0KPiAgIHN0YXRp YyB2b2lkIF9fdW5tYXBfZ3JhbnRfcGFnZXMoc3RydWN0IGdudGRldl9ncmFudF9tYXAgKm1h cCwgaW50IG9mZnNldCwNCj4gICAJCQkgICAgICAgaW50IHBhZ2VzKQ0KPiAgIHsNCj4gKwlp bnQgaWR4Ow0KPiArDQo+ICAgCWlmIChtYXAtPm5vdGlmeS5mbGFncyAmIFVOTUFQX05PVElG WV9DTEVBUl9CWVRFKSB7DQo+ICAgCQlpbnQgcGdubyA9IChtYXAtPm5vdGlmeS5hZGRyID4+ IFBBR0VfU0hJRlQpOw0KPiAgIA0KPiBAQCAtNDM2LDYgKzQ0OCwxNiBAQCBzdGF0aWMgdm9p ZCBfX3VubWFwX2dyYW50X3BhZ2VzKHN0cnVjdCBnbnRkZXZfZ3JhbnRfbWFwICptYXAsIGlu dCBvZmZzZXQsDQo+ICAgCQl9DQo+ICAgCX0NCj4gICANCj4gKwkvKiBTZXQgYWxsIHVubWFw L2t1bm1hcCBzdGF0dXMgZmllbGRzIHRvIGFuIGFyYml0cmFyeSBwb3NpdGl2ZSB2YWx1ZSwN Cj4gKwkgKiBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGRldGVybWluZSB3aGljaCBncmFu dHMgd2VyZSBzdWNjZXNzZnVsbHkNCj4gKwkgKiB1bm1hcHBlZCBieSBpbnNwZWN0aW5nIHRo ZSBzdGF0dXMgZmllbGRzLg0KPiArCSAqLw0KPiArCWZvciAoaWR4ID0gb2Zmc2V0OyBpZHgg PCBvZmZzZXQgKyBwYWdlczsgaWR4KyspIHsNCj4gKwkJbWFwLT51bm1hcF9vcHNbaWR4XS5z dGF0dXMgPSAxOw0KPiArCQlpZiAodXNlX3B0ZW1vZCkNCj4gKwkJCW1hcC0+a3VubWFwX29w c1tpZHhdLnN0YXR1cyA9IDE7DQo+ICsJfQ0KPiArDQo+ICAgCW1hcC0+dW5tYXBfZGF0YS51 bm1hcF9vcHMgPSBtYXAtPnVubWFwX29wcyArIG9mZnNldDsNCj4gICAJbWFwLT51bm1hcF9k YXRhLmt1bm1hcF9vcHMgPSB1c2VfcHRlbW9kID8gbWFwLT5rdW5tYXBfb3BzICsgb2Zmc2V0 IDogTlVMTDsNCj4gICAJbWFwLT51bm1hcF9kYXRhLnBhZ2VzID0gbWFwLT5wYWdlcyArIG9m ZnNldDsNCg0KSnVlcmdlbg0K --------------0HZAFkn1IrghtMNUXP7cOlbR Content-Type: application/pgp-keys; name="OpenPGP_0xB0DE9DD628BF132F.asc" Content-Disposition: attachment; filename="OpenPGP_0xB0DE9DD628BF132F.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- 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 jR/i1DG86lem3iBDXzXsZDn8R38=3D =3D2wuH -----END PGP PUBLIC KEY BLOCK----- --------------0HZAFkn1IrghtMNUXP7cOlbR-- --------------eV0m9qh006RDgFkMVNGTjRkm-- --------------aFjZl0pJMi9O2HQyrVB08eZJ Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEEhRJncuj2BJSl0Jf3sN6d1ii/Ey8FAmMoO9cFAwAAAAAACgkQsN6d1ii/Ey+0 1Af/Wi78cbkhn3nEileqiP0UGFhY9yc3IvgkOFjUqjxi4McywcXaERTJzYh7fasUjR9UP1Wmgf+H ywbUqZUgLuLLYhZm+vu8KwU7J6Yo1jg4p/Adu9OoWqoXlIbvOFAq1m/vzHcekdJiEgCqKUkGz3zm JDrtXtDenTlrol4xUnx2WsGJzN2eu2/PuJ7Zmwuh+XrCP0X2gsMVc+hrvd9zarIEbuhB3oLa5MIk XedWX+DqbOm/j7TGM9r9OsdAU5S89QsM0o+/X/w2HWjCY5EMFMlN9uJVl6bEDy42q45YGw25DCps UgBKaI+xLR6WP3jQTkv7Wpbas39Kc2yjxfGixMAP8A== =T19P -----END PGP SIGNATURE----- --------------aFjZl0pJMi9O2HQyrVB08eZJ--