Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jan 2010 19:18:44 -0800 (PST)
From:      "Pedro F. Giffuni" <giffunip@tutopia.com>
To:        FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org
Subject:   Re: bin/142384: sync fsck_msdosfs with OpenBSD
Message-ID:  <143520.92513.qm@web113509.mail.gq1.yahoo.com>

next in thread | raw e-mail | index | archive | help
--0-3016821-1262920724=:92513
Content-Type: text/plain; charset=us-ascii

A new, and hopefully final, update:

-Added a fix to a bug coverity found on NetBSD.
-Removed bogus check that attempted to clear the sector
after FSInfo in a valid FAT32 filesystem.


      
--0-3016821-1262920724=:92513
Content-Type: application/octet-stream; name=patch-fsck_msdosfs
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=patch-fsck_msdosfs

ZGlmZiAtcnUgZnNja19tc2Rvc2ZzLm9yaWcvYm9vdC5jIGZzY2tfbXNkb3Nm
cy9ib290LmMKLS0tIGZzY2tfbXNkb3Nmcy5vcmlnL2Jvb3QuYwkyMDEwLTAx
LTA2IDExOjA3OjI0LjAwMDAwMDAwMCArMDAwMAorKysgZnNja19tc2Rvc2Zz
L2Jvb3QuYwkyMDEwLTAxLTA3IDIyOjA5OjEzLjAwMDAwMDAwMCArMDAwMApA
QCAtMTAsMTMgKzEwLDYgQEAKICAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVy
aWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3
YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3ds
ZWRnZW1lbnQ6Ci0gKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUg
ZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotICoJYW5kIFdvbGZnYW5n
IFNvbGZyYW5rLgotICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5p
dmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyBgYEFTIElT
JycgQU5EIEFOWSBFWFBSRVNTIE9SCiAgKiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTCkBAIC00MCw3ICszMyw2IEBACiAKICNpbmNsdWRlIDxzdGRs
aWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxjdHlwZS5o
PgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAK
QEAgLTU2LDggKzQ4LDkgQEAKIAl1X2NoYXIgZnNpbmZvWzIgKiBET1NCT09U
QkxPQ0tTSVpFXTsKIAl1X2NoYXIgYmFja3VwW0RPU0JPT1RCTE9DS1NJWkVd
OwogCWludCByZXQgPSBGU09LOworCWludCBpOwogCQotCWlmIChyZWFkKGRv
c2ZzLCBibG9jaywgc2l6ZW9mIGJsb2NrKSA8IHNpemVvZiBibG9jaykgewor
CWlmIChyZWFkKChzaXplX3QpZG9zZnMsIGJsb2NrLCBzaXplb2YgYmxvY2sp
ICE9IHNpemVvZiBibG9jaykgewogCQlwZXJyb3IoImNvdWxkIG5vdCByZWFk
IGJvb3QgYmxvY2siKTsKIAkJcmV0dXJuIEZTRkFUQUw7CiAJfQpAQCAtMTYx
LDEyICsxNTQsMjIgQEAKIAkJfQogCQliYWNrdXBbNjVdID0gYmxvY2tbNjVd
OwkJCQkvKiBYWFggKi8KIAkJaWYgKG1lbWNtcChibG9jayArIDExLCBiYWNr
dXAgKyAxMSwgNzkpKSB7Ci0JCQkvKiBDb3JyZWN0PwkJCQkJWFhYICovCi0J
CQlwZmF0YWwoImJhY2t1cCBkb2Vzbid0IGNvbXBhcmUgdG8gcHJpbWFyeSBi
b290YmxvY2siKTsKLQkJCWlmIChhbHdheXNubykKLQkJCQlwZmF0YWwoIlxu
Iik7Ci0JCQllbHNlCi0JCQkJcmV0dXJuIEZTRkFUQUw7CisJCQkvKgorCQkJ
ICogWFhYIFdlIHJlcXVpcmUgYSByZWZlcmVuY2UgdGhhdCBleHBsYWlucwor
CQkJICogdGhhdCB0aGVzZSBieXRlcyBuZWVkIHRvIG1hdGNoLCBvciBzaG91
bGQKKwkJCSAqIGRyb3AgdGhlIGNoZWNrLiAgZ2R0QE5ldEJTRCBoYXMgb2Jz
ZXJ2ZWQKKwkJCSAqIGZpbGVzeXN0ZW1zIHRoYXQgd29yayBmaW5lIHVuZGVy
IFdpbmRvd3MgWFAKKwkJCSAqIGFuZCBOZXRCU0QgdGhhdCBkbyBub3QgbWF0
Y2gsIHNvIHRoZQorCQkJICogcmVxdWlyZW1lbnQgaXMgc3VzcGVjdC4gIEZv
ciBub3csIGp1c3QKKwkJCSAqIHByaW50IG91dCB1c2VmdWwgaW5mb3JtYXRp
b24gYW5kIGNvbnRpbnVlLgorCQkJICovCisJCQlwZmF0YWwoImJhY2t1cCAo
YmxvY2sgJWQpIG1pc21hdGNoIHdpdGggcHJpbWFyeSBib290YmxvY2s6XG4i
LAorCQkJICAgICAgICBib290LT5CYWNrdXApOworCQkJZm9yIChpID0gMTE7
IGkgPCAxMSArIDkwOyBpKyspIHsKKwkJCQlpZiAoYmxvY2tbaV0gIT0gYmFj
a3VwW2ldKQorCQkJCQlwZmF0YWwoIlx0aT0lZFx0cHJpbWFyeSAweCUwMnhc
dGJhY2t1cCAweCUwMnhcbiIsCisJCQkJCSAgICAgICBpLCBibG9ja1tpXSwg
YmFja3VwW2ldKTsKKwkJCX0KIAkJfQogCQkvKiBDaGVjayBiYWNrdXAgRlNJ
bmZvPwkJCQkJWFhYICovCiAJfQpkaWZmIC1ydSBmc2NrX21zZG9zZnMub3Jp
Zy9jaGVjay5jIGZzY2tfbXNkb3Nmcy9jaGVjay5jCi0tLSBmc2NrX21zZG9z
ZnMub3JpZy9jaGVjay5jCTIwMTAtMDEtMDYgMTE6MDc6MjQuMDAwMDAwMDAw
ICswMDAwCisrKyBmc2NrX21zZG9zZnMvY2hlY2suYwkyMDEwLTAxLTA3IDIy
OjA5OjEzLjAwMDAwMDAwMCArMDAwMApAQCAtMTAsMTMgKzEwLDYgQEAKICAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1
cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3Bs
YXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6Ci0gKglUaGlzIHBy
b2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcnRpbiBI
dXNlbWFubgotICoJYW5kIFdvbGZnYW5nIFNvbGZyYW5rLgotICogNC4gTmVp
dGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBz
b2Z0d2FyZQotICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQVVUSE9SUyBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
CiAgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCkBAIC00MCw3ICsz
Myw2IEBACiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJp
bmcuaD4KLSNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+
CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KQEAg
LTU0LDcgKzQ2LDggQEAKIAlpbnQgZG9zZnM7CiAJc3RydWN0IGJvb3RibG9j
ayBib290OwogCXN0cnVjdCBmYXRFbnRyeSAqZmF0ID0gTlVMTDsKLQlpbnQg
aSwgZmluaXNoX2Rvc2RpcnNlY3Rpb249MDsKKwlpbnQgZmluaXNoX2Rvc2Rp
cnNlY3Rpb249MDsKKwl1X2ludCBpOwogCWludCBtb2QgPSAwOwogCWludCBy
ZXQgPSA4OwogCmRpZmYgLXJ1IGZzY2tfbXNkb3Nmcy5vcmlnL2Rpci5jIGZz
Y2tfbXNkb3Nmcy9kaXIuYwotLS0gZnNja19tc2Rvc2ZzLm9yaWcvZGlyLmMJ
MjAxMC0wMS0wNiAxMTowNzoyNC4wMDAwMDAwMDAgKzAwMDAKKysrIGZzY2tf
bXNkb3Nmcy9kaXIuYwkyMDEwLTAxLTA3IDIyOjA5OjEzLjAwMDAwMDAwMCAr
MDAwMApAQCAtMTIsMTMgKzEyLDYgQEAKICAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5n
IG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlz
IHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBh
Y2tub3dsZWRnZW1lbnQ6Ci0gKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29m
dHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotICoJYW5kIFdv
bGZnYW5nIFNvbGZyYW5rLgotICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0
aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgog
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyBg
YEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCiAgKiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTCkBAIC00NCw3ICszNyw2IEBACiAjaW5jbHVkZSA8
c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8Y3R5
cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHVuaXN0ZC5o
PgogI2luY2x1ZGUgPHRpbWUuaD4KIApAQCAtMjI2LDE2ICsyMTgsMjkgQEAK
IAlpbnQgYjEsIGIyOwogCWNsX3QgY2w7CiAJaW50IHJldCA9IEZTT0s7CisJ
c2l6ZV90IGxlbjsKIAogCWIxID0gYm9vdC0+Um9vdERpckVudHMgKiAzMjsK
IAliMiA9IGJvb3QtPlNlY1BlckNsdXN0ICogYm9vdC0+Qnl0ZXNQZXJTZWM7
CiAKLQlpZiAoIShidWZmZXIgPSBtYWxsb2MoYjEgPiBiMiA/IGIxIDogYjIp
KQotCSAgICB8fCAhKGRlbGJ1ZiA9IG1hbGxvYyhiMikpCi0JICAgIHx8ICEo
cm9vdERpciA9IG5ld0Rvc0RpckVudHJ5KCkpKSB7Ci0JCXBlcnJvcigiTm8g
c3BhY2UgZm9yIGRpcmVjdG9yeSIpOworCWlmICgoYnVmZmVyID0gbWFsbG9j
KGxlbiA9IGIxID4gYjIgPyBiMSA6IGIyKSkgPT0gTlVMTCkgeworCQlwZXJy
b3IoIk5vIHNwYWNlIGZvciBkaXJlY3RvcnkgYnVmZmVyIik7CiAJCXJldHVy
biBGU0ZBVEFMOwogCX0KKworCWlmICgoZGVsYnVmID0gbWFsbG9jKGxlbiA9
IGIyKSkgPT0gTlVMTCkgeworCQlmcmVlKGJ1ZmZlcik7CisJCXBlcnJvcigi
Tm8gc3BhY2UgZm9yIGRpcmVjdG9yeSBkZWxidWYiKTsKKwkJcmV0dXJuIEZT
RkFUQUw7CisJfQorCisJaWYgKChyb290RGlyID0gbmV3RG9zRGlyRW50cnko
KSkgPT0gTlVMTCkgeworCQlmcmVlKGJ1ZmZlcik7CisJCWZyZWUoZGVsYnVm
KTsKKwkJcGVycm9yKCJObyBzcGFjZSBmb3IgZGlyZWN0b3J5IGVudHJ5Iik7
CisJCXJldHVybiBGU0ZBVEFMOworCX0KKwogCW1lbXNldChyb290RGlyLCAw
LCBzaXplb2YgKnJvb3REaXIpOwogCWlmIChib290LT5mbGFncyAmIEZBVDMy
KSB7CiAJCWlmIChib290LT5Sb290Q2wgPCBDTFVTVF9GSVJTVCB8fCBib290
LT5Sb290Q2wgPj0gYm9vdC0+TnVtQ2x1c3RlcnMpIHsKQEAgLTM2Nyw3ICsz
NzIsOCBAQAogCQkJCXJldHVybiBGU0ZBVEFMOwogCQkJc3RhcnQgPSBidWZm
ZXI7CiAJCX0KLQkJaWYgKGVuZGNsID09IGN1cmNsKQorCQkvKiBzdGFydGNs
IGlzIDwgQ0xVU1RfRklSU1QgZm9yICFmYXQzMiByb290ICovCisJCWlmICgo
ZW5kY2wgPT0gY3VyY2wpIHx8IChzdGFydGNsIDwgQ0xVU1RfRklSU1QpKQog
CQkJZm9yICg7IHN0YXJ0IDwgZW5kOyBzdGFydCArPSAzMikKIAkJCQkqc3Rh
cnQgPSBTTE9UX0RFTEVURUQ7CiAJCXJldHVybiBGU0RJUk1PRDsKQEAgLTM4
NSw3ICszOTEsNyBAQAogCS8qCiAJICogQ2hlY2sgc2l6ZSBvbiBvcmRpbmFy
eSBmaWxlcwogCSAqLwotCWludDMyX3QgcGh5c2ljYWxTaXplOworCXVfaW50
MzJfdCBwaHlzaWNhbFNpemU7CiAKIAlpZiAoZGlyLT5oZWFkID09IENMVVNU
X0ZSRUUpCiAJCXBoeXNpY2FsU2l6ZSA9IDA7CkBAIC02NDQsNyArNjUwLDgg
QEAKIAkJCQlkaXJlbnQuaGVhZCB8PSAocFsyMF0gPDwgMTYpIHwgKHBbMjFd
IDw8IDI0KTsKIAkJCWRpcmVudC5zaXplID0gcFsyOF0gfCAocFsyOV0gPDwg
OCkgfCAocFszMF0gPDwgMTYpIHwgKHBbMzFdIDw8IDI0KTsKIAkJCWlmICh2
YWxsZm4pIHsKLQkJCQlzdHJjcHkoZGlyZW50LmxuYW1lLCBsb25nTmFtZSk7
CisJCQkJc3RybGNweShkaXJlbnQubG5hbWUsIGxvbmdOYW1lLAorCQkJCSAg
ICBzaXplb2YoZGlyZW50LmxuYW1lKSk7CiAJCQkJbG9uZ05hbWVbMF0gPSAn
XDAnOwogCQkJCXNob3J0U3VtID0gLTE7CiAJCQl9CkBAIC04MzIsNiArODM5
LDEwIEBACiAJCQl9CiAJCQlib290LT5OdW1GaWxlcysrOwogCQl9CisKKwkJ
aWYgKCEoYm9vdC0+ZmxhZ3MgJiBGQVQzMikgJiYgIWRpci0+cGFyZW50KQor
CQkJYnJlYWs7CisKIAkJaWYgKG1vZCAmIFRISVNNT0QpIHsKIAkJCWxhc3Qg
Kj0gMzI7CiAJCQlpZiAobHNlZWsoZiwgb2ZmLCBTRUVLX1NFVCkgIT0gb2Zm
CkBAIC04NDcsNiArODU4LDE5IEBACiAJCQkJaW52bGZuID8gaW52bGZuIDog
dmFsbGZuLCBwLAogCQkJCWludmxmbiA/IGludmNsIDogdmFsY2wsIC0xLCAw
LAogCQkJCWZ1bGxwYXRoKGRpciksIDEpOworCisJLyogVGhlIHJvb3QgZGly
ZWN0b3J5IG9mIG5vbiBmYXQzMiBmaWxlc3lzdGVtcyBpcyBpbiBhIHNwZWNp
YWwKKwkgKiBhcmVhIGFuZCBtYXkgaGF2ZSBiZWVuIG1vZGlmaWVkIGFib3Zl
IHdpdGhvdXQgYmVpbmcgd3JpdHRlbiBvdXQuCisJICovCisJaWYgKChtb2Qg
JiBGU0RJUk1PRCkgJiYgIShib290LT5mbGFncyAmIEZBVDMyKSAmJiAhZGly
LT5wYXJlbnQpIHsKKwkJbGFzdCAqPSAzMjsKKwkJaWYgKGxzZWVrKGYsIG9m
ZiwgU0VFS19TRVQpICE9IG9mZgorCQkgICAgfHwgd3JpdGUoZiwgYnVmZmVy
LCBsYXN0KSAhPSBsYXN0KSB7CisJCQlwZXJyb3IoIlVuYWJsZSB0byB3cml0
ZSBkaXJlY3RvcnkiKTsKKwkJCXJldHVybiBGU0ZBVEFMOworCQl9CisJCW1v
ZCAmPSB+VEhJU01PRDsKKwl9CiAJcmV0dXJuIG1vZCAmIH5USElTTU9EOwog
fQogCkBAIC05MzYsNyArOTYwLDcgQEAKIAkJbGZvZmYgPSBsZmNsICogYm9v
dC0+Q2x1c3RlclNpemUKIAkJICAgICsgYm9vdC0+Q2x1c3Rlck9mZnNldCAq
IGJvb3QtPkJ5dGVzUGVyU2VjOwogCQlpZiAobHNlZWsoZG9zZnMsIGxmb2Zm
LCBTRUVLX1NFVCkgIT0gbGZvZmYKLQkJICAgIHx8IHJlYWQoZG9zZnMsIGxm
YnVmLCBib290LT5DbHVzdGVyU2l6ZSkgIT0gYm9vdC0+Q2x1c3RlclNpemUp
IHsKKwkJICAgIHx8IChzaXplX3QpcmVhZChkb3NmcywgbGZidWYsIGJvb3Qt
PkNsdXN0ZXJTaXplKSAhPSBib290LT5DbHVzdGVyU2l6ZSkgewogCQkJcGVy
cm9yKCJjb3VsZCBub3QgcmVhZCBMT1NULkRJUiIpOwogCQkJcmV0dXJuIEZT
RkFUQUw7CiAJCX0KQEAgLTk2Niw3ICs5OTAsNyBAQAogCXBbMzFdID0gKHVf
Y2hhcikoZC5zaXplID4+IDI0KTsKIAlmYXRbaGVhZF0uZmxhZ3MgfD0gRkFU
X1VTRUQ7CiAJaWYgKGxzZWVrKGRvc2ZzLCBsZm9mZiwgU0VFS19TRVQpICE9
IGxmb2ZmCi0JICAgIHx8IHdyaXRlKGRvc2ZzLCBsZmJ1ZiwgYm9vdC0+Q2x1
c3RlclNpemUpICE9IGJvb3QtPkNsdXN0ZXJTaXplKSB7CisJICAgIHx8IChz
aXplX3Qpd3JpdGUoZG9zZnMsIGxmYnVmLCBib290LT5DbHVzdGVyU2l6ZSkg
IT0gYm9vdC0+Q2x1c3RlclNpemUpIHsKIAkJcGVycm9yKCJjb3VsZCBub3Qg
d3JpdGUgTE9TVC5ESVIiKTsKIAkJcmV0dXJuIEZTRkFUQUw7CiAJfQpkaWZm
IC1ydSBmc2NrX21zZG9zZnMub3JpZy9kb3Nmcy5oIGZzY2tfbXNkb3Nmcy9k
b3Nmcy5oCi0tLSBmc2NrX21zZG9zZnMub3JpZy9kb3Nmcy5oCTIwMTAtMDEt
MDYgMTE6MDc6MjQuMDAwMDAwMDAwICswMDAwCisrKyBmc2NrX21zZG9zZnMv
ZG9zZnMuaAkyMDEwLTAxLTA3IDIyOjA5OjEzLjAwMDAwMDAwMCArMDAwMApA
QCAtMTIsMTMgKzEyLDYgQEAKICAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVy
aWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3
YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3ds
ZWRnZW1lbnQ6Ci0gKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUg
ZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotICoJYW5kIFdvbGZnYW5n
IFNvbGZyYW5rLgotICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5p
dmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyBgYEFTIElT
JycgQU5EIEFOWSBFWFBSRVNTIE9SCiAgKiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTCmRpZmYgLXJ1IGZzY2tfbXNkb3Nmcy5vcmlnL2V4dC5oIGZz
Y2tfbXNkb3Nmcy9leHQuaAotLS0gZnNja19tc2Rvc2ZzLm9yaWcvZXh0LmgJ
MjAxMC0wMS0wNiAxMTowNzoyNC4wMDAwMDAwMDAgKzAwMDAKKysrIGZzY2tf
bXNkb3Nmcy9leHQuaAkyMDEwLTAxLTA3IDIyOjA5OjEzLjAwMDAwMDAwMCAr
MDAwMApAQCAtMTAsMTMgKzEwLDYgQEAKICAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5n
IG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlz
IHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBh
Y2tub3dsZWRnZW1lbnQ6Ci0gKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29m
dHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotICoJYW5kIFdv
bGZnYW5nIFNvbGZyYW5rLgotICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0
aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgog
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyBg
YEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCiAgKiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTCkBAIC03NywxMiArNzAsMTIgQEAKICNkZWZpbmUJ
RlNESVJNT0QJMgkJLyogU29tZSBkaXJlY3Rvcnkgd2FzIG1vZGlmaWVkICov
CiAjZGVmaW5lCUZTRkFUTU9ECTQJCS8qIFRoZSBGQVQgd2FzIG1vZGlmaWVk
ICovCiAjZGVmaW5lCUZTRVJST1IJCTgJCS8qIFNvbWUgdW5yZWNvdmVyZWQg
ZXJyb3IgcmVtYWlucyAqLwotI2RlZmluZQlGU0ZBVEFMCQkxNgkJLyogU29t
ZSB1bnJlY292ZXJhYmxlIGVycm9yIG9jY3VyZWQgKi8KKyNkZWZpbmUJRlNG
QVRBTAkJMTYJCS8qIFNvbWUgdW5yZWNvdmVyYWJsZSBlcnJvciBvY2N1cnJl
ZCAqLwogI2RlZmluZSBGU0RJUlRZCQkzMgkJLyogRmlsZSBzeXN0ZW0gaXMg
ZGlydHkgKi8KICNkZWZpbmUgRlNGSVhGQVQJNjQJCS8qIEZpeCBmaWxlIHN5
c3RlbSBGQVQgKi8KIAogLyoKLSAqIHJlYWQgYSBib290IGJsb2NrIGluIGEg
bWFjaGluZSBpbmRlcGVuZGVuZCBmYXNoaW9uIGFuZCB0cmFuc2xhdGUKKyAq
IHJlYWQgYSBib290IGJsb2NrIGluIGEgbWFjaGluZSBpbmRlcGVuZGVudCBm
YXNoaW9uIGFuZCB0cmFuc2xhdGUKICAqIGl0IGludG8gb3VyIHN0cnVjdCBi
b290YmxvY2suCiAgKi8KIGludCByZWFkYm9vdChpbnQsIHN0cnVjdCBib290
YmxvY2sgKik7CkBAIC05NiwxMyArODksMTMgQEAKICAqIFJlYWQgb25lIG9m
IHRoZSBGQVQgY29waWVzIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBu
ZXcKICAqIGFsbG9jYXRlZCBhcnJheSBob2xkaW5nIG91ciBkZXNjcmlwdGlv
biBvZiBpdC4KICAqLwotaW50IHJlYWRmYXQoaW50LCBzdHJ1Y3QgYm9vdGJs
b2NrICosIGludCwgc3RydWN0IGZhdEVudHJ5ICoqKTsKK2ludCByZWFkZmF0
KGludCwgc3RydWN0IGJvb3RibG9jayAqLCB1X2ludCwgc3RydWN0IGZhdEVu
dHJ5ICoqKTsKIAogLyoKICAqIENoZWNrIHR3byBGQVQgY29waWVzIGZvciBj
b25zaXN0ZW5jeSBhbmQgbWVyZ2UgY2hhbmdlcyBpbnRvIHRoZQotICogZmly
c3QgaWYgbmVjY2Vzc2FyeS4KKyAqIGZpcnN0IGlmIG5lY2Vzc2FyeS4KICAq
LwotaW50IGNvbXBhcmVmYXQoc3RydWN0IGJvb3RibG9jayAqLCBzdHJ1Y3Qg
ZmF0RW50cnkgKiwgc3RydWN0IGZhdEVudHJ5ICosIGludCk7CitpbnQgY29t
cGFyZWZhdChzdHJ1Y3QgYm9vdGJsb2NrICosIHN0cnVjdCBmYXRFbnRyeSAq
LCBzdHJ1Y3QgZmF0RW50cnkgKiwgdV9pbnQpOwogCiAvKgogICogQ2hlY2sg
YSBGQVQKZGlmZiAtcnUgZnNja19tc2Rvc2ZzLm9yaWcvZmF0LmMgZnNja19t
c2Rvc2ZzL2ZhdC5jCi0tLSBmc2NrX21zZG9zZnMub3JpZy9mYXQuYwkyMDEw
LTAxLTA2IDExOjA3OjI0LjAwMDAwMDAwMCArMDAwMAorKysgZnNja19tc2Rv
c2ZzL2ZhdC5jCTIwMTAtMDEtMDcgMjI6MTM6MzEuMDAwMDAwMDAwICswMDAw
CkBAIC0xMCwxMyArMTAsNiBAQAogICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0
ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29m
dHdhcmUKLSAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25v
d2xlZGdlbWVudDoKLSAqCVRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2Fy
ZSBkZXZlbG9wZWQgYnkgTWFydGluIEh1c2VtYW5uCi0gKglhbmQgV29sZmdh
bmcgU29sZnJhbmsuCi0gKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBV
bml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwot
ICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0gKiAgICB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKICAqIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMKQEAgLTQ3LDEwICs0MCwxMCBAQAogI2luY2x1ZGUgImV4
dC5oIgogI2luY2x1ZGUgImZzdXRpbC5oIgogCi1zdGF0aWMgaW50IGNoZWNr
Y2xudW0oc3RydWN0IGJvb3RibG9jayAqLCBpbnQsIGNsX3QsIGNsX3QgKik7
Ci1zdGF0aWMgaW50IGNsdXN0ZGlmZmVyKGNsX3QsIGNsX3QgKiwgY2xfdCAq
LCBpbnQpOworc3RhdGljIGludCBjaGVja2NsbnVtKHN0cnVjdCBib290Ymxv
Y2sgKiwgdV9pbnQsIGNsX3QsIGNsX3QgKik7CitzdGF0aWMgaW50IGNsdXN0
ZGlmZmVyKGNsX3QsIGNsX3QgKiwgY2xfdCAqLCB1X2ludCk7CiBzdGF0aWMg
aW50IHRyeWNsZWFyKHN0cnVjdCBib290YmxvY2sgKiwgc3RydWN0IGZhdEVu
dHJ5ICosIGNsX3QsIGNsX3QgKik7Ci1zdGF0aWMgaW50IF9yZWFkZmF0KGlu
dCwgc3RydWN0IGJvb3RibG9jayAqLCBpbnQsIHVfY2hhciAqKik7CitzdGF0
aWMgaW50IF9yZWFkZmF0KGludCwgc3RydWN0IGJvb3RibG9jayAqLCB1X2lu
dCwgdV9jaGFyICoqKTsKIAogLyotCiAgKiBUaGUgZmlyc3QgMiBGQVQgZW50
cmllcyBjb250YWluIHBzZXVkby1jbHVzdGVyIG51bWJlcnMgd2l0aCB0aGUg
Zm9sbG93aW5nCkBAIC0xMzUsNyArMTI4LDcgQEAKICAqIENoZWNrIGEgY2x1
c3RlciBudW1iZXIgZm9yIHZhbGlkIHZhbHVlCiAgKi8KIHN0YXRpYyBpbnQK
LWNoZWNrY2xudW0oc3RydWN0IGJvb3RibG9jayAqYm9vdCwgaW50IGZhdCwg
Y2xfdCBjbCwgY2xfdCAqbmV4dCkKK2NoZWNrY2xudW0oc3RydWN0IGJvb3Ri
bG9jayAqYm9vdCwgdV9pbnQgZmF0LCBjbF90IGNsLCBjbF90ICpuZXh0KQog
ewogCWlmICgqbmV4dCA+PSAoQ0xVU1RfUlNSVkQmYm9vdC0+Q2x1c3RNYXNr
KSkKIAkJKm5leHQgfD0gfmJvb3QtPkNsdXN0TWFzazsKQEAgLTE2Niw3ICsx
NTksNyBAQAogICogUmVhZCBhIEZBVCBmcm9tIGRpc2suIFJldHVybnMgMSBp
ZiBzdWNjZXNzZnVsLCAwIG90aGVyd2lzZS4KICAqLwogc3RhdGljIGludAot
X3JlYWRmYXQoaW50IGZzLCBzdHJ1Y3QgYm9vdGJsb2NrICpib290LCBpbnQg
bm8sIHVfY2hhciAqKmJ1ZmZlcikKK19yZWFkZmF0KGludCBmcywgc3RydWN0
IGJvb3RibG9jayAqYm9vdCwgdV9pbnQgbm8sIHVfY2hhciAqKmJ1ZmZlcikK
IHsKIAlvZmZfdCBvZmY7CiAKQEAgLTE4NCw3ICsxNzcsNyBAQAogCQlnb3Rv
IGVycjsKIAl9CiAKLQlpZiAocmVhZChmcywgKmJ1ZmZlciwgYm9vdC0+RkFU
c2VjcyAqIGJvb3QtPkJ5dGVzUGVyU2VjKQorCWlmICgoc2l6ZV90KXJlYWQo
ZnMsICpidWZmZXIsIGJvb3QtPkZBVHNlY3MgKiBib290LT5CeXRlc1BlclNl
YykKIAkgICAgIT0gYm9vdC0+RkFUc2VjcyAqIGJvb3QtPkJ5dGVzUGVyU2Vj
KSB7CiAJCXBlcnJvcigiVW5hYmxlIHRvIHJlYWQgRkFUIik7CiAJCWdvdG8g
ZXJyOwpAQCAtMjAxLDI0ICsxOTQsMjYgQEAKICAqIFJlYWQgYSBGQVQgYW5k
IGRlY29kZSBpdCBpbnRvIGludGVybmFsIGZvcm1hdAogICovCiBpbnQKLXJl
YWRmYXQoaW50IGZzLCBzdHJ1Y3QgYm9vdGJsb2NrICpib290LCBpbnQgbm8s
IHN0cnVjdCBmYXRFbnRyeSAqKmZwKQorcmVhZGZhdChpbnQgZnMsIHN0cnVj
dCBib290YmxvY2sgKmJvb3QsIHVfaW50IG5vLCBzdHJ1Y3QgZmF0RW50cnkg
KipmcCkKIHsKIAlzdHJ1Y3QgZmF0RW50cnkgKmZhdDsKIAl1X2NoYXIgKmJ1
ZmZlciwgKnA7CiAJY2xfdCBjbDsKIAlpbnQgcmV0ID0gRlNPSzsKKwlzaXpl
X3QgbGVuOwogCiAJYm9vdC0+TnVtRnJlZSA9IGJvb3QtPk51bUJhZCA9IDA7
CiAKIAlpZiAoIV9yZWFkZmF0KGZzLCBib290LCBubywgJmJ1ZmZlcikpCiAJ
CXJldHVybiBGU0ZBVEFMOwogCQkKLQlmYXQgPSBjYWxsb2MoYm9vdC0+TnVt
Q2x1c3RlcnMsIHNpemVvZihzdHJ1Y3QgZmF0RW50cnkpKTsKKwlmYXQgPSBt
YWxsb2MobGVuID0gYm9vdC0+TnVtQ2x1c3RlcnMgKiBzaXplb2Yoc3RydWN0
IGZhdEVudHJ5KSk7CiAJaWYgKGZhdCA9PSBOVUxMKSB7CiAJCXBlcnJvcigi
Tm8gc3BhY2UgZm9yIEZBVCIpOwogCQlmcmVlKGJ1ZmZlcik7CiAJCXJldHVy
biBGU0ZBVEFMOwogCX0KKwkodm9pZCltZW1zZXQoZmF0LCAwLCBsZW4pOwog
CiAJaWYgKGJ1ZmZlclswXSAhPSBib290LT5NZWRpYQogCSAgICB8fCBidWZm
ZXJbMV0gIT0gMHhmZiB8fCBidWZmZXJbMl0gIT0gMHhmZgpAQCAtMzExLDcg
KzMwNiwxMSBAQAogCX0KIAogCWZyZWUoYnVmZmVyKTsKLQkqZnAgPSBmYXQ7
CisJaWYgKHJldCAmIEZTRkFUQUwpIHsKKwkJZnJlZShmYXQpOworCQkqZnAg
PSBOVUxMOworCX0gZWxzZQorCQkqZnAgPSBmYXQ7CiAJcmV0dXJuIHJldDsK
IH0KIApAQCAtMzMxLDcgKzMzMCw3IEBACiB9CiAKIHN0YXRpYyBpbnQKLWNs
dXN0ZGlmZmVyKGNsX3QgY2wsIGNsX3QgKmNwMSwgY2xfdCAqY3AyLCBpbnQg
ZmF0bnVtKQorY2x1c3RkaWZmZXIoY2xfdCBjbCwgY2xfdCAqY3AxLCBjbF90
ICpjcDIsIHVfaW50IGZhdG51bSkKIHsKIAlpZiAoKmNwMSA9PSBDTFVTVF9G
UkVFIHx8ICpjcDEgPj0gQ0xVU1RfUlNSVkQpIHsKIAkJaWYgKCpjcDIgPT0g
Q0xVU1RfRlJFRSB8fCAqY3AyID49IENMVVNUX1JTUlZEKSB7CkBAIC0zNDYs
MTMgKzM0NSwxMyBAQAogCQkJCX0KIAkJCQlyZXR1cm4gRlNGQVRBTDsKIAkJ
CX0KLQkJCXB3YXJuKCJDbHVzdGVyICV1IGlzIG1hcmtlZCAlcyBpbiBGQVQg
MCwgJXMgaW4gRkFUICVkXG4iLAorCQkJcHdhcm4oIkNsdXN0ZXIgJXUgaXMg
bWFya2VkICVzIGluIEZBVCAwLCAlcyBpbiBGQVQgJXVcbiIsCiAJCQkgICAg
ICBjbCwgcnNydmRjbHR5cGUoKmNwMSksIHJzcnZkY2x0eXBlKCpjcDIpLCBm
YXRudW0pOwogCQkJaWYgKGFzaygwLCAiVXNlIEZBVCAwJ3MgZW50cnkiKSkg
ewogCQkJCSpjcDIgPSAqY3AxOwogCQkJCXJldHVybiBGU0ZBVE1PRDsKIAkJ
CX0KLQkJCWlmIChhc2soMCwgIlVzZSBGQVQgJWQncyBlbnRyeSIsIGZhdG51
bSkpIHsKKwkJCWlmIChhc2soMCwgIlVzZSBGQVQgJXUncyBlbnRyeSIsIGZh
dG51bSkpIHsKIAkJCQkqY3AxID0gKmNwMjsKIAkJCQlyZXR1cm4gRlNGQVRN
T0Q7CiAJCQl9CkBAIC0zNjAsNyArMzU5LDcgQEAKIAkJfQogCQlwd2Fybigi
Q2x1c3RlciAldSBpcyBtYXJrZWQgJXMgaW4gRkFUIDAsIGJ1dCBjb250aW51
ZXMgd2l0aCBjbHVzdGVyICV1IGluIEZBVCAlZFxuIiwKIAkJICAgICAgY2ws
IHJzcnZkY2x0eXBlKCpjcDEpLCAqY3AyLCBmYXRudW0pOwotCQlpZiAoYXNr
KDAsICJVc2UgY29udGludWF0aW9uIGZyb20gRkFUICVkIiwgZmF0bnVtKSkg
eworCQlpZiAoYXNrKDAsICJVc2UgY29udGludWF0aW9uIGZyb20gRkFUICV1
IiwgZmF0bnVtKSkgewogCQkJKmNwMSA9ICpjcDI7CiAJCQlyZXR1cm4gRlNG
QVRNT0Q7CiAJCX0KQEAgLTM3MSw3ICszNzAsNyBAQAogCQlyZXR1cm4gRlNG
QVRBTDsKIAl9CiAJaWYgKCpjcDIgPT0gQ0xVU1RfRlJFRSB8fCAqY3AyID49
IENMVVNUX1JTUlZEKSB7Ci0JCXB3YXJuKCJDbHVzdGVyICV1IGNvbnRpbnVl
cyB3aXRoIGNsdXN0ZXIgJXUgaW4gRkFUIDAsIGJ1dCBpcyBtYXJrZWQgJXMg
aW4gRkFUICVkXG4iLAorCQlwd2FybigiQ2x1c3RlciAldSBjb250aW51ZXMg
d2l0aCBjbHVzdGVyICV1IGluIEZBVCAwLCBidXQgaXMgbWFya2VkICVzIGlu
IEZBVCAldVxuIiwKIAkJICAgICAgY2wsICpjcDEsIHJzcnZkY2x0eXBlKCpj
cDIpLCBmYXRudW0pOwogCQlpZiAoYXNrKDAsICJVc2UgY29udGludWF0aW9u
IGZyb20gRkFUIDAiKSkgewogCQkJKmNwMiA9ICpjcDE7CkBAIC0zODMsMTMg
KzM4MiwxMyBAQAogCQl9CiAJCXJldHVybiBGU0VSUk9SOwogCX0KLQlwd2Fy
bigiQ2x1c3RlciAldSBjb250aW51ZXMgd2l0aCBjbHVzdGVyICV1IGluIEZB
VCAwLCBidXQgd2l0aCBjbHVzdGVyICV1IGluIEZBVCAlZFxuIiwKKwlwd2Fy
bigiQ2x1c3RlciAldSBjb250aW51ZXMgd2l0aCBjbHVzdGVyICV1IGluIEZB
VCAwLCBidXQgd2l0aCBjbHVzdGVyICV1IGluIEZBVCAldVxuIiwKIAkgICAg
ICBjbCwgKmNwMSwgKmNwMiwgZmF0bnVtKTsKIAlpZiAoYXNrKDAsICJVc2Ug
Y29udGludWF0aW9uIGZyb20gRkFUIDAiKSkgewogCQkqY3AyID0gKmNwMTsK
IAkJcmV0dXJuIEZTRkFUTU9EOwogCX0KLQlpZiAoYXNrKDAsICJVc2UgY29u
dGludWF0aW9uIGZyb20gRkFUICVkIiwgZmF0bnVtKSkgeworCWlmIChhc2so
MCwgIlVzZSBjb250aW51YXRpb24gZnJvbSBGQVQgJXUiLCBmYXRudW0pKSB7
CiAJCSpjcDEgPSAqY3AyOwogCQlyZXR1cm4gRlNGQVRNT0Q7CiAJfQpAQCAt
NDAxLDggKzQwMCw4IEBACiAgKiBpbnRvIHRoZSBmaXJzdCBvbmUuCiAgKi8K
IGludAotY29tcGFyZWZhdChzdHJ1Y3QgYm9vdGJsb2NrICpib290LCBzdHJ1
Y3QgZmF0RW50cnkgKmZpcnN0LCAKLSAgICBzdHJ1Y3QgZmF0RW50cnkgKnNl
Y29uZCwgaW50IGZhdG51bSkKK2NvbXBhcmVmYXQoc3RydWN0IGJvb3RibG9j
ayAqYm9vdCwgc3RydWN0IGZhdEVudHJ5ICpmaXJzdCwKKyAgICBzdHJ1Y3Qg
ZmF0RW50cnkgKnNlY29uZCwgdV9pbnQgZmF0bnVtKQogewogCWNsX3QgY2w7
CiAJaW50IHJldCA9IEZTT0s7CkBAIC01NDIsOCArNTQxLDggQEAKIHsKIAl1
X2NoYXIgKmJ1ZmZlciwgKnA7CiAJY2xfdCBjbDsKLQlpbnQgaTsKLQl1X2lu
dDMyX3QgZmF0c3o7CisJdV9pbnQgaTsKKwlzaXplX3QgZmF0c3o7CiAJb2Zm
X3Qgb2ZmOwogCWludCByZXQgPSBGU09LOwogCkBAIC02MzMsNyArNjMyLDcg
QEAKIAkJb2ZmID0gYm9vdC0+UmVzU2VjdG9ycyArIGkgKiBib290LT5GQVRz
ZWNzOwogCQlvZmYgKj0gYm9vdC0+Qnl0ZXNQZXJTZWM7CiAJCWlmIChsc2Vl
ayhmcywgb2ZmLCBTRUVLX1NFVCkgIT0gb2ZmCi0JCSAgICB8fCB3cml0ZShm
cywgYnVmZmVyLCBmYXRzeikgIT0gZmF0c3opIHsKKwkJICAgIHx8IChzaXpl
X3Qpd3JpdGUoZnMsIGJ1ZmZlciwgZmF0c3opICE9IGZhdHN6KSB7CiAJCQlw
ZXJyb3IoIlVuYWJsZSB0byB3cml0ZSBGQVQiKTsKIAkJCXJldCA9IEZTRkFU
QUw7IC8qIFJldHVybiBpbW1lZGlhdGVseT8JCVhYWCAqLwogCQl9CkBAIC02
ODMsMTcgKzY4Miw2IEBACiAJCQkJcmV0ID0gMTsKIAkJCX0KIAkJfQotCQlp
ZiAoYm9vdC0+TnVtRnJlZSAmJiBmYXRbYm9vdC0+RlNOZXh0XS5uZXh0ICE9
IENMVVNUX0ZSRUUpIHsKLQkJCXB3YXJuKCJOZXh0IGZyZWUgY2x1c3RlciBp
biBGU0luZm8gYmxvY2sgKCV1KSBub3QgZnJlZVxuIiwKLQkJCSAgICAgIGJv
b3QtPkZTTmV4dCk7Ci0JCQlpZiAoYXNrKDEsICJGaXgiKSkKLQkJCQlmb3Ig
KGhlYWQgPSBDTFVTVF9GSVJTVDsgaGVhZCA8IGJvb3QtPk51bUNsdXN0ZXJz
OyBoZWFkKyspCi0JCQkJCWlmIChmYXRbaGVhZF0ubmV4dCA9PSBDTFVTVF9G
UkVFKSB7Ci0JCQkJCQlib290LT5GU05leHQgPSBoZWFkOwotCQkJCQkJcmV0
ID0gMTsKLQkJCQkJCWJyZWFrOwotCQkJCQl9Ci0JCX0KIAkJaWYgKHJldCkK
IAkJCW1vZCB8PSB3cml0ZWZzaW5mbyhkb3NmcywgYm9vdCk7CiAJfQpkaWZm
IC1ydSBmc2NrX21zZG9zZnMub3JpZy9mc2NrX21zZG9zZnMuOCBmc2NrX21z
ZG9zZnMvZnNja19tc2Rvc2ZzLjgKLS0tIGZzY2tfbXNkb3Nmcy5vcmlnL2Zz
Y2tfbXNkb3Nmcy44CTIwMTAtMDEtMDYgMTE6MDc6MjQuMDAwMDAwMDAwICsw
MDAwCisrKyBmc2NrX21zZG9zZnMvZnNja19tc2Rvc2ZzLjgJMjAxMC0wMS0w
NyAyMjowOToxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTExLDEzICsxMSw2IEBA
CiAuXCIgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKIC5cIiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCiAuXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLS5cIiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25p
bmcgZmVhdHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLS5cIiAgICBt
dXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6Ci0u
XCIJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBi
eSBNYXJ0aW4gSHVzZW1hbm4KLS5cIglhbmQgV29sZmdhbmcgU29sZnJhbmsu
Ci0uXCIgNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBu
b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLS5cIiAgICBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tIHRoaXMgc29mdHdhcmUKLS5cIiAgICB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KIC5cIgogLlwiIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUlMgYGBBUyBJUycnIEFO
RCBBTlkgRVhQUkVTUyBPUgogLlwiIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMKZGlmZiAtcnUgZnNja19tc2Rvc2ZzLm9yaWcvbWFpbi5jIGZzY2tf
bXNkb3Nmcy9tYWluLmMKLS0tIGZzY2tfbXNkb3Nmcy5vcmlnL21haW4uYwky
MDEwLTAxLTA2IDExOjA3OjI0LjAwMDAwMDAwMCArMDAwMAorKysgZnNja19t
c2Rvc2ZzL21haW4uYwkyMDEwLTAxLTA3IDIyOjA5OjEzLjAwMDAwMDAwMCAr
MDAwMApAQCAtMTAsMTMgKzEwLDYgQEAKICAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5n
IG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlz
IHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBh
Y2tub3dsZWRnZW1lbnQ6Ci0gKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29m
dHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotICoJYW5kIFdv
bGZnYW5nIFNvbGZyYW5rLgotICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0
aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgog
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyBg
YEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCiAgKiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTCkBAIC00MCw3ICszMyw2IEBACiAKICNpbmNsdWRl
IDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxj
dHlwZS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8dW5pc3Rk
Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4K

--0-3016821-1262920724=:92513--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?143520.92513.qm>