From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?J=C3=A9r=C3=A9mie_Galarneau?= Subject: Re: [lttng-tools RFC] Fix: registry can be null on lookup Date: Thu, 1 Jun 2017 15:42:32 -0400 Message-ID: References: <1486412932-12806-1-git-send-email-jonathan.rajotte-julien@efficios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yw0-x241.google.com (mail-yw0-x241.google.com [IPv6:2607:f8b0:4002:c05::241]) by lists.lttng.org (Postfix) with ESMTPS id 3wdyT445ybz123y for ; Thu, 1 Jun 2017 19:43:52 +0000 (UTC) Received: by mail-yw0-x241.google.com with SMTP id h82so3397410ywb.3 for ; Thu, 01 Jun 2017 12:42:33 -0700 (PDT) In-Reply-To: <1486412932-12806-1-git-send-email-jonathan.rajotte-julien@efficios.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" To: Jonathan Rajotte Cc: "lttng-dev@lists.lttng.org" , Jeremie Galarneau List-Id: lttng-dev@lists.lttng.org TWVyZ2VkIHdpdGggc29tZSBtb2RpZmljYXRpb25zIGluIG1hc3Rlciwgc3RhYmxlLTIuMTAsIHN0 YWJsZS0yLjksIGFuZApzdGFibGUtMi44LiBSZWFkIG9uIGZvciBjaGFuZ2VzLgoKT24gNiBGZWJy dWFyeSAyMDE3IGF0IDE1OjI4LCBKb25hdGhhbiBSYWpvdHRlCjxqb25hdGhhbi5yYWpvdHRlLWp1 bGllbkBlZmZpY2lvcy5jb20+IHdyb3RlOgo+IEEgc2Vzc2lvbiB0ZWFyZG93biBjYW4gYmUgaW5p dGlhdGVkIGJ5IGEgZHlpbmcgYXBwbGljYXRpb24uIEhlbmNlLCBhCj4gc2Vzc2lvbiBvYmplY3Qg Y2FuIGV4aXN0IHdpdGhvdXQgYSB2YWxpZCByZWdpc3RyeS4gQXMgYSByZXN1bHQsCj4gZ2V0X3Nl c3Npb25fcmVnaXN0cnkgY2FuIHJldHVybiBudWxsLiBUbyBwcmV2ZW50IHRoaXMsIHRoZSBVU1QK PiBhcHBsaWNhdGlvbiBzZXNzaW9uIGxvY2sgc2hvdWxkIGJlIGhlbGQsIHdoZW4gcG9zc2libGUs IHdoZW4gbG9va2luZyB1cAo+IHRoZSByZWdpc3RyeSB0byBlbnN1cmUgc3luY2hyb25pemF0aW9u LiBPdGhlcndpc2UgdGhlIHByZXNlbmNlIG9mIGEKPiByZWdpc3RyeSBpcyBub3QgZ3VhcmFudGVl ZC4gSW4gc3VjaCBjYXNlLCBoYW5kbGluZyBhIG51bGwgcmV0dXJuIHZhbHVlCj4gZnJvbSBsb29r LXVwIHJlZ2lzdHJ5IGZ1bmN0aW9uIGlzIG5lY2Vzc2FyeS4KPgo+IENvcmUgZHVtcHMsIHRyaWdn ZXJlZCBieSB0aGUgImFzc2VydChyZWdpc3RyeSkiIHN0YXRlbWVudCBmb3VuZCBpbgo+IHJlcGx5 X3VzdF9yZWdpc3Rlcl9jaGFubmVsLCB3ZXJlIG9ic2VydmVkIHdoZW4ga2lsbGluZyBpbnN0cnVt ZW50ZWQKPiBhcHBsaWNhdGlvbnMuIEluIHRoaXMgb2NjdXJyZW5jZSwgb2J0YWluaW5nIHRoZSBV U1QgYXBwbGljYXRpb24gbG9jawo+IHJlc3VsdCBpbiBhIGRlYWRsb2NrIHNpbmNlIHRoZSBsb2Nr IGlzIGFscmVhZHkgaGVsZCBkdXJpbmcKPiB1c3RfYXBwX2dsb2JhbF9jcmVhdGUuIEhhbmRsaW5n IHRoZSBudWxsIHZhbHVlIGlzIHNpbXBsZXIgYW5kCj4gY29ycmVzcG9uZHMgd2l0aCB0aGUgaGFu ZGxpbmcgb2YgcHJldmlvdXMgbG9vay11cCBkb25lIGR1cmluZyB0aGUKPiBmdW5jdGlvbi4KPgo+ IEhhbmRsaW5nIG9mIG51bGwgdmFsdWUgaXMgYWxzbyBhcHBsaWVkIHRvOgo+ICAgICAgICAgYWRk X2V2ZW50X3VzdF9yZWdpc3RyeQo+ICAgICAgICAgYWRkX2VudW1fdXN0X3JlZ2lzdHJ5Cj4gICAg ICAgICB1c3RfYXBwX3NuYXBzaG90X3JlY29yZAo+Cj4gU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4g UmFqb3R0ZSA8am9uYXRoYW4ucmFqb3R0ZS1qdWxpZW5AZWZmaWNpb3MuY29tPgo+IC0tLQo+ICBz cmMvYmluL2x0dG5nLXNlc3Npb25kL3VzdC1hcHAuYyB8IDUzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyks IDggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC91 c3QtYXBwLmMgYi9zcmMvYmluL2x0dG5nLXNlc3Npb25kL3VzdC1hcHAuYwo+IGluZGV4IDVhNDFj MzguLjQzOTVhNTkgMTAwNjQ0Cj4gLS0tIGEvc3JjL2Jpbi9sdHRuZy1zZXNzaW9uZC91c3QtYXBw LmMKPiArKysgYi9zcmMvYmluL2x0dG5nLXNlc3Npb25kL3VzdC1hcHAuYwo+IEBAIC04MTAsNiAr ODEwLDcgQEAgdm9pZCBkZWxldGVfdXN0X2FwcF9zZXNzaW9uKGludCBzb2NrLCBzdHJ1Y3QgdXN0 X2FwcF9zZXNzaW9uICp1YV9zZXNzLAo+ICAgICAgICAgdWFfc2Vzcy0+ZGVsZXRlZCA9IHRydWU7 Cj4KPiAgICAgICAgIHJlZ2lzdHJ5ID0gZ2V0X3Nlc3Npb25fcmVnaXN0cnkodWFfc2Vzcyk7Cj4g KyAgICAgICAvKiBSZWdpc3RyeSBjYW4gYmUgbnVsbCBvbiBlcnJvciBwYXRoIGR1cmluZyBpbml0 aWFsaXphdGlvbiAqLwo+ICAgICAgICAgaWYgKHJlZ2lzdHJ5KSB7Cj4gICAgICAgICAgICAgICAg IC8qIFB1c2ggbWV0YWRhdGEgZm9yIGFwcGxpY2F0aW9uIGJlZm9yZSBmcmVlaW5nIHRoZSBhcHBs aWNhdGlvbi4gKi8KPiAgICAgICAgICAgICAgICAgKHZvaWQpIHB1c2hfbWV0YWRhdGEocmVnaXN0 cnksIHVhX3Nlc3MtPmNvbnN1bWVyKTsKPiBAQCAtODM3LDYgKzgzOCwxMCBAQCB2b2lkIGRlbGV0 ZV91c3RfYXBwX3Nlc3Npb24oaW50IHNvY2ssIHN0cnVjdCB1c3RfYXBwX3Nlc3Npb24gKnVhX3Nl c3MsCj4gICAgICAgICBpZiAodWFfc2Vzcy0+YnVmZmVyX3R5cGUgPT0gTFRUTkdfQlVGRkVSX1BF Ul9QSUQpIHsKPiAgICAgICAgICAgICAgICAgc3RydWN0IGJ1ZmZlcl9yZWdfcGlkICpyZWdfcGlk ID0gYnVmZmVyX3JlZ19waWRfZmluZCh1YV9zZXNzLT5pZCk7Cj4gICAgICAgICAgICAgICAgIGlm IChyZWdfcGlkKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgLyoKPiArICAgICAgICAgICAg ICAgICAgICAgICAgKiBSZWdpc3RyeSBjYW4gYmUgbnVsbCBvbiBlcnJvciBwYXRoIGR1cmluZwo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAqIGluaXRpYWxpemF0aW9uCgpBZGRlZCBkb3RzIGF0 IHRoZSBlbmQgb2YgY29tbWVudHMuCgo+ICsgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ICAg ICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9yZWdfcGlkX3JlbW92ZShyZWdfcGlkKTsKPiAg ICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfcmVnX3BpZF9kZXN0cm95KHJlZ19waWQpOwo+ ICAgICAgICAgICAgICAgICB9Cj4gQEAgLTI0NjQsNiArMjQ2OSw4IEBAIGVycm9yOgo+ICAvKgo+ ICAgKiBBc2sgdGhlIGNvbnN1bWVyIHRvIGNyZWF0ZSBhIGNoYW5uZWwgYW5kIGdldCBpdCBpZiBz dWNjZXNzZnVsLgo+ICAgKgo+ICsgKiBDYWxsZWQgd2l0aCBVU1QgYXBwIHNlc3Npb24gbG9jayBo ZWxkLgo+ICsgKgo+ICAgKiBSZXR1cm4gMCBvbiBzdWNjZXNzIG9yIGVsc2UgYSBuZWdhdGl2ZSB2 YWx1ZS4KPiAgICovCj4gIHN0YXRpYyBpbnQgZG9fY29uc3VtZXJfY3JlYXRlX2NoYW5uZWwoc3Ry dWN0IGx0dF91c3Rfc2Vzc2lvbiAqdXNlc3MsCj4gQEAgLTI5MTcsNiArMjkyNCw4IEBAIGVycm9y Ogo+ICAvKgo+ICAgKiBDcmVhdGUgYW5kIHNlbmQgdG8gdGhlIGFwcGxpY2F0aW9uIHRoZSBjcmVh dGVkIGJ1ZmZlcnMgd2l0aCBwZXIgUElEIGJ1ZmZlcnMuCj4gICAqCj4gKyAqIENhbGxlZCB3aXRo IFVTVCBhcHAgc2Vzc2lvbiBsb2NrIGhlbGQuCj4gKyAqCj4gICAqIFJldHVybiAwIG9uIHN1Y2Nl c3MgZWxzZSBhIG5lZ2F0aXZlIHZhbHVlLgo+ICAgKi8KPiAgc3RhdGljIGludCBjcmVhdGVfY2hh bm5lbF9wZXJfcGlkKHN0cnVjdCB1c3RfYXBwICphcHAsCj4gQEAgLTI5MzYsNiArMjk0NSw3IEBA IHN0YXRpYyBpbnQgY3JlYXRlX2NoYW5uZWxfcGVyX3BpZChzdHJ1Y3QgdXN0X2FwcCAqYXBwLAo+ ICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwo+Cj4gICAgICAgICByZWdpc3RyeSA9IGdldF9zZXNz aW9uX3JlZ2lzdHJ5KHVhX3Nlc3MpOwo+ICsgICAgICAgLyogVGhlIFVTVCBhcHAgc2Vzc2lvbiBs b2NrIGlzIGhlbGQsIHJlZ2lzdHJ5IHNoYWxsIG5vdCBiZSBudWxsICovCj4gICAgICAgICBhc3Nl cnQocmVnaXN0cnkpOwo+Cj4gICAgICAgICAvKiBDcmVhdGUgYW5kIGFkZCBhIG5ldyBjaGFubmVs IHJlZ2lzdHJ5IHRvIHNlc3Npb24uICovCj4gQEAgLTI5NzMsNiArMjk4Myw4IEBAIGVycm9yOgo+ ICAgKiBuZWVkIGFuZCBzZW5kIGl0IHRvIHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBNVVNUIGJlIGNh bGxlZCB3aXRoIGEgUkNVIHJlYWQKPiAgICogc2lkZSBsb2NrIGFjcXVpcmVkLgo+ICAgKgo+ICsg KiBDYWxsZWQgd2l0aCBVU1QgYXBwIHNlc3Npb24gbG9jayBoZWxkLgo+ICsgKgo+ICAgKiBSZXR1 cm4gMCBvbiBzdWNjZXNzIG9yIGVsc2UgYSBuZWdhdGl2ZSB2YWx1ZS4gUmV0dXJucyAtRU5PVENP Tk4gaWYKPiAgICogdGhlIGFwcGxpY2F0aW9uIGV4aXRlZCBjb25jdXJyZW50bHkuCj4gICAqLwo+ IEBAIC0zMTYwLDYgKzMxNzIsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV91c3RfYXBwX21ldGFkYXRh KHN0cnVjdCB1c3RfYXBwX3Nlc3Npb24gKnVhX3Nlc3MsCj4gICAgICAgICBhc3NlcnQoY29uc3Vt ZXIpOwo+Cj4gICAgICAgICByZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lzdHJ5KHVhX3Nlc3Mp Owo+ICsgICAgICAgLyogVGhlIFVTVCBhcHAgc2Vzc2lvbiBpcyBoZWxkIHJlZ2lzdHJ5IHNoYWxs IG5vdCBiZSBudWxsICovCj4gICAgICAgICBhc3NlcnQocmVnaXN0cnkpOwo+Cj4gICAgICAgICBw dGhyZWFkX211dGV4X2xvY2soJnJlZ2lzdHJ5LT5sb2NrKTsKPiBAQCAtNDI5Niw2ICs0MzA5LDkg QEAgaW50IHVzdF9hcHBfY3JlYXRlX2V2ZW50X2dsYihzdHJ1Y3QgbHR0X3VzdF9zZXNzaW9uICp1 c2VzcywKPgo+ICAvKgo+ICAgKiBTdGFydCB0cmFjaW5nIGZvciBhIHNwZWNpZmljIFVTVCBzZXNz aW9uIGFuZCBhcHAuCj4gKyAqCj4gKyAqIENhbGxlZCB3aXRoIFVTVCBhcHAgc2Vzc2lvbiBsb2Nr IGhlbGQuCj4gKyAqCj4gICAqLwo+ICBzdGF0aWMKPiAgaW50IHVzdF9hcHBfc3RhcnRfdHJhY2Uo c3RydWN0IGx0dF91c3Rfc2Vzc2lvbiAqdXNlc3MsIHN0cnVjdCB1c3RfYXBwICphcHApCj4gQEAg LTQ0NzksNiArNDQ5NSw4IEBAIGludCB1c3RfYXBwX3N0b3BfdHJhY2Uoc3RydWN0IGx0dF91c3Rf c2Vzc2lvbiAqdXNlc3MsIHN0cnVjdCB1c3RfYXBwICphcHApCj4gICAgICAgICBoZWFsdGhfY29k ZV91cGRhdGUoKTsKPgo+ICAgICAgICAgcmVnaXN0cnkgPSBnZXRfc2Vzc2lvbl9yZWdpc3RyeSh1 YV9zZXNzKTsKPiArCj4gKyAgICAgICAvKiBUaGUgVVNUIGFwcCBzZXNzaW9uIGlzIGhlbGQgcmVn aXN0cnkgc2hhbGwgbm90IGJlIG51bGwgKi8KPiAgICAgICAgIGFzc2VydChyZWdpc3RyeSk7Cj4K PiAgICAgICAgIC8qIFB1c2ggbWV0YWRhdGEgZm9yIGFwcGxpY2F0aW9uIGJlZm9yZSBmcmVlaW5n IHRoZSBhcHBsaWNhdGlvbi4gKi8KPiBAQCAtNTMyMCw3ICs1MzM4LDcgQEAgc3RhdGljIGludCBy ZXBseV91c3RfcmVnaXN0ZXJfY2hhbm5lbChpbnQgc29jaywgaW50IHNvYmpkLCBpbnQgY29iamQs Cj4gICAgICAgICAvKiBMb29rdXAgYXBwbGljYXRpb24uIElmIG5vdCBmb3VuZCwgdGhlcmUgaXMg YSBjb2RlIGZsb3cgZXJyb3IuICovCj4gICAgICAgICBhcHAgPSBmaW5kX2FwcF9ieV9ub3RpZnlf c29jayhzb2NrKTsKPiAgICAgICAgIGlmICghYXBwKSB7Cj4gLSAgICAgICAgICAgICAgIERCRygi QXBwbGljYXRpb24gc29ja2V0ICVkIGlzIGJlaW5nIHRlYXJkb3duLiBBYm9ydCBldmVudCBub3Rp ZnkiLAo+ICsgICAgICAgICAgICAgICBEQkcoIkFwcGxpY2F0aW9uIHNvY2tldCAlZCBpcyBiZWlu ZyB0b3JuIGRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzb2NrKTsKPiAgICAgICAgICAgICAgICAgcmV0ID0gMDsKPiAgICAgICAgICAg ICAgICAgZnJlZShmaWVsZHMpOwo+IEBAIC01MzMwLDcgKzUzNDgsNyBAQCBzdGF0aWMgaW50IHJl cGx5X3VzdF9yZWdpc3Rlcl9jaGFubmVsKGludCBzb2NrLCBpbnQgc29iamQsIGludCBjb2JqZCwK PiAgICAgICAgIC8qIExvb2t1cCBjaGFubmVsIGJ5IFVTVCBvYmplY3QgZGVzY3JpcHRvci4gKi8K PiAgICAgICAgIHVhX2NoYW4gPSBmaW5kX2NoYW5uZWxfYnlfb2JqZChhcHAsIGNvYmpkKTsKPiAg ICAgICAgIGlmICghdWFfY2hhbikgewo+IC0gICAgICAgICAgICAgICBEQkcoIkFwcGxpY2F0aW9u IGNoYW5uZWwgaXMgYmVpbmcgdGVhcmRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIpOwo+ICsgICAg ICAgICAgICAgICBEQkcoIkFwcGxpY2F0aW9uIGNoYW5uZWwgaXMgYmVpbmcgdG9ybiBkb3duLiBB Ym9ydCBldmVudCBub3RpZnkiKTsKPiAgICAgICAgICAgICAgICAgcmV0ID0gMDsKPiAgICAgICAg ICAgICAgICAgZnJlZShmaWVsZHMpOwo+ICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX3JjdV91 bmxvY2s7Cj4gQEAgLTUzNDEsNyArNTM1OSwxMiBAQCBzdGF0aWMgaW50IHJlcGx5X3VzdF9yZWdp c3Rlcl9jaGFubmVsKGludCBzb2NrLCBpbnQgc29iamQsIGludCBjb2JqZCwKPgo+ICAgICAgICAg LyogR2V0IHJpZ2h0IHNlc3Npb24gcmVnaXN0cnkgZGVwZW5kaW5nIG9uIHRoZSBzZXNzaW9uIGJ1 ZmZlciB0eXBlLiAqLwo+ICAgICAgICAgcmVnaXN0cnkgPSBnZXRfc2Vzc2lvbl9yZWdpc3RyeSh1 YV9zZXNzKTsKPiAtICAgICAgIGFzc2VydChyZWdpc3RyeSk7Cj4gKyAgICAgICBpZiAoIXJlZ2lz dHJ5KSB7Cj4gKyAgICAgICAgICAgICAgIERCRygiQXBwbGljYXRpb24gc2Vzc2lvbiBpcyBiZWlu ZyB0b3JuIGRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIpOwo+ICsgICAgICAgICAgICAgICByZXQg PSAwOwo+ICsgICAgICAgICAgICAgICBmcmVlKGZpZWxkcyk7CgpJIHJld29ya2VkIHRoZSB2YXJp b3VzIGZyZWUoZmllbGRzKSB0byBwZXJmb3JtIHRoZSBmcmVlIGF0IHRoZSBlbmQgb2YKdGhlIGZ1 bmN0aW9uLCBhbmQgc2V0ICJmaWVsZHMiIHRvIE5VTEwgb25seSBvbmNlIHRoZSBvd25lcnNoaXAg aGFzCmJlZW4gdHJhbnNmZXJlZC4KCj4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfcmN1X3Vu bG9jazsKPiArICAgICAgIH07Cj4KPiAgICAgICAgIC8qIERlcGVuZGluZyBvbiB0aGUgYnVmZmVy IHR5cGUsIGEgZGlmZmVyZW50IGNoYW5uZWwga2V5IGlzIHVzZWQuICovCj4gICAgICAgICBpZiAo dWFfc2Vzcy0+YnVmZmVyX3R5cGUgPT0gTFRUTkdfQlVGRkVSX1BFUl9VSUQpIHsKPiBAQCAtNTQz OSw3ICs1NDYyLDcgQEAgc3RhdGljIGludCBhZGRfZXZlbnRfdXN0X3JlZ2lzdHJ5KGludCBzb2Nr LCBpbnQgc29iamQsIGludCBjb2JqZCwgY2hhciAqbmFtZSwKPiAgICAgICAgIC8qIExvb2t1cCBh cHBsaWNhdGlvbi4gSWYgbm90IGZvdW5kLCB0aGVyZSBpcyBhIGNvZGUgZmxvdyBlcnJvci4gKi8K PiAgICAgICAgIGFwcCA9IGZpbmRfYXBwX2J5X25vdGlmeV9zb2NrKHNvY2spOwo+ICAgICAgICAg aWYgKCFhcHApIHsKPiAtICAgICAgICAgICAgICAgREJHKCJBcHBsaWNhdGlvbiBzb2NrZXQgJWQg aXMgYmVpbmcgdGVhcmRvd24uIEFib3J0IGV2ZW50IG5vdGlmeSIsCj4gKyAgICAgICAgICAgICAg IERCRygiQXBwbGljYXRpb24gc29ja2V0ICVkIGlzIGJlaW5nIHRvcm4gZG93bi4gQWJvcnQgZXZl bnQgbm90aWZ5IiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2spOwo+ICAg ICAgICAgICAgICAgICByZXQgPSAwOwo+ICAgICAgICAgICAgICAgICBmcmVlKHNpZyk7Cj4gQEAg LTU0NTEsNyArNTQ3NCw3IEBAIHN0YXRpYyBpbnQgYWRkX2V2ZW50X3VzdF9yZWdpc3RyeShpbnQg c29jaywgaW50IHNvYmpkLCBpbnQgY29iamQsIGNoYXIgKm5hbWUsCj4gICAgICAgICAvKiBMb29r dXAgY2hhbm5lbCBieSBVU1Qgb2JqZWN0IGRlc2NyaXB0b3IuICovCj4gICAgICAgICB1YV9jaGFu ID0gZmluZF9jaGFubmVsX2J5X29iamQoYXBwLCBjb2JqZCk7Cj4gICAgICAgICBpZiAoIXVhX2No YW4pIHsKPiAtICAgICAgICAgICAgICAgREJHKCJBcHBsaWNhdGlvbiBjaGFubmVsIGlzIGJlaW5n IHRlYXJkb3duLiBBYm9ydCBldmVudCBub3RpZnkiKTsKPiArICAgICAgICAgICAgICAgREJHKCJB cHBsaWNhdGlvbiBjaGFubmVsIGlzIGJlaW5nIHRvcm4gZG93bi4gQWJvcnQgZXZlbnQgbm90aWZ5 Iik7Cj4gICAgICAgICAgICAgICAgIHJldCA9IDA7Cj4gICAgICAgICAgICAgICAgIGZyZWUoc2ln KTsKPiAgICAgICAgICAgICAgICAgZnJlZShmaWVsZHMpOwo+IEBAIC01NDYzLDcgKzU0ODYsMTQg QEAgc3RhdGljIGludCBhZGRfZXZlbnRfdXN0X3JlZ2lzdHJ5KGludCBzb2NrLCBpbnQgc29iamQs IGludCBjb2JqZCwgY2hhciAqbmFtZSwKPiAgICAgICAgIHVhX3Nlc3MgPSB1YV9jaGFuLT5zZXNz aW9uOwo+Cj4gICAgICAgICByZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lzdHJ5KHVhX3Nlc3Mp Owo+IC0gICAgICAgYXNzZXJ0KHJlZ2lzdHJ5KTsKPiArICAgICAgIGlmICghcmVnaXN0cnkpIHsK PiArICAgICAgICAgICAgICAgREJHKCJBcHBsaWNhdGlvbiBzZXNzaW9uIGlzIGJlaW5nIHRvcm4g ZG93bi4gQWJvcnQgZXZlbnQgbm90aWZ5Iik7Cj4gKyAgICAgICAgICAgICAgIHJldCA9IDA7Cj4g KyAgICAgICAgICAgICAgIGZyZWUoc2lnKTsKPiArICAgICAgICAgICAgICAgZnJlZShmaWVsZHMp Owo+ICsgICAgICAgICAgICAgICBmcmVlKG1vZGVsX2VtZl91cmkpOwoKU2FtZSBpZGVhIHRoYW4g dGhlIG1vZGlmaWNhdGlvbnMgZG9uZSBmb3IgdGhlICJmaWVsZHMiIG1lbW9yeQpvd25lcnNoaXAg dHJhbnNmZXIuCgo+ICsgICAgICAgICAgICAgICBnb3RvIGVycm9yX3JjdV91bmxvY2s7Cj4gKyAg ICAgICB9Cj4KPiAgICAgICAgIGlmICh1YV9zZXNzLT5idWZmZXJfdHlwZSA9PSBMVFROR19CVUZG RVJfUEVSX1VJRCkgewo+ICAgICAgICAgICAgICAgICBjaGFuX3JlZ19rZXkgPSB1YV9jaGFuLT50 cmFjaW5nX2NoYW5uZWxfaWQ7Cj4gQEAgLTU1NTEsNyArNTU4MSwxMSBAQCBzdGF0aWMgaW50IGFk ZF9lbnVtX3VzdF9yZWdpc3RyeShpbnQgc29jaywgaW50IHNvYmpkLCBjaGFyICpuYW1lLAo+ICAg ICAgICAgfQo+Cj4gICAgICAgICByZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lzdHJ5KHVhX3Nl c3MpOwo+IC0gICAgICAgYXNzZXJ0KHJlZ2lzdHJ5KTsKPiArICAgICAgIGlmICghcmVnaXN0cnkp IHsKPiArICAgICAgICAgICAgICAgREJHKCJBcHBsaWNhdGlvbiBzZXNzaW9uIGlzIGJlaW5nIHRv cm4gZG93bi4gQWJvcnRpbmcgZW51bSByZWdpc3RyYXRpb24uIik7CgpNb2RpZmllZCB0aGlzIGxv Z2dpbmcgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGUgY2F1c2UgKG51bGwgcmVnaXN0cnkgdnMKbnVs bCBzZXNzaW9uKS4KCj4gKyAgICAgICAgICAgICAgIGZyZWUoZW50cmllcyk7Cj4gKyAgICAgICAg ICAgICAgIGdvdG8gZXJyb3JfcmN1X3VubG9jazsKPiArICAgICAgIH0KPgo+ICAgICAgICAgcHRo cmVhZF9tdXRleF9sb2NrKCZyZWdpc3RyeS0+bG9jayk7Cj4KPiBAQCAtNTkxNyw3ICs1OTUxLDEw IEBAIGludCB1c3RfYXBwX3NuYXBzaG90X3JlY29yZChzdHJ1Y3QgbHR0X3VzdF9zZXNzaW9uICp1 c2VzcywKPiAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4KPiAgICAgICAgICAgICAgICAgICAg ICAgICByZWdpc3RyeSA9IGdldF9zZXNzaW9uX3JlZ2lzdHJ5KHVhX3Nlc3MpOwo+IC0gICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydChyZWdpc3RyeSk7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCFyZWdpc3RyeSkgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJH KCJBcHBsaWNhdGlvbiBzZXNzaW9uIGlzIGJlaW5nIHRvcm4gZG93bi4gQWJvcnQgc25hcHNob3Qg cmVjb3JkLiIpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsK CkFkZGVkIHJldCA9IC0xIGhlcmUgdG8gaW5kaWNhdGUgdGhlIGVycm9yLiBBbHNvLCByZXQgY291 bGQgYmUgbGVmdCB0bwphbiB1bmV4cGVjdGVkIHZhbHVlIGlmIHRoZSB1YV9zZXNzLT5jaGFubmVs cy0+aHQgaXMgZW1wdHkgKGl0IHdvdWxkCnRha2UgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgc25w cmludGYoKSBjYWxsIGJlZm9yZSkuCgoKPiArICAgICAgICAgICAgICAgICAgICAgICB9Cj4gICAg ICAgICAgICAgICAgICAgICAgICAgcmV0ID0gY29uc3VtZXJfc25hcHNob3RfY2hhbm5lbChzb2Nr ZXQsIHJlZ2lzdHJ5LT5tZXRhZGF0YV9rZXksIG91dHB1dCwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSwgdWFfc2Vzcy0+ZXVpZCwgdWFfc2Vzcy0+ZWdpZCwgcGF0 aG5hbWUsIHdhaXQsIDApOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7 Cj4gLS0KPiAyLjcuNAo+CgoKCi0tIApKw6lyw6ltaWUgR2FsYXJuZWF1CkVmZmljaU9TIEluYy4K aHR0cDovL3d3dy5lZmZpY2lvcy5jb20KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbHR0bmctZGV2IG1haWxpbmcgbGlzdApsdHRuZy1kZXZAbGlzdHMubHR0 bmcub3JnCmh0dHBzOi8vbGlzdHMubHR0bmcub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9s dHRuZy1kZXYK