Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Dec 2012 09:00: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:  <201212170900.qBH901G2016409@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, 17 Dec 2012 16:55:57 +0800

 --f46d04088e1183a55d04d1088ebb
 Content-Type: multipart/alternative; boundary=f46d04088e1183a55a04d1088eb9
 
 --f46d04088e1183a55a04d1088eb9
 Content-Type: text/plain; charset=ISO-8859-1
 
 Update the patch for performance improvement.
 
 Also thanks Kai Wang for helping test and refine the patch, esp,. on a stripped
 executable.
 
 --f46d04088e1183a55a04d1088eb9
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 Update the patch for performance improvement.<div><br></div><div>Also thank=
 s Kai Wang for helping test and refine the patch, esp,. on a=A0<span style=
 =3D"font-family:arial,sans-serif;font-size:13px">stripped executable.</span=
 ></div>
 
 
 --f46d04088e1183a55a04d1088eb9--
 --f46d04088e1183a55d04d1088ebb
 Content-Type: text/plain; charset=US-ASCII; name="patch-6.txt"
 Content-Disposition: attachment; filename="patch-6.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_hatd6wie1
 
 SW5kZXg6IGV4ZWNfZWxmMzIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBleGVjX2VsZjMyLmMJKHJldmlzaW9u
 IDI0NDE5OSkKKysrIGV4ZWNfZWxmMzIuYwkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBA
 QAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAKICNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg
 PGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5j
 bHVkZSA8c3RyaW5nLmg+CkBAIC04MiwxMSArODMsOSBAQAogI2RlZmluZQl4ZTMydG9oKHgpCSgo
 ZGF0YSA9PSBFTEZEQVRBMk1TQikgPyBiZTMydG9oKHgpIDogbGUzMnRvaCh4KSkKICNkZWZpbmUJ
 aHRveGUzMih4KQkoKGRhdGEgPT0gRUxGREFUQTJNU0IpID8gaHRvYmUzMih4KSA6IGh0b2xlMzIo
 eCkpCiAKLXN0cnVjdCBsaXN0ZWxlbSB7Ci0Jc3RydWN0IGxpc3RlbGVtICpuZXh0OwotCXZvaWQg
 Km1lbTsKLQlvZmZfdCBmaWxlOwotCXNpemVfdCBzaXplOworc3RydWN0IHNobGF5b3V0IHsKKwlF
 bGZfU2hkciAqc2hkcjsKKwl2b2lkICpidWZwOwogfTsKIAogc3RhdGljIHNzaXplX3QKQEAgLTIz
 NSwxNyArMjM0LDIwIEBACiBFTEZOQU1FRU5EKGhpZGUpKGludCBmZCwgY29uc3QgY2hhciAqZm4p
 CiB7CiAJRWxmX0VoZHIgZWhkcjsKLQlFbGZfU2hkciAqc2hkcnAgPSBOVUxMLCAqc3ltdGFic2hk
 ciwgKnN0cnRhYnNoZHI7CisJc3RydWN0IHNobGF5b3V0ICpsYXlvdXRwID0gTlVMTDsKKwlFbGZf
 U2hkciAqc2hkcnAgPSBOVUxMLCAqc3ltdGFic2hkciwgKnN0cnRhYnNoZHIsICpzaHN0cnRhYnNo
 ZHI7CisJRWxmX1NoZHIgc2hkcnNoZHI7CiAJRWxmX1N5bSAqc3ltdGFicCA9IE5VTEw7Ci0JY2hh
 ciAqc3RydGFicCA9IE5VTEw7Ci0JRWxmX1NpemUgIG5zeW1zLCBld2k7CisJY2hhciAqc2hzdHJ0
 YWJwID0gTlVMTCwgKnN0cnRhYnAgPSBOVUxMOworCUVsZl9TaXplIG5zeW1zLCBld2k7CisJRWxm
 X09mZiBvZmY7CiAJc3NpemVfdCBzaGRyc2l6ZTsKLQlpbnQgcnYsIGksIHdlaXJkOwotCXNpemVf
 dCBuc3RydGFiX3NpemUsIG5zdHJ0YWJfbmV4dG9mZiwgZm5fc2l6ZTsKKwlpbnQgcnYsIGksIHdl
 aXJkLCBsLCBtLCByLCBzdHJ0YWJpZHg7CisJc2l6ZV90IG5zdHJ0YWJfc2l6ZSwgbnN0cnRhYl9u
 ZXh0b2ZmLCBmbl9zaXplLCBzaXplOwogCWNoYXIgKm5zdHJ0YWJwID0gTlVMTDsKIAl1bnNpZ25l
 ZCBjaGFyIGRhdGE7Ci0JRWxmX09mZiBtYXhvZmYsIHN0cm9mZjsKIAljb25zdCBjaGFyICp3ZWly
 ZHJlYXNvbiA9IE5VTEw7CisJdm9pZCAqYnVmOwogCiAJcnYgPSAwOwogCWlmICh4cmVhZGF0b2Zm
 KGZkLCAmZWhkciwgMCwgc2l6ZW9mIGVoZHIsIGZuKSAhPSBzaXplb2YgZWhkcikKQEAgLTI2MCw2
 MyArMjYyLDEyNCBAQAogCSAgICBzaGRyc2l6ZSkKIAkJZ290byBiYWQ7CiAKLQlzeW10YWJzaGRy
 ID0gc3RydGFic2hkciA9IE5VTEw7CisJc3ltdGFic2hkciA9IHN0cnRhYnNoZHIgPSBzaHN0cnRh
 YnNoZHIgPSBOVUxMOwogCXdlaXJkID0gMDsKLQltYXhvZmYgPSBzdHJvZmYgPSAwOwogCWZvciAo
 aSA9IDA7IGkgPCB4ZTE2dG9oKGVoZHIuZV9zaG51bSk7IGkrKykgewotCQlpZiAoeGV3dG9oKHNo
 ZHJwW2ldLnNoX29mZnNldCkgPiBtYXhvZmYpCi0JCQltYXhvZmYgPSB4ZXd0b2goc2hkcnBbaV0u
 c2hfb2Zmc2V0KTsKIAkJc3dpdGNoICh4ZTMydG9oKHNoZHJwW2ldLnNoX3R5cGUpKSB7CiAJCWNh
 c2UgU0hUX1NZTVRBQjoKLQkJCWlmIChzeW10YWJzaGRyICE9IE5VTEwpCisJCQlpZiAoc3ltdGFi
 c2hkciAhPSBOVUxMKSB7CiAJCQkJd2VpcmQgPSAxOworCQkJCXdlaXJkcmVhc29uID0gIm11bHRp
 cGxlIHN5bWJvbCB0YWJsZXMiOworCQkJfQogCQkJc3ltdGFic2hkciA9ICZzaGRycFtpXTsKIAkJ
 CXN0cnRhYnNoZHIgPSAmc2hkcnBbeGUzMnRvaChzaGRycFtpXS5zaF9saW5rKV07Ci0KLQkJCS8q
 IENoZWNrIHdoZXRoZXIgdGhlIHN0cmluZyB0YWJsZSBpcyB0aGUgbGFzdCBzZWN0aW9uICovCi0J
 CQlzdHJvZmYgPSB4ZXd0b2goc2hkcnBbeGUzMnRvaChzaGRycFtpXS5zaF9saW5rKV0uc2hfb2Zm
 c2V0KTsKLQkJCWlmICghd2VpcmQgJiYgeGUzMnRvaChzaGRycFtpXS5zaF9saW5rKSAhPSAoeGUx
 NnRvaChlaGRyLmVfc2hudW0pIC0gMSkpIHsKLQkJCQl3ZWlyZCA9IDE7Ci0JCQkJd2VpcmRyZWFz
 b24gPSAic3RyaW5nIHRhYmxlIG5vdCBsYXN0IHNlY3Rpb24iOwotCQkJfQogCQkJYnJlYWs7CisJ
 CWNhc2UgU0hUX1NUUlRBQjoKKwkJCWlmIChpID09IHhlMTZ0b2goZWhkci5lX3Noc3RybmR4KSkK
 KwkJCQlzaHN0cnRhYnNoZHIgPSAmc2hkcnBbaV07CisJCQlicmVhazsKIAkJfQogCX0KLQlpZiAo
 ISB3ZWlyZHJlYXNvbikKLQkJd2VpcmRyZWFzb24gPSAidW5zdXBwb3J0ZWQiOwogCWlmIChzeW10
 YWJzaGRyID09IE5VTEwpCiAJCWdvdG8gb3V0OwotCWlmIChzdHJ0YWJzaGRyID09IE5VTEwpCisJ
 aWYgKHN0cnRhYnNoZHIgPT0gTlVMTCkgewogCQl3ZWlyZCA9IDE7Ci0JaWYgKCF3ZWlyZCAmJiBz
 dHJvZmYgIT0gbWF4b2ZmKSB7CisJCXdlaXJkcmVhc29uID0gInN0cmluZyB0YWJsZSBkb2VzIG5v
 dCBleGlzdCI7CisJfQorCWlmIChzaHN0cnRhYnNoZHIgPT0gTlVMTCkgewogCQl3ZWlyZCA9IDE7
 Ci0JCXdlaXJkcmVhc29uID0gInN0cmluZyB0YWJsZSBzZWN0aW9uIG5vdCBsYXN0IGluIGZpbGUi
 OwotCX0gICAKKwkJd2VpcmRyZWFzb24gPSAic2VjdGlvbiBoZWFkZXIgc3RyaW5nIHRhYmxlIGRv
 ZXMgbm90IGV4aXN0IjsKKwl9CisJaWYgKHdlaXJkcmVhc29uID09IE5VTEwpCisJCXdlaXJkcmVh
 c29uID0gInVuc3VwcG9ydGVkIjsKIAlpZiAod2VpcmQpIHsKIAkJZnByaW50ZihzdGRlcnIsICIl
 czogd2VpcmQgZXhlY3V0YWJsZSAoJXMpXG4iLCBmbiwgd2VpcmRyZWFzb24pOwogCQlnb3RvIGJh
 ZDsKIAl9CiAKIAkvKgorCSAqIHNvcnQgc2VjdGlvbiBsYXlvdXQgdGFibGUgYnkgb2Zmc2V0CisJ
 ICovCisJbGF5b3V0cCA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBzaGxheW91dCkgKiAoeGUxNnRv
 aChlaGRyLmVfc2hudW0pICsgMSksCisJICAgIGZuLCAibGF5b3V0IHRhYmxlIik7CisJaWYgKGxh
 eW91dHAgPT0gTlVMTCkKKwkJZ290byBiYWQ7CisKKwkvKiBhZGQgYSBwc2V1ZG8gZW50cnkgdG8g
 cmVwcmVzZW50IHRoZSBzZWN0aW9uIGhlYWRlciB0YWJsZSAqLworCXNoZHJzaGRyLnNoX29mZnNl
 dCA9IGVoZHIuZV9zaG9mZjsKKwlzaGRyc2hkci5zaF9zaXplID0gaHRveGV3KHNoZHJzaXplKTsK
 KwlzaGRyc2hkci5zaF9hZGRyYWxpZ24gPSBodG94ZXcoRUxGU0laRSAvIDgpOworCWxheW91dHBb
 eGUxNnRvaChlaGRyLmVfc2hudW0pXS5zaGRyID0gJnNoZHJzaGRyOworCisJLyogaW5zZXJ0IGFu
 ZCBzb3J0IG5vcm1hbCBzZWN0aW9uIGhlYWRlcnMgKi8KKwlmb3IgKGkgPSB4ZTE2dG9oKGVoZHIu
 ZV9zaG51bSkgLSAxOyBpID49IDA7IGktLSkgeworCQlsID0gaSArIDE7CisJCXIgPSB4ZTE2dG9o
 KGVoZHIuZV9zaG51bSk7CisJCXdoaWxlIChsIDw9IHIpIHsKKwkJCW0gPSAobCArIHIpIC8gMjsK
 KwkJCWlmICh4ZXd0b2goc2hkcnBbaV0uc2hfb2Zmc2V0KSA+CisJCQkgICAgeGV3dG9oKGxheW91
 dHBbbV0uc2hkci0+c2hfb2Zmc2V0KSkKKwkJCQlsID0gbSArIDE7CisJCQllbHNlCisJCQkJciA9
 IG0gLSAxOworCQl9CisKKwkJaWYgKHIgIT0gaSkgeworCQkJbWVtbW92ZSgmbGF5b3V0cFtpXSwg
 JmxheW91dHBbaSArIDFdLAorCQkJICAgIHNpemVvZihzdHJ1Y3Qgc2hsYXlvdXQpICogKHIgLSBp
 KSk7CisJCX0KKworCQlsYXlvdXRwW3JdLnNoZHIgPSAmc2hkcnBbaV07CisJCWxheW91dHBbcl0u
 YnVmcCA9IE5VTEw7CisJfQorCisJLyoKIAkgKiBsb2FkIHVwIGV2ZXJ5dGhpbmcgd2UgbmVlZAog
 CSAqLwogCi0JLyogc3ltYm9sIHRhYmxlICovCi0JaWYgKChzeW10YWJwID0geG1hbGxvYyh4ZXd0
 b2goc3ltdGFic2hkci0+c2hfc2l6ZSksIGZuLCAic3ltYm9sIHRhYmxlIikpCi0JICAgID09IE5V
 TEwpCisJLyogbG9hZCBzZWN0aW9uIHN0cmluZyB0YWJsZSBmb3IgZGVidWcgdXNlICovCisJaWYg
 KChzaHN0cnRhYnAgPSB4bWFsbG9jKHhld3RvaChzaHN0cnRhYnNoZHItPnNoX3NpemUpLCBmbiwK
 KwkgICAgInNlY3Rpb24gc3RyaW5nIHRhYmxlIikpID09IE5VTEwpCiAJCWdvdG8gYmFkOwotCWlm
 ICh4cmVhZGF0b2ZmKGZkLCBzeW10YWJwLCB4ZXd0b2goc3ltdGFic2hkci0+c2hfb2Zmc2V0KSwK
 LQkgICAgeGV3dG9oKHN5bXRhYnNoZHItPnNoX3NpemUpLCBmbikgIT0geGV3dG9oKHN5bXRhYnNo
 ZHItPnNoX3NpemUpKQorCWlmICh4cmVhZGF0b2ZmKGZkLCBzaHN0cnRhYnAsIHhld3RvaChzaHN0
 cnRhYnNoZHItPnNoX29mZnNldCksCisJICAgIHhld3RvaChzaHN0cnRhYnNoZHItPnNoX3NpemUp
 LCBmbikgIT0geGV3dG9oKHNoc3RydGFic2hkci0+c2hfc2l6ZSkpCiAJCWdvdG8gYmFkOwogCi0J
 Lyogc3RyaW5nIHRhYmxlICovCi0JaWYgKChzdHJ0YWJwID0geG1hbGxvYyh4ZXd0b2goc3RydGFi
 c2hkci0+c2hfc2l6ZSksIGZuLCAic3RyaW5nIHRhYmxlIikpCi0JICAgID09IE5VTEwpCi0JCWdv
 dG8gYmFkOwotCWlmICh4cmVhZGF0b2ZmKGZkLCBzdHJ0YWJwLCB4ZXd0b2goc3RydGFic2hkci0+
 c2hfb2Zmc2V0KSwKLQkgICAgeGV3dG9oKHN0cnRhYnNoZHItPnNoX3NpemUpLCBmbikgIT0geGV3
 dG9oKHN0cnRhYnNoZHItPnNoX3NpemUpKQotCQlnb3RvIGJhZDsKKwkvKiB3ZSBuZWVkIHN5bXRh
 Yiwgc3RydGFiLCBhbmQgZXZlcnl0aGluZyBiZWhpbmQgc3RydGFiICovCisJc3RydGFiaWR4ID0g
 SU5UX01BWDsKKwlmb3IgKGkgPSAwOyBpIDwgeGUxNnRvaChlaGRyLmVfc2hudW0pICsgMTsgaSsr
 KSB7CisJCWlmIChsYXlvdXRwW2ldLnNoZHIgPT0gJnNoZHJzaGRyKSB7CisJCQkvKiBub3QgbG9h
 ZCBzZWN0aW9uIGhlYWRlciBhZ2FpbiAqLworCQkJbGF5b3V0cFtpXS5idWZwID0gc2hkcnA7CisJ
 CQljb250aW51ZTsKKwkJfQorCQlpZiAobGF5b3V0cFtpXS5zaGRyID09IHNoc3RydGFic2hkcikg
 eworCQkJLyogbm90IGxvYWQgc2VjdGlvbiBzdHJpbmcgdGFibGUgYWdhaW4gKi8KKwkJCWxheW91
 dHBbaV0uYnVmcCA9IHNoc3RydGFicDsKKwkJCWNvbnRpbnVlOworCQl9CiAKKwkJaWYgKGxheW91
 dHBbaV0uc2hkciA9PSBzdHJ0YWJzaGRyKQorCQkJc3RydGFiaWR4ID0gaTsKKwkJaWYgKGxheW91
 dHBbaV0uc2hkciA9PSBzeW10YWJzaGRyIHx8IGkgPj0gc3RydGFiaWR4KSB7CisJCQlvZmYgPSB4
 ZXd0b2gobGF5b3V0cFtpXS5zaGRyLT5zaF9vZmZzZXQpOworCQkJc2l6ZSA9IHhld3RvaChsYXlv
 dXRwW2ldLnNoZHItPnNoX3NpemUpOworCQkJbGF5b3V0cFtpXS5idWZwID0geG1hbGxvYyhzaXpl
 LCBmbiwKKwkJCSAgICBzaHN0cnRhYnAgKyB4ZXd0b2gobGF5b3V0cFtpXS5zaGRyLT5zaF9uYW1l
 KSk7CisJCQlpZiAobGF5b3V0cFtpXS5idWZwID09IE5VTEwpCisJCQkJZ290byBiYWQ7CisJCQlp
 ZiAoeHJlYWRhdG9mZihmZCwgbGF5b3V0cFtpXS5idWZwLCBvZmYsIHNpemUsIGZuKSAhPQorCQkJ
 ICAgIHNpemUpCisJCQkJZ290byBiYWQ7CisKKwkJCS8qIHNldCBzeW1ib2wgdGFibGUgYW5kIHN0
 cmluZyB0YWJsZSAqLworCQkJaWYgKGxheW91dHBbaV0uc2hkciA9PSBzeW10YWJzaGRyKQorCQkJ
 CXN5bXRhYnAgPSBsYXlvdXRwW2ldLmJ1ZnA7CisJCQllbHNlIGlmIChsYXlvdXRwW2ldLnNoZHIg
 PT0gc3RydGFic2hkcikKKwkJCQlzdHJ0YWJwID0gbGF5b3V0cFtpXS5idWZwOworCQl9CisJfQor
 CiAJbnN0cnRhYl9zaXplID0gMjU2OwogCW5zdHJ0YWJwID0geG1hbGxvYyhuc3RydGFiX3NpemUs
 IGZuLCAibmV3IHN0cmluZyB0YWJsZSIpOwogCWlmIChuc3RydGFicCA9PSBOVUxMKQpAQCAtMzY1
 LDI2ICs0MjgsNjMgQEAKIAlzdHJ0YWJzaGRyLT5zaF9zaXplID0gaHRveGV3KG5zdHJ0YWJfbmV4
 dG9mZik7CiAKIAkvKgotCSAqIHdyaXRlIG5ldyB0YWJsZXMgdG8gdGhlIGZpbGUKKwkgKiB1cGRh
 dGUgc2VjdGlvbiBoZWFkZXIgdGFibGUgaW4gYXNjZW5kaW5nIG9yZGVyIG9mIG9mZnNldAogCSAq
 LwotCWlmICh4d3JpdGVhdG9mZihmZCwgc2hkcnAsIHhld3RvaChlaGRyLmVfc2hvZmYpLCBzaGRy
 c2l6ZSwgZm4pICE9Ci0JICAgIHNoZHJzaXplKQotCQlnb3RvIGJhZDsKLQlpZiAoeHdyaXRlYXRv
 ZmYoZmQsIHN5bXRhYnAsIHhld3RvaChzeW10YWJzaGRyLT5zaF9vZmZzZXQpLAotCSAgICB4ZXd0
 b2goc3ltdGFic2hkci0+c2hfc2l6ZSksIGZuKSAhPSB4ZXd0b2goc3ltdGFic2hkci0+c2hfc2l6
 ZSkpCi0JCWdvdG8gYmFkOwotCS8qIHdyaXRlIG5ldyBzeW1ib2wgdGFibGUgc3RyaW5ncyAqLwot
 CWlmICgoc2l6ZV90KXh3cml0ZWF0b2ZmKGZkLCBuc3RydGFicCwgeGV3dG9oKHN0cnRhYnNoZHIt
 PnNoX29mZnNldCksCi0JICAgIHhld3RvaChzdHJ0YWJzaGRyLT5zaF9zaXplKSwgZm4pICE9IHhl
 d3RvaChzdHJ0YWJzaGRyLT5zaF9zaXplKSkKLQkJZ290byBiYWQ7CisJZm9yIChpID0gc3RydGFi
 aWR4ICsgMTsgaSA8IHhlMTZ0b2goZWhkci5lX3NobnVtKSArIDE7IGkrKykgeworCQlFbGZfT2Zm
 IG9mZiwgYWxpZ247CisJCW9mZiA9IHhld3RvaChsYXlvdXRwW2kgLSAxXS5zaGRyLT5zaF9vZmZz
 ZXQpICsKKwkJICAgIHhld3RvaChsYXlvdXRwW2kgLSAxXS5zaGRyLT5zaF9zaXplKTsKKwkJYWxp
 Z24gPSB4ZXd0b2gobGF5b3V0cFtpXS5zaGRyLT5zaF9hZGRyYWxpZ24pOworCQlvZmYgPSAob2Zm
 ICsgKGFsaWduIC0gMSkpICYgfihhbGlnbiAtIDEpOworCQlsYXlvdXRwW2ldLnNoZHItPnNoX29m
 ZnNldCA9IGh0b3hldyhvZmYpOworCX0KIAorCS8qCisJICogd3JpdGUgZGF0YSB0byB0aGUgZmls
 ZSBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIG9mZnNldAorCSAqLworCWZvciAoaSA9IHhlMTZ0b2go
 ZWhkci5lX3NobnVtKTsgaSA+PSAwOyBpLS0pIHsKKwkJaWYgKGxheW91dHBbaV0uc2hkciA9PSBz
 dHJ0YWJzaGRyKSB7CisJCQkvKiBuZXcgc3RyaW5nIHRhYmxlICovCisJCQlidWYgPSBuc3RydGFi
 cDsKKwkJfSBlbHNlCisJCQlidWYgPSBsYXlvdXRwW2ldLmJ1ZnA7CisKKwkJaWYgKGxheW91dHBb
 aV0uc2hkciA9PSAmc2hkcnNoZHIgfHwKKwkJICAgIGxheW91dHBbaV0uc2hkciA9PSBzeW10YWJz
 aGRyIHx8IGkgPj0gc3RydGFiaWR4KSB7CisJCQlpZiAoYnVmID09IE5VTEwpCisJCQkJZ290byBi
 YWQ7CisKKwkJCS8qIAorCQkJICogdXBkYXRlIHRoZSBvZmZzZXQgb2Ygc2VjdGlvbiBoZWFkZXIg
 dGFibGUgaW4gZWxmCisJCQkgKiBoZWFkZXIgaWYgbmVlZGVkLgorCQkJICovCisJCQlpZiAobGF5
 b3V0cFtpXS5zaGRyID09ICZzaGRyc2hkciAmJgorCQkJICAgIGVoZHIuZV9zaG9mZiAhPSBzaGRy
 c2hkci5zaF9vZmZzZXQpIHsKKwkJCQllaGRyLmVfc2hvZmYgPSBzaGRyc2hkci5zaF9vZmZzZXQ7
 CisJCQkJb2ZmID0gKEVMRlNJWkUgPT0gMzIpID8gMzIgOiA0NDsKKwkJCQlzaXplID0gc2l6ZW9m
 KEVsZl9PZmYpOworCQkJCWlmICh4d3JpdGVhdG9mZihmZCwgJmVoZHIuZV9zaG9mZiwgb2ZmLCBz
 aXplLAorCQkJCSAgICBmbikgIT0gc2l6ZSkKKwkJCQkJZ290byBiYWQ7CisJCQl9CisKKwkJCW9m
 ZiA9IHhld3RvaChsYXlvdXRwW2ldLnNoZHItPnNoX29mZnNldCk7CisJCQlzaXplID0geGV3dG9o
 KGxheW91dHBbaV0uc2hkci0+c2hfc2l6ZSk7CisJCQlpZiAoeHdyaXRlYXRvZmYoZmQsIGJ1Ziwg
 b2ZmLCBzaXplLCBmbikgIT0gc2l6ZSkKKwkJCQlnb3RvIGJhZDsKKwkJfQorCX0KKwogb3V0Ogot
 CWlmIChzaGRycCAhPSBOVUxMKQotCQlmcmVlKHNoZHJwKTsKLQlpZiAoc3ltdGFicCAhPSBOVUxM
 KQotCQlmcmVlKHN5bXRhYnApOwotCWlmIChzdHJ0YWJwICE9IE5VTEwpCi0JCWZyZWUoc3RydGFi
 cCk7CisJaWYgKGxheW91dHAgIT0gTlVMTCkgeworCQlmb3IgKGkgPSAwOyBpIDwgeGUxNnRvaChl
 aGRyLmVfc2hudW0pICsgMTsgaSsrKSB7CisJCQlpZiAobGF5b3V0cFtpXS5idWZwICE9IE5VTEwp
 CisJCQkJZnJlZShsYXlvdXRwW2ldLmJ1ZnApOworCQl9CisJCWZyZWUobGF5b3V0cCk7CisJfQor
 CWlmIChuc3RydGFicCAhPSBOVUxMKQorCQlmcmVlKG5zdHJ0YWJwKTsKIAlyZXR1cm4gKHJ2KTsK
 IAogYmFkOgo=
 --f46d04088e1183a55d04d1088ebb--



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