From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fMBk4-00061H-43 for kexec@lists.infradead.org; Fri, 25 May 2018 12:24:44 +0000 Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w4PCAAnj014019 for ; Fri, 25 May 2018 08:22:30 -0400 Received: from e06smtp15.uk.ibm.com (e06smtp15.uk.ibm.com [195.75.94.111]) by mx0a-001b2d01.pphosted.com with ESMTP id 2j6hpaj22x-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 25 May 2018 08:22:29 -0400 Received: from localhost by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 25 May 2018 13:22:26 +0100 Subject: Re: [PATCH v3 1/7] security: rename security_kernel_read_file() hook From: Mimi Zohar Date: Fri, 25 May 2018 08:22:09 -0400 In-Reply-To: <87po1k2304.fsf@xmission.com> References: <1527160176-29269-1-git-send-email-zohar@linux.vnet.ibm.com> <1527160176-29269-2-git-send-email-zohar@linux.vnet.ibm.com> <87po1k2304.fsf@xmission.com> Mime-Version: 1.0 Message-Id: <1527250929.3424.146.camel@linux.vnet.ibm.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: "Eric W. Biederman" Cc: Kees Cook , Ard Biesheuvel , Greg Kroah-Hartman , kexec@lists.infradead.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, David Howells , "Luis R . Rodriguez" , Andres Rodriguez , Casey Schaufler , linux-integrity@vger.kernel.org T24gVGh1LCAyMDE4LTA1LTI0IGF0IDE1OjQ5IC0wNTAwLCBFcmljIFcuIEJpZWRlcm1hbiB3cm90 ZToKClRoYW5rIHlvdSBmb3IgdGhlIHNhbXBsZSBjb2RlIGJlbG93LiDCoEl0IG5lZWRzIHRvIGJl IGJyb2tlbiB1cCBpbnRvCnByb3BlciBwYXRjaGVzLCB3aXRoIHNvbWUgY2hhbmdlcywgYnV0IGl0 IGlzIGEgZ29vZCBzdGFydC4KCk1pbWnCoAoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL2Zp cm13YXJlX2xvYWRlci9mYWxsYmFjay5jIGIvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2xvYWRlci9m YWxsYmFjay5jCj4gaW5kZXggMzU4MzU0MTQ4ZGVjLi4wNDUzNmZmODFiZDIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9iYXNlL2Zpcm13YXJlX2xvYWRlci9mYWxsYmFjay5jCj4gKysrIGIvZHJpdmVy cy9iYXNlL2Zpcm13YXJlX2xvYWRlci9mYWxsYmFjay5jCj4gQEAgLTI5NCw5ICsyOTQsNyBAQCBz dGF0aWMgc3NpemVfdCBmaXJtd2FyZV9sb2FkaW5nX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwK PiAgCQkJCWRldl9lcnIoZGV2LCAiJXM6IG1hcCBwYWdlcyBmYWlsZWRcbiIsCj4gIAkJCQkJX19m dW5jX18pOwo+ICAJCQllbHNlCj4gLQkJCQlyYyA9IHNlY3VyaXR5X2tlcm5lbF9wb3N0X3JlYWRf ZmlsZShOVUxMLAo+IC0JCQkJCQlmd19wcml2LT5kYXRhLCBmd19wcml2LT5zaXplLAo+IC0JCQkJ CQlSRUFESU5HX0ZJUk1XQVJFKTsKPiArCQkJCXJjID0gc2VjdXJpdHlfa2VybmVsX2FyZyhLQVJH X0ZJUk1XQVJFKTsKPiAKPiAgCQkJLyoKPiAgCQkJICogU2FtZSBsb2dpYyBhcyBmd19sb2FkX2Fi b3J0LCBvbmx5IHRoZSBET05FIGJpdAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2ltYS5o IGIvaW5jbHVkZS9saW51eC9pbWEuaAo+IGluZGV4IDBlNDY0N2UwZWI2MC4uOWZiNDI3MzZiYTI5 IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvaW1hLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4 L2ltYS5oCj4gQEAgLTExLDYgKzExLDcgQEAKPiAgI2RlZmluZSBfTElOVVhfSU1BX0gKPiAKPiAg I2luY2x1ZGUgPGxpbnV4L2ZzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgo+ICAj aW5jbHVkZSA8bGludXgva2V4ZWMuaD4KPiAgc3RydWN0IGxpbnV4X2JpbnBybTsKPiAKPiBAQCAt MTksNyArMjAsNyBAQCBleHRlcm4gaW50IGltYV9icHJtX2NoZWNrKHN0cnVjdCBsaW51eF9iaW5w cm0gKmJwcm0pOwo+ICBleHRlcm4gaW50IGltYV9maWxlX2NoZWNrKHN0cnVjdCBmaWxlICpmaWxl LCBpbnQgbWFzaywgaW50IG9wZW5lZCk7Cj4gIGV4dGVybiB2b2lkIGltYV9maWxlX2ZyZWUoc3Ry dWN0IGZpbGUgKmZpbGUpOwo+ICBleHRlcm4gaW50IGltYV9maWxlX21tYXAoc3RydWN0IGZpbGUg KmZpbGUsIHVuc2lnbmVkIGxvbmcgcHJvdCk7Cj4gLWV4dGVybiBpbnQgaW1hX3JlYWRfZmlsZShz dHJ1Y3QgZmlsZSAqZmlsZSwgZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKTsKPiArZXh0ZXJu IGludCBpbWFfa2VybmVsX2FyZyhlbnVtIGtlcm5lbF9hcmdfaWQgaWQpOwo+ICBleHRlcm4gaW50 IGltYV9wb3N0X3JlYWRfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqYnVmLCBsb2ZmX3Qg c2l6ZSwKPiAgCQkJICAgICAgZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKTsKPiAgZXh0ZXJu IHZvaWQgaW1hX3Bvc3RfcGF0aF9ta25vZChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwo+IEBAIC00 OSw3ICs1MCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGltYV9maWxlX21tYXAoc3RydWN0IGZpbGUg KmZpbGUsIHVuc2lnbmVkIGxvbmcgcHJvdCkKPiAgCXJldHVybiAwOwo+ICB9Cj4gCj4gLXN0YXRp YyBpbmxpbmUgaW50IGltYV9yZWFkX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIGVudW0ga2VybmVs X3JlYWRfZmlsZV9pZCBpZCkKPiArc3RhdGljIGlubGluZSBpbnQgaW1hX2tlcm5lbF9hcmcoZW51 bSBrZXJuZWxfYXJnX2lkIGlkKQo+ICB7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oIGIvaW5jbHVkZS9saW51eC9sc21faG9va3MuaAo+ IGluZGV4IDlkMGIyODZmM2RiYS4uN2Y4YmMzMDMwNzg0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUv bGludXgvbHNtX2hvb2tzLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oCj4gQEAg LTU3Niw2ICs1NzYsMTAgQEAKPiAgICoJdXNlcnNwYWNlIHRvIGxvYWQgYSBrZXJuZWwgbW9kdWxl IHdpdGggdGhlIGdpdmVuIG5hbWUuCj4gICAqCUBrbW9kX25hbWUgbmFtZSBvZiB0aGUgbW9kdWxl IHJlcXVlc3RlZCBieSB0aGUga2VybmVsCj4gICAqCVJldHVybiAwIGlmIHN1Y2Nlc3NmdWwuCj4g KyAqIEBrZXJuZWxfYXJnOgo+ICsgKglVc2UgYSBzeXNjYWxsIGFyZ3VtZW50Cj4gKyAqCUBpZCBr ZXJuZWwgYXJndW1lbnQgaWRlbnRpZmllcgo+ICsgKglSZXR1cm4gMCBpZiBwZXJtaXNzaW9uIGlz IGdyYW50ZWQuCj4gICAqIEBrZXJuZWxfcmVhZF9maWxlOgo+ICAgKglSZWFkIGEgZmlsZSBzcGVj aWZpZWQgYnkgdXNlcnNwYWNlLgo+ICAgKglAZmlsZSBjb250YWlucyB0aGUgZmlsZSBzdHJ1Y3R1 cmUgcG9pbnRpbmcgdG8gdGhlIGZpbGUgYmVpbmcgcmVhZAo+IEBAIC0xNTc3LDYgKzE1ODEsNyBA QCB1bmlvbiBzZWN1cml0eV9saXN0X29wdGlvbnMgewo+ICAJaW50ICgqa2VybmVsX2FjdF9hcyko c3RydWN0IGNyZWQgKm5ldywgdTMyIHNlY2lkKTsKPiAgCWludCAoKmtlcm5lbF9jcmVhdGVfZmls ZXNfYXMpKHN0cnVjdCBjcmVkICpuZXcsIHN0cnVjdCBpbm9kZSAqaW5vZGUpOwo+ICAJaW50ICgq a2VybmVsX21vZHVsZV9yZXF1ZXN0KShjaGFyICprbW9kX25hbWUpOwo+ICsJaW50ICgqa2VybmVs X2FyZykoZW51bSBrZXJuZWxfYXJnX2lkIGlkKTsKPiAgCWludCAoKmtlcm5lbF9yZWFkX2ZpbGUp KHN0cnVjdCBmaWxlICpmaWxlLCBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQgaWQpOwo+ICAJaW50 ICgqa2VybmVsX3Bvc3RfcmVhZF9maWxlKShzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBs b2ZmX3Qgc2l6ZSwKPiAgCQkJCSAgICAgZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKTsKPiBA QCAtMTg2Niw2ICsxODcxLDcgQEAgc3RydWN0IHNlY3VyaXR5X2hvb2tfaGVhZHMgewo+ICAJc3Ry dWN0IGhsaXN0X2hlYWQgY3JlZF9nZXRzZWNpZDsKPiAgCXN0cnVjdCBobGlzdF9oZWFkIGtlcm5l bF9hY3RfYXM7Cj4gIAlzdHJ1Y3QgaGxpc3RfaGVhZCBrZXJuZWxfY3JlYXRlX2ZpbGVzX2FzOwo+ ICsJc3RydWN0IGhsaXN0X2hlYWQga2VybmVsX2FyZzsKPiAgCXN0cnVjdCBobGlzdF9oZWFkIGtl cm5lbF9yZWFkX2ZpbGU7Cj4gIAlzdHJ1Y3QgaGxpc3RfaGVhZCBrZXJuZWxfcG9zdF9yZWFkX2Zp bGU7Cj4gIAlzdHJ1Y3QgaGxpc3RfaGVhZCBrZXJuZWxfbW9kdWxlX3JlcXVlc3Q7Cj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaCBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHku aAo+IGluZGV4IDIwMDkyMGY1MjFhMS4uNmNmMWJkODdmMDQxIDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvbGludXgvc2VjdXJpdHkuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaAo+IEBA IC0xNTksNiArMTU5LDMyIEBAIGV4dGVybiBpbnQgbW1hcF9taW5fYWRkcl9oYW5kbGVyKHN0cnVj dCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCj4gIHR5cGVkZWYgaW50ICgqaW5pdHhhdHRy cykgKHN0cnVjdCBpbm9kZSAqaW5vZGUsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCB4YXR0ciAqeGF0 dHJfYXJyYXksIHZvaWQgKmZzX2RhdGEpOwo+IAo+ICsjZGVmaW5lIF9fa2VybmVsX2FyZ19pZChp ZCkgXAo+ICsJaWQoVU5LTk9XTiwgdW5rbm93bikJCVwKPiArCWlkKEZJUk1XQVJFLCBmaXJtd2Fy ZSkJCVwKPiArCWlkKE1PRFVMRSwga2VybmVsLW1vZHVsZSkJXAo+ICsJaWQoTUFYX0lELCApCj4g Kwo+ICsjZGVmaW5lIF9fa2FyZ19lbnVtaWZ5KEVOVU0sIGR1bW15KSBLQVJHXyAjIyBFTlVNLAo+ ICsjZGVmaW5lIF9fa2FyZ19zdHJpbmdpZnkoZHVtbXksIHN0cikgI3N0ciwKPiArCj4gK2VudW0g a2VybmVsX2FyZ19pZCB7Cj4gKwlfX2tlcm5lbF9hcmdfaWQoX19rYXJnX2VudW1pZnkpCj4gK307 Cj4gKwo+ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGtlcm5lbF9hcmdfc3RyW10gPSB7Cj4g KwlfX2tlcm5lbF9hcmdfaWQoX19rYXJnX3N0cmluZ2lmeSkKPiArfTsKPiArCj4gK3N0YXRpYyBp bmxpbmUgY29uc3QgY2hhciAqa2VybmVsX2FyZ19pZF9zdHIoZW51bSBrZXJuZWxfYXJnX2lkIGlk KQo+ICt7Cj4gKwlpZiAoKHVuc2lnbmVkKWlkID49IEtBUkdfTUFYX0lEKQo+ICsJCXJldHVybiBr ZXJuZWxfYXJnX3N0cltLQVJHX1VOS05PV05dOwo+ICsKPiArCXJldHVybiBrZXJuZWxfYXJnX3N0 cltpZF07Cj4gK30KPiArCj4gKwo+ICAjaWZkZWYgQ09ORklHX1NFQ1VSSVRZCj4gCj4gIHN0cnVj dCBzZWN1cml0eV9tbnRfb3B0cyB7Cj4gQEAgLTMyNiw2ICszNTIsNyBAQCB2b2lkIHNlY3VyaXR5 X2NyZWRfZ2V0c2VjaWQoY29uc3Qgc3RydWN0IGNyZWQgKmMsIHUzMiAqc2VjaWQpOwo+ICBpbnQg c2VjdXJpdHlfa2VybmVsX2FjdF9hcyhzdHJ1Y3QgY3JlZCAqbmV3LCB1MzIgc2VjaWQpOwo+ICBp bnQgc2VjdXJpdHlfa2VybmVsX2NyZWF0ZV9maWxlc19hcyhzdHJ1Y3QgY3JlZCAqbmV3LCBzdHJ1 Y3QgaW5vZGUgKmlub2RlKTsKPiAgaW50IHNlY3VyaXR5X2tlcm5lbF9tb2R1bGVfcmVxdWVzdChj aGFyICprbW9kX25hbWUpOwo+ICtpbnQgc2VjdXJpdHlfa2VybmVsX2FyZyhlbnVtIGtlcm5lbF9h cmdfaWQgaWQpOwo+ICBpbnQgc2VjdXJpdHlfa2VybmVsX3JlYWRfZmlsZShzdHJ1Y3QgZmlsZSAq ZmlsZSwgZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkIGlkKTsKPiAgaW50IHNlY3VyaXR5X2tlcm5l bF9wb3N0X3JlYWRfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBsb2ZmX3Qgc2l6 ZSwKPiAgCQkJCSAgIGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCBpZCk7Cj4gQEAgLTkyMyw2ICs5 NTAsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfa2VybmVsX21vZHVsZV9yZXF1ZXN0 KGNoYXIgKmttb2RfbmFtZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gCj4gK3N0YXRpYyBpbmxpbmUg aW50IHNlY3VyaXR5X2tlcm5lbF9hcmcoZW51bSBrZXJuZWxfYXJnX2lkIGlkKQo+ICt7Cj4gKwly ZXR1cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfa2VybmVsX3Jl YWRfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwKPiAgCQkJCQkgICAgZW51bSBrZXJuZWxfcmVhZF9m aWxlX2lkIGlkKQo+ICB7Cj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1bGUuYyBiL2tlcm5lbC9t b2R1bGUuYwo+IGluZGV4IGNlODA2NmI4ODE3OC4uMDNhMWRkMjFhZDRhIDEwMDY0NAo+IC0tLSBh L2tlcm5lbC9tb2R1bGUuYwo+ICsrKyBiL2tlcm5lbC9tb2R1bGUuYwo+IEBAIC0yODc5LDcgKzI4 NzksNyBAQCBzdGF0aWMgaW50IGNvcHlfbW9kdWxlX2Zyb21fdXNlcihjb25zdCB2b2lkIF9fdXNl ciAqdW1vZCwgdW5zaWduZWQgbG9uZyBsZW4sCj4gIAlpZiAoaW5mby0+bGVuIDwgc2l6ZW9mKCoo aW5mby0+aGRyKSkpCj4gIAkJcmV0dXJuIC1FTk9FWEVDOwo+IAo+IC0JZXJyID0gc2VjdXJpdHlf a2VybmVsX3JlYWRfZmlsZShOVUxMLCBSRUFESU5HX01PRFVMRSk7Cj4gKwllcnIgPSBzZWN1cml0 eV9rZXJuZWxfYXJnKEtBUkdfTU9EVUxFKTsKPiAgCWlmIChlcnIpCj4gIAkJcmV0dXJuIGVycjsK PiAKPiBkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbWFpbi5jIGIvc2Vj dXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbWFpbi5jCj4gaW5kZXggNzRkMGJkN2U3NmQ3Li5kNTFh OGNhOTcyMzggMTAwNjQ0Cj4gLS0tIGEvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbWFpbi5j Cj4gKysrIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfbWFpbi5jCj4gQEAgLTQyMSwzMiAr NDIxLDYgQEAgdm9pZCBpbWFfcG9zdF9wYXRoX21rbm9kKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkK PiAgCQlpaW50LT5mbGFncyB8PSBJTUFfTkVXX0ZJTEU7Cj4gIH0KPiAKPiAtLyoqCj4gLSAqIGlt YV9yZWFkX2ZpbGUgLSBwcmUtbWVhc3VyZS9hcHByYWlzZSBob29rIGRlY2lzaW9uIGJhc2VkIG9u IHBvbGljeQo+IC0gKiBAZmlsZTogcG9pbnRlciB0byB0aGUgZmlsZSB0byBiZSBtZWFzdXJlZC9h cHByYWlzZWQvYXVkaXQKPiAtICogQHJlYWRfaWQ6IGNhbGxlciBpZGVudGlmaWVyCj4gLSAqCj4g LSAqIFBlcm1pdCByZWFkaW5nIGEgZmlsZSBiYXNlZCBvbiBwb2xpY3kuIFRoZSBwb2xpY3kgcnVs ZXMgYXJlIHdyaXR0ZW4KPiAtICogaW4gdGVybXMgb2YgdGhlIHBvbGljeSBpZGVudGlmaWVyLiAg QXBwcmFpc2luZyB0aGUgaW50ZWdyaXR5IG9mCj4gLSAqIGEgZmlsZSByZXF1aXJlcyBhIGZpbGUg ZGVzY3JpcHRvci4KPiAtICoKPiAtICogRm9yIHBlcm1pc3Npb24gcmV0dXJuIDAsIG90aGVyd2lz ZSByZXR1cm4gLUVBQ0NFUy4KPiAtICovCj4gLWludCBpbWFfcmVhZF9maWxlKHN0cnVjdCBmaWxl ICpmaWxlLCBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQgcmVhZF9pZCkKPiAtewo+IC0JYm9vbCBz aWdfZW5mb3JjZSA9IGlzX21vZHVsZV9zaWdfZW5mb3JjZWQoKTsKPiAtCj4gLQlpZiAoIWZpbGUg JiYgcmVhZF9pZCA9PSBSRUFESU5HX01PRFVMRSkgewo+IC0JCWlmICghc2lnX2VuZm9yY2UgJiYg KGltYV9hcHByYWlzZSAmIElNQV9BUFBSQUlTRV9NT0RVTEVTKSAmJgo+IC0JCSAgICAoaW1hX2Fw cHJhaXNlICYgSU1BX0FQUFJBSVNFX0VORk9SQ0UpKSB7Cj4gLQkJCXByX2VycigiaW1wb3NzaWJs ZSB0byBhcHByYWlzZSBhIG1vZHVsZSB3aXRob3V0IGEgZmlsZSBkZXNjcmlwdG9yLiBzaWdfZW5m b3JjZSBrZXJuZWwgcGFyYW1ldGVyIG1pZ2h0IGhlbHBcbiIpOwo+IC0JCQlyZXR1cm4gLUVBQ0NF UzsJLyogSU5URUdSSVRZX1VOS05PV04gKi8KPiAtCQl9Cj4gLQkJcmV0dXJuIDA7CS8qIFdlIHJl bHkgb24gbW9kdWxlIHNpZ25hdHVyZSBjaGVja2luZyAqLwo+IC0JfQo+IC0JcmV0dXJuIDA7Cj4g LX0KPiAtCj4gIHN0YXRpYyBpbnQgcmVhZF9pZG1hcFtSRUFESU5HX01BWF9JRF0gPSB7Cj4gIAlb UkVBRElOR19GSVJNV0FSRV0gPSBGSVJNV0FSRV9DSEVDSywKPiAgCVtSRUFESU5HX01PRFVMRV0g PSBNT0RVTEVfQ0hFQ0ssCj4gQEAgLTQ3NCwyMSArNDQ4LDcgQEAgaW50IGltYV9wb3N0X3JlYWRf ZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqYnVmLCBsb2ZmX3Qgc2l6ZSwKPiAgCWVudW0g aW1hX2hvb2tzIGZ1bmM7Cj4gIAl1MzIgc2VjaWQ7Cj4gCj4gLQlpZiAoIWZpbGUgJiYgcmVhZF9p ZCA9PSBSRUFESU5HX0ZJUk1XQVJFKSB7Cj4gLQkJaWYgKChpbWFfYXBwcmFpc2UgJiBJTUFfQVBQ UkFJU0VfRklSTVdBUkUpICYmCj4gLQkJICAgIChpbWFfYXBwcmFpc2UgJiBJTUFfQVBQUkFJU0Vf RU5GT1JDRSkpCj4gLQkJCXJldHVybiAtRUFDQ0VTOwkvKiBJTlRFR1JJVFlfVU5LTk9XTiAqLwo+ IC0JCXJldHVybiAwOwo+IC0JfQo+IC0KPiAtCWlmICghZmlsZSAmJiByZWFkX2lkID09IFJFQURJ TkdfTU9EVUxFKSAvKiBNT0RVTEVfU0lHX0ZPUkNFIGVuYWJsZWQgKi8KPiAtCQlyZXR1cm4gMDsK PiAtCj4gLQkvKiBwZXJtaXQgc2lnbmVkIGNlcnRzICovCj4gLQlpZiAoIWZpbGUgJiYgcmVhZF9p ZCA9PSBSRUFESU5HX1g1MDlfQ0VSVElGSUNBVEUpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0JaWYg KCFmaWxlIHx8ICFidWYgfHwgc2l6ZSA9PSAwKSB7IC8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8K PiArCWlmICghYnVmIHx8IHNpemUgPT0gMCkgeyAvKiBzaG91bGQgbmV2ZXIgaGFwcGVuICovCj4g IAkJaWYgKGltYV9hcHByYWlzZSAmIElNQV9BUFBSQUlTRV9FTkZPUkNFKQo+ICAJCQlyZXR1cm4g LUVBQ0NFUzsKPiAgCQlyZXR1cm4gMDsKPiBAQCAtNTAwLDYgKzQ2MCw0MCBAQCBpbnQgaW1hX3Bv c3RfcmVhZF9maWxlKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpidWYsIGxvZmZfdCBzaXplLAo+ ICAJCQkJICAgTUFZX1JFQUQsIGZ1bmMsIDApOwo+ICB9Cj4gCj4gKy8qKgo+ICsgKiBpbWFfa2Vy bmVsX2FyZyAtIHByZS1tZWFzdXJlL2FwcHJhaXNlIGhvb2sgZGVjaXNpb24gYmFzZWQgb24gcG9s aWN5Cj4gKyAqIEBpZDogY2FsbGVyIGlkZW50aWZpZXIKPiArICoKPiArICogUGVybWl0IHVzaW5n IGFuIGFyZ3VtZW50IHRvIGEgc3lzY2FsbCBiYXNlZCBvbiBwb2xpY3kuIFRoZSBwb2xpY3kKPiAr ICogcnVsZXMgYXJlIHdyaXR0ZW4gaW4gdGVybXMgb2YgdGhlIHBvbGljeSBpZGVudGlmaWVyLgo+ ICsgKgo+ICsgKiBGb3IgcGVybWlzc2lvbiByZXR1cm4gMCwgb3RoZXJ3aXNlIHJldHVybiAtRUFD Q0VTLgo+ICsgKi8KPiAraW50IGltYV9rZXJuZWxfYXJnKGVudW0ga2VybmVsX2FyZ19pZCBpZCkK PiArewo+ICsJaWYgKGlkID09IEtBUkdfTU9EVUxFKSB7Cj4gKwkJYm9vbCBzaWdfZW5mb3JjZSA9 IGlzX21vZHVsZV9zaWdfZW5mb3JjZWQoKTsKPiArCQlpZiAoIXNpZ19lbmZvcmNlICYmIChpbWFf YXBwcmFpc2UgJiBJTUFfQVBQUkFJU0VfTU9EVUxFUykgJiYKPiArCQkgICAgKGltYV9hcHByYWlz ZSAmIElNQV9BUFBSQUlTRV9FTkZPUkNFKSkgewo+ICsJCQlwcl9lcnIoImltcG9zc2libGUgdG8g YXBwcmFpc2UgYSBtb2R1bGUgd2l0aG91dCBhIGZpbGUgZGVzY3JpcHRvci4gc2lnX2VuZm9yY2Ug a2VybmVsIHBhcmFtZXRlciBtaWdodCBoZWxwXG4iKTsKPiArCQkJcmV0dXJuIC1FQUNDRVM7CS8q IElOVEVHUklUWV9VTktOT1dOICovCj4gKwkJfQo+ICsJCXJldHVybiAwOwkvKiBXZSByZWx5IG9u IG1vZHVsZSBzaWduYXR1cmUgY2hlY2tpbmcgKi8KPiArCX0KPiArCWVsc2UgaWYgKGlkID09IEtB UkdfRklSTVdBUkUpIHsKPiArCQlpZiAoKGltYV9hcHByYWlzZSAmIElNQV9BUFBSQUlTRV9GSVJN V0FSRSkgJiYKPiArCQkgICAgKGltYV9hcHByYWlzZSAmIElNQV9BUFBSQUlTRV9FTkZPUkNFKSkK PiArCQkJcmV0dXJuIC1FQUNDRVM7CS8qIElOVEVHUklUWV9VTktOT1dOICovCj4gKwkJcmV0dXJu IDA7Cj4gKwl9Cj4gKwllbHNlIHsKPiArCQlpZiAoaW1hX2FwcHJhaXNlICYgSU1BX0FQUFJBSVNF X0VORk9SQ0UpCj4gKwkJCXJldHVybiAtRUFDQ0VTOwo+ICsJCXJldHVybiAwOwo+ICsJfQo+ICsJ cmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgX19pbml0IGluaXRfaW1hKHZvaWQpCj4g IHsKPiAgCWludCBlcnJvcjsKPiBkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbG9hZHBpbi9sb2FkcGlu LmMgYi9zZWN1cml0eS9sb2FkcGluL2xvYWRwaW4uYwo+IGluZGV4IDVmYTE5MTI1MmM4Zi4uZjUz MzNlNWFiYWM5IDEwMDY0NAo+IC0tLSBhL3NlY3VyaXR5L2xvYWRwaW4vbG9hZHBpbi5jCj4gKysr IGIvc2VjdXJpdHkvbG9hZHBpbi9sb2FkcGluLmMKPiBAQCAtMTIxLDIzICsxMjEsMjQgQEAgc3Rh dGljIHZvaWQgbG9hZHBpbl9zYl9mcmVlX3NlY3VyaXR5KHN0cnVjdCBzdXBlcl9ibG9jayAqbW50 X3NiKQo+ICAJfQo+ICB9Cj4gCj4gLXN0YXRpYyBpbnQgbG9hZHBpbl9yZWFkX2ZpbGUoc3RydWN0 IGZpbGUgKmZpbGUsIGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCBpZCkKPiArc3RhdGljIGludCBs b2FkcGluX3JlYWRfZGF0YShlbnVtIGtlcm5lbF9yZWFkX2RhdGFfaWQgaWQpCj4gIHsKPiAtCXN0 cnVjdCBzdXBlcl9ibG9jayAqbG9hZF9yb290Owo+IC0JY29uc3QgY2hhciAqb3JpZ2luID0ga2Vy bmVsX3JlYWRfZmlsZV9pZF9zdHIoaWQpOwo+ICsJY29uc3QgY2hhciAqb3JpZ2luID0ga2VybmVs X2FyZ19pZF9zdHIoaWQpOwo+IAo+ICAJLyogVGhpcyBoYW5kbGVzIHRoZSBvbGRlciBpbml0X21v ZHVsZSBBUEkgdGhhdCBoYXMgYSBOVUxMIGZpbGUuICovCj4gLQlpZiAoIWZpbGUpIHsKPiAtCQlp ZiAoIWVuYWJsZWQpIHsKPiAtCQkJcmVwb3J0X2xvYWQob3JpZ2luLCBOVUxMLCAib2xkLWFwaS1w aW5uaW5nLWlnbm9yZWQiKTsKPiAtCQkJcmV0dXJuIDA7Cj4gLQkJfQo+IC0KPiAtCQlyZXBvcnRf bG9hZChvcmlnaW4sIE5VTEwsICJvbGQtYXBpLWRlbmllZCIpOwo+IC0JCXJldHVybiAtRVBFUk07 Cj4gKwlpZiAoIWVuYWJsZWQpIHsKPiArCQlyZXBvcnRfbG9hZChvcmlnaW4sIE5VTEwsICJvbGQt YXBpLXBpbm5pbmctaWdub3JlZCIpOwo+ICsJCXJldHVybiAwOwo+ICAJfQo+IAo+IC0JbG9hZF9y b290ID0gZmlsZS0+Zl9wYXRoLm1udC0+bW50X3NiOwo+ICsJcmVwb3J0X2xvYWQob3JpZ2luLCBO VUxMLCAib2xkLWFwaS1kZW5pZWQiKTsKPiArCXJldHVybiAtRVBFUk07Cj4gK30KPiArCj4gK3N0 YXRpYyBpbnQgbG9hZHBpbl9yZWFkX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIGVudW0ga2VybmVs X3JlYWRfZmlsZV9pZCBpZCkKPiArewo+ICsJc3RydWN0IHN1cGVyX2Jsb2NrICpsb2FkX3Jvb3Q7 Cj4gKwljb25zdCBjaGFyICpvcmlnaW4gPSBrZXJuZWxfcmVhZF9maWxlX2lkX3N0cihpZCk7Cj4g Cj4gIAkvKiBGaXJzdCBsb2FkZWQgbW9kdWxlL2Zpcm13YXJlIGRlZmluZXMgdGhlIHJvb3QgZm9y IGFsbCBvdGhlcnMuICovCj4gIAlzcGluX2xvY2soJnBpbm5lZF9yb290X3NwaW5sb2NrKTsKPiBA QCAtMTc1LDYgKzE3Niw3IEBAIHN0YXRpYyBpbnQgbG9hZHBpbl9yZWFkX2ZpbGUoc3RydWN0IGZp bGUgKmZpbGUsIGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCBpZCkKPiAKPiAgc3RhdGljIHN0cnVj dCBzZWN1cml0eV9ob29rX2xpc3QgbG9hZHBpbl9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQg PSB7Cj4gIAlMU01fSE9PS19JTklUKHNiX2ZyZWVfc2VjdXJpdHksIGxvYWRwaW5fc2JfZnJlZV9z ZWN1cml0eSksCj4gKwlMU01fSE9PS19JTklUKGtlcm5lbF9yZWFkX2RhdGEsIGxvYWRwaW5fcmVh ZF9kYXRhKSwKPiAgCUxTTV9IT09LX0lOSVQoa2VybmVsX3JlYWRfZmlsZSwgbG9hZHBpbl9yZWFk X2ZpbGUpLAo+ICB9Owo+IAo+IGRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWN1cml0eS5jIGIvc2Vj dXJpdHkvc2VjdXJpdHkuYwo+IGluZGV4IDdiYzJmZGUwMjNhNy4uOWI1ZjQzYzI0ZWUyIDEwMDY0 NAo+IC0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKPiArKysgYi9zZWN1cml0eS9zZWN1cml0eS5j Cj4gQEAgLTEwMzMsMTQgKzEwMzMsMTkgQEAgaW50IHNlY3VyaXR5X2tlcm5lbF9tb2R1bGVfcmVx dWVzdChjaGFyICprbW9kX25hbWUpCj4gIAlyZXR1cm4gY2FsbF9pbnRfaG9vayhrZXJuZWxfbW9k dWxlX3JlcXVlc3QsIDAsIGttb2RfbmFtZSk7Cj4gIH0KPiAKPiAtaW50IHNlY3VyaXR5X2tlcm5l bF9yZWFkX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIGVudW0ga2VybmVsX3JlYWRfZmlsZV9pZCBp ZCkKPiAraW50IHNlY3VyaXR5X2tlcm5lbF9hcmcoZW51bSBrZXJuZWxfYXJnX2lkIGlkKQo+ICB7 Cj4gIAlpbnQgcmV0Owo+IAo+IC0JcmV0ID0gY2FsbF9pbnRfaG9vayhrZXJuZWxfcmVhZF9maWxl LCAwLCBmaWxlLCBpZCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQlyZXR1cm4g aW1hX3JlYWRfZmlsZShmaWxlLCBpZCk7Cj4gKwlyZXQgPSBjYWxsX2ludF9ob29rKGtlcm5lbF9h cmcsIDAsIGlkKTsKPiArCWlmICghcmV0KQo+ICsJCXJldCA9IGltYV9rZXJuZWxfYXJnKGlkKTsK PiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK2ludCBzZWN1cml0eV9rZXJuZWxfcmVhZF9maWxl KHN0cnVjdCBmaWxlICpmaWxlLCBlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQgaWQpCj4gK3sKPiAr CXJldHVybiBjYWxsX2ludF9ob29rKGtlcm5lbF9yZWFkX2ZpbGUsIDAsIGZpbGUsIGlkKTsKPiAg fQo+ICBFWFBPUlRfU1lNQk9MX0dQTChzZWN1cml0eV9rZXJuZWxfcmVhZF9maWxlKTsKPiAKPiBk aWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jIGIvc2VjdXJpdHkvc2VsaW51eC9o b29rcy5jCj4gaW5kZXggNGNhZmU2YTE5MTY3Li43Njg0MzA5OWZlZDYgMTAwNjQ0Cj4gLS0tIGEv c2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCj4gKysrIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5j Cj4gQEAgLTQwMTAsNiArNDAxMCwxNSBAQCBzdGF0aWMgaW50IHNlbGludXhfa2VybmVsX21vZHVs ZV9yZXF1ZXN0KGNoYXIgKmttb2RfbmFtZSkKPiAgCQkJICAgIFNZU1RFTV9fTU9EVUxFX1JFUVVF U1QsICZhZCk7Cj4gIH0KPiAKPiArc3RhdGljIGludCBzZWxpbnV4X2tlcm5lbF9tb2R1bGVfYXJn KHZvaWQpCj4gK3sKPiArCS8qIGluaXRfbW9kdWxlICovCj4gKwl1MzIgc2lkID0gY3VycmVudF9z aWQoKTsKPiArCXJldHVybiBhdmNfaGFzX3Blcm0oJnNlbGludXhfc3RhdGUsCj4gKwkJCSAgICBz aWQsIHNpZCwgU0VDQ0xBU1NfU1lTVEVNLAo+ICsJCQkgICAgU1lTVEVNX19NT0RVTEVfTE9BRCwg TlVMTCk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgc2VsaW51eF9rZXJuZWxfbW9kdWxlX2Zyb21f ZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSkKPiAgewo+ICAJc3RydWN0IGNvbW1vbl9hdWRpdF9kYXRh IGFkOwo+IEBAIC00MDE4LDEyICs0MDI3LDYgQEAgc3RhdGljIGludCBzZWxpbnV4X2tlcm5lbF9t b2R1bGVfZnJvbV9maWxlKHN0cnVjdCBmaWxlICpmaWxlKQo+ICAJdTMyIHNpZCA9IGN1cnJlbnRf c2lkKCk7Cj4gIAlpbnQgcmM7Cj4gCj4gLQkvKiBpbml0X21vZHVsZSAqLwo+IC0JaWYgKGZpbGUg PT0gTlVMTCkKPiAtCQlyZXR1cm4gYXZjX2hhc19wZXJtKCZzZWxpbnV4X3N0YXRlLAo+IC0JCQkJ ICAgIHNpZCwgc2lkLCBTRUNDTEFTU19TWVNURU0sCj4gLQkJCQkJU1lTVEVNX19NT0RVTEVfTE9B RCwgTlVMTCk7Cj4gLQo+ICAJLyogZmluaXRfbW9kdWxlICovCj4gCj4gIAlhZC50eXBlID0gTFNN X0FVRElUX0RBVEFfRklMRTsKPiBAQCAtNDA0Myw2ICs0MDQ2LDIwIEBAIHN0YXRpYyBpbnQgc2Vs aW51eF9rZXJuZWxfbW9kdWxlX2Zyb21fZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSkKPiAgCQkJCVNZ U1RFTV9fTU9EVUxFX0xPQUQsICZhZCk7Cj4gIH0KPiAKPiArc3RhdGljIGludCBzZWxpbnV4X2tl cm5lbF9hcmcoZW51bSBrZXJuZWxfYXJnX2lkIGlkKQo+ICt7Cj4gKwlpbnQgcmMgPSAwOwo+ICsK PiArCXN3aXRjaCAoaWQpIHsKPiArCWNhc2UgS0FSR19NT0RVTEU6Cj4gKwkJcmMgPSBzZWxpbnV4 X2tlcm5lbF9tb2R1bGVfYXJnKCk7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCWJyZWFr Owo+ICsJfQo+ICsJcmV0dXJuIHJjOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IHNlbGludXhfa2Vy bmVsX3JlYWRfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwKPiAgCQkJCSAgICBlbnVtIGtlcm5lbF9y ZWFkX2ZpbGVfaWQgaWQpCj4gIHsKPiBAQCAtNjkzOCw2ICs2OTU1LDcgQEAgc3RhdGljIHN0cnVj dCBzZWN1cml0eV9ob29rX2xpc3Qgc2VsaW51eF9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQg PSB7Cj4gIAlMU01fSE9PS19JTklUKGtlcm5lbF9hY3RfYXMsIHNlbGludXhfa2VybmVsX2FjdF9h cyksCj4gIAlMU01fSE9PS19JTklUKGtlcm5lbF9jcmVhdGVfZmlsZXNfYXMsIHNlbGludXhfa2Vy bmVsX2NyZWF0ZV9maWxlc19hcyksCj4gIAlMU01fSE9PS19JTklUKGtlcm5lbF9tb2R1bGVfcmVx dWVzdCwgc2VsaW51eF9rZXJuZWxfbW9kdWxlX3JlcXVlc3QpLAo+ICsJTFNNX0hPT0tfSU5JVChr ZXJuZWxfYXJnLCBzZWxpbnV4X2tlcm5lbF9hcmcpLAo+ICAJTFNNX0hPT0tfSU5JVChrZXJuZWxf cmVhZF9maWxlLCBzZWxpbnV4X2tlcm5lbF9yZWFkX2ZpbGUpLAo+ICAJTFNNX0hPT0tfSU5JVCh0 YXNrX3NldHBnaWQsIHNlbGludXhfdGFza19zZXRwZ2lkKSwKPiAgCUxTTV9IT09LX0lOSVQodGFz a19nZXRwZ2lkLCBzZWxpbnV4X3Rhc2tfZ2V0cGdpZCksCj4gCj4gLS0KPiBUbyB1bnN1YnNjcmli ZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtc2VjdXJp dHktbW9kdWxlIiBpbgo+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5r ZXJuZWwub3JnCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9y Zy9tYWpvcmRvbW8taW5mby5odG1sCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18Ka2V4ZWMgbWFpbGluZyBsaXN0CmtleGVjQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXhlYwo=