bin/142384: sync fsck_msdosfs with OpenBSD

Pedro F. Giffuni giffunip at tutopia.com
Fri Jan 8 20:40:03 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: Fri, 8 Jan 2010 12:34:36 -0800 (PST)

 --0-768091124-1262982876=:77647
 Content-Type: text/plain; charset=us-ascii
 
 (I spoke too soon)
 Remove unused variable len:
 This is used by NetBSD in error reports but we don't use it.
 
 
       
 --0-768091124-1262982876=:77647
 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
 bXNkb3Nmcy9kaXIuYwkyMDEwLTAxLTA4IDE1OjMwOjAzLjAwMDAwMDAwMCAr
 MDAwMApAQCAtMTIsMTMgKzEyLDYgQEAKICAqIDIuIFJlZGlzdHJpYnV0aW9u
 cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
 eXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
 IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBk
 b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
 d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gQWxsIGFkdmVydGlzaW5n
 IG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlz
 IHNvZnR3YXJlCi0gKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBh
 Y2tub3dsZWRnZW1lbnQ6Ci0gKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29m
 dHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotICoJYW5kIFdv
 bGZnYW5nIFNvbGZyYW5rLgotICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0
 aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
 cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
 cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0
 aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgog
 ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyBg
 YEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCiAgKiBJTVBMSUVEIFdBUlJB
 TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
 TElFRCBXQVJSQU5USUVTCkBAIC00NCw3ICszNyw2IEBACiAjaW5jbHVkZSA8
 c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8Y3R5
 cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHVuaXN0ZC5o
 PgogI2luY2x1ZGUgPHRpbWUuaD4KIApAQCAtMjMwLDEyICsyMjIsMjQgQEAK
 IAliMSA9IGJvb3QtPlJvb3REaXJFbnRzICogMzI7CiAJYjIgPSBib290LT5T
 ZWNQZXJDbHVzdCAqIGJvb3QtPkJ5dGVzUGVyU2VjOwogCi0JaWYgKCEoYnVm
 ZmVyID0gbWFsbG9jKGIxID4gYjIgPyBiMSA6IGIyKSkKLQkgICAgfHwgIShk
 ZWxidWYgPSBtYWxsb2MoYjIpKQotCSAgICB8fCAhKHJvb3REaXIgPSBuZXdE
 b3NEaXJFbnRyeSgpKSkgewotCQlwZXJyb3IoIk5vIHNwYWNlIGZvciBkaXJl
 Y3RvcnkiKTsKKwlpZiAoKGJ1ZmZlciA9IG1hbGxvYyggYjEgPiBiMiA/IGIx
 IDogYjIpKSA9PSBOVUxMKSB7CisJCXBlcnJvcigiTm8gc3BhY2UgZm9yIGRp
 cmVjdG9yeSBidWZmZXIiKTsKIAkJcmV0dXJuIEZTRkFUQUw7CiAJfQorCisJ
 aWYgKChkZWxidWYgPSBtYWxsb2MoYjIpKSA9PSBOVUxMKSB7CisJCWZyZWUo
 YnVmZmVyKTsKKwkJcGVycm9yKCJObyBzcGFjZSBmb3IgZGlyZWN0b3J5IGRl
 bGJ1ZiIpOworCQlyZXR1cm4gRlNGQVRBTDsKKwl9CisKKwlpZiAoKHJvb3RE
 aXIgPSBuZXdEb3NEaXJFbnRyeSgpKSA9PSBOVUxMKSB7CisJCWZyZWUoYnVm
 ZmVyKTsKKwkJZnJlZShkZWxidWYpOworCQlwZXJyb3IoIk5vIHNwYWNlIGZv
 ciBkaXJlY3RvcnkgZW50cnkiKTsKKwkJcmV0dXJuIEZTRkFUQUw7CisJfQor
 CiAJbWVtc2V0KHJvb3REaXIsIDAsIHNpemVvZiAqcm9vdERpcik7CiAJaWYg
 KGJvb3QtPmZsYWdzICYgRkFUMzIpIHsKIAkJaWYgKGJvb3QtPlJvb3RDbCA8
 IENMVVNUX0ZJUlNUIHx8IGJvb3QtPlJvb3RDbCA+PSBib290LT5OdW1DbHVz
 dGVycykgewpAQCAtMzY3LDcgKzM3MSw4IEBACiAJCQkJcmV0dXJuIEZTRkFU
 QUw7CiAJCQlzdGFydCA9IGJ1ZmZlcjsKIAkJfQotCQlpZiAoZW5kY2wgPT0g
 Y3VyY2wpCisJCS8qIHN0YXJ0Y2wgaXMgPCBDTFVTVF9GSVJTVCBmb3IgIWZh
 dDMyIHJvb3QgKi8KKwkJaWYgKChlbmRjbCA9PSBjdXJjbCkgfHwgKHN0YXJ0
 Y2wgPCBDTFVTVF9GSVJTVCkpCiAJCQlmb3IgKDsgc3RhcnQgPCBlbmQ7IHN0
 YXJ0ICs9IDMyKQogCQkJCSpzdGFydCA9IFNMT1RfREVMRVRFRDsKIAkJcmV0
 dXJuIEZTRElSTU9EOwpAQCAtMzg1LDcgKzM5MCw3IEBACiAJLyoKIAkgKiBD
 aGVjayBzaXplIG9uIG9yZGluYXJ5IGZpbGVzCiAJICovCi0JaW50MzJfdCBw
 aHlzaWNhbFNpemU7CisJdV9pbnQzMl90IHBoeXNpY2FsU2l6ZTsKIAogCWlm
 IChkaXItPmhlYWQgPT0gQ0xVU1RfRlJFRSkKIAkJcGh5c2ljYWxTaXplID0g
 MDsKQEAgLTY0NCw3ICs2NDksOCBAQAogCQkJCWRpcmVudC5oZWFkIHw9IChw
 WzIwXSA8PCAxNikgfCAocFsyMV0gPDwgMjQpOwogCQkJZGlyZW50LnNpemUg
 PSBwWzI4XSB8IChwWzI5XSA8PCA4KSB8IChwWzMwXSA8PCAxNikgfCAocFsz
 MV0gPDwgMjQpOwogCQkJaWYgKHZhbGxmbikgewotCQkJCXN0cmNweShkaXJl
 bnQubG5hbWUsIGxvbmdOYW1lKTsKKwkJCQlzdHJsY3B5KGRpcmVudC5sbmFt
 ZSwgbG9uZ05hbWUsCisJCQkJICAgIHNpemVvZihkaXJlbnQubG5hbWUpKTsK
 IAkJCQlsb25nTmFtZVswXSA9ICdcMCc7CiAJCQkJc2hvcnRTdW0gPSAtMTsK
 IAkJCX0KQEAgLTgzMiw2ICs4MzgsMTAgQEAKIAkJCX0KIAkJCWJvb3QtPk51
 bUZpbGVzKys7CiAJCX0KKworCQlpZiAoIShib290LT5mbGFncyAmIEZBVDMy
 KSAmJiAhZGlyLT5wYXJlbnQpCisJCQlicmVhazsKKwogCQlpZiAobW9kICYg
 VEhJU01PRCkgewogCQkJbGFzdCAqPSAzMjsKIAkJCWlmIChsc2VlayhmLCBv
 ZmYsIFNFRUtfU0VUKSAhPSBvZmYKQEAgLTg0Nyw2ICs4NTcsMTkgQEAKIAkJ
 CQlpbnZsZm4gPyBpbnZsZm4gOiB2YWxsZm4sIHAsCiAJCQkJaW52bGZuID8g
 aW52Y2wgOiB2YWxjbCwgLTEsIDAsCiAJCQkJZnVsbHBhdGgoZGlyKSwgMSk7
 CisKKwkvKiBUaGUgcm9vdCBkaXJlY3Rvcnkgb2Ygbm9uIGZhdDMyIGZpbGVz
 eXN0ZW1zIGlzIGluIGEgc3BlY2lhbAorCSAqIGFyZWEgYW5kIG1heSBoYXZl
 IGJlZW4gbW9kaWZpZWQgYWJvdmUgd2l0aG91dCBiZWluZyB3cml0dGVuIG91
 dC4KKwkgKi8KKwlpZiAoKG1vZCAmIEZTRElSTU9EKSAmJiAhKGJvb3QtPmZs
 YWdzICYgRkFUMzIpICYmICFkaXItPnBhcmVudCkgeworCQlsYXN0ICo9IDMy
 OworCQlpZiAobHNlZWsoZiwgb2ZmLCBTRUVLX1NFVCkgIT0gb2ZmCisJCSAg
 ICB8fCB3cml0ZShmLCBidWZmZXIsIGxhc3QpICE9IGxhc3QpIHsKKwkJCXBl
 cnJvcigiVW5hYmxlIHRvIHdyaXRlIGRpcmVjdG9yeSIpOworCQkJcmV0dXJu
 IEZTRkFUQUw7CisJCX0KKwkJbW9kICY9IH5USElTTU9EOworCX0KIAlyZXR1
 cm4gbW9kICYgflRISVNNT0Q7CiB9CiAKQEAgLTkzNiw3ICs5NTksNyBAQAog
 CQlsZm9mZiA9IGxmY2wgKiBib290LT5DbHVzdGVyU2l6ZQogCQkgICAgKyBi
 b290LT5DbHVzdGVyT2Zmc2V0ICogYm9vdC0+Qnl0ZXNQZXJTZWM7CiAJCWlm
 IChsc2Vlayhkb3NmcywgbGZvZmYsIFNFRUtfU0VUKSAhPSBsZm9mZgotCQkg
 ICAgfHwgcmVhZChkb3NmcywgbGZidWYsIGJvb3QtPkNsdXN0ZXJTaXplKSAh
 PSBib290LT5DbHVzdGVyU2l6ZSkgeworCQkgICAgfHwgKHNpemVfdClyZWFk
 KGRvc2ZzLCBsZmJ1ZiwgYm9vdC0+Q2x1c3RlclNpemUpICE9IGJvb3QtPkNs
 dXN0ZXJTaXplKSB7CiAJCQlwZXJyb3IoImNvdWxkIG5vdCByZWFkIExPU1Qu
 RElSIik7CiAJCQlyZXR1cm4gRlNGQVRBTDsKIAkJfQpAQCAtOTY2LDcgKzk4
 OSw3IEBACiAJcFszMV0gPSAodV9jaGFyKShkLnNpemUgPj4gMjQpOwogCWZh
 dFtoZWFkXS5mbGFncyB8PSBGQVRfVVNFRDsKIAlpZiAobHNlZWsoZG9zZnMs
 IGxmb2ZmLCBTRUVLX1NFVCkgIT0gbGZvZmYKLQkgICAgfHwgd3JpdGUoZG9z
 ZnMsIGxmYnVmLCBib290LT5DbHVzdGVyU2l6ZSkgIT0gYm9vdC0+Q2x1c3Rl
 clNpemUpIHsKKwkgICAgfHwgKHNpemVfdCl3cml0ZShkb3NmcywgbGZidWYs
 IGJvb3QtPkNsdXN0ZXJTaXplKSAhPSBib290LT5DbHVzdGVyU2l6ZSkgewog
 CQlwZXJyb3IoImNvdWxkIG5vdCB3cml0ZSBMT1NULkRJUiIpOwogCQlyZXR1
 cm4gRlNGQVRBTDsKIAl9CmRpZmYgLXJ1IGZzY2tfbXNkb3Nmcy5vcmlnL2Rv
 c2ZzLmggZnNja19tc2Rvc2ZzL2Rvc2ZzLmgKLS0tIGZzY2tfbXNkb3Nmcy5v
 cmlnL2Rvc2ZzLmgJMjAxMC0wMS0wNiAxMTowNzoyNC4wMDAwMDAwMDAgKzAw
 MDAKKysrIGZzY2tfbXNkb3Nmcy9kb3Nmcy5oCTIwMTAtMDEtMDcgMjI6MDk6
 MTMuMDAwMDAwMDAwICswMDAwCkBAIC0xMiwxMyArMTIsNiBAQAogICogMi4g
 UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
 IHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0
 IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
 biB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
 aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBB
 bGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVhdHVyZXMg
 b3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlzcGxheSB0
 aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqCVRoaXMgcHJvZHVj
 dCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgTWFydGluIEh1c2Vt
 YW5uCi0gKglhbmQgV29sZmdhbmcgU29sZnJhbmsuCi0gKiA0LiBOZWl0aGVy
 IHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2Yg
 aXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
 ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3
 YXJlCi0gKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
 bWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
 IFRIRSBBVVRIT1JTIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKICAq
 IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
 RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKZGlmZiAtcnUgZnNja19t
 c2Rvc2ZzLm9yaWcvZXh0LmggZnNja19tc2Rvc2ZzL2V4dC5oCi0tLSBmc2Nr
 X21zZG9zZnMub3JpZy9leHQuaAkyMDEwLTAxLTA2IDExOjA3OjI0LjAwMDAw
 MDAwMCArMDAwMAorKysgZnNja19tc2Rvc2ZzL2V4dC5oCTIwMTAtMDEtMDcg
 MjI6MDk6MTMuMDAwMDAwMDAwICswMDAwCkBAIC0xMCwxMyArMTAsNiBAQAog
 ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
 cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgIG5vdGljZSwgdGhp
 cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
 aW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
 IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
 KiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVh
 dHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlz
 cGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqCVRoaXMg
 cHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgTWFydGlu
 IEh1c2VtYW5uCi0gKglhbmQgV29sZmdhbmcgU29sZnJhbmsuCi0gKiA0LiBO
 ZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFt
 ZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8g
 ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
 IHNvZnR3YXJlCi0gKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
 ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
 REVEIEJZIFRIRSBBVVRIT1JTIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1Mg
 T1IKICAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
 IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKQEAgLTc3LDEy
 ICs3MCwxMiBAQAogI2RlZmluZQlGU0RJUk1PRAkyCQkvKiBTb21lIGRpcmVj
 dG9yeSB3YXMgbW9kaWZpZWQgKi8KICNkZWZpbmUJRlNGQVRNT0QJNAkJLyog
 VGhlIEZBVCB3YXMgbW9kaWZpZWQgKi8KICNkZWZpbmUJRlNFUlJPUgkJOAkJ
 LyogU29tZSB1bnJlY292ZXJlZCBlcnJvciByZW1haW5zICovCi0jZGVmaW5l
 CUZTRkFUQUwJCTE2CQkvKiBTb21lIHVucmVjb3ZlcmFibGUgZXJyb3Igb2Nj
 dXJlZCAqLworI2RlZmluZQlGU0ZBVEFMCQkxNgkJLyogU29tZSB1bnJlY292
 ZXJhYmxlIGVycm9yIG9jY3VycmVkICovCiAjZGVmaW5lIEZTRElSVFkJCTMy
 CQkvKiBGaWxlIHN5c3RlbSBpcyBkaXJ0eSAqLwogI2RlZmluZSBGU0ZJWEZB
 VAk2NAkJLyogRml4IGZpbGUgc3lzdGVtIEZBVCAqLwogCiAvKgotICogcmVh
 ZCBhIGJvb3QgYmxvY2sgaW4gYSBtYWNoaW5lIGluZGVwZW5kZW5kIGZhc2hp
 b24gYW5kIHRyYW5zbGF0ZQorICogcmVhZCBhIGJvb3QgYmxvY2sgaW4gYSBt
 YWNoaW5lIGluZGVwZW5kZW50IGZhc2hpb24gYW5kIHRyYW5zbGF0ZQogICog
 aXQgaW50byBvdXIgc3RydWN0IGJvb3RibG9jay4KICAqLwogaW50IHJlYWRi
 b290KGludCwgc3RydWN0IGJvb3RibG9jayAqKTsKQEAgLTk2LDEzICs4OSwx
 MyBAQAogICogUmVhZCBvbmUgb2YgdGhlIEZBVCBjb3BpZXMgYW5kIHJldHVy
 biBhIHBvaW50ZXIgdG8gdGhlIG5ldwogICogYWxsb2NhdGVkIGFycmF5IGhv
 bGRpbmcgb3VyIGRlc2NyaXB0aW9uIG9mIGl0LgogICovCi1pbnQgcmVhZGZh
 dChpbnQsIHN0cnVjdCBib290YmxvY2sgKiwgaW50LCBzdHJ1Y3QgZmF0RW50
 cnkgKiopOworaW50IHJlYWRmYXQoaW50LCBzdHJ1Y3QgYm9vdGJsb2NrICos
 IHVfaW50LCBzdHJ1Y3QgZmF0RW50cnkgKiopOwogCiAvKgogICogQ2hlY2sg
 dHdvIEZBVCBjb3BpZXMgZm9yIGNvbnNpc3RlbmN5IGFuZCBtZXJnZSBjaGFu
 Z2VzIGludG8gdGhlCi0gKiBmaXJzdCBpZiBuZWNjZXNzYXJ5LgorICogZmly
 c3QgaWYgbmVjZXNzYXJ5LgogICovCi1pbnQgY29tcGFyZWZhdChzdHJ1Y3Qg
 Ym9vdGJsb2NrICosIHN0cnVjdCBmYXRFbnRyeSAqLCBzdHJ1Y3QgZmF0RW50
 cnkgKiwgaW50KTsKK2ludCBjb21wYXJlZmF0KHN0cnVjdCBib290YmxvY2sg
 Kiwgc3RydWN0IGZhdEVudHJ5ICosIHN0cnVjdCBmYXRFbnRyeSAqLCB1X2lu
 dCk7CiAKIC8qCiAgKiBDaGVjayBhIEZBVApkaWZmIC1ydSBmc2NrX21zZG9z
 ZnMub3JpZy9mYXQuYyBmc2NrX21zZG9zZnMvZmF0LmMKLS0tIGZzY2tfbXNk
 b3Nmcy5vcmlnL2ZhdC5jCTIwMTAtMDEtMDYgMTE6MDc6MjQuMDAwMDAwMDAw
 ICswMDAwCisrKyBmc2NrX21zZG9zZnMvZmF0LmMJMjAxMC0wMS0wNyAyMjox
 MzozMS4wMDAwMDAwMDAgKzAwMDAKQEAgLTEwLDEzICsxMCw2IEBACiAgKiAy
 LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
 Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgbm90aWNlLCB0aGlzIGxp
 c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
 IGluIHRoZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
 ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMu
 IEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJl
 cyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQotICogICAgbXVzdCBkaXNwbGF5
 IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgotICoJVGhpcyBwcm9k
 dWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSBNYXJ0aW4gSHVz
 ZW1hbm4KLSAqCWFuZCBXb2xmZ2FuZyBTb2xmcmFuay4KLSAqIDQuIE5laXRo
 ZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBv
 ZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRv
 cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29m
 dHdhcmUKLSAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
 ZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
 QlkgVEhFIEFVVEhPUlMgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgog
 ICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
 SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUwpAQCAtNDcsMTAgKzQw
 LDEwIEBACiAjaW5jbHVkZSAiZXh0LmgiCiAjaW5jbHVkZSAiZnN1dGlsLmgi
 CiAKLXN0YXRpYyBpbnQgY2hlY2tjbG51bShzdHJ1Y3QgYm9vdGJsb2NrICos
 IGludCwgY2xfdCwgY2xfdCAqKTsKLXN0YXRpYyBpbnQgY2x1c3RkaWZmZXIo
 Y2xfdCwgY2xfdCAqLCBjbF90ICosIGludCk7CitzdGF0aWMgaW50IGNoZWNr
 Y2xudW0oc3RydWN0IGJvb3RibG9jayAqLCB1X2ludCwgY2xfdCwgY2xfdCAq
 KTsKK3N0YXRpYyBpbnQgY2x1c3RkaWZmZXIoY2xfdCwgY2xfdCAqLCBjbF90
 ICosIHVfaW50KTsKIHN0YXRpYyBpbnQgdHJ5Y2xlYXIoc3RydWN0IGJvb3Ri
 bG9jayAqLCBzdHJ1Y3QgZmF0RW50cnkgKiwgY2xfdCwgY2xfdCAqKTsKLXN0
 YXRpYyBpbnQgX3JlYWRmYXQoaW50LCBzdHJ1Y3QgYm9vdGJsb2NrICosIGlu
 dCwgdV9jaGFyICoqKTsKK3N0YXRpYyBpbnQgX3JlYWRmYXQoaW50LCBzdHJ1
 Y3QgYm9vdGJsb2NrICosIHVfaW50LCB1X2NoYXIgKiopOwogCiAvKi0KICAq
 IFRoZSBmaXJzdCAyIEZBVCBlbnRyaWVzIGNvbnRhaW4gcHNldWRvLWNsdXN0
 ZXIgbnVtYmVycyB3aXRoIHRoZSBmb2xsb3dpbmcKQEAgLTEzNSw3ICsxMjgs
 NyBAQAogICogQ2hlY2sgYSBjbHVzdGVyIG51bWJlciBmb3IgdmFsaWQgdmFs
 dWUKICAqLwogc3RhdGljIGludAotY2hlY2tjbG51bShzdHJ1Y3QgYm9vdGJs
 b2NrICpib290LCBpbnQgZmF0LCBjbF90IGNsLCBjbF90ICpuZXh0KQorY2hl
 Y2tjbG51bShzdHJ1Y3QgYm9vdGJsb2NrICpib290LCB1X2ludCBmYXQsIGNs
 X3QgY2wsIGNsX3QgKm5leHQpCiB7CiAJaWYgKCpuZXh0ID49IChDTFVTVF9S
 U1JWRCZib290LT5DbHVzdE1hc2spKQogCQkqbmV4dCB8PSB+Ym9vdC0+Q2x1
 c3RNYXNrOwpAQCAtMTY2LDcgKzE1OSw3IEBACiAgKiBSZWFkIGEgRkFUIGZy
 b20gZGlzay4gUmV0dXJucyAxIGlmIHN1Y2Nlc3NmdWwsIDAgb3RoZXJ3aXNl
 LgogICovCiBzdGF0aWMgaW50Ci1fcmVhZGZhdChpbnQgZnMsIHN0cnVjdCBi
 b290YmxvY2sgKmJvb3QsIGludCBubywgdV9jaGFyICoqYnVmZmVyKQorX3Jl
 YWRmYXQoaW50IGZzLCBzdHJ1Y3QgYm9vdGJsb2NrICpib290LCB1X2ludCBu
 bywgdV9jaGFyICoqYnVmZmVyKQogewogCW9mZl90IG9mZjsKIApAQCAtMTg0
 LDcgKzE3Nyw3IEBACiAJCWdvdG8gZXJyOwogCX0KIAotCWlmIChyZWFkKGZz
 LCAqYnVmZmVyLCBib290LT5GQVRzZWNzICogYm9vdC0+Qnl0ZXNQZXJTZWMp
 CisJaWYgKChzaXplX3QpcmVhZChmcywgKmJ1ZmZlciwgYm9vdC0+RkFUc2Vj
 cyAqIGJvb3QtPkJ5dGVzUGVyU2VjKQogCSAgICAhPSBib290LT5GQVRzZWNz
 ICogYm9vdC0+Qnl0ZXNQZXJTZWMpIHsKIAkJcGVycm9yKCJVbmFibGUgdG8g
 cmVhZCBGQVQiKTsKIAkJZ290byBlcnI7CkBAIC0yMDEsMjQgKzE5NCwyNiBA
 QAogICogUmVhZCBhIEZBVCBhbmQgZGVjb2RlIGl0IGludG8gaW50ZXJuYWwg
 Zm9ybWF0CiAgKi8KIGludAotcmVhZGZhdChpbnQgZnMsIHN0cnVjdCBib290
 YmxvY2sgKmJvb3QsIGludCBubywgc3RydWN0IGZhdEVudHJ5ICoqZnApCity
 ZWFkZmF0KGludCBmcywgc3RydWN0IGJvb3RibG9jayAqYm9vdCwgdV9pbnQg
 bm8sIHN0cnVjdCBmYXRFbnRyeSAqKmZwKQogewogCXN0cnVjdCBmYXRFbnRy
 eSAqZmF0OwogCXVfY2hhciAqYnVmZmVyLCAqcDsKIAljbF90IGNsOwogCWlu
 dCByZXQgPSBGU09LOworCXNpemVfdCBsZW47CiAKIAlib290LT5OdW1GcmVl
 ID0gYm9vdC0+TnVtQmFkID0gMDsKIAogCWlmICghX3JlYWRmYXQoZnMsIGJv
 b3QsIG5vLCAmYnVmZmVyKSkKIAkJcmV0dXJuIEZTRkFUQUw7CiAJCQotCWZh
 dCA9IGNhbGxvYyhib290LT5OdW1DbHVzdGVycywgc2l6ZW9mKHN0cnVjdCBm
 YXRFbnRyeSkpOworCWZhdCA9IG1hbGxvYyhsZW4gPSBib290LT5OdW1DbHVz
 dGVycyAqIHNpemVvZihzdHJ1Y3QgZmF0RW50cnkpKTsKIAlpZiAoZmF0ID09
 IE5VTEwpIHsKIAkJcGVycm9yKCJObyBzcGFjZSBmb3IgRkFUIik7CiAJCWZy
 ZWUoYnVmZmVyKTsKIAkJcmV0dXJuIEZTRkFUQUw7CiAJfQorCSh2b2lkKW1l
 bXNldChmYXQsIDAsIGxlbik7CiAKIAlpZiAoYnVmZmVyWzBdICE9IGJvb3Qt
 Pk1lZGlhCiAJICAgIHx8IGJ1ZmZlclsxXSAhPSAweGZmIHx8IGJ1ZmZlclsy
 XSAhPSAweGZmCkBAIC0zMTEsNyArMzA2LDExIEBACiAJfQogCiAJZnJlZShi
 dWZmZXIpOwotCSpmcCA9IGZhdDsKKwlpZiAocmV0ICYgRlNGQVRBTCkgewor
 CQlmcmVlKGZhdCk7CisJCSpmcCA9IE5VTEw7CisJfSBlbHNlCisJCSpmcCA9
 IGZhdDsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0zMzEsNyArMzMwLDcgQEAK
 IH0KIAogc3RhdGljIGludAotY2x1c3RkaWZmZXIoY2xfdCBjbCwgY2xfdCAq
 Y3AxLCBjbF90ICpjcDIsIGludCBmYXRudW0pCitjbHVzdGRpZmZlcihjbF90
 IGNsLCBjbF90ICpjcDEsIGNsX3QgKmNwMiwgdV9pbnQgZmF0bnVtKQogewog
 CWlmICgqY3AxID09IENMVVNUX0ZSRUUgfHwgKmNwMSA+PSBDTFVTVF9SU1JW
 RCkgewogCQlpZiAoKmNwMiA9PSBDTFVTVF9GUkVFIHx8ICpjcDIgPj0gQ0xV
 U1RfUlNSVkQpIHsKQEAgLTM0NiwxMyArMzQ1LDEzIEBACiAJCQkJfQogCQkJ
 CXJldHVybiBGU0ZBVEFMOwogCQkJfQotCQkJcHdhcm4oIkNsdXN0ZXIgJXUg
 aXMgbWFya2VkICVzIGluIEZBVCAwLCAlcyBpbiBGQVQgJWRcbiIsCisJCQlw
 d2FybigiQ2x1c3RlciAldSBpcyBtYXJrZWQgJXMgaW4gRkFUIDAsICVzIGlu
 IEZBVCAldVxuIiwKIAkJCSAgICAgIGNsLCByc3J2ZGNsdHlwZSgqY3AxKSwg
 cnNydmRjbHR5cGUoKmNwMiksIGZhdG51bSk7CiAJCQlpZiAoYXNrKDAsICJV
 c2UgRkFUIDAncyBlbnRyeSIpKSB7CiAJCQkJKmNwMiA9ICpjcDE7CiAJCQkJ
 cmV0dXJuIEZTRkFUTU9EOwogCQkJfQotCQkJaWYgKGFzaygwLCAiVXNlIEZB
 VCAlZCdzIGVudHJ5IiwgZmF0bnVtKSkgeworCQkJaWYgKGFzaygwLCAiVXNl
 IEZBVCAldSdzIGVudHJ5IiwgZmF0bnVtKSkgewogCQkJCSpjcDEgPSAqY3Ay
 OwogCQkJCXJldHVybiBGU0ZBVE1PRDsKIAkJCX0KQEAgLTM2MCw3ICszNTks
 NyBAQAogCQl9CiAJCXB3YXJuKCJDbHVzdGVyICV1IGlzIG1hcmtlZCAlcyBp
 biBGQVQgMCwgYnV0IGNvbnRpbnVlcyB3aXRoIGNsdXN0ZXIgJXUgaW4gRkFU
 ICVkXG4iLAogCQkgICAgICBjbCwgcnNydmRjbHR5cGUoKmNwMSksICpjcDIs
 IGZhdG51bSk7Ci0JCWlmIChhc2soMCwgIlVzZSBjb250aW51YXRpb24gZnJv
 bSBGQVQgJWQiLCBmYXRudW0pKSB7CisJCWlmIChhc2soMCwgIlVzZSBjb250
 aW51YXRpb24gZnJvbSBGQVQgJXUiLCBmYXRudW0pKSB7CiAJCQkqY3AxID0g
 KmNwMjsKIAkJCXJldHVybiBGU0ZBVE1PRDsKIAkJfQpAQCAtMzcxLDcgKzM3
 MCw3IEBACiAJCXJldHVybiBGU0ZBVEFMOwogCX0KIAlpZiAoKmNwMiA9PSBD
 TFVTVF9GUkVFIHx8ICpjcDIgPj0gQ0xVU1RfUlNSVkQpIHsKLQkJcHdhcm4o
 IkNsdXN0ZXIgJXUgY29udGludWVzIHdpdGggY2x1c3RlciAldSBpbiBGQVQg
 MCwgYnV0IGlzIG1hcmtlZCAlcyBpbiBGQVQgJWRcbiIsCisJCXB3YXJuKCJD
 bHVzdGVyICV1IGNvbnRpbnVlcyB3aXRoIGNsdXN0ZXIgJXUgaW4gRkFUIDAs
 IGJ1dCBpcyBtYXJrZWQgJXMgaW4gRkFUICV1XG4iLAogCQkgICAgICBjbCwg
 KmNwMSwgcnNydmRjbHR5cGUoKmNwMiksIGZhdG51bSk7CiAJCWlmIChhc2so
 MCwgIlVzZSBjb250aW51YXRpb24gZnJvbSBGQVQgMCIpKSB7CiAJCQkqY3Ay
 ID0gKmNwMTsKQEAgLTM4MywxMyArMzgyLDEzIEBACiAJCX0KIAkJcmV0dXJu
 IEZTRVJST1I7CiAJfQotCXB3YXJuKCJDbHVzdGVyICV1IGNvbnRpbnVlcyB3
 aXRoIGNsdXN0ZXIgJXUgaW4gRkFUIDAsIGJ1dCB3aXRoIGNsdXN0ZXIgJXUg
 aW4gRkFUICVkXG4iLAorCXB3YXJuKCJDbHVzdGVyICV1IGNvbnRpbnVlcyB3
 aXRoIGNsdXN0ZXIgJXUgaW4gRkFUIDAsIGJ1dCB3aXRoIGNsdXN0ZXIgJXUg
 aW4gRkFUICV1XG4iLAogCSAgICAgIGNsLCAqY3AxLCAqY3AyLCBmYXRudW0p
 OwogCWlmIChhc2soMCwgIlVzZSBjb250aW51YXRpb24gZnJvbSBGQVQgMCIp
 KSB7CiAJCSpjcDIgPSAqY3AxOwogCQlyZXR1cm4gRlNGQVRNT0Q7CiAJfQot
 CWlmIChhc2soMCwgIlVzZSBjb250aW51YXRpb24gZnJvbSBGQVQgJWQiLCBm
 YXRudW0pKSB7CisJaWYgKGFzaygwLCAiVXNlIGNvbnRpbnVhdGlvbiBmcm9t
 IEZBVCAldSIsIGZhdG51bSkpIHsKIAkJKmNwMSA9ICpjcDI7CiAJCXJldHVy
 biBGU0ZBVE1PRDsKIAl9CkBAIC00MDEsOCArNDAwLDggQEAKICAqIGludG8g
 dGhlIGZpcnN0IG9uZS4KICAqLwogaW50Ci1jb21wYXJlZmF0KHN0cnVjdCBi
 b290YmxvY2sgKmJvb3QsIHN0cnVjdCBmYXRFbnRyeSAqZmlyc3QsIAotICAg
 IHN0cnVjdCBmYXRFbnRyeSAqc2Vjb25kLCBpbnQgZmF0bnVtKQorY29tcGFy
 ZWZhdChzdHJ1Y3QgYm9vdGJsb2NrICpib290LCBzdHJ1Y3QgZmF0RW50cnkg
 KmZpcnN0LAorICAgIHN0cnVjdCBmYXRFbnRyeSAqc2Vjb25kLCB1X2ludCBm
 YXRudW0pCiB7CiAJY2xfdCBjbDsKIAlpbnQgcmV0ID0gRlNPSzsKQEAgLTU0
 Miw4ICs1NDEsOCBAQAogewogCXVfY2hhciAqYnVmZmVyLCAqcDsKIAljbF90
 IGNsOwotCWludCBpOwotCXVfaW50MzJfdCBmYXRzejsKKwl1X2ludCBpOwor
 CXNpemVfdCBmYXRzejsKIAlvZmZfdCBvZmY7CiAJaW50IHJldCA9IEZTT0s7
 CiAKQEAgLTYzMyw3ICs2MzIsNyBAQAogCQlvZmYgPSBib290LT5SZXNTZWN0
 b3JzICsgaSAqIGJvb3QtPkZBVHNlY3M7CiAJCW9mZiAqPSBib290LT5CeXRl
 c1BlclNlYzsKIAkJaWYgKGxzZWVrKGZzLCBvZmYsIFNFRUtfU0VUKSAhPSBv
 ZmYKLQkJICAgIHx8IHdyaXRlKGZzLCBidWZmZXIsIGZhdHN6KSAhPSBmYXRz
 eikgeworCQkgICAgfHwgKHNpemVfdCl3cml0ZShmcywgYnVmZmVyLCBmYXRz
 eikgIT0gZmF0c3opIHsKIAkJCXBlcnJvcigiVW5hYmxlIHRvIHdyaXRlIEZB
 VCIpOwogCQkJcmV0ID0gRlNGQVRBTDsgLyogUmV0dXJuIGltbWVkaWF0ZWx5
 PwkJWFhYICovCiAJCX0KQEAgLTY4MywxNyArNjgyLDYgQEAKIAkJCQlyZXQg
 PSAxOwogCQkJfQogCQl9Ci0JCWlmIChib290LT5OdW1GcmVlICYmIGZhdFti
 b290LT5GU05leHRdLm5leHQgIT0gQ0xVU1RfRlJFRSkgewotCQkJcHdhcm4o
 Ik5leHQgZnJlZSBjbHVzdGVyIGluIEZTSW5mbyBibG9jayAoJXUpIG5vdCBm
 cmVlXG4iLAotCQkJICAgICAgYm9vdC0+RlNOZXh0KTsKLQkJCWlmIChhc2so
 MSwgIkZpeCIpKQotCQkJCWZvciAoaGVhZCA9IENMVVNUX0ZJUlNUOyBoZWFk
 IDwgYm9vdC0+TnVtQ2x1c3RlcnM7IGhlYWQrKykKLQkJCQkJaWYgKGZhdFto
 ZWFkXS5uZXh0ID09IENMVVNUX0ZSRUUpIHsKLQkJCQkJCWJvb3QtPkZTTmV4
 dCA9IGhlYWQ7Ci0JCQkJCQlyZXQgPSAxOwotCQkJCQkJYnJlYWs7Ci0JCQkJ
 CX0KLQkJfQogCQlpZiAocmV0KQogCQkJbW9kIHw9IHdyaXRlZnNpbmZvKGRv
 c2ZzLCBib290KTsKIAl9CmRpZmYgLXJ1IGZzY2tfbXNkb3Nmcy5vcmlnL2Zz
 Y2tfbXNkb3Nmcy44IGZzY2tfbXNkb3Nmcy9mc2NrX21zZG9zZnMuOAotLS0g
 ZnNja19tc2Rvc2ZzLm9yaWcvZnNja19tc2Rvc2ZzLjgJMjAxMC0wMS0wNiAx
 MTowNzoyNC4wMDAwMDAwMDAgKzAwMDAKKysrIGZzY2tfbXNkb3Nmcy9mc2Nr
 X21zZG9zZnMuOAkyMDEwLTAxLTA3IDIyOjA5OjEzLjAwMDAwMDAwMCArMDAw
 MApAQCAtMTEsMTMgKzExLDYgQEAKIC5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMg
 aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
 aWdodAogLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
 YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKIC5cIiAgICBk
 b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
 d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotLlwiIDMuIEFsbCBhZHZlcnRpc2lu
 ZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhp
 cyBzb2Z0d2FyZQotLlwiICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5n
 IGFja25vd2xlZGdlbWVudDoKLS5cIglUaGlzIHByb2R1Y3QgaW5jbHVkZXMg
 c29mdHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcnRpbiBIdXNlbWFubgotLlwiCWFu
 ZCBXb2xmZ2FuZyBTb2xmcmFuay4KLS5cIiA0LiBOZWl0aGVyIHRoZSBuYW1l
 IG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
 aWJ1dG9ycwotLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
 bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotLlwi
 ICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
 LgogLlwiCiAuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
 QVVUSE9SUyBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCiAuXCIgSU1Q
 TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
 TywgVEhFIElNUExJRUQgV0FSUkFOVElFUwpkaWZmIC1ydSBmc2NrX21zZG9z
 ZnMub3JpZy9tYWluLmMgZnNja19tc2Rvc2ZzL21haW4uYwotLS0gZnNja19t
 c2Rvc2ZzLm9yaWcvbWFpbi5jCTIwMTAtMDEtMDYgMTE6MDc6MjQuMDAwMDAw
 MDAwICswMDAwCisrKyBmc2NrX21zZG9zZnMvbWFpbi5jCTIwMTAtMDEtMDcg
 MjI6MDk6MTMuMDAwMDAwMDAwICswMDAwCkBAIC0xMCwxMyArMTAsNiBAQAog
 ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
 cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgIG5vdGljZSwgdGhp
 cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
 aW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
 IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
 KiAzLiBBbGwgYWR2ZXJ0aXNpbmcgbWF0ZXJpYWxzIG1lbnRpb25pbmcgZmVh
 dHVyZXMgb3IgdXNlIG9mIHRoaXMgc29mdHdhcmUKLSAqICAgIG11c3QgZGlz
 cGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKLSAqCVRoaXMg
 cHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgTWFydGlu
 IEh1c2VtYW5uCi0gKglhbmQgV29sZmdhbmcgU29sZnJhbmsuCi0gKiA0LiBO
 ZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFt
 ZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8g
 ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
 IHNvZnR3YXJlCi0gKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
 ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
 REVEIEJZIFRIRSBBVVRIT1JTIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1Mg
 T1IKICAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
 IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKQEAgLTQwLDcg
 KzMzLDYgQEAKIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0
 cmluZy5oPgotI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8c3RkaW8u
 aD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgo=
 
 
 --0-768091124-1262982876=:77647--


More information about the freebsd-bugs mailing list