Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Sep 2000 18:07:10 -0700 (PDT)
From:      Kris Kennaway <kris@FreeBSD.org>
To:        ports@freebsd.org
Cc:        jmz@freebsd.org, security@freebsd.org
Subject:   XFree86 3.x DoS patch
Message-ID:  <Pine.BSF.4.21.0009231756420.99058-200000@freefall.freebsd.org>

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.

--0-1221069748-969757205=:99058
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.BSF.4.21.0009231804091.99058@freefall.freebsd.org>

Please test this patch for the XFree86 port - it addresses a number of
denial of service/crash conditions in the X code (libraries used by client
programs, as well as parts of the server itself). These were reported on
bugtraq several months ago but never publically acknowledged by the
XFree86 developers, nor did they release a patch against 3.x. They did
however fix the problem silently in XFree86 4.x - this patch comes from
OpenBSD who tracked down and extracted the relevant patches from the
XFree86 CVS repo.

I'm not really sure of the impact of the vulnerabilities, but I think they
allow users who can connect remotely to an X application using the
vulnerable libraries to crash it without authenticating. Bad.

Kris

--
In God we Trust -- all others must submit an X.509 certificate.
    -- Charles Forsythe <forsythe@alum.mit.edu>

--0-1221069748-969757205=:99058
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=patch-sec1
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.21.0009231800050.99058@freefall.freebsd.org>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME=patch-sec1

U29tZSBwcm9ibGVtcyB3ZXJlIGRpc2NvdmVyZWQgaW4gWDExIGxpYnJhcmll
cyB3aGljaCBjYW4gY2F1c2UgRG9TIGluDQpsaWJJQ0UgYW5kIHhkbS4gQWxz
byBzb21lIHBvdGllbnRpYWwgYnVmZmVyIG92ZXJmbG93IG1heSBvY2N1ciBp
biBYS0INCm9wdGlvbnMgcGFyc2luZyAoYWx0aG91Z2ggdGhleSBjYW4ndCBi
ZSBleHBsb2l0ZWQgaW4gT3BlbkJTRCdzIGRlZmF1bHQNCnNldHVwIHdoZXJl
IHRoZSBYIHNlcnZlcnMgYXJlIG5vdCBzZXR1aWQpLiBUaGlzIHBhdGNoIGZp
eGVzIGFsbCB0aGVzZQ0KcHJvYmxlbXM6DQoNCkFwcGx5IGJ5IGRvaW5nOg0K
CWNkICJ0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgeW91ciBYMTEgc291cmNl
IGRpciINCglwYXRjaCAtcDAgPCAwMjFfWDExX2xpYnMucGF0Y2gNCg0KQW5k
IHRoZW4gcmVidWlsZCB5b3VyIFgxMSB0cmVlOg0KCWNkIFgxMQ0KCW1ha2Ug
YWxsDQoJbWFrZSBpbnN0YWxsDQoNCkluZGV4OiBsaWIvSUNFL0lDRWxpYmlu
dC5oDQpkaWZmIC11IGxpYi9JQ0UvSUNFbGliaW50Lmg6MS4xIFgxMS94Yy9s
aWIvSUNFL0lDRWxpYmludC5oOjEuMg0KLS0tIGxpYi9JQ0UvSUNFbGliaW50
Lmg6MS4xCUZyaSBTZXAgIDUgMDI6NTg6MzIgMTk5Nw0KKysrIGxpYi9JQ0Uv
SUNFbGliaW50LmgJTW9uIEp1bCAxMCAxNToxNzowOSAyMDAwDQpAQCAtMjg4
LDIwICsyODgsMjEgQEANCiB9DQogDQogDQotI2RlZmluZSBTS0lQX1NUUklO
RyhfcEJ1ZiwgX3N3YXApIFwNCisjZGVmaW5lIFNLSVBfU1RSSU5HKF9wQnVm
LCBfc3dhcCwgX2VuZCwgX2JhaWwpIFwNCiB7IFwNCiAgICAgQ0FSRDE2IF9s
ZW47IFwNCiAgICAgRVhUUkFDVF9DQVJEMTYgKF9wQnVmLCBfc3dhcCwgX2xl
bik7IFwNCi0gICAgX3BCdWYgKz0gX2xlbjsgXA0KLSAgICBpZiAoUEFEMzIg
KDIgKyBfbGVuKSkgXA0KLSAgICAgICAgX3BCdWYgKz0gUEFEMzIgKDIgKyBf
bGVuKTsgXA0KLX0NCisgICAgX3BCdWYgKz0gX2xlbiArIFBBRDMyKDIrX2xl
bik7IFwNCisgICAgaWYgKF9wQnVmID4gX2VuZCkgeyBcDQorCV9iYWlsOyBc
DQorICAgIH0gXA0KK30gDQogDQotI2RlZmluZSBTS0lQX0xJU1RPRl9TVFJJ
TkcoX3BCdWYsIF9zd2FwLCBfY291bnQpIFwNCisjZGVmaW5lIFNLSVBfTElT
VE9GX1NUUklORyhfcEJ1ZiwgX3N3YXAsIF9jb3VudCwgX2VuZCwgX2JhaWwp
IFwNCiB7IFwNCiAgICAgaW50IF9pOyBcDQogICAgIGZvciAoX2kgPSAwOyBf
aSA8IF9jb3VudDsgX2krKykgXA0KLSAgICAgICAgU0tJUF9TVFJJTkcgKF9w
QnVmLCBfc3dhcCk7IFwNCisgICAgICAgIFNLSVBfU1RSSU5HIChfcEJ1Ziwg
X3N3YXAsIF9lbmQsIF9iYWlsKTsgXA0KIH0NCiANCiANCkluZGV4OiBsaWIv
SUNFL3Byb2Nlc3MuYw0KZGlmZiAtdSBsaWIvSUNFL3Byb2Nlc3MuYzoxLjEg
WDExL3hjL2xpYi9JQ0UvcHJvY2Vzcy5jOjEuMg0KLS0tIGxpYi9JQ0UvcHJv
Y2Vzcy5jOjEuMQlGcmkgU2VwICA1IDAyOjU4OjMyIDE5OTcNCisrKyBsaWIv
SUNFL3Byb2Nlc3MuYwlNb24gSnVsIDEwIDE1OjE3OjEwIDIwMDANCkBAIC02
Myw3ICs2MywxMSBAQA0KICAgICAgICByZXR1cm4gKDApOyBcDQogICAgIH0N
CiANCi0NCisjZGVmaW5lIEJBSUxfU1RSSU5HKF9pY2VDb25uLCBfb3Bjb2Rl
LCBfcFN0YXJ0KSB7XA0KKyAgICBfSWNlRXJyb3JCYWRMZW5ndGggKF9pY2VD
b25uLCAwLCBfb3Bjb2RlLCBJY2VGYXRhbFRvQ29ubmVjdGlvbik7XA0KKyAg
ICBJY2VEaXNwb3NlQ29tcGxldGVNZXNzYWdlIChfaWNlQ29ubiwgX3BTdGFy
dCk7XA0KKyAgICByZXR1cm4gKDApO1wNCit9DQogDA0KIC8qDQogICogSWNl
UHJvY2Vzc01lc3NhZ2VzOg0KQEAgLTgxOSw3ICs4MjMsNyBAQA0KICAgICBp
bnQJIG15QXV0aENvdW50LCBoaXNBdXRoQ291bnQ7DQogICAgIGludAkgZm91
bmQsIGksIGo7DQogICAgIGNoYXIgKm15QXV0aE5hbWUsICoqaGlzQXV0aE5h
bWVzOw0KLSAgICBjaGFyICpwRGF0YSwgKnBTdGFydDsNCisgICAgY2hhciAq
cERhdGEsICpwU3RhcnQsICpwRW5kOw0KICAgICBjaGFyICp2ZW5kb3IgPSBO
VUxMOw0KICAgICBjaGFyICpyZWxlYXNlID0gTlVMTDsNCiAgICAgaW50IG15
QXV0aEluZGV4ID0gMDsNCkBAIC04NDMsMTAgKzg0NywxOCBAQA0KICAgICB9
DQogDQogICAgIHBEYXRhID0gcFN0YXJ0Ow0KLQ0KLSAgICBTS0lQX1NUUklO
RyAocERhdGEsIHN3YXApOwkJCQkgICAgICAgLyogdmVuZG9yICovDQotICAg
IFNLSVBfU1RSSU5HIChwRGF0YSwgc3dhcCk7CQkJCSAgICAgICAvKiByZWxl
YXNlICovDQotICAgIFNLSVBfTElTVE9GX1NUUklORyAocERhdGEsIHN3YXAs
IChpbnQpIG1lc3NhZ2UtPmF1dGhDb3VudCk7LyogYXV0aCBuYW1lcyAqLw0K
KyAgICBwRW5kID0gcFN0YXJ0ICsgKGxlbmd0aCA8PCAzKTsNCisgICAgDQor
ICAgIFNLSVBfU1RSSU5HIChwRGF0YSwgc3dhcCwgcEVuZCwgDQorCQkgQkFJ
TF9TVFJJTkcoaWNlQ29ubiwgSUNFX0Nvbm5lY3Rpb25TZXR1cCwNCisJCQkg
ICAgIHBTdGFydCkpOwkJCSAgICAgICAvKiB2ZW5kb3IgKi8NCisgICAgU0tJ
UF9TVFJJTkcgKHBEYXRhLCBzd2FwLCBwRW5kLCANCisJCSBCQUlMX1NUUklO
RyhpY2VDb25uLCBJQ0VfQ29ubmVjdGlvblNldHVwLA0KKwkJCSAgICBwU3Rh
cnQpKTsJICAgICAgICAJICAgICAgIC8qIHJlbGVhc2UgKi8NCisgICAgU0tJ
UF9MSVNUT0ZfU1RSSU5HIChwRGF0YSwgc3dhcCwgKGludCkgbWVzc2FnZS0+
YXV0aENvdW50LCBwRW5kLCANCisJCQlCQUlMX1NUUklORyhpY2VDb25uLCBJ
Q0VfQ29ubmVjdGlvblNldHVwLA0KKwkJCQkgICBwU3RhcnQpKTsJCSAgICAg
ICAvKiBhdXRoIG5hbWVzICovDQorICAgIA0KICAgICBwRGF0YSArPSAobWVz
c2FnZS0+dmVyc2lvbkNvdW50ICogNCk7CQkgICAgICAgLyogdmVyc2lvbnMg
Ki8NCiANCiAgICAgQ0hFQ0tfQ09NUExFVEVfU0laRSAoaWNlQ29ubiwgSUNF
X0Nvbm5lY3Rpb25TZXR1cCwNCkBAIC0xNjg1LDcgKzE2OTcsNyBAQA0KIA0K
IHsNCiAgICAgaWNlQ29ubmVjdGlvblJlcGx5TXNnIAkqbWVzc2FnZTsNCi0g
ICAgY2hhciAJCQkqcERhdGEsICpwU3RhcnQ7DQorICAgIGNoYXIgCQkJKnBE
YXRhLCAqcFN0YXJ0LCAqcEVuZDsNCiAgICAgQm9vbAkJCXJlcGx5UmVhZHk7
DQogDQogICAgIENIRUNLX0FUX0xFQVNUX1NJWkUgKGljZUNvbm4sIElDRV9D
b25uZWN0aW9uUmVwbHksDQpAQCAtMTcwMSw5ICsxNzEzLDE0IEBADQogICAg
IH0NCiANCiAgICAgcERhdGEgPSBwU3RhcnQ7DQorICAgIHBFbmQgPSBwU3Rh
cnQgKyAobGVuZ3RoIDw8IDMpOw0KIA0KLSAgICBTS0lQX1NUUklORyAocERh
dGEsIHN3YXApOwkJCQkgICAgIC8qIHZlbmRvciAqLw0KLSAgICBTS0lQX1NU
UklORyAocERhdGEsIHN3YXApOwkJCQkgICAgIC8qIHJlbGVhc2UgKi8NCisg
ICAgU0tJUF9TVFJJTkcgKHBEYXRhLCBzd2FwLCBwRW5kLA0KKwkJIEJBSUxf
U1RSSU5HIChpY2VDb25uLCBJQ0VfQ29ubmVjdGlvblJlcGx5LA0KKwkJCSAg
ICAgIHBTdGFydCkpOwkJICAgIAkgICAgIC8qIHZlbmRvciAqLw0KKyAgICBT
S0lQX1NUUklORyAocERhdGEsIHN3YXAsIHBFbmQsDQorCQkgQkFJTF9TVFJJ
TkcgKGljZUNvbm4sIElDRV9Db25uZWN0aW9uUmVwbHksDQorCQkJICAgICAg
cFN0YXJ0KSk7CQkJICAgICAvKiByZWxlYXNlICovDQogDQogICAgIENIRUNL
X0NPTVBMRVRFX1NJWkUgKGljZUNvbm4sIElDRV9Db25uZWN0aW9uUmVwbHks
DQogCWxlbmd0aCwgcERhdGEgLSBwU3RhcnQgKyBTSVpFT0YgKGljZUNvbm5l
Y3Rpb25SZXBseU1zZyksDQpAQCAtMTc4OSw3ICsxODA2LDcgQEANCiAgICAg
aW50CSAJICAgICAgCWZvdW5kLCBpLCBqOw0KICAgICBjaGFyCSAgICAgIAkq
bXlBdXRoTmFtZSwgKipoaXNBdXRoTmFtZXM7DQogICAgIGNoYXIgCSAgICAg
IAkqcHJvdG9jb2xOYW1lOw0KLSAgICBjaGFyIAkJKnBEYXRhLCAqcFN0YXJ0
Ow0KKyAgICBjaGFyIAkJKnBEYXRhLCAqcFN0YXJ0LCAqcEVuZDsNCiAgICAg
Y2hhciAJICAgICAgCSp2ZW5kb3IgPSBOVUxMOw0KICAgICBjaGFyIAkgICAg
ICAJKnJlbGVhc2UgPSBOVUxMOw0KICAgICBpbnQgIAkgICAgICAJYWNjZXB0
X3NldHVwX25vdyA9IDA7DQpAQCAtMTgyNCwxMSArMTg0MSwyMCBAQA0KICAg
ICB9DQogDQogICAgIHBEYXRhID0gcFN0YXJ0Ow0KKyAgICBwRW5kID0gcFN0
YXJ0ICsgKGxlbmd0aCA8PCAzKTsNCiANCi0gICAgU0tJUF9TVFJJTkcgKHBE
YXRhLCBzd2FwKTsJCQkJICAgICAgIC8qIHByb3RvIG5hbWUgKi8NCi0gICAg
U0tJUF9TVFJJTkcgKHBEYXRhLCBzd2FwKTsJCQkJICAgICAgIC8qIHZlbmRv
ciAqLw0KLSAgICBTS0lQX1NUUklORyAocERhdGEsIHN3YXApOwkJCQkgICAg
ICAgLyogcmVsZWFzZSAqLw0KLSAgICBTS0lQX0xJU1RPRl9TVFJJTkcgKHBE
YXRhLCBzd2FwLCAoaW50KSBtZXNzYWdlLT5hdXRoQ291bnQpOy8qIGF1dGgg
bmFtZXMgKi8NCisgICAgU0tJUF9TVFJJTkcgKHBEYXRhLCBzd2FwLCBwRW5k
LA0KKwkJIEJBSUxfU1RSSU5HKGljZUNvbm4sIElDRV9Qcm90b2NvbFNldHVw
LCANCisJCQkgICAgIHBTdGFydCkpOwkJCSAgICAgICAvKiBwcm90byBuYW1l
ICovDQorICAgIFNLSVBfU1RSSU5HIChwRGF0YSwgc3dhcCwgcEVuZCwNCisJ
CSBCQUlMX1NUUklORyhpY2VDb25uLCBJQ0VfUHJvdG9jb2xTZXR1cCwgDQor
CQkJICAgICBwU3RhcnQpKTsJCQkgICAgICAgLyogdmVuZG9yICovDQorICAg
IFNLSVBfU1RSSU5HIChwRGF0YSwgc3dhcCwgcEVuZCwNCisJCSBCQUlMX1NU
UklORyhpY2VDb25uLCBJQ0VfUHJvdG9jb2xTZXR1cCwgDQorCQkJICAgICBw
U3RhcnQpKTsJCQkgICAgICAgLyogcmVsZWFzZSAqLw0KKyAgICBTS0lQX0xJ
U1RPRl9TVFJJTkcgKHBEYXRhLCBzd2FwLCAoaW50KSBtZXNzYWdlLT5hdXRo
Q291bnQsIHBFbmQsDQorCQkJQkFJTF9TVFJJTkcoaWNlQ29ubiwgSUNFX1By
b3RvY29sU2V0dXAsIA0KKwkJCQkgICAgcFN0YXJ0KSk7CQkgICAgICAgLyog
YXV0aCBuYW1lcyAqLw0KICAgICBwRGF0YSArPSAobWVzc2FnZS0+dmVyc2lv
bkNvdW50ICogNCk7CQkgICAgICAgLyogdmVyc2lvbnMgKi8NCiANCiAgICAg
Q0hFQ0tfQ09NUExFVEVfU0laRSAoaWNlQ29ubiwgSUNFX1Byb3RvY29sU2V0
dXAsDQpAQCAtMjE3MCw3ICsyMTk2LDcgQEANCiANCiB7DQogICAgIGljZVBy
b3RvY29sUmVwbHlNc2cgKm1lc3NhZ2U7DQotICAgIGNoYXIJCSpwRGF0YSwg
KnBTdGFydDsNCisgICAgY2hhcgkJKnBEYXRhLCAqcFN0YXJ0LCAqcEVuZDsN
CiAgICAgQm9vbAkJcmVwbHlSZWFkeTsNCiANCiAgICAgQ0hFQ0tfQVRfTEVB
U1RfU0laRSAoaWNlQ29ubiwgSUNFX1Byb3RvY29sUmVwbHksDQpAQCAtMjE4
Niw5ICsyMjEyLDE0IEBADQogICAgIH0NCiANCiAgICAgcERhdGEgPSBwU3Rh
cnQ7DQorICAgIHBFbmQgPSBwU3RhcnQgKyAobGVuZ3RoIDw8IDMpOw0KIA0K
LSAgICBTS0lQX1NUUklORyAocERhdGEsIHN3YXApOwkJCQkgICAgIC8qIHZl
bmRvciAqLw0KLSAgICBTS0lQX1NUUklORyAocERhdGEsIHN3YXApOwkJCQkg
ICAgIC8qIHJlbGVhc2UgKi8NCisgICAgU0tJUF9TVFJJTkcgKHBEYXRhLCBz
d2FwLCBwRW5kLA0KKwkJIEJBSUxfU1RSSU5HKGljZUNvbm4sIElDRV9Qcm90
b2NvbFJlcGx5LA0KKwkJCSAgICAgcFN0YXJ0KSk7CQkJICAgICAvKiB2ZW5k
b3IgKi8NCisgICAgU0tJUF9TVFJJTkcgKHBEYXRhLCBzd2FwLCBwRW5kLA0K
KwkJIEJBSUxfU1RSSU5HKGljZUNvbm4sIElDRV9Qcm90b2NvbFJlcGx5LA0K
KwkJCSAgICAgcFN0YXJ0KSk7CQkJICAgICAvKiByZWxlYXNlICovDQogDQog
ICAgIENIRUNLX0NPTVBMRVRFX1NJWkUgKGljZUNvbm4sIElDRV9Qcm90b2Nv
bFJlcGx5LA0KIAlsZW5ndGgsIHBEYXRhIC0gcFN0YXJ0ICsgU0laRU9GIChp
Y2VQcm90b2NvbFJlcGx5TXNnKSwNCkluZGV4OiBsaWIvWDExL0dldFByb3Au
Yw0KZGlmZiAtdSBsaWIvWDExL0dldFByb3AuYzoxLjEgWDExL3hjL2xpYi9Y
MTEvR2V0UHJvcC5jOjEuMg0KLS0tIGxpYi9YMTEvR2V0UHJvcC5jOjEuMQlG
cmkgU2VwICA1IDAyOjU4OjQ0IDE5OTcNCisrKyBsaWIvWDExL0dldFByb3Au
YwlNb24gSnVsIDEwIDE1OjIwOjM1IDIwMDANCkBAIC03NiwyMSArNzYsMjQg
QEANCiAgICAgICAgKi8NCiAJICBjYXNlIDg6DQogCSAgICBuYnl0ZXMgPSBu
ZXRieXRlcyA9IHJlcGx5Lm5JdGVtczsNCi0JICAgIGlmICgqcHJvcCA9ICh1
bnNpZ25lZCBjaGFyICopIFhtYWxsb2MgKCh1bnNpZ25lZCluYnl0ZXMgKyAx
KSkNCisgICAgICAgICAgICBpZiAobmJ5dGVzICsgMSA+IDAgJiYNCisgICAg
ICAgICAgICAgICAgKCpwcm9wID0gKHVuc2lnbmVkIGNoYXIgKikgWG1hbGxv
YyAoKHVuc2lnbmVkKW5ieXRlcyArIDEpKSkNCiAJCV9YUmVhZFBhZCAoZHB5
LCAoY2hhciAqKSAqcHJvcCwgbmV0Ynl0ZXMpOw0KIAkgICAgYnJlYWs7DQog
DQogCSAgY2FzZSAxNjoNCiAJICAgIG5ieXRlcyA9IHJlcGx5Lm5JdGVtcyAq
IHNpemVvZiAoc2hvcnQpOw0KIAkgICAgbmV0Ynl0ZXMgPSByZXBseS5uSXRl
bXMgPDwgMTsNCi0JICAgIGlmICgqcHJvcCA9ICh1bnNpZ25lZCBjaGFyICop
IFhtYWxsb2MgKCh1bnNpZ25lZCluYnl0ZXMgKyAxKSkNCisgICAgICAgICAg
ICBpZiAobmJ5dGVzICsgMSA+IDAgJiYNCisgICAgICAgICAgICAgICAgKCpw
cm9wID0gKHVuc2lnbmVkIGNoYXIgKikgWG1hbGxvYyAoKHVuc2lnbmVkKW5i
eXRlcyArIDEpKSkNCiAJCV9YUmVhZDE2UGFkIChkcHksIChzaG9ydCAqKSAq
cHJvcCwgbmV0Ynl0ZXMpOw0KIAkgICAgYnJlYWs7DQogDQogCSAgY2FzZSAz
MjoNCiAJICAgIG5ieXRlcyA9IHJlcGx5Lm5JdGVtcyAqIHNpemVvZiAobG9u
Zyk7DQogCSAgICBuZXRieXRlcyA9IHJlcGx5Lm5JdGVtcyA8PCAyOw0KLQkg
ICAgaWYgKCpwcm9wID0gKHVuc2lnbmVkIGNoYXIgKikgWG1hbGxvYyAoKHVu
c2lnbmVkKW5ieXRlcyArIDEpKQ0KKyAgICAgICAgICAgIGlmIChuYnl0ZXMg
KyAxID4gMCAmJg0KKyAgICAgICAgICAgICAgICAoKnByb3AgPSAodW5zaWdu
ZWQgY2hhciAqKSBYbWFsbG9jICgodW5zaWduZWQpbmJ5dGVzICsgMSkpKQ0K
IAkJX1hSZWFkMzIgKGRweSwgKGxvbmcgKikgKnByb3AsIG5ldGJ5dGVzKTsN
CiAJICAgIGJyZWFrOw0KIA0KSW5kZXg6IGxpYi9YMTEvT3BlbkRpcy5jDQpk
aWZmIC11IGxpYi9YMTEvT3BlbkRpcy5jOjEuMSBYMTEveGMvbGliL1gxMS9P
cGVuRGlzLmM6MS4yDQotLS0gbGliL1gxMS9PcGVuRGlzLmM6MS4xCUZyaSBT
ZXAgIDUgMDI6NTg6NDggMTk5Nw0KKysrIGxpYi9YMTEvT3BlbkRpcy5jCU1v
biBKdWwgMTAgMTU6MjA6MzUgMjAwMA0KQEAgLTM3MSw2ICszNzEsMTQgQEAN
CiAJZHB5LT5tYXhfcmVxdWVzdF9zaXplCT0gdS5zZXR1cC0+bWF4UmVxdWVz
dFNpemU7DQogCW1hc2sgPSBkcHktPnJlc291cmNlX21hc2s7DQogCWRweS0+
cmVzb3VyY2Vfc2hpZnQJPSAwOw0KKwlpZiAoIW1hc2spDQorCXsNCisJICAg
IGZwcmludGYgKHN0ZGVyciwgIlhsaWI6IGNvbm5lY3Rpb24gdG8gXCIlc1wi
IGludmFsaWQgc2V0dXBcbiIsDQorCQkgICAgIGZ1bGxuYW1lKTsNCisJICAg
IE91dE9mTWVtb3J5KGRweSwgc2V0dXApOw0KKwkgICAgcmV0dXJuIChOVUxM
KTsNCisJfQ0KKyAgICANCiAJd2hpbGUgKCEobWFzayAmIDEpKSB7DQogCSAg
ICBkcHktPnJlc291cmNlX3NoaWZ0Kys7DQogCSAgICBtYXNrID0gbWFzayA+
PiAxOw0KQEAgLTM5MCw2ICszOTgsMTMgQEANCiAgIAkodm9pZCkgc3RybmNw
eShkcHktPnZlbmRvciwgdS52ZW5kb3IsIHZlbmRvcmxlbik7DQogCWRweS0+
dmVuZG9yW3ZlbmRvcmxlbl0gPSAnXDAnOw0KICAJdmVuZG9ybGVuID0gKHZl
bmRvcmxlbiArIDMpICYgfjM7CS8qIHJvdW5kIHVwICovDQorLyoNCisgKiB2
YWxpZGF0ZSBzZXR1cCBsZW5ndGgNCisgKi8NCisJaWYgKChpbnQpIHNldHVw
bGVuZ3RoIC0gc3pfeENvbm5TZXR1cCAtIHZlbmRvcmxlbiA8IDApIHsNCisJ
ICAgIE91dE9mTWVtb3J5KGRweSwgc2V0dXApOw0KKwkgICAgcmV0dXJuIChO
VUxMKTsNCisJfQ0KIAltZW1tb3ZlIChzZXR1cCwgdS52ZW5kb3IgKyB2ZW5k
b3JsZW4sDQogCQkgKGludCkgc2V0dXBsZW5ndGggLSBzel94Q29ublNldHVw
IC0gdmVuZG9ybGVuKTsNCiAgCXUudmVuZG9yID0gc2V0dXA7DQpAQCAtNTY4
LDYgKzU4Myw4IEBADQogDQogCSAgICBpZiAoX1hSZXBseSAoZHB5LCAoeFJl
cGx5ICopICZyZXBseSwgMCwgeEZhbHNlKSkgew0KIAkJaWYgKHJlcGx5LmZv
cm1hdCA9PSA4ICYmIHJlcGx5LnByb3BlcnR5VHlwZSA9PSBYQV9TVFJJTkcg
JiYNCisJCSAgICAocmVwbHkubkl0ZW1zICsgMSA+IDApICYmDQorCQkgICAg
KHJlcGx5Lm5JdGVtcyA8PSByZXEtPmxvbmdMZW5ndGggKiA0KSAmJg0KIAkJ
ICAgIChkcHktPnhkZWZhdWx0cyA9IFhtYWxsb2MgKHJlcGx5Lm5JdGVtcyAr
IDEpKSkgew0KIAkJICAgIF9YUmVhZFBhZCAoZHB5LCBkcHktPnhkZWZhdWx0
cywgcmVwbHkubkl0ZW1zKTsNCiAJCSAgICBkcHktPnhkZWZhdWx0c1tyZXBs
eS5uSXRlbXNdID0gJ1wwJzsNCkluZGV4OiBsaWIvWDExL1hsaWJJbnQuYw0K
ZGlmZiAtdSBsaWIvWDExL1hsaWJJbnQuYzoxLjMgWDExL3hjL2xpYi9YMTEv
WGxpYkludC5jOjEuNA0KLS0tIGxpYi9YMTEvWGxpYkludC5jOjEuMwlUdWUg
QXVnIDI0IDEyOjExOjE5IDE5OTkNCisrKyBsaWIvWDExL1hsaWJJbnQuYwlN
b24gSnVsIDEwIDE1OjIwOjM1IDIwMDANCkBAIC0zOCw2ICszOCw4IEBADQog
I2RlZmluZSBORUVEX0VWRU5UUw0KICNkZWZpbmUgTkVFRF9SRVBMSUVTDQog
DQorI2RlZmluZSBHRU5FUklDX0xFTkdUSF9MSU1JVCAoMSA8PCAyOSkNCisN
CiAjaW5jbHVkZSAiWGxpYmludC5oIg0KICNpbmNsdWRlIDxYMTEvWHBvbGwu
aD4NCiAjaW5jbHVkZSA8WDExL1h0cmFucy5oPg0KQEAgLTE2ODksNiArMTY5
MSwxNyBAQA0KIAkJCSE9IChjaGFyICopcmVwKQ0KIAkJCWNvbnRpbnVlOw0K
IAkJfQ0KKyAgICAgICAgICAgICAgICAvKg0KKyAgICAgICAgICAgICAgICAg
KiBEb24ndCBhY2NlcHQgcmlkaWN1bG91c2x5IGxhcmdlIHZhbHVlcyBmb3IN
CisgICAgICAgICAgICAgICAgICogZ2VuZXJpYy5sZW5ndGg7IGRvaW5nIHNv
IGNvdWxkIGNhdXNlIHN0YWNrLXNjcmliYmxpbmcNCisgICAgICAgICAgICAg
ICAgICogcHJvYmxlbXMgZWxzZXdoZXJlLg0KKyAgICAgICAgICAgICAgICAg
Ki8NCisgICAgICAgICAgICAgICAgaWYgKHJlcC0+Z2VuZXJpYy5sZW5ndGgg
PiBHRU5FUklDX0xFTkdUSF9MSU1JVCkgew0KKyAgICAgICAgICAgICAgICAg
ICAgcmVwLT5nZW5lcmljLmxlbmd0aCA9IEdFTkVSSUNfTEVOR1RIX0xJTUlU
Ow0KKyAgICAgICAgICAgICAgICAgICAgKHZvaWQpIGZwcmludGYoc3RkZXJy
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlhsaWI6
IHN1c3BpY2lvdXNseSBsb25nIHJlcGx5IGxlbmd0aCAlZCBzZXQgdG8gJWQi
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwLT5n
ZW5lcmljLmxlbmd0aCwgR0VORVJJQ19MRU5HVEhfTElNSVQpOw0KKwkJfQ0K
IAkJaWYgKGV4dHJhIDw9IHJlcC0+Z2VuZXJpYy5sZW5ndGgpIHsNCiAJCSAg
ICBpZiAoZXh0cmEgPiAwKQ0KIAkJCS8qIA0KQEAgLTE4MjcsNiArMTg0MCwx
MyBAQA0KICNlbmRpZg0KIAlpZiAobGVuID4gKmxlbnApDQogCSAgICBfWEVh
dERhdGEoZHB5LCBsZW4gLSAqbGVucCk7DQorICAgIH0NCisgICAgaWYgKGxl
biA8IFNJWkVPRih4UmVwbHkpKQ0KKyAgICB7DQorCV9YSU9FcnJvciAoZHB5
KTsNCisJYnVmICs9ICpsZW5wOw0KKwkqbGVucCA9IDA7DQorCXJldHVybiBi
dWY7DQogICAgIH0NCiAgICAgaWYgKGxlbiA+PSAqbGVucCkgew0KIAlidWYg
Kz0gKmxlbnA7DQpJbmRleDogcHJvZ3JhbXMvWHNlcnZlci9vcy9zZWNhdXRo
LmMNCmRpZmYgLXUgcHJvZ3JhbXMvWHNlcnZlci9vcy9zZWNhdXRoLmM6MS4x
IFgxMS94Yy9wcm9ncmFtcy9Yc2VydmVyL29zL3NlY2F1dGguYzoxLjMNCi0t
LSBwcm9ncmFtcy9Yc2VydmVyL29zL3NlY2F1dGguYzoxLjEJRnJpIFNlcCAg
NSAwMzoxNToxNCAxOTk3DQorKysgcHJvZ3JhbXMvWHNlcnZlci9vcy9zZWNh
dXRoLmMJTW9uIEp1bCAxMCAxNToyMzoyNiAyMDAwDQpAQCAtNDcsNyArNDcs
NyBAQA0KICAgICBDbGllbnRQdHIJY2xpZW50Ow0KICAgICBjaGFyCSoqcmVh
c29uOw0KIHsNCi0gICAgY2hhcgkqcG9saWN5ID0gKmRhdGFQOw0KKyAgICBD
QVJEOAkqcG9saWN5ID0gKihDQVJEOCAqKilkYXRhUDsNCiAgICAgaW50CQls
ZW5ndGg7DQogICAgIEJvb2wJcGVybWl0Ow0KICAgICBpbnQJCW5Qb2xpY2ll
czsNCkBAIC02MSwxMyArNjEsMTMgQEANCiAgICAgfQ0KIA0KICAgICBwZXJt
aXQgPSAoKnBvbGljeSsrID09IDApOw0KLSAgICBuUG9saWNpZXMgPSAqcG9s
aWN5Kys7DQorICAgIG5Qb2xpY2llcyA9IChDQVJEOCkgKnBvbGljeSsrOw0K
IA0KICAgICBsZW5ndGggLT0gMjsNCiANCiAgICAgc2l0ZVBvbGljaWVzID0g
U2VjdXJpdHlHZXRTaXRlUG9saWN5U3RyaW5ncygmblNpdGVQb2xpY2llcyk7
DQogDQotICAgIHdoaWxlIChuUG9saWNpZXMpIHsNCisgICAgd2hpbGUgKG5Q
b2xpY2llcyA+IDApIHsNCiAJaW50IHN0ckxlbiwgc2l0ZVBvbGljeTsNCiAN
CiAJaWYgKGxlbmd0aCA9PSAwKSB7DQpAQCAtNzUsNyArNzUsNyBAQA0KIAkg
ICAgcmV0dXJuIEZBTFNFOw0KIAl9DQogDQotCXN0ckxlbiA9ICpwb2xpY3kr
KzsNCisJc3RyTGVuID0gKENBUkQ4KSAqcG9saWN5Kys7DQogCWlmICgtLWxl
bmd0aCA8IHN0ckxlbikgew0KIAkgICAgKnJlYXNvbiA9IEludmFsaWRQb2xp
Y3lSZWFzb247DQogCSAgICByZXR1cm4gRkFMU0U7DQpAQCAtODcsNyArODcs
NyBAQA0KIAkgICAgew0KIAkJY2hhciAqdGVzdFBvbGljeSA9IHNpdGVQb2xp
Y2llc1tzaXRlUG9saWN5XTsNCiAJCWlmICgoc3RyTGVuID09IHN0cmxlbih0
ZXN0UG9saWN5KSkgJiYNCi0JCSAgICAoc3RybmNtcChwb2xpY3ksIHRlc3RQ
b2xpY3ksIHN0ckxlbikgPT0gMCkpDQorCQkgICAgKHN0cm5jbXAoKGNoYXIg
Kilwb2xpY3ksIHRlc3RQb2xpY3ksIHN0ckxlbikgPT0gMCkpDQogCQl7DQog
CQkgICAgZm91bmQgPSBUUlVFOyAvKiBuZWVkIHRvIGNvbnRpbnVlIHBhcnNp
bmcgdGhlIHBvbGljeS4uLiAqLw0KIAkJICAgIGJyZWFrOw0KQEAgLTEwNyw3
ICsxMDcsNyBAQA0KICAgICB9DQogDQogICAgICpkYXRhX2xlbmd0aFAgPSBs
ZW5ndGg7DQotICAgICpkYXRhUCA9IHBvbGljeTsNCisgICAgKmRhdGFQID0g
KGNoYXIgKilwb2xpY3k7DQogICAgIHJldHVybiBUUlVFOw0KIH0NCiANCklu
ZGV4OiBwcm9ncmFtcy9Yc2VydmVyL29zL3hkbWNwLmMNCmRpZmYgLXUgcHJv
Z3JhbXMvWHNlcnZlci9vcy94ZG1jcC5jOjEuMS4xLjIgWDExL3hjL3Byb2dy
YW1zL1hzZXJ2ZXIvb3MveGRtY3AuYzoxLjINCi0tLSBwcm9ncmFtcy9Yc2Vy
dmVyL29zL3hkbWNwLmM6MS4xLjEuMglGcmkgSmFuICA4IDEwOjU2OjQ4IDE5
OTkNCisrKyBwcm9ncmFtcy9Yc2VydmVyL29zL3hkbWNwLmMJTW9uIEp1bCAx
MCAxNToyNjowNyAyMDAwDQpAQCAtMSw1ICsxLDUgQEANCiAvKiAkWENvbnNv
cnRpdW06IHhkbWNwLmMgL21haW4vMzQgMTk5Ni8xMi8wMiAxMDoyMzoyOSBs
ZWhvcnMgJCAqLw0KLS8qICRYRnJlZTg2OiB4Yy9wcm9ncmFtcy9Yc2VydmVy
L29zL3hkbWNwLmMsdiAzLjkuMi4xIDE5OTgvMTIvMTggMTE6NTY6MzQgZGF3
ZXMgRXhwICQgKi8NCisvKiAkWEZyZWU4NjogeGMvcHJvZ3JhbXMvWHNlcnZl
ci9vcy94ZG1jcC5jLHYgMy45LjIuMiAyMDAwLzAyLzA4IDIwOjMyOjEyIGRh
d2VzIEV4cCAkICovDQogLyoNCiAgKiBDb3B5cmlnaHQgMTk4OSBOZXR3b3Jr
IENvbXB1dGluZyBEZXZpY2VzLCBJbmMuLCBNb3VudGFpbiBWaWV3LCBDYWxp
Zm9ybmlhLg0KICAqDQpAQCAtMjkwLDcgKzI5MCwxMCBAQA0KIAlyZXR1cm4g
KGkgKyAxKTsNCiAgICAgfQ0KICAgICBpZiAoc3RyY21wKGFyZ3ZbaV0sICIt
cG9ydCIpID09IDApIHsNCi0JKytpOw0KKyAgICAgICAgaWYgKCsraSA9PSBh
cmdjKSAgew0KKwkgICAgRXJyb3JGKCJYc2VydmVyOiBtaXNzaW5nIHBvcnQg
bnVtYmVyIGluIGNvbW1hbmQgbGluZVxuIik7DQorCSAgICBleGl0KDEpOw0K
Kwl9DQogCXhkbV91ZHBfcG9ydCA9IGF0b2koYXJndltpXSk7DQogCXJldHVy
biAoaSArIDEpOw0KICAgICB9DQpAQCAtMzAwLDE4ICszMDMsMjggQEANCiAg
ICAgfQ0KICAgICBpZiAoc3RyY21wKGFyZ3ZbaV0sICItY2xhc3MiKSA9PSAw
KSB7DQogCSsraTsNCisgICAgICAgIGlmICgrK2kgPT0gYXJnYykgIHsNCisJ
ICAgIEVycm9yRigiWHNlcnZlcjogbWlzc2luZyBjbGFzcyBuYW1lIGluIGNv
bW1hbmQgbGluZVxuIik7DQorCSAgICBleGl0KDEpOw0KKwl9DQogCWRlZmF1
bHREaXNwbGF5Q2xhc3MgPSBhcmd2W2ldOw0KIAlyZXR1cm4gKGkgKyAxKTsN
CiAgICAgfQ0KICNpZmRlZiBIQVNYRE1BVVRIDQogICAgIGlmIChzdHJjbXAo
YXJndltpXSwgIi1jb29raWUiKSA9PSAwKSB7DQotCSsraTsNCisgICAgICAg
IGlmICgrK2kgPT0gYXJnYykgIHsNCisJICAgIEVycm9yRigiWHNlcnZlcjog
bWlzc2luZyBjb29raWUgZGF0YSBpbiBjb21tYW5kIGxpbmVcbiIpOw0KKwkg
ICAgZXhpdCgxKTsNCisJfQ0KIAl4ZG1BdXRoQ29va2llID0gYXJndltpXTsN
CiAJcmV0dXJuIChpICsgMSk7DQogICAgIH0NCiAjZW5kaWYNCiAgICAgaWYg
KHN0cmNtcChhcmd2W2ldLCAiLWRpc3BsYXlJRCIpID09IDApIHsNCi0JKytp
Ow0KKyAgICAgICAgaWYgKCsraSA9PSBhcmdjKSAgew0KKwkgICAgRXJyb3JG
KCJYc2VydmVyOiBtaXNzaW5nIGRpc3BsYXlJRCBpbiBjb21tYW5kIGxpbmVc
biIpOw0KKwkgICAgZXhpdCgxKTsNCisJfQ0KIAlYZG1jcFJlZ2lzdGVyTWFu
dWZhY3R1cmVyRGlzcGxheUlEIChhcmd2W2ldLCBzdHJsZW4gKGFyZ3ZbaV0p
KTsNCiAJcmV0dXJuIChpICsgMSk7DQogICAgIH0NCkluZGV4OiBwcm9ncmFt
cy9Yc2VydmVyL3hrYi9kZHhMb2FkLmMNCmRpZmYgLXUgcHJvZ3JhbXMvWHNl
cnZlci94a2IvZGR4TG9hZC5jOjEuMS4xLjMgWDExL3hjL3Byb2dyYW1zL1hz
ZXJ2ZXIveGtiL2RkeExvYWQuYzoxLjINCi0tLSBwcm9ncmFtcy9Yc2VydmVy
L3hrYi9kZHhMb2FkLmM6MS4xLjEuMwlTYXQgTm92IDI4IDAxOjQ5OjEzIDE5
OTgNCisrKyBwcm9ncmFtcy9Yc2VydmVyL3hrYi9kZHhMb2FkLmMJTW9uIEp1
bCAxMCAxNToyODoxMCAyMDAwDQpAQCAtMjQsNyArMjQsNyBAQA0KIFRIRSBV
U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiANCiAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8NCi0vKiAkWEZyZWU4NjogeGMvcHJvZ3JhbXMvWHNlcnZlci94
a2IvZGR4TG9hZC5jLHYgMy4xOS4yLjMgMTk5OC8wOS8yNyAxMjo1OToyOSBo
b2huZGVsIEV4cCAkICovDQorLyogJFhGcmVlODY6IHhjL3Byb2dyYW1zL1hz
ZXJ2ZXIveGtiL2RkeExvYWQuYyx2IDMuMTkuMi40IDIwMDAvMDYvMTUgMjM6
MjQ6MDcgZGF3ZXMgRXhwICQgKi8NCiANCiAjaW5jbHVkZSA8c3RkaW8uaD4N
CiAjaW5jbHVkZSA8Y3R5cGUuaD4NCkBAIC0xMzksMTAgKzEzOSw4IEBADQog
CQkrc3RybGVuKGZpbGUpK3N0cmxlbih4a21fb3V0cHV0X2RpcikNCiAJCStz
dHJsZW4ob3V0RmlsZSkrNTMgPiBQQVRIX01BWCkNCiAJew0KLSNpZmRlZiBE
RUJVRw0KIAkgICAgRXJyb3JGKCJjb21waWxlciBjb21tYW5kIGZvciBrZXlt
YXAgKCVzKSBleGNlZWRzIG1heCBsZW5ndGhcbiIsDQogCQkJCQkJCQluYW1l
cy0+a2V5bWFwKTsNCi0jZW5kaWYNCiAJICAgIHJldHVybiBGYWxzZTsNCiAJ
fQ0KICNpZm5kZWYgX19FTVhfXw0KQEAgLTE2OSwxMCArMTY3LDggQEANCiAJ
CStzdHJsZW4oZmlsZSkrc3RybGVuKHhrbV9vdXRwdXRfZGlyKQ0KIAkJK3N0
cmxlbihvdXRGaWxlKSs0OSA+IFBBVEhfTUFYKQ0KIAl7DQotI2lmZGVmIERF
QlVHDQogICAgICAgICAgICAgRXJyb3JGKCJjb21waWxlciBjb21tYW5kIGZv
ciBrZXltYXAgKCVzKSBleGNlZWRzIG1heCBsZW5ndGhcbiIsDQogCQkJCQkJ
CW5hbWVzLT5rZXltYXApOw0KLSNlbmRpZg0KIAkgICAgcmV0dXJuIEZhbHNl
Ow0KIAl9DQogCXNwcmludGYoY21kLCJ4a2Jjb21wIC13ICVkIC14a20gJXMl
cyAtZW0xICVzIC1lbXAgJXMgLWVtbCAlcyBrZXltYXAvJXMgJXMlcy54a20i
LA0KQEAgLTIzNiw2ICsyMzIsMTAgQEANCiAJc3ByaW50ZihrZXltYXAsInNl
cnZlci0lcyIsZGlzcGxheSk7DQogICAgIH0NCiAgICAgZWxzZSB7DQorCWlm
IChzdHJsZW4obmFtZXMtPmtleW1hcCkgPiBQQVRIX01BWCAtIDEpIHsNCisJ
ICAgIEVycm9yRigibmFtZSBvZiBrZXltYXAgKCVzKSBleGNlZWRzIG1heCBs
ZW5ndGhcbiIsIG5hbWVzLT5rZXltYXApOw0KKwkgICAgcmV0dXJuIEZhbHNl
Ow0KKwl9DQogCXN0cmNweShrZXltYXAsbmFtZXMtPmtleW1hcCk7DQogICAg
IH0NCiANCkBAIC0yNTQsMTAgKzI1NCw4IEBADQogCQkrc3RybGVuKFBPU1Rf
RVJST1JfTVNHMSkrc3RybGVuKHhrbV9vdXRwdXRfZGlyKQ0KIAkJK3N0cmxl
bihrZXltYXApKzQ4ID4gUEFUSF9NQVgpDQogCXsNCi0jaWZkZWYgREVCVUcN
CiAgICAgICAgICAgICBFcnJvckYoImNvbXBpbGVyIGNvbW1hbmQgZm9yIGtl
eW1hcCAoJXMpIGV4Y2VlZHMgbWF4IGxlbmd0aFxuIiwNCiAJCQkJCQkJbmFt
ZXMtPmtleW1hcCk7DQotI2VuZGlmDQogCSAgICByZXR1cm4gRmFsc2U7DQog
CX0NCiAjaWZuZGVmIFdJTjMyDQpAQCAtMjk0LDEwICsyOTIsOCBAQA0KIAkJ
K3N0cmxlbihFUlJPUl9QUkVGSVgpK3N0cmxlbihQT1NUX0VSUk9SX01TRzEp
DQogCQkrc3RybGVuKHhrbV9vdXRwdXRfZGlyKStzdHJsZW4oa2V5bWFwKSs0
NCA+IFBBVEhfTUFYKQ0KIAl7DQotI2lmZGVmIERFQlVHDQogICAgICAgICAg
ICAgRXJyb3JGKCJjb21waWxlciBjb21tYW5kIGZvciBrZXltYXAgKCVzKSBl
eGNlZWRzIG1heCBsZW5ndGhcbiIsDQogCQkJCQkJCW5hbWVzLT5rZXltYXAp
Ow0KLSNlbmRpZg0KIAkgICAgcmV0dXJuIEZhbHNlOw0KIAl9DQogI2lmbmRl
ZiBXSU4zMg0KSW5kZXg6IHByb2dyYW1zL1hzZXJ2ZXIveGtiL3hrYkluaXQu
Yw0KZGlmZiAtdSBwcm9ncmFtcy9Yc2VydmVyL3hrYi94a2JJbml0LmM6MS4x
LjEuMiBYMTEveGMvcHJvZ3JhbXMvWHNlcnZlci94a2IveGtiSW5pdC5jOjEu
Mw0KLS0tIHByb2dyYW1zL1hzZXJ2ZXIveGtiL3hrYkluaXQuYzoxLjEuMS4y
CVNhdCBNYXIgIDcgMDk6MjE6NTUgMTk5OA0KKysrIHByb2dyYW1zL1hzZXJ2
ZXIveGtiL3hrYkluaXQuYwlNb24gSnVsIDEwIDE1OjI4OjEwIDIwMDANCkBA
IC0yNCw3ICsyNCw3IEBADQogVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBU
SElTIFNPRlRXQVJFLg0KIA0KICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLS8qICRYRnJlZTg2
OiB4Yy9wcm9ncmFtcy9Yc2VydmVyL3hrYi94a2JJbml0LmMsdiAzLjEyLjIu
MiAxOTk4LzAyLzI0IDEzOjIwOjA3IGRhd2VzIEV4cCAkICovDQorLyogJFhG
cmVlODY6IHhjL3Byb2dyYW1zL1hzZXJ2ZXIveGtiL3hrYkluaXQuYyx2IDMu
MTIuMi4zIDIwMDAvMDYvMTUgMjE6NTg6MzQgZGF3ZXMgRXhwICQgKi8NCiAN
CiAjaW5jbHVkZSA8c3RkaW8uaD4NCiAjaW5jbHVkZSA8c3RkbGliLmg+DQpA
QCAtOTE1LDggKzkxNSwxMyBAQA0KICNlbmRpZg0KICAgICBlbHNlIGlmIChz
dHJuY21wKGFyZ3ZbaV0sICIteGtibWFwIiwgNykgPT0gMCkgew0KIAlpZigr
K2kgPCBhcmdjKSB7DQotCSAgICBYa2JJbml0aWFsTWFwPSBhcmd2W2ldOw0K
LQkgICAgcmV0dXJuIDI7DQorCSAgICBpZiAoc3RybGVuKGFyZ3ZbaV0pIDwg
UEFUSF9NQVgpIHsNCisJCVhrYkluaXRpYWxNYXA9IGFyZ3ZbaV07DQorCQly
ZXR1cm4gMjsNCisJICAgIH0gZWxzZSB7DQorCQlFcnJvckYoIi14a2JtYXAg
cGF0aG5hbWUgdG9vIGxvbmdcbiIpOw0KKwkJcmV0dXJuIC0xOw0KKwkgICAg
fQ0KIAl9DQogCWVsc2Ugew0KIAkgICAgcmV0dXJuIC0xOw0KQEAgLTkyNCw4
ICs5MjksMTMgQEANCiAgICAgfQ0KICAgICBlbHNlIGlmIChzdHJuY21wKGFy
Z3ZbaV0sICIteGtiZGIiLCA3KSA9PSAwKSB7DQogCWlmKCsraSA8IGFyZ2Mp
IHsNCi0JICAgIFhrYkRCPSBhcmd2W2ldOw0KLQkgICAgcmV0dXJuIDI7DQor
CSAgICBpZiAoc3RybGVuKGFyZ3ZbaV0pIDwgUEFUSF9NQVgpIHsNCisJCVhr
YkRCPSBhcmd2W2ldOw0KKwkJcmV0dXJuIDI7DQorCSAgICB9IGVsc2Ugew0K
KwkJRXJyb3JGKCIteGtiZGIgcGF0aG5hbWUgdG9vIGxvbmdcbiIpOw0KKwkJ
cmV0dXJuIC0xOw0KKwkgICAgfQ0KIAl9DQogCWVsc2Ugew0KIAkgICAgcmV0
dXJuIC0xOw0KSW5kZXg6IHByb2dyYW1zL3hmcy9vcy93YWl0Zm9yLmMNCmRp
ZmYgLXUgcHJvZ3JhbXMveGZzL29zL3dhaXRmb3IuYzoxLjEgWDExL3hjL3By
b2dyYW1zL3hmcy9vcy93YWl0Zm9yLmM6MS4yDQotLS0gcHJvZ3JhbXMveGZz
L29zL3dhaXRmb3IuYzoxLjEJRnJpIFNlcCAgNSAwMzoxNjowNyAxOTk3DQor
KysgcHJvZ3JhbXMveGZzL29zL3dhaXRmb3IuYwlNb24gSnVsIDEwIDE1OjMy
OjM4IDIwMDANCkBAIC0xLDUgKzEsNSBAQA0KIC8qICRYQ29uc29ydGl1bTog
d2FpdGZvci5jIC9tYWluLzE1IDE5OTYvMDgvMzAgMTQ6MjI6MzQga2FsZWIg
JCAqLw0KLS8qICRYRnJlZTg2OiB4Yy9wcm9ncmFtcy94ZnMvb3Mvd2FpdGZv
ci5jLHYgMy41IDE5OTcvMDEvMTggMDc6MDI6NDggZGF3ZXMgRXhwICQgKi8N
CisvKiAkWEZyZWU4NjogeGMvcHJvZ3JhbXMveGZzL29zL3dhaXRmb3IuYyx2
IDMuNS4yLjEgMjAwMC8wNi8xNSAyMTo1ODozNSBkYXdlcyBFeHAgJCAqLw0K
IC8qDQogICogd2FpdHMgZm9yIGlucHV0DQogICovDQpAQCAtMjEyLDcgKzIx
Miw3IEBADQogCSAgICB3aGlsZSAoY2xpZW50c1JlYWRhYmxlLmZkc19iaXRz
W2ldKSB7DQogCQljdXJjbGllbnQgPSBmZnMoY2xpZW50c1JlYWRhYmxlLmZk
c19iaXRzW2ldKSAtIDE7DQogCQljb25uID0gQ29ubmVjdGlvblRyYW5zbGF0
aW9uW2N1cmNsaWVudCArIChpIDw8IDUpXTsNCi0JCUZEX0NMUiAoY3VyY2xp
ZW50LCAmY2xpZW50c1JlYWRhYmxlKTsNCisJCWNsaWVudHNSZWFkYWJsZS5m
ZHNfYml0c1tpXSAmPSB+KCgoZmRfbWFzaykxTCkgPDwgY3VyY2xpZW50KTsN
CiAJCWNsaWVudCA9IGNsaWVudHNbY29ubl07DQogCQlpZiAoIWNsaWVudCkN
CiAJCSAgICBjb250aW51ZTsNCi0tLSBwcm9ncmFtcy94YXV0aC9wcm9jZXNz
LmMub3JpZwlGcmkgSnVsIDIzIDA2OjUwOjUwIDE5OTkNCisrKyBwcm9ncmFt
cy94YXV0aC9wcm9jZXNzLmMJU2F0IFNlcCAyMyAxNTozMToyNyAyMDAwDQpA
QCAtNzY5LDcgKzc2OSw3IEBADQogc3RhdGljIGludCB3cml0ZV9hdXRoX2Zp
bGUgKHRtcF9uYW0pDQogICAgIGNoYXIgKnRtcF9uYW07DQogew0KLSAgICBG
SUxFICpmcDsNCisgICAgRklMRSAqZnAgPSBOVUxMOw0KICAgICBBdXRoTGlz
dCAqbGlzdDsNCiANCiAgICAgLyoNCkBAIC03NzgsMTIgKzc3OCw5IEBADQog
ICAgIHN0cmNweSAodG1wX25hbSwgeGF1dGhfZmlsZW5hbWUpOw0KICAgICBz
dHJjYXQgKHRtcF9uYW0sICItbiIpOwkJLyogZm9yIG5ldyAqLw0KICAgICAo
dm9pZCkgdW5saW5rICh0bXBfbmFtKTsNCi0gICAgZnAgPSBmb3BlbiAodG1w
X25hbSwgIndiIik7CQkvKiB1bWFzayBpcyBzdGlsbCBzZXQgdG8gMDA3NyAq
Lw0KLSAgICBpZiAoIWZwKSB7DQotCWZwcmludGYgKHN0ZGVyciwgIiVzOiAg
dW5hYmxlIHRvIG9wZW4gdG1wIGZpbGUgXCIlc1wiXG4iLA0KLQkJIFByb2dy
YW1OYW1lLCB0bXBfbmFtKTsNCi0JcmV0dXJuIC0xOw0KLSAgICB9IA0KKyAg
ICAvKiBDUGhpcHBzIDIwMDAvMDIvMTIgLSBmaXggZmlsZSB1bmxpbmsvZm9w
ZW4gcmFjZSAqLw0KKyAgICBmZCA9IG9wZW4odG1wX25hbSwgT19XUk9OTFl8
T19DUkVBVHxPX0VYQ0wsIDA2MDApOw0KKyAgICBpZiAoZmQgIT0gLTEpIGZw
ID0gZmRvcGVuKGZkLCAid2IiKTsNCiANCiAgICAgLyoNCiAgICAgICogV3Jp
dGUgTUlULU1BR0lDLUNPT0tJRS0xIGZpcnN0LCBiZWNhdXNlIFI0IFhsaWIg
a25vd3MNCg==
--0-1221069748-969757205=:99058--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" 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.0009231756420.99058-200000>