Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Dec 2012 10:40:01 GMT
From:      pete <petechou@gmail.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/174011: [patch] crunchide support non-custom elf object layout
Message-ID:  <201212031040.qB3Ae1jj025902@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/174011; it has been noted by GNATS.

From: pete <petechou@gmail.com>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: bin/174011: [patch] crunchide support non-custom elf object layout
Date: Mon, 3 Dec 2012 18:29:33 +0800

 --f46d04016a757b39d004cff03ba1
 Content-Type: multipart/alternative; boundary=f46d04016a757b39c904cff03b9f
 
 --f46d04016a757b39c904cff03b9f
 Content-Type: text/plain; charset=ISO-8859-1
 
 Clean up style(9) nits.
 
 --f46d04016a757b39c904cff03b9f
 Content-Type: text/html; charset=ISO-8859-1
 
 Clean up style(9) nits.
 
 --f46d04016a757b39c904cff03b9f--
 --f46d04016a757b39d004cff03ba1
 Content-Type: text/plain; charset=US-ASCII; name="patch-2.txt"
 Content-Disposition: attachment; filename="patch-2.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_ha9g4gx50
 
 ZGlmZiAtLWdpdCBleGVjX2VsZjMyLmMgZXhlY19lbGYzMi5jCmluZGV4IDBlYWUzMWEuLjgyYzY2
 MDUgMTAwNjQ0Ci0tLSBleGVjX2VsZjMyLmMKKysrIGV4ZWNfZWxmMzIuYwpAQCAtNDUsNiArNDUs
 NyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6IHJlbGVhc2UvOS4wLjAvdXNyLnNiaW4vY3J1bmNoL2Ny
 dW5jaGlkZS9leGVjX2VsZjMyLmMgMjExMjIyCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KIAogI2lu
 Y2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
 ICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KQEAgLTgyLDExICs4Myw5
 IEBAIF9fRkJTRElEKCIkRnJlZUJTRDogcmVsZWFzZS85LjAuMC91c3Iuc2Jpbi9jcnVuY2gvY3J1
 bmNoaWRlL2V4ZWNfZWxmMzIuYyAyMTEyMjIKICNkZWZpbmUJeGUzMnRvaCh4KQkoKGRhdGEgPT0g
 RUxGREFUQTJNU0IpID8gYmUzMnRvaCh4KSA6IGxlMzJ0b2goeCkpCiAjZGVmaW5lCWh0b3hlMzIo
 eCkJKChkYXRhID09IEVMRkRBVEEyTVNCKSA/IGh0b2JlMzIoeCkgOiBodG9sZTMyKHgpKQogCi1z
 dHJ1Y3QgbGlzdGVsZW0gewotCXN0cnVjdCBsaXN0ZWxlbSAqbmV4dDsKLQl2b2lkICptZW07Ci0J
 b2ZmX3QgZmlsZTsKLQlzaXplX3Qgc2l6ZTsKK3N0cnVjdCBzaGxheW91dCB7CisJRWxmX1NoZHIg
 KnNoZHI7CisJdm9pZAkqYnVmcDsKIH07CiAKIHN0YXRpYyBzc2l6ZV90CkBAIC0yMzUsMTYgKzIz
 NCwxNyBAQCBpbnQKIEVMRk5BTUVFTkQoaGlkZSkoaW50IGZkLCBjb25zdCBjaGFyICpmbikKIHsK
 IAlFbGZfRWhkciBlaGRyOwotCUVsZl9TaGRyICpzaGRycCA9IE5VTEwsICpzeW10YWJzaGRyLCAq
 c3RydGFic2hkcjsKKwlzdHJ1Y3Qgc2hsYXlvdXQgKmxheW91dHA7CisJRWxmX1NoZHIgKnNoZHJw
 ID0gTlVMTCwgKnN5bXRhYnNoZHIsICpzdHJ0YWJzaGRyLCAqc2hzdHJ0YWJzaGRyOworCUVsZl9T
 aGRyIHNoZHJzaGRyOwogCUVsZl9TeW0gKnN5bXRhYnAgPSBOVUxMOwotCWNoYXIgKnN0cnRhYnAg
 PSBOVUxMOworCWNoYXIgKnNoc3RydGFicCA9IE5VTEwsICpzdHJ0YWJwID0gTlVMTDsKIAlFbGZf
 U2l6ZSAgbnN5bXMsIG5sb2NhbHN5bXMsIGV3aTsKIAlzc2l6ZV90IHNoZHJzaXplOwogCWludCBy
 diwgaSwgd2VpcmQ7CiAJc2l6ZV90IG5zdHJ0YWJfc2l6ZSwgbnN0cnRhYl9uZXh0b2ZmLCBmbl9z
 aXplOwogCWNoYXIgKm5zdHJ0YWJwID0gTlVMTDsKIAl1bnNpZ25lZCBjaGFyIGRhdGE7Ci0JRWxm
 X09mZiBtYXhvZmYsIHN0cm9mZjsKIAljb25zdCBjaGFyICp3ZWlyZHJlYXNvbiA9IE5VTEw7CiAK
 IAlydiA9IDA7CkBAIC0yNjAsNjIgKzI2MCwxMTUgQEAgRUxGTkFNRUVORChoaWRlKShpbnQgZmQs
 IGNvbnN0IGNoYXIgKmZuKQogCSAgICBzaGRyc2l6ZSkKIAkJZ290byBiYWQ7CiAKLQlzeW10YWJz
 aGRyID0gc3RydGFic2hkciA9IE5VTEw7CisJc3ltdGFic2hkciA9IHN0cnRhYnNoZHIgPSBzaHN0
 cnRhYnNoZHIgPSBOVUxMOwogCXdlaXJkID0gMDsKLQltYXhvZmYgPSBzdHJvZmYgPSAwOwogCWZv
 ciAoaSA9IDA7IGkgPCB4ZTE2dG9oKGVoZHIuZV9zaG51bSk7IGkrKykgewotCQlpZiAoeGV3dG9o
 KHNoZHJwW2ldLnNoX29mZnNldCkgPiBtYXhvZmYpCi0JCQltYXhvZmYgPSB4ZXd0b2goc2hkcnBb
 aV0uc2hfb2Zmc2V0KTsKIAkJc3dpdGNoICh4ZTMydG9oKHNoZHJwW2ldLnNoX3R5cGUpKSB7CiAJ
 CWNhc2UgU0hUX1NZTVRBQjoKIAkJCWlmIChzeW10YWJzaGRyICE9IE5VTEwpCiAJCQkJd2VpcmQg
 PSAxOwogCQkJc3ltdGFic2hkciA9ICZzaGRycFtpXTsKIAkJCXN0cnRhYnNoZHIgPSAmc2hkcnBb
 eGUzMnRvaChzaGRycFtpXS5zaF9saW5rKV07Ci0KLQkJCS8qIENoZWNrIHdoZXRoZXIgdGhlIHN0
 cmluZyB0YWJsZSBpcyB0aGUgbGFzdCBzZWN0aW9uICovCi0JCQlzdHJvZmYgPSB4ZXd0b2goc2hk
 cnBbeGUzMnRvaChzaGRycFtpXS5zaF9saW5rKV0uc2hfb2Zmc2V0KTsKLQkJCWlmICghd2VpcmQg
 JiYgeGUzMnRvaChzaGRycFtpXS5zaF9saW5rKSAhPSAoeGUxNnRvaChlaGRyLmVfc2hudW0pIC0g
 MSkpIHsKLQkJCQl3ZWlyZCA9IDE7Ci0JCQkJd2VpcmRyZWFzb24gPSAic3RyaW5nIHRhYmxlIG5v
 dCBsYXN0IHNlY3Rpb24iOwotCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgU0hUX1NUUlRBQjoKKwkJ
 CWlmIChpID09IHhlMTZ0b2goZWhkci5lX3Noc3RybmR4KSkKKwkJCQlzaHN0cnRhYnNoZHIgPSAm
 c2hkcnBbaV07CiAJCQlicmVhazsKIAkJfQogCX0KIAlpZiAoISB3ZWlyZHJlYXNvbikKIAkJd2Vp
 cmRyZWFzb24gPSAidW5zdXBwb3J0ZWQiOwotCWlmIChzeW10YWJzaGRyID09IE5VTEwpCi0JCWdv
 dG8gb3V0OwotCWlmIChzdHJ0YWJzaGRyID09IE5VTEwpCi0JCXdlaXJkID0gMTsKLQlpZiAoIXdl
 aXJkICYmIHN0cm9mZiAhPSBtYXhvZmYpIHsKKwlpZiAoc3ltdGFic2hkciA9PSBOVUxMIHx8IHN0
 cnRhYnNoZHIgPT0gTlVMTCB8fCBzaHN0cnRhYnNoZHIgPT0gTlVMTCkKIAkJd2VpcmQgPSAxOwot
 CQl3ZWlyZHJlYXNvbiA9ICJzdHJpbmcgdGFibGUgc2VjdGlvbiBub3QgbGFzdCBpbiBmaWxlIjsK
 LQl9ICAgCiAJaWYgKHdlaXJkKSB7CiAJCWZwcmludGYoc3RkZXJyLCAiJXM6IHdlaXJkIGV4ZWN1
 dGFibGUgKCVzKVxuIiwgZm4sIHdlaXJkcmVhc29uKTsKIAkJZ290byBiYWQ7CiAJfQogCiAJLyoK
 KwkgKiBzb3J0IHNlY3Rpb24gbGF5b3V0IHRhYmxlIGJ5IG9mZnNldAorCSAqLworCWxheW91dHAg
 PSB4bWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2hsYXlvdXQpICogKHhlMTZ0b2goZWhkci5lX3NobnVt
 KSArIDEpLAorCSAgICBmbiwgImxheW91dCB0YWJsZSIpOworCWlmIChsYXlvdXRwID09IE5VTEwp
 CisJCWdvdG8gYmFkOworCisJLyogYWRkIGEgcHNldWRvIGVudHJ5IHRvIHJlcHJlc2VudCB0aGUg
 c2VjdGlvbiBoZWFkZXIgdGFibGUgKi8KKwlzaGRyc2hkci5zaF9vZmZzZXQgPSBlaGRyLmVfc2hv
 ZmY7CisJc2hkcnNoZHIuc2hfc2l6ZSA9IGh0b3hldyhzaGRyc2l6ZSk7CisJc2hkcnNoZHIuc2hf
 YWRkcmFsaWduID0gaHRveGV3KEVMRlNJWkUgLyA4KTsKKwlsYXlvdXRwWzBdLnNoZHIgPSAmc2hk
 cnNoZHI7CisKKwkvKiBpbnNlcnQgYW5kIHNvcnQgbm9ybWFsIHNlY3Rpb24gaGVhZGVycyAqLwor
 CWZvciAoaSA9IDA7IGkgPCB4ZTE2dG9oKGVoZHIuZV9zaG51bSk7IGkrKykgeworCQlpbnQgbCA9
 IDAsIHIgPSBpLCBtOworCQl3aGlsZSAobCA8PSByKSB7CisJCQltID0gKCBsICsgcikgLyAyOwor
 CQkJaWYgKHhld3RvaChzaGRycFtpXS5zaF9vZmZzZXQpIDwKKwkJCSAgICB4ZXd0b2gobGF5b3V0
 cFttXS5zaGRyLT5zaF9vZmZzZXQpKQorCQkJCXIgPSBtIC0gMTsKKwkJCWVsc2UKKwkJCQlsID0g
 bSArIDE7CisJCX0KKworCQlpZiAobCAhPSBpICsgMSkgeworCQkJbWVtbW92ZSgmbGF5b3V0cFts
 ICsgMV0sICZsYXlvdXRwW2xdLAorCQkJICAgIHNpemVvZihzdHJ1Y3Qgc2hsYXlvdXQpICogKGkg
 LSBsICsgMSkpOworCQl9CisKKwkJbGF5b3V0cFtsXS5zaGRyID0gJnNoZHJwW2ldOworCQlsYXlv
 dXRwW2xdLmJ1ZnAgPSBOVUxMOworCX0KKworCS8qCiAJICogbG9hZCB1cCBldmVyeXRoaW5nIHdl
 IG5lZWQKIAkgKi8KIAotCS8qIHN5bWJvbCB0YWJsZSAqLwotCWlmICgoc3ltdGFicCA9IHhtYWxs
 b2MoeGV3dG9oKHN5bXRhYnNoZHItPnNoX3NpemUpLCBmbiwgInN5bWJvbCB0YWJsZSIpKQotCSAg
 ICA9PSBOVUxMKQorCS8qIGxvYWQgc2VjdGlvbiBzdHJpbmcgdGFibGUgZm9yIGRlYnVnIHVzZSAq
 LworCWlmICgoc2hzdHJ0YWJwID0geG1hbGxvYyh4ZXd0b2goc2hzdHJ0YWJzaGRyLT5zaF9zaXpl
 KSwgZm4sCisJICAgICJzZWN0aW9uIHN0cmluZyB0YWJsZSIpKSA9PSBOVUxMKQogCQlnb3RvIGJh
 ZDsKLQlpZiAoeHJlYWRhdG9mZihmZCwgc3ltdGFicCwgeGV3dG9oKHN5bXRhYnNoZHItPnNoX29m
 ZnNldCksCi0JICAgIHhld3RvaChzeW10YWJzaGRyLT5zaF9zaXplKSwgZm4pICE9IHhld3RvaChz
 eW10YWJzaGRyLT5zaF9zaXplKSkKKwlpZiAoeHJlYWRhdG9mZihmZCwgc2hzdHJ0YWJwLCB4ZXd0
 b2goc2hzdHJ0YWJzaGRyLT5zaF9vZmZzZXQpLAorCSAgICB4ZXd0b2goc2hzdHJ0YWJzaGRyLT5z
 aF9zaXplKSwgZm4pICE9IHhld3RvaChzaHN0cnRhYnNoZHItPnNoX3NpemUpKQogCQlnb3RvIGJh
 ZDsKIAotCS8qIHN0cmluZyB0YWJsZSAqLwotCWlmICgoc3RydGFicCA9IHhtYWxsb2MoeGV3dG9o
 KHN0cnRhYnNoZHItPnNoX3NpemUpLCBmbiwgInN0cmluZyB0YWJsZSIpKQotCSAgICA9PSBOVUxM
 KQotCQlnb3RvIGJhZDsKLQlpZiAoeHJlYWRhdG9mZihmZCwgc3RydGFicCwgeGV3dG9oKHN0cnRh
 YnNoZHItPnNoX29mZnNldCksCi0JICAgIHhld3RvaChzdHJ0YWJzaGRyLT5zaF9zaXplKSwgZm4p
 ICE9IHhld3RvaChzdHJ0YWJzaGRyLT5zaF9zaXplKSkKLQkJZ290byBiYWQ7CisJLyogd2UgbmVl
 ZCBzeW10YWIsIHN0cnRhYiwgYW5kIGV2ZXJ5dGhpbmcgYmVoaW5kIHN0cnRhYiAqLworCWZvciAo
 aSA9IDA7IGkgPCB4ZTE2dG9oKGVoZHIuZV9zaG51bSkgKyAxOyBpKyspIHsKKwkJRWxmX09mZiBv
 ZmY7CisJCXNpemVfdCBzaXplOworCQlzdGF0aWMgaW50IHN0cnRhYmlkeCA9IElOVF9NQVg7CisK
 KwkJaWYgKGxheW91dHBbaV0uc2hkciA9PSAmc2hkcnNoZHIpIHsKKwkJCS8qIG5vdCBsb2FkIHNl
 Y3Rpb24gaGVhZGVyIGFnYWluICovCisJCQlsYXlvdXRwW2ldLmJ1ZnAgPSBzaGRycDsKKwkJCWNv
 bnRpbnVlOworCQl9CisJCWlmIChsYXlvdXRwW2ldLnNoZHIgPT0gc2hzdHJ0YWJzaGRyKSB7CisJ
 CQkvKiBub3QgbG9hZCBzZWN0aW9uIHN0cmluZyB0YWJsZSBhZ2FpbiAqLworCQkJbGF5b3V0cFtp
 XS5idWZwID0gc2hzdHJ0YWJwOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAobGF5b3V0cFtp
 XS5zaGRyID09IHN0cnRhYnNoZHIpCisJCQlzdHJ0YWJpZHggPSBpOworCQlpZiAobGF5b3V0cFtp
 XS5zaGRyID09IHN5bXRhYnNoZHIgfHwgaSA+PSBzdHJ0YWJpZHgpIHsKKwkJCW9mZiA9IHhld3Rv
 aChsYXlvdXRwW2ldLnNoZHItPnNoX29mZnNldCk7CisJCQlzaXplID0geGV3dG9oKGxheW91dHBb
 aV0uc2hkci0+c2hfc2l6ZSk7CisJCQlsYXlvdXRwW2ldLmJ1ZnAgPSB4bWFsbG9jKHNpemUsIGZu
 LAorCQkJICAgIHNoc3RydGFicCArIHhld3RvaChsYXlvdXRwW2ldLnNoZHItPnNoX25hbWUpKTsK
 KwkJCWlmIChsYXlvdXRwW2ldLmJ1ZnAgPT0gTlVMTCkKKwkJCQlnb3RvIGJhZDsKKwkJCWlmICh4
 cmVhZGF0b2ZmKGZkLCBsYXlvdXRwW2ldLmJ1ZnAsIG9mZiwgc2l6ZSwgZm4pICE9CisJCQkgICAg
 c2l6ZSkKKwkJCQlnb3RvIGJhZDsKKworCQkJLyogc2V0IHN5bWJvbCB0YWJsZSBhbmQgc3RyaW5n
 IHRhYmxlICovCisJCQlpZiAobGF5b3V0cFtpXS5zaGRyID09IHN5bXRhYnNoZHIpCisJCQkJc3lt
 dGFicCA9IGxheW91dHBbaV0uYnVmcDsKKwkJCWVsc2UgaWYgKGxheW91dHBbaV0uc2hkciA9PSBz
 dHJ0YWJzaGRyKQorCQkJCXN0cnRhYnAgPSBsYXlvdXRwW2ldLmJ1ZnA7CisJCX0KKwl9CiAKIAlu
 c3RydGFiX3NpemUgPSAyNTY7CiAJbnN0cnRhYnAgPSB4bWFsbG9jKG5zdHJ0YWJfc2l6ZSwgZm4s
 ICJuZXcgc3RyaW5nIHRhYmxlIik7CkBAIC0zNjYsMjYgKzQxOSw3MSBAQCBFTEZOQU1FRU5EKGhp
 ZGUpKGludCBmZCwgY29uc3QgY2hhciAqZm4pCiAJc3RydGFic2hkci0+c2hfc2l6ZSA9IGh0b3hl
 dyhuc3RydGFiX25leHRvZmYpOwogCiAJLyoKLQkgKiB3cml0ZSBuZXcgdGFibGVzIHRvIHRoZSBm
 aWxlCisJICogdXBkYXRlIHNlY3Rpb24gaGVhZGVyIHRhYmxlIGluIGFzY2VuZGluZyBvcmRlciBv
 ZiBvZmZzZXQKIAkgKi8KLQlpZiAoeHdyaXRlYXRvZmYoZmQsIHNoZHJwLCB4ZXd0b2goZWhkci5l
 X3Nob2ZmKSwgc2hkcnNpemUsIGZuKSAhPQotCSAgICBzaGRyc2l6ZSkKLQkJZ290byBiYWQ7Ci0J
 aWYgKHh3cml0ZWF0b2ZmKGZkLCBzeW10YWJwLCB4ZXd0b2goc3ltdGFic2hkci0+c2hfb2Zmc2V0
 KSwKLQkgICAgeGV3dG9oKHN5bXRhYnNoZHItPnNoX3NpemUpLCBmbikgIT0geGV3dG9oKHN5bXRh
 YnNoZHItPnNoX3NpemUpKQotCQlnb3RvIGJhZDsKLQkvKiB3cml0ZSBuZXcgc3ltYm9sIHRhYmxl
 IHN0cmluZ3MgKi8KLQlpZiAoKHNpemVfdCl4d3JpdGVhdG9mZihmZCwgbnN0cnRhYnAsIHhld3Rv
 aChzdHJ0YWJzaGRyLT5zaF9vZmZzZXQpLAotCSAgICB4ZXd0b2goc3RydGFic2hkci0+c2hfc2l6
 ZSksIGZuKSAhPSB4ZXd0b2goc3RydGFic2hkci0+c2hfc2l6ZSkpCi0JCWdvdG8gYmFkOworCWZv
 ciAoaSA9IDA7IGxheW91dHBbaV0uc2hkciAhPSBzdHJ0YWJzaGRyOyBpKyspCisJCTsKKwlmb3Ig
 KDsgaSA8IHhlMTZ0b2goZWhkci5lX3NobnVtKSArIDE7IGkrKykgeworCQlFbGZfT2ZmIG9mZiwg
 YWxpZ247CisJCW9mZiA9IHhld3RvaChsYXlvdXRwW2kgLSAxXS5zaGRyLT5zaF9vZmZzZXQpICsK
 KwkJICAgIHhld3RvaChsYXlvdXRwW2kgLSAxXS5zaGRyLT5zaF9zaXplKTsKKwkJYWxpZ24gPSB4
 ZXd0b2gobGF5b3V0cFtpXS5zaGRyLT5zaF9hZGRyYWxpZ24pOworCQlvZmYgPSAob2ZmICsgKGFs
 aWduIC0gMSkpICYgfihhbGlnbiAtIDEpOworCQlsYXlvdXRwW2ldLnNoZHItPnNoX29mZnNldCA9
 IGh0b3hldyhvZmYpOworCX0KKworCS8qCisJICogd3JpdGUgZGF0YSB0byB0aGUgZmlsZSBpbiBk
 ZXNjZW5kaW5nIG9yZGVyIG9mIG9mZnNldAorCSAqLworCWZvciAoaSA9IHhlMTZ0b2goZWhkci5l
 X3NobnVtKTsgaSA+PSAwOyBpLS0pIHsKKwkJdm9pZCAqYnVmOworCQlFbGZfT2ZmIG9mZjsKKwkJ
 c2l6ZV90IHNpemU7CisJCXN0YXRpYyBpbnQgc3RydGFiaWR4ID0gSU5UX01JTjsKKworCQlpZiAo
 bGF5b3V0cFtpXS5zaGRyID09IHN0cnRhYnNoZHIpIHsKKwkJCXN0cnRhYmlkeCA9IGk7CisJCQkv
 KiBuZXcgc3RyaW5nIHRhYmxlICovCisJCQlidWYgPSBuc3RydGFicDsKKwkJfSBlbHNlCisJCQli
 dWYgPSBsYXlvdXRwW2ldLmJ1ZnA7CisKKwkJaWYgKGxheW91dHBbaV0uc2hkciA9PSAmc2hkcnNo
 ZHIgfHwKKwkJICAgIGxheW91dHBbaV0uc2hkciA9PSBzeW10YWJzaGRyIHx8IGkgPj0gc3RydGFi
 aWR4KSB7CisJCQlpZiAoYnVmID09IE5VTEwpCisJCQkJZ290byBiYWQ7CisKKwkJCS8qIAorCQkJ
 ICogdXBkYXRlIHRoZSBvZmZzZXQgb2Ygc2VjdGlvbiBoZWFkZXIgdGFibGUgaW4gZWxmCisJCQkg
 KiBoZWFkZXIgaWYgbmVlZGVkLgorCQkJICovCisJCQlpZiAobGF5b3V0cFtpXS5zaGRyID09ICZz
 aGRyc2hkciAmJgorCQkJICAgIGVoZHIuZV9zaG9mZiAhPSBzaGRyc2hkci5zaF9vZmZzZXQpIHsK
 KwkJCQllaGRyLmVfc2hvZmYgPSBzaGRyc2hkci5zaF9vZmZzZXQ7CisJCQkJb2ZmID0gKEVMRlNJ
 WkUgPT0gMzIpID8gMzIgOiA0NDsKKwkJCQlzaXplID0gc2l6ZW9mKEVsZl9PZmYpOworCQkJCWlm
 ICh4d3JpdGVhdG9mZihmZCwgJmVoZHIuZV9zaG9mZiwgb2ZmLCBzaXplLAorCQkJCSAgICBmbikg
 IT0gc2l6ZSkKKwkJCQkJZ290byBiYWQ7CisJCQl9CisKKwkJCW9mZiA9IHhld3RvaChsYXlvdXRw
 W2ldLnNoZHItPnNoX29mZnNldCk7CisJCQlzaXplID0geGV3dG9oKGxheW91dHBbaV0uc2hkci0+
 c2hfc2l6ZSk7CisJCQlpZiAoeHdyaXRlYXRvZmYoZmQsIGJ1Ziwgb2ZmLCBzaXplLCBmbikgIT0g
 c2l6ZSkKKwkJCQlnb3RvIGJhZDsKKwkJfQorCX0KIAogb3V0OgotCWlmIChzaGRycCAhPSBOVUxM
 KQotCQlmcmVlKHNoZHJwKTsKLQlpZiAoc3ltdGFicCAhPSBOVUxMKQotCQlmcmVlKHN5bXRhYnAp
 OwotCWlmIChzdHJ0YWJwICE9IE5VTEwpCi0JCWZyZWUoc3RydGFicCk7CisJaWYgKGxheW91dHAg
 IT0gTlVMTCkgeworCQlmb3IgKGkgPSAwOyBpIDwgeGUxNnRvaChlaGRyLmVfc2hudW0pICsgMTsg
 aSsrKSB7CisJCQlpZiAobGF5b3V0cFtpXS5idWZwICE9IE5VTEwpCisJCQkJZnJlZShsYXlvdXRw
 W2ldLmJ1ZnApOworCQl9CisJCWZyZWUobGF5b3V0cCk7CisJfQorCWlmIChuc3RydGFicCAhPSBO
 VUxMKQorCQlmcmVlKG5zdHJ0YWJwKTsKIAlyZXR1cm4gKHJ2KTsKIAogYmFkOgo=
 --f46d04016a757b39d004cff03ba1--



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