From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4260BF6C.6030008@kaigai.gr.jp> Date: Sat, 16 Apr 2005 16:31:56 +0900 From: KaiGai Kohei MIME-Version: 1.0 To: Stephen Smalley Cc: Kaigai Kohei , SELinux Mail List Subject: Re: [RFC & PATCH] inherited type definition. References: <42346C17.3090301@kaigai.gr.jp> <1110808202.21378.51.camel@moss-spartans.epoch.ncsc.mil> <4235C937.3030404@kaigai.gr.jp> <1110824712.21378.196.camel@moss-spartans.epoch.ncsc.mil> <4236CC03.5010104@kaigai.gr.jp> <1110897751.25947.52.camel@moss-spartans.epoch.ncsc.mil> <4237B950.2090604@ak.jp.nec.com> <1110981928.4802.81.camel@moss-spartans.epoch.ncsc.mil> <42394ECA.7010204@ak.jp.nec.com> <1111067742.8664.31.camel@moss-spartans.epoch.ncsc.mil> <42399AE4.5040508@kaigai.gr.jp> <423E9CFF.3080808@kaigai.gr.jp> <1111420782.13101.16.camel@moss-spartans.epoch.ncsc.mil> <42412635.4030108@ak.jp.nec.com> <1111586217.21107.54.camel@moss-spartans.epoch.ncsc.mil> In-Reply-To: <1111586217.21107.54.camel@moss-spartans.epoch.ncsc.mil> Content-Type: multipart/mixed; boundary="------------070500070300080205080102" Sender: owner-selinux@tycho.nsa.gov List-Id: selinux@tycho.nsa.gov This is a multi-part message in MIME format. --------------070500070300080205080102 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hello, >>I tried to modify the Fedora-C3's strict policy for quick testing, >>and represent a unified file type of HTTPd/Samba/FTPd. >> >>I intend to access /var/www/ftp via HTTP and FTP, /var/www/samba via HTTP and Samba. >>The following configuration was necessary for this purpose. >> >>BTW, since any macros (such as apache) were so complex for me, the following >>configuration may be insufficiency in a precise sense. >>But it's easily understandable as a configuration sample for real application, >>I think. > > > Thanks for the additional patch and the example. I'd like to encourage > people on the list who are actively writing policies to look at this > language extension and example and comment on whether they think it > would be helpful to them. How is the current status of inheritable-type patch ? Can I think that we can use such statements checkpolicy-1.24 or later ? Please, don't forget. :-) I modified the latest patch against to checkpolicy-1.23.1 on Fedora's CVS. Since there is only one FAILED hunk on checkpolicy.c:518, I modified this. Thanks, -- DO NOTHING IS THE WORST POLICY. KaiGai Kohei --------------070500070300080205080102 Content-Type: text/plain; name="checkpolicy-1.23.1-extends.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="checkpolicy-1.23.1-extends.patch" LS0tIGNoZWNrcG9saWN5LTEuMjMuMS9jaGVja3BvbGljeS5oCTIwMDUtMDQtMTQgMTY6Mjc6 MzQuMDAwMDAwMDAwIC0wNDAwCisrKyBjaGVja3BvbGljeS0xLjIzLjEtZXh0ZW5kcy9jaGVj a3BvbGljeS5oCTIwMDUtMDQtMTYgMTY6Mzc6NDIuMDAwMDAwMDAwIC0wNDAwCkBAIC03LDYg KzcsNyBAQCB0eXBlZGVmIHN0cnVjdCB0ZV9hc3NlcnQgeyAKIAllYml0bWFwX3Qgc3R5cGVz OwogCWViaXRtYXBfdCB0dHlwZXM7CiAJZWJpdG1hcF90IHRjbGFzc2VzOworCWViaXRtYXBf dCBpbmhlcml0OwogICAgICAgICBpbnQgc2VsZjsKIAlhY2Nlc3NfdmVjdG9yX3QgKmF2cDsK IAl1bnNpZ25lZCBsb25nIGxpbmU7CkBAIC0xOCw0ICsxOSwxNiBAQCB0ZV9hc3NlcnRfdCAq dGVfYXNzZXJ0aW9uczsKIGV4dGVybiB1bnNpZ25lZCBpbnQgcG9saWN5dmVyczsKIGV4dGVy biB1bnNpZ25lZCBpbnQgbWxzcG9sOwogCisvKiB0eXBlIHdhcyBub3QgaW5kZXhlZCBpbiBw b2xpY3lkYiwKKyAgIGJ1dCBpdCdzIG5lY2Vzc2FyeSBmb3IgZXh0ZW5kcyBzdXBwb3J0LiAq LworZXh0ZXJuIHR5cGVfZGF0dW1fdCAqKnR5cGVfdmFsX3RvX3N0cnVjdDsKK2V4dGVybiBp bnQgbnVtX3R5cGVfdmFsX3RvX3N0cnVjdDsKK2V4dGVybiB2b2lkIGdldF9jaGlsZF90eXBl cyhlYml0bWFwX3QgKnNldCwgdHlwZV9kYXR1bV90ICp0LCBpbnQgcmVjdXJzaXZlKTsKKwor c3RhdGljIGlubGluZSB0eXBlX2RhdHVtX3QgKmdldF90eXBlKGludCB0eXBldmFsKSB7CisJ aWYgKCF0eXBlX3ZhbF90b19zdHJ1Y3QgfHwgdHlwZXZhbDwxIHx8IHR5cGV2YWw+bnVtX3R5 cGVfdmFsX3RvX3N0cnVjdCkKKwkJcmV0dXJuIE5VTEw7CisJcmV0dXJuIHR5cGVfdmFsX3Rv X3N0cnVjdFt0eXBldmFsLTFdOworfQorCiAjZW5kaWYKLS0tIGNoZWNrcG9saWN5LTEuMjMu MS9jaGVja3BvbGljeS5jCTIwMDUtMDQtMTQgMTY6Mjc6MzQuMDAwMDAwMDAwIC0wNDAwCisr KyBjaGVja3BvbGljeS0xLjIzLjEtZXh0ZW5kcy9jaGVja3BvbGljeS5jCTIwMDUtMDQtMTYg MTY6Mzk6MzIuMDAwMDAwMDAwIC0wNDAwCkBAIC0zNDUsOCArMzQ1LDEwIEBAIHZvaWQgY2hl Y2tfYXNzZXJ0aW9uX2hlbHBlcih1bnNpZ25lZCBpbnQKIAogdm9pZCBjaGVja19hc3NlcnRp b25zKHZvaWQpIAogeworCWViaXRtYXBfdCB0ZW1wOworCXR5cGVfZGF0dW1fdCAqdHlwZWRh dHVtOwogCXRlX2Fzc2VydF90ICphLCAqdG1wOwotCXVuc2lnbmVkIGludCBpLCBqOworCXVu c2lnbmVkIGludCBpLCBqLCBrOwogCiAJYSA9IHRlX2Fzc2VydGlvbnM7CiAJd2hpbGUgKGEp IHsKQEAgLTM1NCw3ICszNTYsMjMgQEAgdm9pZCBjaGVja19hc3NlcnRpb25zKHZvaWQpIAog CQkJaWYgKCFlYml0bWFwX2dldF9iaXQoJmEtPnN0eXBlcywgaSkpCiAJCQkJY29udGludWU7 CiAJCQlpZiAoYS0+c2VsZikgewotCQkJCWNoZWNrX2Fzc2VydGlvbl9oZWxwZXIoaSwgaSwg JmEtPnRjbGFzc2VzLCBhLT5hdnAsIGEtPmxpbmUpOworCQkJCXR5cGVkYXR1bSA9IHR5cGVf dmFsX3RvX3N0cnVjdFtpXTsKKwkJCQlpZiAoIXR5cGVkYXR1bSkgeworCQkJCQlmcHJpbnRm KHN0ZGVyciwgIkJVRzogY2hlY2tfYXNzZXRpb24gZm9yIHVuZGVmaW5lZCB0eXBlLlxuIik7 CisJCQkJCWV4aXQoMSk7CisJCQkJfQorCQkJCWViaXRtYXBfaW5pdCgmdGVtcCk7CisJCQkJ Z2V0X2NoaWxkX3R5cGVzKCZ0ZW1wLCB0eXBlZGF0dW0sIGViaXRtYXBfZ2V0X2JpdCgmYS0+ aW5oZXJpdCwgaSkpOworCQkJCWZvciAoaiA9IGViaXRtYXBfc3RhcnRiaXQoJnRlbXApOyBq IDwgZWJpdG1hcF9sZW5ndGgoJnRlbXApOyBqKyspIHsKKwkJCQkJaWYgKCFlYml0bWFwX2dl dF9iaXQoJnRlbXAsIGopKQorCQkJCQkJY29udGludWU7CisJCQkJCWZvciAoayA9IGViaXRt YXBfc3RhcnRiaXQoJnRlbXApOyBrIDwgZWJpdG1hcF9sZW5ndGgoJnRlbXApOyBrKyspIHsK KwkJCQkJCWlmICghZWJpdG1hcF9nZXRfYml0KCZ0ZW1wLCBrKSkKKwkJCQkJCQljb250aW51 ZTsKKwkJCQkJCSBjaGVja19hc3NlcnRpb25faGVscGVyKGosIGssICZhLT50Y2xhc3Nlcywg YS0+YXZwLCBhLT5saW5lKTsKKwkJCQkJfQorCQkJCX0KKwkJCQllYml0bWFwX2Rlc3Ryb3ko JnRlbXApOwogCQkJfQogCQkJZm9yIChqID0gZWJpdG1hcF9zdGFydGJpdCgmYS0+dHR5cGVz KTsgaiA8IGViaXRtYXBfbGVuZ3RoKCZhLT50dHlwZXMpOyBqKyspIHsKIAkJCQlpZiAoIWVi aXRtYXBfZ2V0X2JpdCgmYS0+dHR5cGVzLCBqKSkgCkBAIC0zNjcsNiArMzg1LDcgQEAgdm9p ZCBjaGVja19hc3NlcnRpb25zKHZvaWQpIAogCQllYml0bWFwX2Rlc3Ryb3koJnRtcC0+c3R5 cGVzKTsKIAkJZWJpdG1hcF9kZXN0cm95KCZ0bXAtPnR0eXBlcyk7CiAJCWViaXRtYXBfZGVz dHJveSgmdG1wLT50Y2xhc3Nlcyk7CisJCWViaXRtYXBfZGVzdHJveSgmdG1wLT5pbmhlcml0 KTsKIAkJZnJlZSh0bXAtPmF2cCk7CiAJCWZyZWUodG1wKTsKIAl9CkBAIC00NDMsNiArNDYy LDQ5IEBAIGludCBjaGFuZ2VfYm9vbChjaGFyICpuYW1lLCBpbnQgc3RhdGUpCiAJcmV0dXJu IDA7CiB9CiAKK3R5cGVfZGF0dW1fdCAqKnR5cGVfdmFsX3RvX3N0cnVjdCA9IE5VTEw7Citp bnQgbnVtX3R5cGVfdmFsX3RvX3N0cnVjdCA9IC0xOworCitzdGF0aWMgaW50IHR5cGVfdmFs X3RvX3N0cnVjdF9oZWxwZXIoaGFzaHRhYl9rZXlfdCBrLCBoYXNodGFiX2RhdHVtX3QgZCwg dm9pZCAqYXJncykKK3sKKwl0eXBlX2RhdHVtX3QgKnQgPSAodHlwZV9kYXR1bV90ICopZDsK KwlpZiAoIXQtPmlzYXR0ciAmJiB0LT5wcmltYXJ5KQorCQl0eXBlX3ZhbF90b19zdHJ1Y3Rb dC0+dmFsdWUtMV0gPSB0OworCXJldHVybiAwOyAvKiBhbHdheXMgc3VjY2VzcyAqLworfQor Cit2b2lkIGdldF9jaGlsZF90eXBlcyhlYml0bWFwX3QgKnNldCwgdHlwZV9kYXR1bV90ICp0 ZCwgaW50IHJlY3VyKQoreworCXR5cGVfZGF0dW1fdCAqY2hpbGQ7CisJaW50IGk7CisKKwlp ZiAoIXRkLT5pc2F0dHIgJiYgIXRkLT5wcmltYXJ5KQorCQl0ZCA9IGdldF90eXBlKHRkLT52 YWx1ZSk7CisKKwlpZiAoIXRkLT5pc2F0dHIpIHsKKwkJZWJpdG1hcF9zZXRfYml0KHNldCwg dGQtPnZhbHVlIC0gMSwgMSk7CisJCWlmICghcmVjdXIpCisJCQlyZXR1cm47CisJCWZvciAo aSA9IGViaXRtYXBfc3RhcnRiaXQoJnRkLT50eXBlcyk7IGkgPCBlYml0bWFwX2xlbmd0aCgm dGQtPnR5cGVzKTsgaSsrKSB7CisJCQlpZiAoIWViaXRtYXBfZ2V0X2JpdCgmdGQtPnR5cGVz LCBpKSkKKwkJCQljb250aW51ZTsKKwkJCWNoaWxkID0gdHlwZV92YWxfdG9fc3RydWN0W2ld OworCQkJZ2V0X2NoaWxkX3R5cGVzKHNldCwgY2hpbGQsIHJlY3VyKTsKKwkJfQorCX0gZWxz ZSB7CisJCWZvciAoaSA9IGViaXRtYXBfc3RhcnRiaXQoJnRkLT50eXBlcyk7IGkgPCBlYml0 bWFwX2xlbmd0aCgmdGQtPnR5cGVzKTsgaSsrKSB7CisJCQlpZiAoIWViaXRtYXBfZ2V0X2Jp dCgmdGQtPnR5cGVzLCBpKSkKKwkJCQljb250aW51ZTsKKwkJCWlmICghcmVjdXIpIHsKKwkJ CQllYml0bWFwX3NldF9iaXQoc2V0LCBpLCAxKTsKKwkJCX0gZWxzZSB7CisJCQkJY2hpbGQg PSB0eXBlX3ZhbF90b19zdHJ1Y3RbaV07CisJCQkJZ2V0X2NoaWxkX3R5cGVzKHNldCwgY2hp bGQsIHJlY3VyKTsKKwkJCX0KKwkJfQorCX0KK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogewogCXNlY3VyaXR5X2NsYXNzX3QgdGNsYXNzOwpAQCAtNDU3LDcgKzUx OSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAl1bnNpZ25lZCBpbnQg YmluYXJ5ID0gMCwgZGVidWcgPSAwOwogCXN0cnVjdCB2YWxfdG9fbmFtZSB2OwogCWludCBy ZXQsIGNoLCBmZDsKLQl1bnNpZ25lZCBpbnQgbmVsLCB1cmV0OworCXVuc2lnbmVkIGludCBu ZWwsIGxlbiwgdXJldDsKIAlzdHJ1Y3Qgc3RhdCBzYjsKIAl2b2lkICptYXA7CiAJRklMRSAq b3V0ZnAgPSBOVUxMOwpAQCAtNTk0LDYgKzY1NiwxOCBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiAgZXJyb3IocykgZW5jb3Vu dGVyZWQgd2hpbGUgcGFyc2luZyBjb25maWd1cmF0aW9uXG4iLCBhcmd2WzBdKTsKIAkJCWV4 aXQoMSk7CiAJCX0KKworCQkvKiBjb25zdHJ1Y3Rpb24gb2YgdHlwZV92YWxfdG9fc3RydWN0 ICovCisJCW51bV90eXBlX3ZhbF90b19zdHJ1Y3QgPSBwb2xpY3lkYnAtPnBfdHlwZXMubnBy aW07CisJCWxlbiA9IHNpemVvZih0eXBlX2RhdHVtX3QgKikgKiBudW1fdHlwZV92YWxfdG9f c3RydWN0OworCQl0eXBlX3ZhbF90b19zdHJ1Y3QgPSAodHlwZV9kYXR1bV90ICoqKW1hbGxv YyhsZW4pOworCQlpZiAoIXR5cGVfdmFsX3RvX3N0cnVjdCkgeworCQkJZnByaW50ZihzdGRl cnIsICJ0eXBlX3ZhbF90b19zdHJ1Y3Q6IG91dCBvZiBtZW1vcnlcbiIpOworCQkJZXhpdCgx KTsKKwkJfQorCQltZW1zZXQodHlwZV92YWxfdG9fc3RydWN0LCAwLCBsZW4pOworCQloYXNo dGFiX21hcChwb2xpY3lkYnAtPnBfdHlwZXMudGFibGUsIHR5cGVfdmFsX3RvX3N0cnVjdF9o ZWxwZXIsIE5VTEwpOworCiAJCXJld2luZCh5eWluKTsKIAkJcG9saWN5ZGJfbGluZW5vID0g MTsKIAkJc291cmNlX2ZpbGVbMF0gPSAnXDAnOwotLS0gY2hlY2twb2xpY3ktMS4yMy4xL3Bv bGljeV9zY2FuLmwJMjAwNS0wNC0xNCAxNjoyNzozNC4wMDAwMDAwMDAgLTA0MDAKKysrIGNo ZWNrcG9saWN5LTEuMjMuMS1leHRlbmRzL3BvbGljeV9zY2FuLmwJMjAwNS0wNC0xNiAxNjoz Nzo0Mi4wMDAwMDAwMDAgLTA0MDAKQEAgLTY5LDYgKzY5LDggQEAgVFlQRUFMSUFTIHwKIHR5 cGVhbGlhcwkJCXsgcmV0dXJuKFRZUEVBTElBUyk7IH0KIFRZUEVBVFRSSUJVVEUgfAogdHlw ZWF0dHJpYnV0ZQkJCXsgcmV0dXJuKFRZUEVBVFRSSUJVVEUpOyB9CitUWVBFRVhURU5EUyB8 Cit0eXBlZXh0ZW5kcwkJCXsgcmV0dXJuKFRZUEVFWFRFTkRTKTsgfQogVFlQRSB8CiB0eXBl CQkJCXsgcmV0dXJuKFRZUEUpOyB9CiBCT09MIHwKQEAgLTc5LDYgKzgxLDggQEAgRUxTRSB8 CiBlbHNlCQkJCXsgcmV0dXJuKEVMU0UpOyB9CiBBTElBUyB8CiBhbGlhcwkJCQl7IHJldHVy bihBTElBUyk7IH0KK0VYVEVORFMgfAorZXh0ZW5kcwkJCQl7IHJldHVybihFWFRFTkRTKTsg fQogQVRUUklCVVRFIHwKIGF0dHJpYnV0ZQkJCXsgcmV0dXJuKEFUVFJJQlVURSk7IH0KIFRZ UEVfVFJBTlNJVElPTiB8CkBAIC0yMTYsNyArMjIwLDggQEAgSDIJCQkJeyByZXR1cm4oSDIp OyB9CiAiLiIgfAogIl0iIHwKICJ+IiB8Ci0iKiIJCQkJeyByZXR1cm4oeXl0ZXh0WzBdKTsg fSAKKyIqIiB8CisiQCIJCQkJeyByZXR1cm4oeXl0ZXh0WzBdKTsgfSAKIC4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeyB5eXdhcm4oInVucmVjb2duaXplZCBjaGFyYWN0ZXIi KTt9CiAlJQogaW50IHl5ZXJyb3IoY2hhciAqbXNnKQotLS0gY2hlY2twb2xpY3ktMS4yMy4x L3BvbGljeV9wYXJzZS55CTIwMDUtMDQtMTQgMTY6Mjc6MzQuMDAwMDAwMDAwIC0wNDAwCisr KyBjaGVja3BvbGljeS0xLjIzLjEtZXh0ZW5kcy9wb2xpY3lfcGFyc2UueQkyMDA1LTA0LTE2 IDE2OjM3OjQyLjAwMDAwMDAwMCAtMDQwMApAQCAtMTksNiArMTksMTEgQEAKICAqCXRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHZlcnNpb24gMi4KICAqLwogCisvKiBVcGRhdGVk OiBLYWlHYWkgS29oZWksIDxrYWlnYWlAYWsuanAubmVjLmNvbT4KKyAqICAgICAgQWRkZWQg aW5oZXJpdGVkIHR5cGUgZXh0ZW5zaW9ucyBhbmQgJ0AnIHByZWZpeC4gKDIwMDUvMDMvMjEp CisgKi8KKworCiAvKiBGTEFTSyAqLwogCiAlewpAQCAtNzYsOCArODEsOCBAQCBzdGF0aWMg aW50IGRlZmluZV9jYXRlZ29yeSh2b2lkKTsKIHN0YXRpYyBpbnQgZGVmaW5lX2xldmVsKHZv aWQpOwogc3RhdGljIGludCBkZWZpbmVfYXR0cmliKHZvaWQpOwogc3RhdGljIGludCBkZWZp bmVfdHlwZWFsaWFzKHZvaWQpOwotc3RhdGljIGludCBkZWZpbmVfdHlwZWF0dHJpYnV0ZSh2 b2lkKTsKLXN0YXRpYyBpbnQgZGVmaW5lX3R5cGUoaW50IGFsaWFzKTsKK3N0YXRpYyBpbnQg ZGVmaW5lX3R5cGVhdHRyaWJ1dGUoaW50IGV4dGVuZHMpOworc3RhdGljIGludCBkZWZpbmVf dHlwZShpbnQgYWxpYXMsIGludCBleHRlbmRzKTsKIHN0YXRpYyBpbnQgZGVmaW5lX2NvbXB1 dGVfdHlwZShpbnQgd2hpY2gpOwogc3RhdGljIGludCBkZWZpbmVfdGVfYXZ0YWIoaW50IHdo aWNoKTsKIHN0YXRpYyBpbnQgZGVmaW5lX3JvbGVfdHlwZXModm9pZCk7CkBAIC0xMzQsOSAr MTM5LDExIEBAIHN0YXRpYyBpbnQgZGVmaW5lX2lwdjZfbm9kZV9jb250ZXh0KHZvaWQKICV0 b2tlbiBST0xFUwogJXRva2VuIFRZUEVBTElBUwogJXRva2VuIFRZUEVBVFRSSUJVVEUKKyV0 b2tlbiBUWVBFRVhURU5EUwogJXRva2VuIFRZUEUKICV0b2tlbiBUWVBFUwogJXRva2VuIEFM SUFTCisldG9rZW4gRVhURU5EUwogJXRva2VuIEFUVFJJQlVURQogJXRva2VuIEJPT0wKICV0 b2tlbiBJRgpAQCAtMjg5LDYgKzI5Niw3IEBAIHRlX2RlY2wJCQk6IGF0dHJpYnV0ZV9kZWYK ICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHlwZV9kZWYKICAgICAgICAgICAgICAgICAg ICAgICAgIHwgdHlwZWFsaWFzX2RlZgogICAgICAgICAgICAgICAgICAgICAgICAgfCB0eXBl YXR0cmlidXRlX2RlZgorCQkJfCB0eXBlZXh0ZW5kc19kZWYKICAgICAgICAgICAgICAgICAg ICAgICAgIHwgYm9vbF9kZWYKICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNpdGlv bl9kZWYKICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmFuZ2VfdHJhbnNfZGVmCkBAIC0y OTksMTkgKzMwNywyOCBAQCBhdHRyaWJ1dGVfZGVmICAgICAgICAgICA6IEFUVFJJQlVURSBp ZGVuCiAgICAgICAgICAgICAgICAgICAgICAgICB7IGlmIChkZWZpbmVfYXR0cmliKCkpIHJl dHVybiAtMTt9CiAgICAgICAgICAgICAgICAgICAgICAgICA7CiB0eXBlX2RlZgkJOiBUWVBF IGlkZW50aWZpZXIgYWxpYXNfZGVmIG9wdF9hdHRyX2xpc3QgJzsnCi0gICAgICAgICAgICAg ICAgICAgICAgICB7aWYgKGRlZmluZV90eXBlKDEpKSByZXR1cm4gLTE7fQorICAgICAgICAg ICAgICAgICAgICAgICAge2lmIChkZWZpbmVfdHlwZSgxLCAwKSkgcmV0dXJuIC0xO30KIAkg ICAgICAgICAgICAgICAgfCBUWVBFIGlkZW50aWZpZXIgb3B0X2F0dHJfbGlzdCAnOycKLSAg ICAgICAgICAgICAgICAgICAgICAgIHtpZiAoZGVmaW5lX3R5cGUoMCkpIHJldHVybiAtMTt9 CisgICAgICAgICAgICAgICAgICAgICAgICB7aWYgKGRlZmluZV90eXBlKDAsIDApKSByZXR1 cm4gLTE7fQorCQkJfCBUWVBFIGlkZW50aWZpZXIgYWxpYXNfZGVmIG9wdF9leHRlbmRzX2xp c3QgJzsnCisJCQl7aWYgKGRlZmluZV90eXBlKDEsIDEpKSByZXR1cm4gLTE7fQorCQkJfCBU WVBFIGlkZW50aWZpZXIgb3B0X2V4dGVuZHNfbGlzdCAnOycKKwkJCXtpZiAoZGVmaW5lX3R5 cGUoMCwgMSkpIHJldHVybiAtMTt9CiAgICAgCQkJOwogdHlwZWFsaWFzX2RlZiAgICAgICAg ICAgOiBUWVBFQUxJQVMgaWRlbnRpZmllciBhbGlhc19kZWYgJzsnCiAJCQl7aWYgKGRlZmlu ZV90eXBlYWxpYXMoKSkgcmV0dXJuIC0xO30KIAkJCTsKIHR5cGVhdHRyaWJ1dGVfZGVmCTog VFlQRUFUVFJJQlVURSBpZGVudGlmaWVyIGlkX2NvbW1hX2xpc3QgJzsnCi0JCQl7aWYgKGRl ZmluZV90eXBlYXR0cmlidXRlKCkpIHJldHVybiAtMTt9CisJCQl7aWYgKGRlZmluZV90eXBl YXR0cmlidXRlKDApKSByZXR1cm4gLTE7fQorCQkJOwordHlwZWV4dGVuZHNfZGVmCQk6IFRZ UEVFWFRFTkRTIGlkZW50aWZpZXIgRVhURU5EUyBpZF9jb21tYV9saXN0ICc7JworCQkJe2lm IChkZWZpbmVfdHlwZWF0dHJpYnV0ZSgxKSkgcmV0dXJuIC0xO30KIAkJCTsKIG9wdF9hdHRy X2xpc3QgICAgICAgICAgIDogJywnIGlkX2NvbW1hX2xpc3QKIAkJCXwgCiAJCQk7CitvcHRf ZXh0ZW5kc19saXN0CTogRVhURU5EUyBpZF9jb21tYV9saXN0CisJCQk7CiBib29sX2RlZiAg ICAgICAgICAgICAgICA6IEJPT0wgaWRlbnRpZmllciBib29sX3ZhbCAnOycKICAgICAgICAg ICAgICAgICAgICAgICAgIHtpZiAoZGVmaW5lX2Jvb2woKSkgcmV0dXJuIC0xO30KICAgICAg ICAgICAgICAgICAgICAgICAgIDsKQEAgLTUxMywxMyArNTMwLDEzIEBAIGNleHByX3ByaW0J CTogVTEgb3AgVTIKIAkJCXwgUjMgb3AgeyBpZiAoaW5zZXJ0X3NlcGFyYXRvcigxKSkgcmV0 dXJuIC0xOyB9IG5hbWVzX3B1c2gKIAkJCXsgJCQgPSBkZWZpbmVfY2V4cHIoQ0VYUFJfTkFN RVMsIChDRVhQUl9ST0xFIHwgQ0VYUFJfWFRBUkdFVCksICQyKTsKIAkJCSAgaWYgKCQkID09 IDApIHJldHVybiAtMTsgfQotCQkJfCBUMSBvcCB7IGlmIChpbnNlcnRfc2VwYXJhdG9yKDEp KSByZXR1cm4gLTE7IH0gbmFtZXNfcHVzaAorCQkJfCBUMSBvcCB7IGlmIChpbnNlcnRfc2Vw YXJhdG9yKDEpKSByZXR1cm4gLTE7IH0gdHlwZV9uYW1lc19wdXNoCiAJCQl7ICQkID0gZGVm aW5lX2NleHByKENFWFBSX05BTUVTLCBDRVhQUl9UWVBFLCAkMik7CiAJCQkgIGlmICgkJCA9 PSAwKSByZXR1cm4gLTE7IH0KLQkJCXwgVDIgb3AgeyBpZiAoaW5zZXJ0X3NlcGFyYXRvcigx KSkgcmV0dXJuIC0xOyB9IG5hbWVzX3B1c2gKKwkJCXwgVDIgb3AgeyBpZiAoaW5zZXJ0X3Nl cGFyYXRvcigxKSkgcmV0dXJuIC0xOyB9IHR5cGVfbmFtZXNfcHVzaAogCQkJeyAkJCA9IGRl ZmluZV9jZXhwcihDRVhQUl9OQU1FUywgKENFWFBSX1RZUEUgfCBDRVhQUl9UQVJHRVQpLCAk Mik7CiAJCQkgIGlmICgkJCA9PSAwKSByZXR1cm4gLTE7IH0KLQkJCXwgVDMgb3AgeyBpZiAo aW5zZXJ0X3NlcGFyYXRvcigxKSkgcmV0dXJuIC0xOyB9IG5hbWVzX3B1c2gKKwkJCXwgVDMg b3AgeyBpZiAoaW5zZXJ0X3NlcGFyYXRvcigxKSkgcmV0dXJuIC0xOyB9IHR5cGVfbmFtZXNf cHVzaAogCQkJeyAkJCA9IGRlZmluZV9jZXhwcihDRVhQUl9OQU1FUywgKENFWFBSX1RZUEUg fCBDRVhQUl9YVEFSR0VUKSwgJDIpOwogCQkJICBpZiAoJCQgPT0gMCkgcmV0dXJuIC0xOyB9 CiAJCQl8IFNBTUVVU0VSCkBAIC01MzQsMTAgKzU1MSwxMCBAQCBjZXhwcl9wcmltCQk6IFUx IG9wIFUyCiAJCQl8IFJPTEUgcm9sZV9tbHNfb3AKIAkJCXsgJCQgPSBkZWZpbmVfY2V4cHIo Q0VYUFJfQVRUUiwgQ0VYUFJfUk9MRSwgJDIpOwogCQkJICBpZiAoJCQgPT0gMCkgcmV0dXJu IC0xOyB9Ci0JCQl8IFNPVVJDRSBUWVBFIHsgaWYgKGluc2VydF9zZXBhcmF0b3IoMSkpIHJl dHVybiAtMTsgfSBuYW1lc19wdXNoCisJCQl8IFNPVVJDRSBUWVBFIHsgaWYgKGluc2VydF9z ZXBhcmF0b3IoMSkpIHJldHVybiAtMTsgfSB0eXBlX25hbWVzX3B1c2gKIAkJCXsgJCQgPSBk ZWZpbmVfY2V4cHIoQ0VYUFJfTkFNRVMsIENFWFBSX1RZUEUsIENFWFBSX0VRKTsKIAkJCSAg aWYgKCQkID09IDApIHJldHVybiAtMTsgfQotCQkJfCBUQVJHRVQgVFlQRSB7IGlmIChpbnNl cnRfc2VwYXJhdG9yKDEpKSByZXR1cm4gLTE7IH0gbmFtZXNfcHVzaAorCQkJfCBUQVJHRVQg VFlQRSB7IGlmIChpbnNlcnRfc2VwYXJhdG9yKDEpKSByZXR1cm4gLTE7IH0gdHlwZV9uYW1l c19wdXNoCiAJCQl7ICQkID0gZGVmaW5lX2NleHByKENFWFBSX05BTUVTLCAoQ0VYUFJfVFlQ RSB8IENFWFBSX1RBUkdFVCksIENFWFBSX0VRKTsKIAkJCSAgaWYgKCQkID09IDApIHJldHVy biAtMTsgfQogCQkJfCBMMSByb2xlX21sc19vcCBMMgpAQCAtNjkwLDIwICs3MDcsMjcgQEAg dGlsZGUJCQk6ICd+JwogCQkJOwogYXN0ZXJpc2sJCTogJyonCiAJCQk7Ci1uYW1lcyAgICAg ICAgICAgCTogaWRlbnRpZmllcgorYXRtYXJrCQkJOiAnQCcKKwkJCTsKK3R5cGVfaWRlbnRp ZmllcgkJOiBJREVOVElGSUVSCisJCQl7IGlmIChpbnNlcnRfaWQoeXl0ZXh0LCAwKSkgcmV0 dXJuIC0xOyB9CisJCQl8IGF0bWFyayBJREVOVElGSUVSCisJCQl7IGlmIChpbnNlcnRfaWQo IkAiLCAwKSB8fCBpbnNlcnRfaWQoeXl0ZXh0LCAwKSkgcmV0dXJuIC0xOyB9CisJCQk7Citu YW1lcyAgICAgICAgICAgCTogdHlwZV9pZGVudGlmaWVyCiAJCQl7IGlmIChpbnNlcnRfc2Vw YXJhdG9yKDApKSByZXR1cm4gLTE7IH0KIAkJCXwgbmVzdGVkX2lkX3NldAogCQkJeyBpZiAo aW5zZXJ0X3NlcGFyYXRvcigwKSkgcmV0dXJuIC0xOyB9CiAJCQl8IGFzdGVyaXNrCiAgICAg ICAgICAgICAgICAgICAgICAgICB7IGlmIChpbnNlcnRfaWQoIioiLCAwKSkgcmV0dXJuIC0x OyAKIAkJCSAgaWYgKGluc2VydF9zZXBhcmF0b3IoMCkpIHJldHVybiAtMTsgfQotCQkJfCB0 aWxkZSBpZGVudGlmaWVyCisJCQl8IHRpbGRlIHR5cGVfaWRlbnRpZmllcgogICAgICAgICAg ICAgICAgICAgICAgICAgeyBpZiAoaW5zZXJ0X2lkKCJ+IiwgMCkpIHJldHVybiAtMTsKIAkJ CSAgaWYgKGluc2VydF9zZXBhcmF0b3IoMCkpIHJldHVybiAtMTsgfQogCQkJfCB0aWxkZSBu ZXN0ZWRfaWRfc2V0Ci0JIAkJeyBpZiAoaW5zZXJ0X2lkKCJ+IiwgMCkpIHJldHVybiAtMTsg CisJCQl7IGlmIChpbnNlcnRfaWQoIn4iLCAwKSkgcmV0dXJuIC0xOwogCQkJICBpZiAoaW5z ZXJ0X3NlcGFyYXRvcigwKSkgcmV0dXJuIC0xOyB9Ci0gICAgICAgICAgICAgICAgICAgICAg ICB8IGlkZW50aWZpZXIgJy0nIHsgaWYgKGluc2VydF9pZCgiLSIsIDApKSByZXR1cm4gLTE7 IH0gaWRlbnRpZmllciAKKwkJCXwgdHlwZV9pZGVudGlmaWVyICctJyB7IGlmIChpbnNlcnRf aWQoIi0iLCAwKSkgcmV0dXJuIC0xOyB9IHR5cGVfaWRlbnRpZmllciAKIAkJCXsgaWYgKGlu c2VydF9zZXBhcmF0b3IoMCkpIHJldHVybiAtMTsgfQogCQkJOwogdGlsZGVfcHVzaCAgICAg ICAgICAgICAgOiB0aWxkZQpAQCAtNzEyLDYgKzczNiwxOSBAQCB0aWxkZV9wdXNoICAgICAg ICAgICAgICA6IHRpbGRlCiBhc3Rlcmlza19wdXNoICAgICAgICAgICA6IGFzdGVyaXNrCiAg ICAgICAgICAgICAgICAgICAgICAgICB7IGlmIChpbnNlcnRfaWQoIioiLCAxKSkgcmV0dXJu IC0xOyB9CiAJCQk7Cit0eXBlX25hbWVzX3B1c2gJCTogdHlwZV9pZGVudGlmaWVyX3B1c2gK KwkJCXwgJ3snIHR5cGVfaWRlbnRpZmllcl9saXN0X3B1c2ggJ30nCisJCQl8IHRpbGRlX3B1 c2ggdHlwZV9pZGVudGlmaWVyX3B1c2gKKwkJCXwgdGlsZGVfcHVzaCAneycgdHlwZV9pZGVu dGlmaWVyX2xpc3RfcHVzaCAnfScKKwkJCTsKK3R5cGVfaWRlbnRpZmllcl9saXN0X3B1c2gJ OiB0eXBlX2lkZW50aWZpZXJfcHVzaAorCQkJCXwgdHlwZV9pZGVudGlmaWVyX2xpc3RfcHVz aCB0eXBlX2lkZW50aWZpZXJfcHVzaAorCQkJCTsKK3R5cGVfaWRlbnRpZmllcl9wdXNoCTog SURFTlRJRklFUgorCQkJeyBpZiAoaW5zZXJ0X2lkKHl5dGV4dCwxKSkgcmV0dXJuIC0xOyB9 CisJCQl8IGF0bWFyayBJREVOVElGSUVSCisJCQl7IGlmIChpbnNlcnRfaWQoeXl0ZXh0LDEp fHxpbnNlcnRfaWQoIkAiLDEpKSByZXR1cm4gLTE7fQorCQkJOwogbmFtZXNfcHVzaAkJOiBp ZGVudGlmaWVyX3B1c2gKIAkJCXwgJ3snIGlkZW50aWZpZXJfbGlzdF9wdXNoICd9JwogCQkJ fCBhc3Rlcmlza19wdXNoCkBAIC03MzEsNyArNzY4LDkgQEAgbmVzdGVkX2lkX3NldCAgICAg ICAgICAgOiAneycgbmVzdGVkX2lkXwogICAgICAgICAgICAgICAgICAgICAgICAgOwogbmVz dGVkX2lkX2xpc3QgICAgICAgICAgOiBuZXN0ZWRfaWRfZWxlbWVudCB8IG5lc3RlZF9pZF9s aXN0IG5lc3RlZF9pZF9lbGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICA7Ci1uZXN0 ZWRfaWRfZWxlbWVudCAgICAgICA6IGlkZW50aWZpZXIgfCAnLScgeyBpZiAoaW5zZXJ0X2lk KCItIiwgMCkpIHJldHVybiAtMTsgfSBpZGVudGlmaWVyIHwgbmVzdGVkX2lkX3NldAorbmVz dGVkX2lkX2VsZW1lbnQgICAgICAgOiB0eXBlX2lkZW50aWZpZXIKKwkJCXwgJy0nIHsgaWYg KGluc2VydF9pZCgiLSIsIDApKSByZXR1cm4gLTE7IH0gdHlwZV9pZGVudGlmaWVyCisJCQl8 IG5lc3RlZF9pZF9zZXQKICAgICAgICAgICAgICAgICAgICAgICAgIDsKIGlkZW50aWZpZXIJ CTogSURFTlRJRklFUgogCQkJeyBpZiAoaW5zZXJ0X2lkKHl5dGV4dCwwKSkgcmV0dXJuIC0x OyB9CkBAIC0xNTY0LDEwICsxNjAzLDM1IEBAIHN0YXRpYyBpbnQgZGVmaW5lX3R5cGVhbGlh cyh2b2lkKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGRlZmluZV90eXBlYXR0cmli dXRlKHZvaWQpCitzdGF0aWMgaW50IGNoZWNrX2xvb3BfaW5oZXJpdGFuY2UodHlwZV9kYXR1 bV90ICp0ZCwgaW50IHBhcmVudF90eXBldmFsKQoreworCXR5cGVfZGF0dW1fdCAqY2hpbGQ7 CisJaW50IGk7CisKKwkvKiBhdHRyaWJ1dGUgbmV2ZXIgaGF2ZSBpbmhlcml0YW5jZSBsb29w ICovCisJaWYgKHRkLT5pc2F0dHIpCisJCXJldHVybiAwOworCisJZm9yIChpID0gZWJpdG1h cF9zdGFydGJpdCgmdGQtPnR5cGVzKTsgaSA8IGViaXRtYXBfbGVuZ3RoKCZ0ZC0+dHlwZXMp OyBpKyspIHsKKwkJaWYgKCFlYml0bWFwX2dldF9iaXQoJnRkLT50eXBlcywgaSkpCisJCQlj b250aW51ZTsKKwkJaWYgKCBwYXJlbnRfdHlwZXZhbCAtIDEgPT0gaSApCisJCQlyZXR1cm4g LTE7IC8qIExvb3AgaW5oZXJpdGFuY2UgZGV0ZWN0ZWQgKi8KKwkJY2hpbGQgPSBnZXRfdHlw ZShpKzEpOworCQlpZiAoIWNoaWxkKSB7CisJCQl5eWVycm9yKCJCVUc6IHVucmVnaXN0ZXJl ZCB0eXBlIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJaWYgKGNoZWNrX2xvb3BfaW5oZXJp dGFuY2UoY2hpbGQsIHBhcmVudF90eXBldmFsKSkKKwkJCXJldHVybiAtMTsKKwl9CisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGVmaW5lX3R5cGVhdHRyaWJ1dGUoaW50IGV4dGVu ZHMpCiB7CiAJY2hhciAqaWQ7Ci0JdHlwZV9kYXR1bV90ICp0LCAqYXR0cjsKKwl0eXBlX2Rh dHVtX3QgKnQsICppbmhlcml0OwogCiAJaWYgKHBhc3MgPT0gMikgewogCQl3aGlsZSAoKGlk ID0gcXVldWVfcmVtb3ZlKGlkX3F1ZXVlKSkpCkBAIC0xNTkwLDE2ICsxNjU0LDE3IEBAIHN0 YXRpYyBpbnQgZGVmaW5lX3R5cGVhdHRyaWJ1dGUodm9pZCkKIAl9CiAKIAl3aGlsZSAoKGlk ID0gcXVldWVfcmVtb3ZlKGlkX3F1ZXVlKSkpIHsKLQkJYXR0ciA9IGhhc2h0YWJfc2VhcmNo KHBvbGljeWRicC0+cF90eXBlcy50YWJsZSwgaWQpOwotCQlpZiAoIWF0dHIpIHsKLQkJCXNw cmludGYoZXJyb3Jtc2csICJhdHRyaWJ1dGUgJXMgaXMgbm90IGRlY2xhcmVkIiwgaWQpOwor CQlpbmhlcml0ID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGJwLT5wX3R5cGVzLnRhYmxlLCBp ZCk7CisJCWlmICghaW5oZXJpdCkgeworCQkJc3ByaW50ZihlcnJvcm1zZywgIiVzYXR0cmli dXRlICVzIGlzIG5vdCBkZWNsYXJlZCIsCisJCQkJKGV4dGVuZHMgPyAidHlwZS8iIDogIiIp LCBpZCk7CiAJCQkvKiB0cmVhdCBpdCBhcyBhIGZhdGFsIGVycm9yICovCiAJCQl5eWVycm9y KGVycm9ybXNnKTsKIAkJCWZyZWUoaWQpOwogCQkJcmV0dXJuIC0xOwogCQl9CiAKLQkJaWYg KCFhdHRyLT5pc2F0dHIpIHsKKwkJaWYgKCFleHRlbmRzICYmICFpbmhlcml0LT5pc2F0dHIp IHsKIAkJCXNwcmludGYoZXJyb3Jtc2csICIlcyBpcyBhIHR5cGUsIG5vdCBhbiBhdHRyaWJ1 dGUiLCBpZCk7CiAJCQl5eWVycm9yKGVycm9ybXNnKTsKIAkJCWZyZWUoaWQpOwpAQCAtMTYw OCw3ICsxNjczLDEyIEBAIHN0YXRpYyBpbnQgZGVmaW5lX3R5cGVhdHRyaWJ1dGUodm9pZCkK IAogCQlmcmVlKGlkKTsKIAotCQlpZiAoZWJpdG1hcF9zZXRfYml0KCZhdHRyLT50eXBlcywg KHQtPnZhbHVlIC0gMSksIFRSVUUpKSB7CisJCWlmIChjaGVja19sb29wX2luaGVyaXRhbmNl KHQsIGluaGVyaXQtPnZhbHVlKSkgeworCQkJeXllcnJvcigiaW5oZXJpdGFuY2UgbG9vcCBp cyBkZXRlY3RlZCIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJaWYgKGViaXRtYXBfc2V0 X2JpdCgmaW5oZXJpdC0+dHlwZXMsICh0LT52YWx1ZSAtIDEpLCBUUlVFKSkgewogCQkJeXll cnJvcigib3V0IG9mIG1lbW9yeSIpOwogCQkJcmV0dXJuIC0xOwogCQl9CkBAIC0xNjE3LDEw ICsxNjg3LDEwIEBAIHN0YXRpYyBpbnQgZGVmaW5lX3R5cGVhdHRyaWJ1dGUodm9pZCkKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkZWZpbmVfdHlwZShpbnQgYWxpYXMpCitzdGF0 aWMgaW50IGRlZmluZV90eXBlKGludCBhbGlhcywgaW50IGV4dGVuZHMpCiB7CiAJY2hhciAq aWQ7Ci0JdHlwZV9kYXR1bV90ICpkYXR1bSwgKmFsaWFzZGF0dW0sICphdHRyOworCXR5cGVf ZGF0dW1fdCAqZGF0dW0sICphbGlhc2RhdHVtLCAqaW5oZXJpdDsKIAlpbnQgcmV0LCBuZXdh dHRyID0gMDsKIAogCkBAIC0xNjk4LDkgKzE3NjgsMTAgQEAgc3RhdGljIGludCBkZWZpbmVf dHlwZShpbnQgYWxpYXMpCiAJfQogCiAJd2hpbGUgKChpZCA9IHF1ZXVlX3JlbW92ZShpZF9x dWV1ZSkpKSB7Ci0JCWF0dHIgPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYnAtPnBfdHlwZXMu dGFibGUsIGlkKTsKLQkJaWYgKCFhdHRyKSB7Ci0JCQlzcHJpbnRmKGVycm9ybXNnLCAiYXR0 cmlidXRlICVzIGlzIG5vdCBkZWNsYXJlZCIsIGlkKTsKKwkJaW5oZXJpdCA9IGhhc2h0YWJf c2VhcmNoKHBvbGljeWRicC0+cF90eXBlcy50YWJsZSwgaWQpOworCQlpZiAoIWluaGVyaXQp IHsKKwkJCXNwcmludGYoZXJyb3Jtc2csICIlc2F0dHJpYnV0ZSAlcyBpcyBub3QgZGVjbGFy ZWQiLAorCQkJICAgICAgICAoZXh0ZW5kcyk/InR5cGUvIjoiIiwgaWQpOwogI2lmIDEKIAkJ CS8qIHRyZWF0IGl0IGFzIGEgZmF0YWwgZXJyb3IgKi8KIAkJCXl5ZXJyb3IoZXJyb3Jtc2cp OwpAQCAtMTcyOSw3ICsxODAwLDcgQEAgc3RhdGljIGludCBkZWZpbmVfdHlwZShpbnQgYWxp YXMpCiAJCQluZXdhdHRyID0gMDsKIAkJfQogCi0JCWlmICghYXR0ci0+aXNhdHRyKSB7CisJ CWlmICghZXh0ZW5kcyAmJiAhaW5oZXJpdC0+aXNhdHRyKSB7CiAJCQlzcHJpbnRmKGVycm9y bXNnLCAiJXMgaXMgYSB0eXBlLCBub3QgYW4gYXR0cmlidXRlIiwgaWQpOwogCQkJeXllcnJv cihlcnJvcm1zZyk7CiAJCQlyZXR1cm4gLTE7CkBAIC0xNzM4LDcgKzE4MDksNyBAQCBzdGF0 aWMgaW50IGRlZmluZV90eXBlKGludCBhbGlhcykKIAkJaWYgKCFuZXdhdHRyKQogCQkJZnJl ZShpZCk7CiAKLQkJZWJpdG1hcF9zZXRfYml0KCZhdHRyLT50eXBlcywgZGF0dW0tPnZhbHVl IC0gMSwgVFJVRSk7CisJCWViaXRtYXBfc2V0X2JpdCgmaW5oZXJpdC0+dHlwZXMsIGRhdHVt LT52YWx1ZSAtIDEsIFRSVUUpOwogCX0KIAogCXJldHVybiAwOwpAQCAtMTc4MCwxMSArMTg1 MSwxMyBAQCBzdGF0aWMgY2hhciAqdHlwZV92YWxfdG9fbmFtZSh1bnNpZ25lZCBpCiAKIHN0 YXRpYyBpbnQgc2V0X3R5cGVzKGViaXRtYXBfdCAqc2V0LAogCQkgICAgIGViaXRtYXBfdCAq bmVnc2V0LAorCQkgICAgIGViaXRtYXBfdCAqaW5oZXJpdCwKIAkJICAgICBjaGFyICppZCwK IAkJICAgICBpbnQgKmFkZCkKIHsKIAl0eXBlX2RhdHVtX3QgKnQ7CiAJdW5zaWduZWQgaW50 IGk7CisJZWJpdG1hcF90IHRlbXA7CiAKIAlpZiAoc3RyY21wKGlkLCAiKiIpID09IDApIHsK IAkJLyogc2V0IGFsbCB0eXBlcyBub3QgaW4gbmVnc2V0ICovCkBAIC0xODA5LDEwICsxODgy LDE2IEBAIHN0YXRpYyBpbnQgc2V0X3R5cGVzKGViaXRtYXBfdCAqc2V0LAogCX0KIAogCWlm IChzdHJjbXAoaWQsICItIikgPT0gMCkgewotCQkqYWRkID0gMDsKKwkJKmFkZCAmPSAweGZm ZmU7IC8qIGNsZWFyIGJpdCAwKi8KKwkJZnJlZShpZCk7CisJCXJldHVybiAwOworCX0KKwor CWlmIChzdHJjbXAoaWQsICJAIikgPT0gMCkgeworCQkqYWRkIHw9IDB4MDAwMjsgLyogc2V0 IGJpdCAxICovCiAJCWZyZWUoaWQpOwogCQlyZXR1cm4gMDsKLQl9CQorCX0KIAogCXQgPSBo YXNodGFiX3NlYXJjaChwb2xpY3lkYnAtPnBfdHlwZXMudGFibGUsIGlkKTsKIAlpZiAoIXQp IHsKQEAgLTE4MjEsNDIgKzE5MDAsMjggQEAgc3RhdGljIGludCBzZXRfdHlwZXMoZWJpdG1h cF90ICpzZXQsCiAJCWZyZWUoaWQpOwogCQlyZXR1cm4gLTE7CiAJfQorCWlmIChpbmhlcml0 ICYmICgoKmFkZCkmMHgwMDAyKSE9MCApCisJCWViaXRtYXBfc2V0X2JpdChpbmhlcml0LCB0 LT52YWx1ZSAtIDEsIFRSVUUpOwogCi0JaWYgKHQtPmlzYXR0cikgewotCQkvKiBzZXQgb3Ig Y2xlYXIgYWxsIHR5cGVzIHdpdGggdGhpcyBhdHRyaWJ1dGUsCi0JCSAgIGJ1dCBkbyBub3Qg c2V0IGFueXRoaW5nIGV4cGxpY2l0bHkgY2xlYXJlZCBwcmV2aW91c2x5ICovCi0JCWZvciAo aSA9IGViaXRtYXBfc3RhcnRiaXQoJnQtPnR5cGVzKTsgaSA8IGViaXRtYXBfbGVuZ3RoKCZ0 LT50eXBlcyk7IGkrKykgewotCQkJaWYgKCFlYml0bWFwX2dldF9iaXQoJnQtPnR5cGVzLCBp KSkgCi0JCQkJY29udGludWU7CQkKLQkJCWlmICghKCphZGQpKSB7Ci0JCQkJZWJpdG1hcF9z ZXRfYml0KHNldCwgaSwgRkFMU0UpOwotCQkJCWViaXRtYXBfc2V0X2JpdChuZWdzZXQsIGks IFRSVUUpOwotCQkJfSBlbHNlIGlmICghZWJpdG1hcF9nZXRfYml0KG5lZ3NldCwgaSkpIHsK LQkJCQllYml0bWFwX3NldF9iaXQoc2V0LCBpLCBUUlVFKTsKLSNpZiBWRVJCT1NFCi0JCQl9 IGVsc2UgewotCQkJCWNoYXIgKm5hbWUgPSB0eXBlX3ZhbF90b19uYW1lKGkrMSk7Ci0JCQkJ c3ByaW50ZihlcnJvcm1zZywgImlnbm9yaW5nICVzIGR1ZSB0byBwcmlvciAtJXMiLCBuYW1l LCBuYW1lKTsKLQkJCQl5eXdhcm4oZXJyb3Jtc2cpOwotI2VuZGlmCi0JCQl9Ci0JCX0KLQl9 IGVsc2UgewotCQkvKiBzZXQgb3IgY2xlYXIgb25lIHR5cGUsIGJ1dCBkbyBub3Qgc2V0IGFu eXRoaW5nCi0JCSAgIGV4cGxpY2l0bHkgY2xlYXJlZCBwcmV2aW91c2x5ICovCQotCQlpZiAo ISgqYWRkKSkgewotCQkJZWJpdG1hcF9zZXRfYml0KHNldCwgdC0+dmFsdWUgLSAxLCBGQUxT RSk7Ci0JCQllYml0bWFwX3NldF9iaXQobmVnc2V0LCB0LT52YWx1ZSAtIDEsIFRSVUUpOwot CQl9IGVsc2UgaWYgKCFlYml0bWFwX2dldF9iaXQobmVnc2V0LCB0LT52YWx1ZSAtIDEpKSB7 Ci0JCQllYml0bWFwX3NldF9iaXQoc2V0LCB0LT52YWx1ZSAtIDEsIFRSVUUpOworCWViaXRt YXBfaW5pdCgmdGVtcCk7CisJZ2V0X2NoaWxkX3R5cGVzKCZ0ZW1wLCB0LCAoKmFkZCkmMHgw MDAyKTsKKwlmb3IgKGkgPSBlYml0bWFwX3N0YXJ0Yml0KCZ0ZW1wKTsgaSA8IGViaXRtYXBf bGVuZ3RoKCZ0ZW1wKTsgaSsrKSB7CisJCWlmICghZWJpdG1hcF9nZXRfYml0KCZ0ZW1wLCBp KSkKKwkJCWNvbnRpbnVlOworCQlpZiAoISgoKmFkZCkmMHgwMDAxKSkgeworCQkJZWJpdG1h cF9zZXRfYml0KHNldCwgaSwgRkFMU0UpOworCQkJZWJpdG1hcF9zZXRfYml0KG5lZ3NldCwg aSwgVFJVRSk7CisJCX0gZWxzZSBpZiAoIWViaXRtYXBfZ2V0X2JpdChuZWdzZXQsIGkpKSB7 CisJCQllYml0bWFwX3NldF9iaXQoc2V0LCBpLCBUUlVFKTsKICNpZiBWRVJCT1NFCiAJCX0g ZWxzZSB7Ci0JCQlzcHJpbnRmKGVycm9ybXNnLCAiaWdub3JpbmcgJXMgZHVlIHRvIHByaW9y IC0lcyIsIGlkLCBpZCk7CisJCQljaGFyICpuYW1lID0gdHlwZV92YWxfdG9fbmFtZShpKzEp OworCQkJc3ByaW50ZihlcnJvcm1zZywgImlnbm9yaW5nICVzIGR1ZSB0byBwcmlvciAtJXMi LCBuYW1lLCBuYW1lKTsKIAkJCXl5d2FybihlcnJvcm1zZyk7CiAjZW5kaWYKIAkJfQogCX0K LQorCWViaXRtYXBfZGVzdHJveSgmdGVtcCk7CiAJZnJlZShpZCk7CiAJKmFkZCA9IDE7CiAJ cmV0dXJuIDA7CkBAIC0xODkzLDE0ICsxOTU4LDE0IEBAIHN0YXRpYyBpbnQgZGVmaW5lX2Nv bXB1dGVfdHlwZShpbnQgd2hpY2gKIAogCWViaXRtYXBfaW5pdCgmbmVnc2V0KTsKIAl3aGls ZSAoKGlkID0gcXVldWVfcmVtb3ZlKGlkX3F1ZXVlKSkpIHsKLQkJaWYgKHNldF90eXBlcygm c3R5cGVzLCAmbmVnc2V0LCBpZCwgJmFkZCkpCisJCWlmIChzZXRfdHlwZXMoJnN0eXBlcywg Jm5lZ3NldCwgTlVMTCwgaWQsICZhZGQpKQogCQkJcmV0dXJuIC0xOwogCX0KIAllYml0bWFw X2Rlc3Ryb3koJm5lZ3NldCk7CiAKIAllYml0bWFwX2luaXQoJm5lZ3NldCk7CiAJd2hpbGUg KChpZCA9IHF1ZXVlX3JlbW92ZShpZF9xdWV1ZSkpKSB7Ci0JCWlmIChzZXRfdHlwZXMoJnR0 eXBlcywgJm5lZ3NldCwgaWQsICZhZGQpKQorCQlpZiAoc2V0X3R5cGVzKCZ0dHlwZXMsICZu ZWdzZXQsIE5VTEwsIGlkLCAmYWRkKSkKIAkJCXJldHVybiAtMTsKIAl9CiAJZWJpdG1hcF9k ZXN0cm95KCZuZWdzZXQpOwpAQCAtMjAzMywxNCArMjA5OCwxNCBAQCBzdGF0aWMgY29uZF9h dl9saXN0X3QgKmRlZmluZV9jb25kX2NvbXB1CiAKIAllYml0bWFwX2luaXQoJm5lZ3NldCk7 CiAJd2hpbGUgKChpZCA9IHF1ZXVlX3JlbW92ZShpZF9xdWV1ZSkpKSB7Ci0JCWlmIChzZXRf dHlwZXMoJnN0eXBlcywgJm5lZ3NldCwgaWQsICZhZGQpKQorCQlpZiAoc2V0X3R5cGVzKCZz dHlwZXMsICZuZWdzZXQsIE5VTEwsIGlkLCAmYWRkKSkKIAkJCXJldHVybiAgQ09ORF9FUlI7 CiAJfQogCWViaXRtYXBfZGVzdHJveSgmbmVnc2V0KTsKIAogCWViaXRtYXBfaW5pdCgmbmVn c2V0KTsKIAl3aGlsZSAoKGlkID0gcXVldWVfcmVtb3ZlKGlkX3F1ZXVlKSkpIHsKLQkJaWYg KHNldF90eXBlcygmdHR5cGVzLCAmbmVnc2V0LCBpZCwgJmFkZCkpCisJCWlmIChzZXRfdHlw ZXMoJnR0eXBlcywgJm5lZ3NldCwgTlVMTCwgaWQsICZhZGQpKQogCQkJcmV0dXJuIENPTkRf RVJSOwogCX0KIAllYml0bWFwX2Rlc3Ryb3koJm5lZ3NldCk7CkBAIC0yNDQ1LDkgKzI1MTAs MTAgQEAgc3RhdGljIGNvbmRfYXZfbGlzdF90ICpkZWZpbmVfY29uZF90ZV9hdgogCWNvbmRf YXZfbGlzdF90ICpzdWJfbGlzdCwgKmZpbmFsX2xpc3QsICp0YWlsOwogCWNsYXNzX2RhdHVt X3QgKmNsYWRhdHVtOwogCXBlcm1fZGF0dW1fdCAqcGVyZGF0dW07Ci0JZWJpdG1hcF90IHN0 eXBlcywgdHR5cGVzLCB0Y2xhc3NlcywgbmVnc2V0OworCXR5cGVfZGF0dW1fdCAqdHlwZWRh dHVtOworCWViaXRtYXBfdCBzdHlwZXMsIHR0eXBlcywgdGNsYXNzZXMsIHRlbXAsIGluaGVy aXQsIG5lZ3NldDsKIAlhY2Nlc3NfdmVjdG9yX3QgKmF2cDsKLQlpbnQgaSwgaiwgaGljbGFz cywgc2VsZiA9IDAsIGFkZCA9IDE7CisJaW50IGksIGosIGssIGhpY2xhc3MsIHNlbGYgPSAw LCBhZGQgPSAxOwogCWludCBzdXBwcmVzcyA9IDA7CiAKIAlpZiAocGFzcyA9PSAxKSB7CkBA IC0yNDY1LDEwICsyNTMxLDExIEBAIHN0YXRpYyBjb25kX2F2X2xpc3RfdCAqZGVmaW5lX2Nv bmRfdGVfYXYKIAllYml0bWFwX2luaXQoJnN0eXBlcyk7CiAJZWJpdG1hcF9pbml0KCZ0dHlw ZXMpOwogCWViaXRtYXBfaW5pdCgmdGNsYXNzZXMpOworCWViaXRtYXBfaW5pdCgmaW5oZXJp dCk7CiAKIAllYml0bWFwX2luaXQoJm5lZ3NldCk7CiAJd2hpbGUgKChpZCA9IHF1ZXVlX3Jl bW92ZShpZF9xdWV1ZSkpKSB7Ci0JCWlmIChzZXRfdHlwZXMoJnN0eXBlcywgJm5lZ3NldCwg aWQsICZhZGQpKQorCQlpZiAoc2V0X3R5cGVzKCZzdHlwZXMsICZuZWdzZXQsICZpbmhlcml0 LCBpZCwgJmFkZCkpCiAJCQlyZXR1cm4gQ09ORF9FUlI7CiAJfQogCWViaXRtYXBfZGVzdHJv eSgmbmVnc2V0KTsKQEAgLTI0NzksNyArMjU0Niw3IEBAIHN0YXRpYyBjb25kX2F2X2xpc3Rf dCAqZGVmaW5lX2NvbmRfdGVfYXYKIAkJCXNlbGYgPSAxOwogCQkJY29udGludWU7CiAJCX0K LQkJaWYgKHNldF90eXBlcygmdHR5cGVzLCAmbmVnc2V0LCBpZCwgJmFkZCkpCisJCWlmIChz ZXRfdHlwZXMoJnR0eXBlcywgJm5lZ3NldCwgTlVMTCwgaWQsICZhZGQpKQogCQkJcmV0dXJu IENPTkRfRVJSOwogCX0KIAllYml0bWFwX2Rlc3Ryb3koJm5lZ3NldCk7CkBAIC0yNTY4LDE5 ICsyNjM1LDM2IEBAIHN0YXRpYyBjb25kX2F2X2xpc3RfdCAqZGVmaW5lX2NvbmRfdGVfYXYK IAkJZm9yIChpID0gZWJpdG1hcF9zdGFydGJpdCgmc3R5cGVzKTsgaSA8IGViaXRtYXBfbGVu Z3RoKCZzdHlwZXMpOyBpKyspIHsKIAkJCWlmICghZWJpdG1hcF9nZXRfYml0KCZzdHlwZXMs IGkpKSAKIAkJCQljb250aW51ZTsKLQkJCWlmIChzZWxmKSB7Ci0JCQkJaWYgKChzdWJfbGlz dCA9IGNvbmRfdGVfYXZ0YWJfaGVscGVyKHdoaWNoLCBpLCBpLCAmdGNsYXNzZXMsIGF2cCAp KSA9PSBDT05EX0VSUikKLQkJCQkJcmV0dXJuIENPTkRfRVJSOwotCQkJCWlmIChmaW5hbF9s aXN0KSB7Ci0JCQkJCXRhaWwtPm5leHQgPSBzdWJfbGlzdDsKLQkJCQkJd2hpbGUgKHRhaWwt Pm5leHQgIT0gTlVMTCkKLQkJCQkJCXRhaWwgPSB0YWlsLT5uZXh0OwotCQkJCX0gZWxzZSB7 Ci0JCQkJCWZpbmFsX2xpc3QgPSBzdWJfbGlzdDsKLQkJCQkJdGFpbCA9IGZpbmFsX2xpc3Q7 Ci0JCQkJCXdoaWxlICh0YWlsLT5uZXh0ICE9IE5VTEwpCi0JCQkJCQl0YWlsID0gdGFpbC0+ bmV4dDsKKwkJCXR5cGVkYXR1bSA9IGdldF90eXBlKGkrMSk7CisJCQlpZiAoIXR5cGVkYXR1 bSkKKwkJCQlyZXR1cm4gQ09ORF9FUlI7CisJCQllYml0bWFwX2luaXQoJnRlbXApOworCQkJ LyogSWYgdGhlIHNvdXJjZSB0eXBlIGlzIGdpdmVuIHdpdGggJ0AnIHByZWZpeCwKKwkJCSAg ICdzZWxmJyBhbHNvIGluY2x1ZGVzIG93biBjaGlsZCB0eXBlcy4gKi8KKwkJCWdldF9jaGls ZF90eXBlcygmdGVtcCwgdHlwZWRhdHVtLCBlYml0bWFwX2dldF9iaXQoJmluaGVyaXQsaSkp OworCQkJZm9yIChqID0gZWJpdG1hcF9zdGFydGJpdCgmdGVtcCk7IGogPCBlYml0bWFwX2xl bmd0aCgmdGVtcCk7IGorKykgeworCQkJCWlmKCFlYml0bWFwX2dldF9iaXQoJnRlbXAsIGop KQorCQkJCQljb250aW51ZTsKKwkJCQlmb3IgKGsgPSBlYml0bWFwX3N0YXJ0Yml0KCZ0ZW1w KTsgayA8IGViaXRtYXBfbGVuZ3RoKCZ0ZW1wKTsgaysrKSB7CisJCQkJCWlmKCFlYml0bWFw X2dldF9iaXQoJnRlbXAsIGspKQorCQkJCQkJY29udGludWU7CisJCQkJCXN1Yl9saXN0ID0g Y29uZF90ZV9hdnRhYl9oZWxwZXIod2hpY2gsIGosIGssICZ0Y2xhc3NlcywgYXZwKTsKKwkJ CQkJaWYgKHN1Yl9saXN0PT1DT05EX0VSUikgeworCQkJCQkJZWJpdG1hcF9kZXN0cm95KCZ0 ZW1wKTsKKwkJCQkJCXJldHVybiBDT05EX0VSUjsKKwkJCQkJfQorCQkJCQlpZiAoZmluYWxf bGlzdCkgeworCQkJCQkJdGFpbC0+bmV4dCA9IHN1Yl9saXN0OworCQkJCQkJd2hpbGUgKHRh aWwtPm5leHQgIT0gTlVMTCkKKwkJCQkJCQl0YWlsID0gdGFpbC0+bmV4dDsKKwkJCQkJfSBl bHNlIHsKKwkJCQkJCWZpbmFsX2xpc3QgPSBzdWJfbGlzdDsKKwkJCQkJCXRhaWwgPSBmaW5h bF9saXN0OworCQkJCQkJd2hpbGUgKHRhaWwtPm5leHQgIT0gTlVMTCkKKwkJCQkJCQl0YWls ID0gdGFpbC0+bmV4dDsKKwkJCQkJfQogCQkJCX0KKwkJCQllYml0bWFwX2Rlc3Ryb3koJnRl bXApOwogCQkJfQogCQl9CiAJfQpAQCAtMjYyMSw5ICsyNzA1LDEwIEBAIHN0YXRpYyBpbnQg ZGVmaW5lX3RlX2F2dGFiKGludCB3aGljaCkKIAljaGFyICppZDsKIAljbGFzc19kYXR1bV90 ICpjbGFkYXR1bTsKIAlwZXJtX2RhdHVtX3QgKnBlcmRhdHVtOwotCWViaXRtYXBfdCBzdHlw ZXMsIHR0eXBlcywgdGNsYXNzZXMsIG5lZ3NldDsKKwl0eXBlX2RhdHVtX3QgKnR5cGVkYXR1 bTsKKwllYml0bWFwX3Qgc3R5cGVzLCB0dHlwZXMsIHRjbGFzc2VzLCB0ZW1wLCBpbmhlcml0 LCBuZWdzZXQ7CiAJYWNjZXNzX3ZlY3Rvcl90ICphdnA7Ci0JdW5zaWduZWQgaW50IGksIGos IGhpY2xhc3M7CisJdW5zaWduZWQgaW50IGksIGosIGssIGhpY2xhc3M7CiAJaW50IHNlbGYg PSAwLCBhZGQgPSAxOwogCXRlX2Fzc2VydF90ICpuZXdhc3NlcnQ7CiAJaW50IHN1cHByZXNz ID0gMDsKQEAgLTI2NDMsMTAgKzI3MjgsMTEgQEAgc3RhdGljIGludCBkZWZpbmVfdGVfYXZ0 YWIoaW50IHdoaWNoKQogCWViaXRtYXBfaW5pdCgmc3R5cGVzKTsKIAllYml0bWFwX2luaXQo JnR0eXBlcyk7CiAJZWJpdG1hcF9pbml0KCZ0Y2xhc3Nlcyk7CisJZWJpdG1hcF9pbml0KCZp bmhlcml0KTsKIAogCWViaXRtYXBfaW5pdCgmbmVnc2V0KTsKIAl3aGlsZSAoKGlkID0gcXVl dWVfcmVtb3ZlKGlkX3F1ZXVlKSkpIHsKLQkJaWYgKHNldF90eXBlcygmc3R5cGVzLCAmbmVn c2V0LCBpZCwgJmFkZCkpCisJCWlmIChzZXRfdHlwZXMoJnN0eXBlcywgJm5lZ3NldCwgJmlu aGVyaXQsIGlkLCAmYWRkKSkKIAkJCXJldHVybiAtMTsKIAl9CiAJZWJpdG1hcF9kZXN0cm95 KCZuZWdzZXQpOwpAQCAtMjY1Nyw3ICsyNzQzLDcgQEAgc3RhdGljIGludCBkZWZpbmVfdGVf YXZ0YWIoaW50IHdoaWNoKQogCQkJc2VsZiA9IDE7CiAJCQljb250aW51ZTsKIAkJfQotCQlp ZiAoc2V0X3R5cGVzKCZ0dHlwZXMsICZuZWdzZXQsIGlkLCAmYWRkKSkKKwkJaWYgKHNldF90 eXBlcygmdHR5cGVzLCAmbmVnc2V0LCBOVUxMLCBpZCwgJmFkZCkpCiAJCQlyZXR1cm4gLTE7 CiAJfQogCWViaXRtYXBfZGVzdHJveSgmbmVnc2V0KTsKQEAgLTI3NDksNiArMjgzNSw3IEBA IHN0YXRpYyBpbnQgZGVmaW5lX3RlX2F2dGFiKGludCB3aGljaCkKIAkJbmV3YXNzZXJ0LT5z dHlwZXMgPSBzdHlwZXM7CiAJCW5ld2Fzc2VydC0+dHR5cGVzID0gdHR5cGVzOwogCQluZXdh c3NlcnQtPnRjbGFzc2VzID0gdGNsYXNzZXM7CisJCW5ld2Fzc2VydC0+aW5oZXJpdCA9IGlu aGVyaXQ7CiAJCW5ld2Fzc2VydC0+c2VsZiA9IHNlbGY7CiAJCW5ld2Fzc2VydC0+YXZwID0g YXZwOwogCQluZXdhc3NlcnQtPmxpbmUgPSBwb2xpY3lkYl9saW5lbm87CkBAIC0yNzYxLDgg KzI4NDgsMjYgQEAgc3RhdGljIGludCBkZWZpbmVfdGVfYXZ0YWIoaW50IHdoaWNoKQogCQlp ZiAoIWViaXRtYXBfZ2V0X2JpdCgmc3R5cGVzLCBpKSkgCiAJCQljb250aW51ZTsKIAkJaWYg KHNlbGYpIHsKLQkJCWlmICh0ZV9hdnRhYl9oZWxwZXIod2hpY2gsIGksIGksICZ0Y2xhc3Nl cywgYXZwKSkKKwkJCXR5cGVkYXR1bSA9IGdldF90eXBlKGkrMSk7CisJCQlpZiAoIXR5cGVk YXR1bSkKIAkJCQlyZXR1cm4gLTE7CisJCQllYml0bWFwX2luaXQoJnRlbXApOworCQkJLyog SWYgdGhlIHNvdXJjZSB0eXBlIGlzIGdpdmVuIHdpdGggJ0AnIHByZWZpeCwKKwkJCSAgICdz ZWxmJyBtZWFucyBvd24gY2hpbGQgdHlwZXMuICovCisJCQlnZXRfY2hpbGRfdHlwZXMoJnRl bXAsIHR5cGVkYXR1bSwgZWJpdG1hcF9nZXRfYml0KCZpbmhlcml0LCBpKSk7CisJCQlmb3Ig KGogPSBlYml0bWFwX3N0YXJ0Yml0KCZ0ZW1wKTsgaiA8IGViaXRtYXBfbGVuZ3RoKCZ0ZW1w KTsgaisrKSB7CisJCQkJaWYgKCFlYml0bWFwX2dldF9iaXQoJnRlbXAsIGopKQorCQkJCQlj b250aW51ZTsKKwkJCQlmb3IgKGsgPSBlYml0bWFwX3N0YXJ0Yml0KCZ0ZW1wKTsgayA8IGVi aXRtYXBfbGVuZ3RoKCZ0ZW1wKTsgaysrKSB7CisJCQkJCWlmICghZWJpdG1hcF9nZXRfYml0 KCZ0ZW1wLCBrKSkKKwkJCQkJCWNvbnRpbnVlOworCQkJCQlpZiAodGVfYXZ0YWJfaGVscGVy KHdoaWNoLCBqLCBrLCAmdGNsYXNzZXMsIGF2cCkpIHsKKwkJCQkJCWViaXRtYXBfZGVzdHJv eSgmdGVtcCk7CisJCQkJCQlyZXR1cm4gLTE7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCQll Yml0bWFwX2Rlc3Ryb3koJnRlbXApOwogCQl9CiAJCWZvciAoaiA9IGViaXRtYXBfc3RhcnRi aXQoJnR0eXBlcyk7IGogPCBlYml0bWFwX2xlbmd0aCgmdHR5cGVzKTsgaisrKSB7CiAJCQlp ZiAoIWViaXRtYXBfZ2V0X2JpdCgmdHR5cGVzLCBqKSkgCkBAIC0yODUzLDcgKzI5NTgsNyBA QCBzdGF0aWMgaW50IGRlZmluZV9yb2xlX3R5cGVzKHZvaWQpCiAKIAllYml0bWFwX2luaXQo Jm5lZ3NldCk7CiAJd2hpbGUgKChpZCA9IHF1ZXVlX3JlbW92ZShpZF9xdWV1ZSkpKSB7Ci0J CWlmIChzZXRfdHlwZXMoJnJvbGUtPnR5cGVzLCAmbmVnc2V0LCBpZCwgJmFkZCkpCisJCWlm IChzZXRfdHlwZXMoJnJvbGUtPnR5cGVzLCAmbmVnc2V0LCBOVUxMLCBpZCwgJmFkZCkpCiAJ CQlyZXR1cm4gLTE7CiAJfQogCWViaXRtYXBfZGVzdHJveSgmbmVnc2V0KTsKQEAgLTMwNjgs NyArMzE3Myw3IEBAIHN0YXRpYyBpbnQgZGVmaW5lX3JvbGVfdHJhbnModm9pZCkKIAogCWVi aXRtYXBfaW5pdCgmbmVnc2V0KTsKIAl3aGlsZSAoKGlkID0gcXVldWVfcmVtb3ZlKGlkX3F1 ZXVlKSkpIHsKLQkJaWYgKHNldF90eXBlcygmdHlwZXMsICZuZWdzZXQsIGlkLCAmYWRkKSkK KwkJaWYgKHNldF90eXBlcygmdHlwZXMsICZuZWdzZXQsIE5VTEwsIGlkLCAmYWRkKSkKIAkJ CXJldHVybiAtMTsKIAl9CiAJZWJpdG1hcF9kZXN0cm95KCZuZWdzZXQpOwpAQCAtMzQ5Myw3 ICszNTk4LDcgQEAgc3RhdGljIHVpbnRwdHJfdAogCQkJCX0KIAkJCQl2YWwgPSByb2xlLT52 YWx1ZTsKIAkJCX0gZWxzZSBpZiAoZXhwci0+YXR0ciAmIENFWFBSX1RZUEUpIHsKLQkJCQlp ZiAoc2V0X3R5cGVzKCZleHByLT5uYW1lcywgJm5lZ3NldCwgaWQsICZhZGQpKSB7CisJCQkJ aWYgKHNldF90eXBlcygmZXhwci0+bmFtZXMsICZuZWdzZXQsIE5VTEwsIGlkLCAmYWRkKSkg ewogCQkJCQlmcmVlKGV4cHIpOwogCQkJCQlyZXR1cm4gMDsKIAkJCQl9CkBAIC00ODM5LDE0 ICs0OTQ0LDE0IEBAIHN0YXRpYyBpbnQgZGVmaW5lX3JhbmdlX3RyYW5zKHZvaWQpCiAKIAll Yml0bWFwX2luaXQoJm5lZ3NldCk7CiAJd2hpbGUgKChpZCA9IHF1ZXVlX3JlbW92ZShpZF9x dWV1ZSkpKSB7Ci0JCWlmIChzZXRfdHlwZXMoJmRvbXMsICZuZWdzZXQsIGlkLCAmYWRkKSkK KwkJaWYgKHNldF90eXBlcygmZG9tcywgJm5lZ3NldCwgTlVMTCwgaWQsICZhZGQpKQogCQkJ cmV0dXJuIC0xOwogCX0KIAllYml0bWFwX2Rlc3Ryb3koJm5lZ3NldCk7CiAKIAllYml0bWFw X2luaXQoJm5lZ3NldCk7CiAJd2hpbGUgKChpZCA9IHF1ZXVlX3JlbW92ZShpZF9xdWV1ZSkp KSB7Ci0JCWlmIChzZXRfdHlwZXMoJnR5cGVzLCAmbmVnc2V0LCBpZCwgJmFkZCkpCisJCWlm IChzZXRfdHlwZXMoJnR5cGVzLCAmbmVnc2V0LCBOVUxMLCBpZCwgJmFkZCkpCiAJCQlyZXR1 cm4gLTE7CiAJfQogCWViaXRtYXBfZGVzdHJveSgmbmVnc2V0KTsK --------------070500070300080205080102-- -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message.