Return-Path: linux-nfs-owner@vger.kernel.org Received: from dgate20.ts.fujitsu.com ([80.70.172.51]:5957 "EHLO dgate20.ts.fujitsu.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751975AbaJINxr (ORCPT ); Thu, 9 Oct 2014 09:53:47 -0400 Message-Id: <61eb00$5au3nr@dgate20u.abg.fsc.net> Date: 09 Oct 2014 15:42:28 +0200 From: bstroesser@ts.fujitsu.com To: neilb@suse.de, linux-nfs@vger.kernel.org Cc: bfields@fieldses.org, bstroesser@ts.fujitsu.com Subject: Re:rpc.mountd can be blocked by a bad client Content-Type: text/plain; charset=us-ascii Sender: linux-nfs-owner@vger.kernel.org List-ID: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFN0csO2c3NlciwgQm9kbwo+ IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgMjUsIDIwMTQgMTI6MjIgUE0KPiBUbzogJ05l aWxCcm93bicKPiBDYzogbGludXgtbmZzQHZnZXIua2VybmVsLm9yZzsgYmZpZWxkc0BmaWVs ZHNlcy5vcmcKPiBTdWJqZWN0OiBSRTogcnBjLm1vdW50ZCBjYW4gYmUgYmxvY2tlZCBieSBh IGJhZCBjbGllbnQKPiAKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9t OiBOZWlsQnJvd24gW21haWx0bzpuZWlsYkBzdXNlLmRlXQo+ID4gU2VudDogVGh1cnNkYXks IFNlcHRlbWJlciAyNSwgMjAxNCAyOjMyIEFNCj4gPiBUbzogU3Ryw7Zzc2VyLCBCb2RvCj4g PiBDYzogbGludXgtbmZzQHZnZXIua2VybmVsLm9yZzsgYmZpZWxkc0BmaWVsZHNlcy5vcmcK PiA+IFN1YmplY3Q6IFJlOiBycGMubW91bnRkIGNhbiBiZSBibG9ja2VkIGJ5IGEgYmFkIGNs aWVudAo+ID4KPiA+IE9uIFdlZCwgMjQgU2VwIDIwMTQgMTI6NTc6MDkgKzAyMDAgIlN0csO2 c3NlciwgQm9kbyIKPiA+IDxib2RvLnN0cm9lc3NlckB0cy5mdWppdHN1LmNvbT4gd3JvdGU6 Cj4gPgo+ID4gPiBIZWxsbywKPiA+ID4KPiA+ID4gYSBmZXcgZGF5cyBhZ28gd2UgaGFkIHNv bWUgdHJvdWJsZSB3aXRoIGEgTkZTIHNlcnZlci4gVGhlIGNsaWVudHMKPiA+ID4gbW9zdCBv ZiB0aGUgdGltZSBubyBsb25nZXIgY291bGQgbW91bnQgYW55IHNoYXJlcywgYnV0IGluIHJh cmUKPiA+ID4gY2FzZXMgdGhleSBoYWQgc3VjY2Vzcy4KPiA+ID4KPiA+ID4gV2UgZm91bmQg b3V0LCB0aGF0IGR1cmluZyB0aGUgdGltZXMgd2hlbiBtb3VudHMgZmFpbGVkLCBycGMubW91 bnRkCj4gPiA+IGh1bmcgb24gYSB3cml0ZSgpIHRvIGEgVENQIHNvY2tldC4gbmV0c3RhdCBz aG93ZWQsIHRoYXQgU2VuZC1RIHdhcwo+ID4gPiBmdWxsIGFuZCBSZWN2LVEgY291bnRlZCB1 cCBzbG93bHkuIEFmdGVyIGEgbG9uZyB0aW1lIHRoZSB3cml0ZQo+ID4gPiBlbmRlZCB3aXRo IGFuIGVycm9yICgiVENQIHRpbWVvdXQiIElJUkMpIGFuZCBycGMubW91bnRkIHdvcmtlZAo+ ID4gPiBub3JtYWxseSBmb3IgYSBzaG9ydCB3aGlsZSB1bnRpbCBpdCBhZ2FpbiBodW5nIG9u IHdyaXRlKCkgZm9yIHRoZQo+ID4gPiBzYW1lIHJlYXNvbi4KPiA+ID4gCj4gPiA+IFRoZSBw cm9ibGVtIHdhcyBjYXVzZWQgYnkgYSBNVFUgc2l6ZSBjb25maWd1cmVkIHdyb25nLiBTbywg b25lCj4gPiA+IHNpbmdsZSBiYWQgY2xpZW50IChvciBhcyBtdWNoIGNsaWVudHMgYXMgdGhl IG51bWJlciBvZiB0aHJlYWRzIHVzZWQKPiA+ID4gYnkgcnBjLm1vdW50ZCkgY2FuIGJsb2Nr IHJwYy5tb3VudGQgZW50aXJlbHkuCj4gPiA+Cj4gPiA+IEJ1dCB3aGF0IHdpbGwgaGFwcGVu LCBpZiBzb21lb25lIGludGVudGlvbmFsbHkgc2VuZHMgUlBDIHJlcXVlc3RzLAo+ID4gPiBi dXQgZG9lc24ndCByZWFkKCkgdGhlIGFuc3dlcnM/IEkgd3JvdGUgYSBzbWFsbCB0b29sIHRv IHRlc3QgdGhpcwo+ID4gPiBzaXR1YXRpb24uIEl0IGZpcmVzIERVTVAgcmVxdWVzdHMgdG8g cnBjLm1vdW50ZCBhcyBmYXN0IGFzCj4gPiA+IHBvc3NpYmxlLCBidXQgZG9lcyBub3QgcmVh ZCBmcm9tIHRoZSBzb2NrZXQuIFRoZSByZXN1bHQgaXMgdGhlCj4gPiA+IHNhbWUgYXMgd2l0 aCB0aGUgcHJvYmxlbSBhYm92ZTogcnBjLm1vdW50ZCBoYW5ncyBpbiB3cml0ZSgpIGFuZCBu bwo+ID4gPiBsb25nZXIgcmVzcG9uZHMgdG8gb3RoZXIgcmVxdWVzdHMgd2hpbGUgbm8gVENQ IHRpbWVvdXQgYnJlYWtzIHVwCj4gPiA+IHRoaXMgc2l0dWF0aW9uLgo+ID4gPgo+ID4gPiBT byBpdCdzIHF1aXRlIGVhc3kgdG8gaW50ZW50aW9uYWxseSBibG9jayBycGMubW91bnRkIGZy b20gcmVtb3RlLgo+ID4KPiA+IFRoYXQncyByYXRoZXIgbmFzdHkuCj4gPiBXZSBjb3VsZCBw b3NzaWJseSBzZXQgdGhlIHNvY2tldCB0byBiZSBub24tYmxvY2tpbmcsIG9yIHdlIGNvdWxk IHNldCBhbiBhbGFybQo+ID4ganVzdCBiZWZvcmUgaGFuZGxpbmcgYSByZXF1ZXN0Lgo+ID4g UHJvYmFibHkgcnBjX2Rpc3BhdGNoKCkgaW4gc3VwcG9ydC9uZnMvcnBjZGlzcGF0Y2guYyB3 b3VsZCBiZSB0aGUgYmVzdCBwbGFjZQo+ID4gdG8gcHV0IHRoZSB0aW1lb3V0Lgo+ID4gIGNh dGNoIFNJR0FMUk0gKGRvbid0IHNldCBTQV9SRVNUQVJUKQo+ID4gIGFsYXJtKDEwKTsKPiA+ ICBjYWxsIHN2Y19zZW5kcmVwbHkKPiA+ICBhbGFybSgwKTsKPiA+Cj4gCj4gSSBhbHNvIHRo b3VnaHQgYWJvdXQgY2hhbmdpbmcgdGhlIHNvY2tldCB0byBub24tYmxvY2tpbmcuIEJ1dCBJ J20gbm90IHN1cmU6IGlzIGl0Cj4gcG9zc2libGUgdG8gaGF2ZSBzdWNoIGJpZyBSUEMgcmVw bGllcywgdGhhdCB0aGV5IGRvbid0IGZpdCBpbnRvIHRoZSBzb2NrZXQKPiBidWZmZXI/IElm IHNvLCB3cml0ZSgpIHdvdWxkIHB1dCB0aGUgZmlyc3QgcGFydCBpbnRvIHRoZSBidWZmZXIg YW5kIGEgc2Vjb25kCj4gd3JpdGUgZm9yIHRoZSByZXN0IHdvdWxkIGZhaWwsIGFzIHByb2Jh Ymx5IHRoZSBmaXJzdCBwYXJ0IGlzbid0IGFja2VkIHlldCwgcmlnaHQ/Cj4gU28sIG5vbi1i bG9ja2luZyBuZWVkcyB0byBiZSBjb21iaW5lZCB3aXRoIGEgaGFuZGxpbmcgb2YgYnVmZmVy LWZ1bGwgc2l0dWF0aW9ucywKPiBJIGd1ZXNzLiBTdWNoIGEgaGFuZGxpbmcgdG9nZXRoZXIg d2l0aCBhIHRpbWVvdXQgZm9yIHN0YXJ2aW5nIGNvbm5lY3Rpb25zIHdvdWxkCj4gYmUgYSBj bGVhbiBzb2x1dGlvbi4KPiBUbyBkbyB0aGF0LCBvbmUgd291bGQgaGF2ZSB0byByZXBsYWNl IHRoZSB0Y3Agd3JpdGUgcm91dGluZSBvZiB0aGUgcnBjIGxpYnJhcnkuCj4gVGhhdCBtZWFu cyB0byBjaGFuZ2UgdGhlIHhkcnMncyBwb2ludGVyIHRvIHRoZSB3cml0ZSBmdW5jdGlvbi4g SSBkb24ndCBrbm93LAo+IHdoZXRoZXIgdGhhdCBjYW4gYmUgZG9uZSBpbiBhIHBvcnRhYmxl IHdheSwgd2hpY2ggd29ya3MgYXQgdGhlIGRpZmZlcmVudCBwbGF0Zm9ybXMuCj4gCj4gQWJv dXQgc2V0dGluZyBhIGFsYXJtIHRpbWVvdXQ6IEknbSBub3Qgc3VyZSwgdGhhdCBycGNfZGlz cGF0Y2goKSBpcyB0aGUgcmlnaHQKPiBwbGFjZSBmb3IgaXQuIG1vdW50ZCB1c2VzIG1vdW50 X2Rpc3BhdGNoKCkgd2hpY2ggaGFzIGFuIGV4aXQgdmlhIHN2Y2Vycl9hdXRoKCksCj4gdGhh dCBhZ2FpbiBzZW5kcyBhIHJlcGx5LiBTbyB0aGUgdGltZW91dCB5b3Ugc3VnZ2VzdCBzaG91 bGQgYmUgaW5zZXJ0ZWQgaW4KPiBtb3VudF9kaXNwYXRjaCgpLCBJIHRoaW5rLgo+IE9UT0gs IGEgdGltZW91dCB3aWxsIHNob3J0ZW4gdGhlIGhhbmcsIGJ1dCBiYWQgY2xpZW50cyBjYW4g c3RpbGwgc2xvdyBkb3duIG1vdW50ZAo+IGV4dHJlbWVseS4KPiAKPiBCVFc6IEFGQUlDUyBv biBMaW51eCB3aXRoIGxpYnRpcnBjLCB1c2luZyB0aGUgY29udHJvbCBTVkNHRVRfQ09OTk1B WFJFQywgdGhlIHNvY2tldAo+IGluZGlyZWN0bHkgY2FuIHNldCB0byBub24tYmxvY2tpbmcu IFRoYXQgc2VlbXMgdG8gcmVzdWx0IGluIHdyaXRlX3ZjKCkgZG9pbmcgYSBtYXguCj4gMiBz ZWNvbmQgbG9vcCBvZiB3cml0ZSgpIHVudGlsIGl0IGdpdmVzIHVwLgoKTWVhbndoaWxlIEkn dmUgZm91bmQgc29tZSB0aW1lIHRvIGRvIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbnMuCgpycGNi aW5kIHVzZXMgdGhlIGFib3ZlIG1lbnRpb25lZCBycGNfY29udHJvbChTVkNTRVRfQ09OTk1B WFJFQykgdG8gc3dpdGNoCnRvIG5vbmJsb2NraW5nIG1vZGUgb2YgbGlidGlycGMuIFNvIEkg dGVzdGVkIGEgc2ltaWxhciBhdHRhY2sgdG8gcnBjYmluZC4KVGhlIG5vbmJsb2NraW5nIG1v ZGUgc2hvd3MgdHdvIHBvc2l0aXZlIGVmZmVjdHM6Ci0gYW4gYXR0YWNrZXIgc2VuZGluZyBy ZXF1ZXN0cyBhcyBmYXN0IGFzIHBvc3NpYmxlIHRvIHJwY2JpbmQgd2lsbCBoYXZlIG5vCiAg c3VjY2Vzcy4gQXMgc29vbiBhcyBycGNiaW5kL2xpYnRpcnBjIGZpbmRzIG1vcmUgdGhhbiBv bmUgcmVxdWVzdCByZWFkYWJsZQogIGF0IHRoZSBzb2NrZXQsIGl0IGNsb3NlcyB0aGUgY29u bmVjdGlvbi4KLSBpZiB0aGUgc29ja2V0IGJ1ZmZlciBpcyBmdWxsLCB0aGUgd3JpdGUoKSBm YWlsIHdpdGggLUVBR0FJTi4gbGlidGlycGMKICB1c2VzIGEgbG9vcCB0byByZXRyeSB0aGUg d3JpdGUgZm9yIG1heC4gMiBzZWNvbmRzLiBUaGVuIGl0IGNsb3NlcyB0aGUKICBjb25uZWN0 aW9uLgoKVW5mb3J0dW5hdGVseSB0aGUgd3JpdGUgcmV0cnkgbG9vcCBpbiBsaWJ0aXJwYyBo YXMgYSBidWcuIEl0IGluY3JlbWVudHMKdGhlIGxlbmd0aCBvZiBhbmQgZGVjcmVtZW50cyB0 aGUgcG9pbnRlciB0byB0aGUgcmV0cnkgYnVmZmVyIG9uIGVhY2ggZmFpbGVkCndyaXRlKCku CkkndmUgc2VudCBhIHBhdGNoIHRvIGxpYnRpcnBjLWRldmVsIGFib3V0IDEwIGRheXMgYWdv LCBidXQgZGlkbid0IGdldCBhCnJlc3BvbnNlIHlldC4KClJlZ2FyZGluZyBycGMubW91bnRk LCBJJ3ZlIGZvdW5kLCB0aGF0IHVzaW5nIG11bHRpcGxlIHByb2Nlc3NlcyAoZS5nLiAtdCA0 KQpkb2Vzbid0IHdvcmsgd2VsbC4gV2hlbiB1c2luZyBsaWJ0aXJwYyBvciB3aGVuIG5vdCB1 c2luZyBsaWJ0aXJwYyBidXQgc2V0dGluZwotcCB4eHh4IG9wdGlvbiwgdGhlIGxpc3Rlbmlu ZyBzb2NrZXRzICh0Y3AgbGlzdGVuZXIgYW5kIHVkcCBzb2NrZXQpIGFyZSBub3QKaW4gbm9u LWJsb2NraW5nIG1vZGUuIFRodXMsIGlmIGEgc2luZ2xlIGNvbm5lY3Rpb24gcmVxdWVzdCBj b21lcyBpbiwgYWxsCnRocmVhZHMgd2FrZSB1cCBmcm9tIHRoZSBzZWxlY3QoKSwgYnV0IG9u bHkgb25lIGFjY2VwdCgpIHN1Y2NlZWRzLiBBbGwgb3RoZXIKdGhyZWFkcyB3aWxsIHdhaXQg aW4gYWNjZXB0KCkgZm9yIGZ1cnRoZXIgY29ubmVjdGlvbiByZXF1ZXN0cy4KSWYgYSBSUEMt cmVxdWVzdCBjb21lcyBpbiB2aWEgVURQLCB3aGF0IGhhcHBlbnMgaXMgdmVyeSBzaW1pbGFy OiBhbGwgdGhyZWFkcwp3YWtlIHVwLCBvbmUgdGhyZWFkIGhhbmRsZXMgdGhlIHJlcXVlc3Qs IGFsbCBvdGhlcnMgd2FpdCBpbiByZWFkKCkgZm9yCmZ1cnRoZXIgVURQIHJlcXVlc3RzLiAK QXMgVENQIGNvbm5lY3Rpb25zIGFyZSBhc3NpZ25lZCB0byBzcGVjaWZpYyB0aHJlYWRzLCBh bGwgY29ubmVjdGlvbnMgaGFuZGxlZApieSBvbmUgdGhyZWFkIHdpbGwgYmUgYmxvY2sgYXMg bG9uZyBhcyB0aGUgdGhyZWFkIHdhaXRzIGluIGFjY2VwdCgpIG9yIHJlYWQoKS4KVGh1cywg SSd2ZSB3cml0dGVuIHR3byBwYXRjaGVzIChzZWUgYmVsb3cpLCB0aGF0IHNldCBhbGwgbGlz dGVuZXJzIHRvCm5vbi1ibG9ja2luZyBpbiBzdXBwb3J0L25mcy8qCgpUaGUgdGhpcmQgcGF0 Y2ggYmVsb3cgaW5zZXJ0cyBycGNfY29udHJvbChTVkNTRVRfQ09OTk1BWFJFQykgaW50bwpu ZnNfc3ZjX2NyZWF0ZSgpcyBpbiBzdXBwb3J0L25mcy9zdmNfY3JlYXRlLmMgZm9yIHRoZSBj YXNlIG9mIGxpYnRpcnBjLgpUaGF0IHBhdGNoIGhhcmRlbnMgcnBjLm1vdW50IGFnYWluc3Qg RE9TIGF0dGFja3MgKGFuZCBwcm9iYWJseSBhbHNvIHN0YXRkLAphcyBpdCBhbHNvIHVzZXMg bmZzX3N2Y19jcmVhdGUoKSkuCgpUaGUgcGF0Y2hlcyBiZWxvdyBhcmUgZm9yIG5mcy11dGls LTEuMy4xLCBidXQgdGhpcyB2ZXJzaW9uIGlzIHVudGVzdGVkIQooQ291bGRuJ3QgYnVpbGQg YmVjYXVzZSBvZiBkZXBlbmRlbmNpZXMgYW5kIG5vdyBJJ20gcnVubmluZyBvdXQgb2YgdGlt ZSkKCk15IHZlcnNpb24gb2YgdGhlIHBhdGNoZXMgZm9yIG5mcy11dGlsLTEuMi4zLTE4LjMz LjEgaXMgdGVzdGVkIG9uIFNMRVMxMS1TUDMuClBsZWFzZSBzZWUgdGhlIHRoaXJkIHBhdGNo IGFzIGEgUkZDIG9ubHkuIEknbSBub3Qgc3VyZSwgd2hldGhlciBzZXR0aW5nCk1BWFJFQyBt aWdodCBoYXZlIG5lZ2F0aXZlIHNpZGUgZWZmZWN0cyBhcyBJJ20gbm90IGEgUlBDIGV4cGVy dC4KCkJvZG8KCj4gCj4gT25lIG90aGVyIHBvaW50OiBBRkFJQ1Mgb24gTGludXggd2l0aCBs aWJ0aXJwYyB0aGUgbGlzdGVuaW5nIHNvY2tldCBvZiBtb3VudGQgaXMKPiBpbiBibG9ja2lu ZyBtb2RlLiBXb3VsZCB0aGF0IGJlIGEgcHJvYmxlbSB3aGVuIHJ1bm5pbmcgbXVsdGlwbGUg InRocmVhZHMiPwo+IFRoZSBjb21tZW50IGluIHN2Y19zb2NrZXQuYy9zdmNfc29ja2V0KCks IHdoZXJlIHRoZSBsaXN0ZW5pbmcgc29ja2V0IGlzIHNldCB0bwo+IG5vbi1ibG9ja2luZywg c291bmRzIHZlcnkgcmVhc29uYWJsZS4gQnV0IEFGQUlDUyBpZiBsaWJ0aXJwYyBpcyB1c2Vk LCBPX05PTkJMT0NLCj4gY3VycmVudGx5IGlzbid0IHNldC4KPiAKPiBCb2RvIFN0cm9lc3Nl cgo+IAo+IAo+ID4gaWYgdGhlIGFsYXJtIGZpcmVzIHdoaWxlIHN2Y19zZW5kcmVwbHkgaXMg d3JpdGluZyB0byB0aGUgc29ja2V0IGl0IHNob3VsZCBnZXQKPiA+IGFuIGVycm9yIGFuZCBj bG9zZSB0aGUgY29ubmVjdGlvbi4KPiA+Cj4gPiBUaGlzIHdvdWxkIG9ubHkgZml4IG1vdW50 ZCAoYXMgaXQgaXMgdGhlIG9ubHkgcHJvY2VzcyB0byB1c2UgcnBjX2Rpc3BhdGNoKS4KPiA+ IElzIGEgc2ltaWxhciB0aGluZyBuZWVkZWQgZm9yIHN0YXRkIEkgd29uZGVyPz8gIEl0IGlz bid0IHNvIGltcG9ydGFudC4KPiA+Cj4gPiBOZWlsQnJvd24KPiA+Cj4gPiA+Cj4gPiA+IFBs ZWFzZSBDQyBtZSwgSSdtIG5vdCBvbiB0aGUgbGlzdC4KPiA+ID4KPiA+ID4gQmVzdCByZWdh cmRzLAo+ID4gPiBCb2RvCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKRnJvbTogQm9kbyBTdHJvZXNzZXIgPGJzdHJvZXNzZXJAdHMuZnVqaXRzdS5jb20+ CkRhdGU6IFRodSwgMDkgT2N0IDIwMTQgMTM6MDY6MTkgKzAyMDAKU3ViamVjdDogW1BBVENI XSBuZnMtdXRpbDogbW91bnRkOiBzZXQgbm9uYmxvY2tpbmcgbW9kZSBpZiBubyBsaWJ0aXJw YwoKSWYgbW91bnRkIGlzIGJ1aWx0IHdpdGhvdXQgbGlidGlycGMgYW5kIGl0IGlzIHN0YXJ0 ZWQgdXNpbmcgIi1wIFhYWCIgb3B0aW9uLAp0aGUgdGNwIGxpc3RlbmVycyBhbmQgdGhlIHNv Y2tldHMgd2FpdGluZyBmb3IgVURQIG1lc3NhZ2VzIGFyZSBub3QgaW4Kbm9uLWJsb2NraW5n IG1vZGUuIFRodXMgaWYgcnVubmluZyB3aXRoIG11bHRpcGxlIHRocmVhZHMgKC10IFhYKSwK YWxsIHRocmVhZHMgd2lsbCB3YWtlIHVwIGZyb20gc2VsZWN0IG9uIGEgY29ubmVjdGlvbiBy ZXF1ZXN0IG9yIGEgVURQIG1lc3NhZ2UsCmJ1dCBvbmx5IG9uZSB0aHJlYWQgd2lsbCBzdWNj ZWVkLiBBbGwgb3RoZXJzIHdpbGwgd2FpdCBvbiBhY2NlcHQoKSBvciByZWFkKCkKZm9yIHRo ZSBuZXh0IGV2ZW50LgoKU2lnbmVkLW9mZi1ieTogQm9kbyBTdHJvZXNzZXIgPGJzdHJvZXNz ZXJAdHMuZnVqaXRzdS5jb20+Ci0tLQoKLS0tIG5mcy11dGlscy0xLjMuMS9zdXBwb3J0L2lu Y2x1ZGUvbmZzbGliLmgJMjAxNC0xMC0wOSAxMjo1MjozMC4wMDAwMDAwMDAgKzAyMDAKKysr IG5mcy11dGlscy0xLjMuMS9zdXBwb3J0L2luY2x1ZGUvbmZzbGliLmgJMjAxNC0xMC0wOSAx Mjo1MzozNy4wMDAwMDAwMDAgKzAyMDAKQEAgLTE3NCw2ICsxNzQsNyBAQCB2b2lkIGNsb3Nl YWxsKGludCBtaW4pOwogCiBpbnQJCQlzdmN0Y3Bfc29ja2V0ICh1X2xvbmcgX19udW1iZXIs IGludCBfX3JldXNlKTsKIGludAkJCXN2Y3VkcF9zb2NrZXQgKHVfbG9uZyBfX251bWJlcik7 CitpbnQJCQlzdmNzb2NrX25vbmJsb2NrIChpbnQgX19zb2NrKTsKIAogLyogTWlzYyBzaGFy ZWQgY29kZSBwcm90b3R5cGVzICovCiBzaXplX3QgIHN0cmxjYXQoY2hhciAqLCBjb25zdCBj aGFyICosIHNpemVfdCk7Ci0tLSBuZnMtdXRpbHMtMS4zLjEvc3VwcG9ydC9uZnMvc3ZjX3Nv Y2tldC5jCTIwMTQtMTAtMDkgMTI6NTY6MTQuMDAwMDAwMDAwICswMjAwCisrKyBuZnMtdXRp bHMtMS4zLjEvc3VwcG9ydC9uZnMvc3ZjX3NvY2tldC5jCTIwMTQtMTAtMDkgMTM6MTA6NDQu MDAwMDAwMDAwICswMjAwCkBAIC03Niw2ICs3NiwzOSBAQCBpbnQgZ2V0c2VydnBvcnQodV9s b25nIG51bWJlciwgY29uc3QgY2hhCiAJcmV0dXJuIDA7CiB9CiAKK2ludAorc3Zjc29ja19u b25ibG9jayhpbnQgc29jaykKK3sKKwlpbnQgZmxhZ3M7CisKKwlpZiAoc29jayA8IDApCisJ CXJldHVybiBzb2NrOworCisJLyogVGhpcyBzb2NrZXQgbWlnaHQgYmUgc2hhcmVkIGFtb25n IG11bHRpcGxlIHByb2Nlc3NlcworCSAqIGlmIG1vdW50ZCBpcyBydW4gbXVsdGktdGhyZWFk ZWQuICBTbyBpdCBpcyBzYWZlc3QgdG8KKwkgKiBtYWtlIGl0IG5vbi1ibG9ja2luZywgZWxz ZSBhbGwgdGhyZWFkcyBtaWdodCB3YWtlCisJICogb25lIHdpbGwgZ2V0IHRoZSBkYXRhLCBh bmQgdGhlIG90aGVycyB3aWxsIGJsb2NrCisJICogaW5kZWZpbml0ZWx5LgorCSAqIEluIGFs bCBjYXNlcywgdHJhbnNhY3Rpb24gb24gdGhpcyBzb2NrZXQgYXJlIGF0b21pYworCSAqIChh Y2NlcHQgZm9yIFRDUCwgcGFja2V0LXJlYWQgYW5kIHBhY2tldC13cml0ZSBmb3IgVURQKQor CSAqIHNvIE9fTk9OQkxPQ0sgd2lsbCBub3QgY29uZnVzZSB1bnByZXBhcmVkIGNvZGUgY2F1 c2luZworCSAqIGl0IHRvIGNvcnJ1cHQgbWVzc2FnZXMuCisJICogSXQgZ2VuZXJhbGx5IHNh ZmVzdCB0byBoYXZlIE9fTk9OQkxPQ0sgd2hlbiBkb2luZyBhbiBhY2NlcHQKKwkgKiBhcyBp ZiB3ZSBnZXQgYSBSU1QgYWZ0ZXIgdGhlIFNZTiBhbmQgYmVmb3JlIGFjY2VwdCBydW5zLAor CSAqIHdlIGNhbiBibG9jayBkZXNwaXRlIGJlaW5nIHRvbGQgdGhlcmUgd2FzIGFuIGFjY2Vw dGFibGUKKwkgKiBjb25uZWN0aW9uLgorCSAqLworCWlmICgoZmxhZ3MgPSBmY250bChzb2Nr LCBGX0dFVEZMKSkgPCAwKQorCQlwZXJyb3IoXygic3ZjX3NvY2tldDogY2FuJ3QgZ2V0IHNv Y2tldCBmbGFncyIpKTsKKwllbHNlIGlmIChmY250bChzb2NrLCBGX1NFVEZMLCBmbGFnc3xP X05PTkJMT0NLKSA8IDApCisJCXBlcnJvcihfKCJzdmNfc29ja2V0OiBjYW4ndCBzZXQgc29j a2V0IGZsYWdzIikpOworCWVsc2UKKwkJcmV0dXJuIHNvY2s7CisKKwkodm9pZCkgX19jbG9z ZShzb2NrKTsKKwlyZXR1cm4gLTE7Cit9CisKIHN0YXRpYyBpbnQKIHN2Y19zb2NrZXQgKHVf bG9uZyBudW1iZXIsIGludCB0eXBlLCBpbnQgcHJvdG9jb2wsIGludCByZXVzZSkKIHsKQEAg LTExMywzOCArMTQ2LDcgQEAgc3ZjX3NvY2tldCAodV9sb25nIG51bWJlciwgaW50IHR5cGUs IGludAogICAgICAgc29jayA9IC0xOwogICAgIH0KIAotICBpZiAoc29jayA+PSAwKQotICAg IHsKLQkgICAgLyogVGhpcyBzb2NrZXQgbWlnaHQgYmUgc2hhcmVkIGFtb25nIG11bHRpcGxl IHByb2Nlc3NlcwotCSAgICAgKiBpZiBtb3VudGQgaXMgcnVuIG11bHRpLXRocmVhZGVkLiAg U28gaXQgaXMgc2FmZXN0IHRvCi0JICAgICAqIG1ha2UgaXQgbm9uLWJsb2NraW5nLCBlbHNl IGFsbCB0aHJlYWRzIG1pZ2h0IHdha2UKLQkgICAgICogb25lIHdpbGwgZ2V0IHRoZSBkYXRh LCBhbmQgdGhlIG90aGVycyB3aWxsIGJsb2NrCi0JICAgICAqIGluZGVmaW5pdGVseS4KLQkg ICAgICogSW4gYWxsIGNhc2VzLCB0cmFuc2FjdGlvbiBvbiB0aGlzIHNvY2tldCBhcmUgYXRv bWljCi0JICAgICAqIChhY2NlcHQgZm9yIFRDUCwgcGFja2V0LXJlYWQgYW5kIHBhY2tldC13 cml0ZSBmb3IgVURQKQotCSAgICAgKiBzbyBPX05PTkJMT0NLIHdpbGwgbm90IGNvbmZ1c2Ug dW5wcmVwYXJlZCBjb2RlIGNhdXNpbmcKLQkgICAgICogaXQgdG8gY29ycnVwdCBtZXNzYWdl cy4KLQkgICAgICogSXQgZ2VuZXJhbGx5IHNhZmVzdCB0byBoYXZlIE9fTk9OQkxPQ0sgd2hl biBkb2luZyBhbiBhY2NlcHQKLQkgICAgICogYXMgaWYgd2UgZ2V0IGEgUlNUIGFmdGVyIHRo ZSBTWU4gYW5kIGJlZm9yZSBhY2NlcHQgcnVucywKLQkgICAgICogd2UgY2FuIGJsb2NrIGRl c3BpdGUgYmVpbmcgdG9sZCB0aGVyZSB3YXMgYW4gYWNjZXB0YWJsZQotCSAgICAgKiBjb25u ZWN0aW9uLgotCSAgICAgKi8KLQlpbnQgZmxhZ3M7Ci0JaWYgKChmbGFncyA9IGZjbnRsKHNv Y2ssIEZfR0VURkwpKSA8IDApCi0JICB7Ci0JICAgICAgcGVycm9yIChfKCJzdmNfc29ja2V0 OiBjYW4ndCBnZXQgc29ja2V0IGZsYWdzIikpOwotCSAgICAgICh2b2lkKSBfX2Nsb3NlIChz b2NrKTsKLQkgICAgICBzb2NrID0gLTE7Ci0JICB9Ci0JZWxzZSBpZiAoZmNudGwoc29jaywg Rl9TRVRGTCwgZmxhZ3N8T19OT05CTE9DSykgPCAwKQotCSAgewotCSAgICAgIHBlcnJvciAo Xygic3ZjX3NvY2tldDogY2FuJ3Qgc2V0IHNvY2tldCBmbGFncyIpKTsKLQkgICAgICAodm9p ZCkgX19jbG9zZSAoc29jayk7Ci0JICAgICAgc29jayA9IC0xOwotCSAgfQotICAgIH0KLQot ICByZXR1cm4gc29jazsKKyAgcmV0dXJuIHN2Y3NvY2tfbm9uYmxvY2soc29jayk7CiB9CiAK IC8qCi0tLSBuZnMtdXRpbHMtMS4zLjEvc3VwcG9ydC9uZnMvcnBjbWlzYy5jCTIwMTQtMTAt MDggMjE6MjI6MDQuMDAwMDAwMDAwICswMjAwCisrKyBuZnMtdXRpbHMtMS4zLjEvc3VwcG9y dC9uZnMvcnBjbWlzYy5jCTIwMTQtMTAtMDggMjE6MjI6MzYuMDAwMDAwMDAwICswMjAwCkBA IC0xMDQsNyArMTA0LDcgQEAgbWFrZXNvY2soaW50IHBvcnQsIGludCBwcm90bykKIAkJcmV0 dXJuIC0xOwogCX0KIAotCXJldHVybiBzb2NrOworCXJldHVybiBzdmNzb2NrX25vbmJsb2Nr KHNvY2spOwogfQogCiB2b2lkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKRnJvbTogQm9kbyBTdHJvZXNzZXIgPGJzdHJvZXNzZXJAdHMu ZnVqaXRzdS5jb20+CkRhdGU6IFRodSwgMDkgT2N0IDIwMTQgMTM6MDc6MzMgKzAyMDAKU3Vi amVjdDogW1BBVENIXSBuZnMtdXRpbDogbW91bnRkOiBzZXQgbm9uYmxvY2tpbmcgbW9kZSB3 aXRoIGxpYnRpcnBjCgpJZiBtb3VudGQgaXMgYnVpbHQgd2l0aCBsaWJ0aXJwYyB0aGUgdGNw IGxpc3RlbmVycyBhbmQgdGhlIHNvY2tldHMKd2FpdGluZyBmb3IgVURQIG1lc3NhZ2VzIGFy ZSBub3QgaW4gbm9uLWJsb2NraW5nIG1vZGUuIFRodXMgaWYgcnVubmluZwp3aXRoIG11bHRp cGxlIHRocmVhZHMgKC10IFhYKSwgYWxsIHRocmVhZHMgd2lsbCB3YWtlIHVwIGZyb20gc2Vs ZWN0IG9uCmEgY29ubmVjdGlvbiByZXF1ZXN0IG9yIGEgVURQIG1lc3NhZ2UsIGJ1dCBvbmx5 IG9uZSB0aHJlYWQgd2lsbCBzdWNjZWVkLgpBbGwgb3RoZXJzIHdpbGwgd2FpdCBvbiBhY2Nl cHQoKSBvciByZWFkKCkgZm9yIHRoZSBuZXh0IGV2ZW50LgoKU2lnbmVkLW9mZi1ieTogQm9k byBTdHJvZXNzZXIgPGJzdHJvZXNzZXJAdHMuZnVqaXRzdS5jb20+Ci0tLQoKLS0tIG5mcy11 dGlscy0xLjIuMy9zdXBwb3J0L25mcy9zdmNfY3JlYXRlLmMJMjAxNC0xMC0wOCAyMTozOTow MS4wMDAwMDAwMDAgKzAyMDAKKysrIG5mcy11dGlscy0xLjIuMy9zdXBwb3J0L25mcy9zdmNf Y3JlYXRlLmMJMjAxNC0xMC0wOCAyMjoyMDowMi4wMDAwMDAwMDAgKzAyMDAKQEAgLTI3Nyw2 ICsyNzcsMTIgQEAKIAkJCSIoJXMsICV1LCAlcykiLCBuYW1lLCB2ZXJzaW9uLCBuY29uZi0+ bmNfbmV0aWQpOwogCQlyZXR1cm4gMDsKIAl9CisJaWYgKHN2Y3NvY2tfbm9uYmxvY2soeHBy dC0+eHBfZmQpIDwgMCkgeworCQkvKiBjbG9zZSgpIGFscmVhZHkgZG9uZSBieSBzdmNzb2Nr X25vbmJsb2NrKCkgKi8KKwkJeHBydC0+eHBfZmQgPSBSUENfQU5ZRkQ7CisgICAgICAgICAg ICAgICAgU1ZDX0RFU1RST1koeHBydCk7CisJCXJldHVybiAwOworCX0KIAogCWlmICghc3Zj X3JlZyh4cHJ0LCBwcm9ncmFtLCB2ZXJzaW9uLCBkaXNwYXRjaCwgbmNvbmYpKSB7CiAJCS8q IHN2Y19yZWcoMykgZGVzdHJveXMgQHhwcnQgaW4gdGhpcyBjYXNlICovCkBAIC0zMzIsNiAr MzM4LDcgQEAKIAkJaW50IGZkOwogCiAJCWZkID0gc3ZjX2NyZWF0ZV9zb2NrKGFpLT5haV9h ZGRyLCBhaS0+YWlfYWRkcmxlbiwgbmNvbmYpOworCQlmZCA9IHN2Y3NvY2tfbm9uYmxvY2so ZmQpOwogCQlpZiAoZmQgPT0gLTEpCiAJCQlnb3RvIG91dF9mcmVlOwogCgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKRnJvbTogQm9kbyBT dHJvZXNzZXIgPGJzdHJvZXNzZXJAdHMuZnVqaXRzdS5jb20+CkRhdGU6IFRodSwgMDkgT2N0 IDIwMTQgMTM6MDY6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBuZnMtdXRpbDogbW91bnRk OiBzZXQgbGlidGlycGMgbm9uYmxvY2tpbmcgbW9kZSB0byBhdm9pZCBET1MKClRoaXMgcGF0 Y2ggaXMgZXhwZXJpbWVudGFsLiBJbiB3b3JrcyBmaW5lIGluIHRoYXQgaXQgcmVtb3ZlcyB0 aGUgdnVsbmVyYWJpbGl0eQphZ2FpbnN0IGEgRE9TIGF0dGFjay4gcnBjLm1vdW50ZCBjYW4g YmUgYmxvY2tlZCBieSBhIGJhZCBjbGllbnQsIHRoYXQgc2VuZHMKbWFueSBSUEMgcmVxdWVz dHMgYnkgbmV2ZXIgcmVhZHMgdGhlIHJlc3BvbnNlcy4gVGhpcyBtaWdodCBoYXBwZW4gaW50 ZW50aW9uYWxseQpvciBjYXVzZWQgYnkgYSB3cm9uZyBuZXR3b3JrIGNvbmZpZyAoTVRVKS4K VGhlIHBhdGNoIHN3aXRjaGVzIG9uIHRoZSBub25ibG9ja2luZyBtb2RlIG9mIGxpYnRpcnBj LiBJbiB0aGF0IG1vZGUgd3JpdGVzIGNhbgpibG9jayBmb3IgYSBtYXguIG9mIDIgc2Vjb25k cy4gQXR0YWNrZXIgYXJlIGZvcmNlZCB0byBzZW5kIHJlcXVlc3RzIHNsb3dlciwgYXMKbGli dGlycGMgd2lsbCBjbG9zZSBhIGNvbm5lY3Rpb24gaWYgaXQgZmluZHMgdHdvIHJlcXVlc3Rz IHRvIHJlYWQgYXQgdGhlIHNhbWUKdGltZS4KSSBkbyBub3Qga25vdywgd2hldGhlciBzZXR0 aW5nIE1BWFJFQyBjb3VsZCBjYXVzZSB0cm91YmxlIGUuZy4gd2l0aCBiaWcgcmVwbGllcy4K IAoKU2lnbmVkLW9mZi1ieTogQm9kbyBTdHJvZXNzZXIgPGJzdHJvZXNzZXJAdHMuZnVqaXRz dS5jb20+Ci0tLQoKLS0tIG5mcy11dGlscy0xLjIuMy9zdXBwb3J0L25mcy9zdmNfY3JlYXRl LmMJMjAxNC0xMC0wOSAxMjowOToxNS4wMDAwMDAwMDAgKzAyMDAKKysrIG5mcy11dGlscy0x LjIuMy9zdXBwb3J0L25mcy9zdmNfY3JlYXRlLmMJMjAxNC0xMC0wOSAxMjoxMzozMi4wMDAw MDAwMDAgKzAyMDAKQEAgLTQ5LDYgKzQ5LDggQEAKIAogI2lmZGVmIEhBVkVfTElCVElSUEMK IAorI2luY2x1ZGUgPHJwYy9ycGNfY29tLmg+CisKICNkZWZpbmUgU1ZDX0NSRUFURV9YUFJU X0NBQ0hFX1NJWkUJKDgpCiBzdGF0aWMgU1ZDWFBSVCAqc3ZjX2NyZWF0ZV94cHJ0X2NhY2hl W1NWQ19DUkVBVEVfWFBSVF9DQUNIRV9TSVpFXSA9IHsgTlVMTCwgfTsKIApAQCAtNDAxLDYg KzQwMyw3IEBACiAJY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiBjcmVhdGVfc2lnYWN0aW9uID0g ewogCQkuc2FfaGFuZGxlcgk9IFNJR19JR04sCiAJfTsKKwlpbnQgbWF4cmVjID0gUlBDX01B WERBVEFTSVpFOwogCXVuc2lnbmVkIGludCB2aXNpYmxlLCB1cCwgc2VydnBvcnQ7CiAJc3Ry dWN0IG5ldGNvbmZpZyAqbmNvbmY7CiAJdm9pZCAqaGFuZGxlcDsKQEAgLTQxMiw2ICs0MTUs MjAgQEAKIAkgKi8KIAkodm9pZClzaWdhY3Rpb24oU0lHUElQRSwgJmNyZWF0ZV9zaWdhY3Rp b24sIE5VTEwpOwogCisJLyoKKwkgKiBTZXR0aW5nIE1BWFJFQyBhbHNvIGVuYWJsZXMgbm9u LWJsb2NraW5nIG1vZGUgZm9yIHRjcCBjb25uZWN0aW9ucy4KKwkgKiBUaGlzIGF2b2lkcyBE T1MgYXR0YWNrcyBieSBhIGNsaWVudCBzZW5kaW5nIG1hbnkgcmVxdWVzdHMgYnV0IG5ldmVy CisJICogcmVhZGluZyB0aGUgcmVwbHk6CisJICogLSBpZiBhIHNlY29uZCByZXF1ZXN0IGFs cmVhZHkgaXMgcHJlc2VudCBmb3IgcmVhZGluZyBpbiB0aGUgc29ja2V0LAorCSAqICAgYWZ0 ZXIgdGhlIGZpcnN0IHJlcXVlc3QganVzdCB3YXMgcmVhZCwgbGlidGlycGMgd2lsbCBicmVh ayB0aGUKKwkgKiAgIGNvbm5lY3Rpb24uIFRodXMgYW4gYXR0YWNrZXIgY2FuJ3Qgc2ltcGx5 IHNlbmQgcmVxdWVzdHMgYXMgZmFzdCBhcworCSAqICAgaGUgY2FuIHdpdGhvdXQgd2FpdGlu ZyBmb3IgdGhlIHJlc3BvbnNlLgorCSAqIC0gaWYgdGhlIHdyaXRlIGJ1ZmZlciBvZiB0aGUg c29ja2V0IGlzIGZ1bGwsIHRoZSBuZXh0IHdyaXRlKCkgd2lsbAorCSAqICAgZmFpbCB3aXRo IEVBR0FJTi4gbGlidGlycGMgd2lsbCByZXRyeSB0aGUgd3JpdGUgaW4gYSBsb29wIGZvciBt YXguCisJICogICAyIHNlY29uZHMuIElmIHdyaXRlIHN0aWxsIGZhaWxzLCB0aGUgY29ubmVj dGlvbiB3aWxsIGJlIGNsb3NlZC4KKwkgKi8gICAKKwlycGNfY29udHJvbChSUENfU1ZDX0NP Tk5NQVhSRUNfU0VULCAmbWF4cmVjKTsKKwogCWhhbmRsZXAgPSBzZXRuZXRjb25maWcoKTsK IAlpZiAoaGFuZGxlcCA9PSBOVUxMKSB7CiAJCXhsb2coTF9FUlJPUiwgIkZhaWxlZCB0byBh Y2Nlc3MgbG9jYWwgbmV0Y29uZmlnIGRhdGFiYXNlOiAlcyIsCg==