bin/142384: sync fsck_msdosfs with OpenBSD

Pedro F. Giffuni giffunip at tutopia.com
Fri Jan 8 03:20:05 UTC 2010


The following reply was made to PR bin/142384; it has been noted by GNATS.

From: "Pedro F. Giffuni" <giffunip at tutopia.com>
To: FreeBSD-gnats-submit at FreeBSD.org, freebsd-bugs at FreeBSD.org
Cc:  
Subject: Re: bin/142384: sync fsck_msdosfs with OpenBSD
Date: Thu, 7 Jan 2010 19:18:44 -0800 (PST)

 --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--


More information about the freebsd-bugs mailing list