Re: [PATCH]sbin/route WARNS=6 cleanup, Style(9), small bug fix
This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.
--=_jive-19245-1110283532-0001-2
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
split original patch into small patches against each file in sbin/route
add comments at the beginning of each file to indicate what it does
patchbugfix.route.c is based on patch.route.c
please view them.
Best Regards,
sephe
--=_jive-19245-1110283532-0001-2
Content-Type: text/plain; charset=us-ascii; name="patchbugfix.route.c"
Content-Transfer-Encoding: base64
Content-ID: <20050308201142.V1319@localhost>
Content-Description:
Content-Disposition: attachment; filename="patchbugfix.route.c"
YmFzZWQgcHJldmlvdXMgY2xlYW4gdXAgcGF0Y2ggYWdhaW5zdCByb3V0ZS5j
DQpgc2EtPnNhX2xlbicgaXMgdGhlIHRvdGFsIGxlbmd0aCBvZiBgc2EnLCBv
cmlnaW5hbCBjb2RlIHdpbGwgY2F1c2UgYHNwJyBwb2ludCB0byB0aGUgbWVt
b3J5IGxvY2F0aW9uIHdoaWNoIGRvZXMgbm90IGJlbG9uZyB0byBgc2EnDQoN
Ci0tLSAvb3B0L3NyYy9zYmluL3JvdXRlL3JvdXRlLmMub3JpZwkyMDA1LTAz
LTA5IDAzOjM5OjE2LjAwMDAwMDAwMCArMDgwMA0KKysrIC9vcHQvc3JjL3Ni
aW4vcm91dGUvcm91dGUuYy5vcmlnCTIwMDUtMDMtMDkgMDM6NDY6NDAuMDAw
MDAwMDAwICswODAwDQpAQCAtNTQ2LDcgKzU0Niw3IEBADQogDQogDQogCWRl
ZmF1bHQ6DQotCSAgICB7CXVfc2hvcnQgKnNwID0gKHVfc2hvcnQgKilzYS0+
c2FfZGF0YTsNCisJICAgIHsJdV9zaG9ydCAqc3AgPSAodV9zaG9ydCAqKXNh
Ow0KIAkJdV9zaG9ydCAqc3BsaW0gPSBzcCArICgoc2EtPnNhX2xlbiArIDEp
Pj4xKTsNCiAJCWNoYXIgKmNwcyA9IGxpbmUgKyBzcHJpbnRmKGxpbmUsICJh
ZiAlZDoiLCBzYS0+c2FfZmFtaWx5KTsNCiAJCWNoYXIgKmNwZSA9IGxpbmUg
KyBzaXplb2YobGluZSk7DQo=
--=_jive-19245-1110283532-0001-2
Content-Type: text/plain; charset=us-ascii; name="patch.route.c"
Content-Transfer-Encoding: base64
Content-ID: <20050308201142.P1319@localhost>
Content-Description:
Content-Disposition: attachment; filename="patch.route.c"
MSkgbWFrZSBsb2NhbGx5IHVzZWQgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIHN0
YXRpYw0KMikgcmVtb3ZlIHVudXNlZCBhbmQgbmVzdGVkIGZ1bmN0aW9uIGRl
Y2xhcmF0aW9uDQozKSByZW1vdmUgbmVzdGVkIHZhcmlhYmxlIGRlY2xhcmF0
aW9uDQo0KSBhZGQgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbg0KNSkg
cmVuYW1lIGxvY2FsIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBwYXJhbWV0ZXIg
bmFtZSB0byBhdm9pZCBzaGFkb3dpbmcgZ2xvYmFsIHZhcmlhYmxlIA0KNikg
YWRkIGBjb25zdCcgdG8gYXZvaWQgLVdjYXN0LXF1YWwNCg0KSW5kZXg6IHJv
dXRlLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvb3B0
L2RmX2N2cy9zcmMvc2Jpbi9yb3V0ZS9yb3V0ZS5jLHYNCnJldHJpZXZpbmcg
cmV2aXNpb24gMS44DQpkaWZmIC11IC1yMS44IHJvdXRlLmMNCi0tLSByb3V0
ZS5jCTIgTm92IDIwMDQgMjM6NDk6MzggLTAwMDAJMS44DQorKysgcm91dGUu
Ywk4IE1hciAyMDA1IDExOjQ2OjUyIC0wMDAwDQpAQCAtNjksNyArNjksNiBA
QA0KICNpbmNsdWRlICJleHRlcm4uaCINCiAjaW5jbHVkZSAia2V5d29yZHMu
aCINCiANCi1zdHJ1Y3QJb3J0ZW50cnkgcm91dGU7DQogdW5pb24Jc29ja3Vu
aW9uIHsNCiAJc3RydWN0CXNvY2thZGRyIHNhOw0KIAlzdHJ1Y3QJc29ja2Fk
ZHJfaW4gc2luOw0KQEAgLTg1LDQyICs4NCw0NSBAQA0KIAlzdHJ1Y3QJc29j
a2FkZHJfc3RvcmFnZSBzczsgLyogYWRkZWQgdG8gYXZvaWQgbWVtb3J5IG92
ZXJydW4gKi8NCiB9IHNvX2RzdCwgc29fZ2F0ZSwgc29fbWFzaywgc29fZ2Vu
bWFzaywgc29faWZhLCBzb19pZnA7DQogDQotdHlwZWRlZiB1bmlvbiBzb2Nr
dW5pb24gKnN1cDsNCit0eXBlZGVmIHVuaW9uIHNvY2t1bmlvbiAqCXN1cDsN
CiANCi1pbnQJcGlkLCBydG1fYWRkcnM7DQotaW50CXM7DQotaW50CWZvcmNl
aG9zdCwgZm9yY2VuZXQsIGRvZmx1c2gsIG5mbGFnLCBhZiwgcWZsYWcsIHRm
bGFnLCBrZXl3b3JkKCk7DQotaW50CWlmbGFnLCB2ZXJib3NlLCBhZmxlbiA9
IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOw0KLWludAl3ZmxhZzsNCi1p
bnQJbG9ja2luZywgbG9ja3Jlc3QsIGRlYnVnb25seTsNCi1zdHJ1Y3QJcnRf
bWV0cmljcyBydF9tZXRyaWNzOw0KLXVfbG9uZyAgcnRtX2luaXRzOw0KLXVp
ZF90CXVpZDsNCi0NCi1pbnQJIGF0YWxrX2F0b24oY29uc3QgY2hhciAqLCBz
dHJ1Y3QgYXRfYWRkciAqKTsNCi1jaGFyCSphdGFsa19udG9hKHN0cnVjdCBh
dF9hZGRyKTsNCi1jaGFyCSpuZXRuYW1lKHN0cnVjdCBzb2NrYWRkciAqKTsN
Ci12b2lkCSBmbHVzaHJvdXRlcyhpbnQsIGNoYXIgKiopOw0KLXZvaWQJIG5l
d3JvdXRlKGludCwgY2hhciAqKik7DQotdm9pZAkgbW9uaXRvcih2b2lkKTsN
Ci12b2lkCSBzb2NrYWRkcihjaGFyICosIHN0cnVjdCBzb2NrYWRkciAqKTsN
Ci12b2lkCSBzb2R1bXAoc3VwLCBjaGFyICopOw0KLXZvaWQJIGJwcmludGYo
RklMRSAqLCBpbnQsIHVfY2hhciAqKTsNCi12b2lkCSBwcmludF9nZXRtc2co
c3RydWN0IHJ0X21zZ2hkciAqLCBpbnQpOw0KLXZvaWQJIHByaW50X3J0bXNn
KHN0cnVjdCBydF9tc2doZHIgKiwgaW50KTsNCi12b2lkCSBwbXNnX2NvbW1v
bihzdHJ1Y3QgcnRfbXNnaGRyICopOw0KLXZvaWQJIHBtc2dfYWRkcnMoY2hh
ciAqLCBpbnQpOw0KLXZvaWQJIG1hc2tfYWRkcih2b2lkKTsNCi0jaWZkZWYg
SU5FVDYNCi1zdGF0aWMgaW50IGluZXQ2X21ha2VuZXRhbmRtYXNrKHN0cnVj
dCBzb2NrYWRkcl9pbjYgKiwgY2hhciAqKTsNCitpbnQJbmZsYWcsIHdmbGFn
Ow0KKw0KK3N0YXRpYyBzdHJ1Y3Qgb3J0ZW50cnkgcm91dGU7DQorc3RhdGlj
IHN0cnVjdCBydF9tZXRyaWNzIHJ0X21ldHJpY3M7DQorc3RhdGljIGludAlw
aWQsIHJ0bV9hZGRyczsNCitzdGF0aWMgaW50CXM7DQorc3RhdGljIGludAlm
b3JjZWhvc3QsIGZvcmNlbmV0LCBhZiwgcWZsYWcsIHRmbGFnOw0KK3N0YXRp
YyBpbnQJaWZsYWcsIHZlcmJvc2UsIGFmbGVuID0gc2l6ZW9mKHN0cnVjdCBz
b2NrYWRkcl9pbik7DQorc3RhdGljIGludAlsb2NraW5nLCBsb2NrcmVzdCwg
ZGVidWdvbmx5Ow0KK3N0YXRpYyB1X2xvbmcJcnRtX2luaXRzOw0KK3N0YXRp
YyB1aWRfdAl1aWQ7DQorI2lmZGVmIE5TDQorc3RhdGljIHNob3J0CW5zX2Jo
W10gPSB7LTEsLTEsLTF9Ow0KICNlbmRpZg0KLWludAkgZ2V0YWRkcihpbnQs
IGNoYXIgKiwgc3RydWN0IGhvc3RlbnQgKiopOw0KLWludAkgcnRtc2coaW50
LCBpbnQpOw0KLWludAkgeDI1X21ha2VtYXNrKCk7DQotaW50CSBwcmVmaXhs
ZW4oY2hhciAqKTsNCi1leHRlcm4JY2hhciAqaXNvX250b2EoKTsNCiANCi12
b2lkIHVzYWdlKGNvbnN0IGNoYXIgKikgX19kZWFkMjsNCitzdGF0aWMgaW50
CSBhdGFsa19hdG9uKGNvbnN0IGNoYXIgKiwgc3RydWN0IGF0X2FkZHIgKik7
DQorc3RhdGljIGNoYXIJKmF0YWxrX250b2Eoc3RydWN0IGF0X2FkZHIpOw0K
K3N0YXRpYyB2b2lkCSBmbHVzaHJvdXRlcyhpbnQsIGNoYXIgKiopOw0KK3N0
YXRpYyB2b2lkCSBzZXRfbWV0cmljKGNoYXIgKiwgaW50KTsNCitzdGF0aWMg
dm9pZAkgbmV3cm91dGUoaW50LCBjaGFyICoqKTsNCitzdGF0aWMgdm9pZAkg
aW5ldF9tYWtlbmV0YW5kbWFzayh1X2xvbmcsIHN0cnVjdCBzb2NrYWRkcl9p
biAqLCB1X2xvbmcpOw0KK3N0YXRpYyB2b2lkCSBpbnRlcmZhY2VzKHZvaWQp
Ow0KK3N0YXRpYyB2b2lkCSBtb25pdG9yKHZvaWQpOw0KK3N0YXRpYyB2b2lk
CSBzb2NrYWRkcihjaGFyICosIHN0cnVjdCBzb2NrYWRkciAqKTsNCitzdGF0
aWMgdm9pZAkgc29kdW1wKHN1cCwgY29uc3QgY2hhciAqKTsNCitzdGF0aWMg
dm9pZAkgYnByaW50ZihGSUxFICosIGludCwgdV9jaGFyICopOw0KK3N0YXRp
YyB2b2lkCSBwcmludF9nZXRtc2coc3RydWN0IHJ0X21zZ2hkciAqLCBpbnQp
Ow0KK3N0YXRpYyB2b2lkCSBwcmludF9ydG1zZyhzdHJ1Y3QgcnRfbXNnaGRy
ICosIGludCk7DQorc3RhdGljIHZvaWQJIHBtc2dfY29tbW9uKHN0cnVjdCBy
dF9tc2doZHIgKik7DQorc3RhdGljIHZvaWQJIHBtc2dfYWRkcnMoY2hhciAq
LCBpbnQpOw0KK3N0YXRpYyB2b2lkCSBtYXNrX2FkZHIodm9pZCk7DQorc3Rh
dGljIGludAkgZ2V0YWRkcihpbnQsIGNoYXIgKiwgc3RydWN0IGhvc3RlbnQg
KiopOw0KK3N0YXRpYyBpbnQJIHJ0bXNnKGludCwgaW50KTsNCitzdGF0aWMg
aW50CSBwcmVmaXhsZW4oY29uc3QgY2hhciAqKTsNCisjaWZkZWYgSU5FVDYN
CitzdGF0aWMgaW50CSBpbmV0Nl9tYWtlbmV0YW5kbWFzayhzdHJ1Y3Qgc29j
a2FkZHJfaW42ICosIGNvbnN0IGNoYXIgKik7DQorI2VuZGlmDQogDQogdm9p
ZA0KIHVzYWdlKGNvbnN0IGNoYXIgKmNwKQ0KQEAgLTIxMiw3ICsyMTQsNyBA
QA0KICAqIFB1cmdlIGFsbCBlbnRyaWVzIGluIHRoZSByb3V0aW5nIHRhYmxl
cyBub3QNCiAgKiBhc3NvY2lhdGVkIHdpdGggbmV0d29yayBpbnRlcmZhY2Vz
Lg0KICAqLw0KLXZvaWQNCitzdGF0aWMgdm9pZA0KIGZsdXNocm91dGVzKGlu
dCBhcmdjLCBjaGFyICoqYXJndikNCiB7DQogCXNpemVfdCBuZWVkZWQ7DQpA
QCAtMzE5LDE0ICszMjEsMTEgQEANCiBjaGFyICoNCiByb3V0ZW5hbWUoc3Ry
dWN0IHNvY2thZGRyICpzYSkNCiB7DQotCWNoYXIgKmNwOw0KKwljb25zdCBj
aGFyICpjcDsNCiAJc3RhdGljIGNoYXIgbGluZVtNQVhIT1NUTkFNRUxFTiAr
IDFdOw0KIAlzdHJ1Y3QgaG9zdGVudCAqaHA7DQogCXN0YXRpYyBjaGFyIGRv
bWFpbltNQVhIT1NUTkFNRUxFTiArIDFdOw0KIAlzdGF0aWMgaW50IGZpcnN0
ID0gMTsNCi0jaWZkZWYgTlMNCi0JY2hhciAqbnNfcHJpbnQoKTsNCi0jZW5k
aWYNCiANCiAJaWYgKGZpcnN0KSB7DQogCQlmaXJzdCA9IDA7DQpAQCAtMzUz
LDkgKzM1MiwxMCBAQA0KIAkJCWhwID0gZ2V0aG9zdGJ5YWRkcigoY2hhciAq
KSZpbiwgc2l6ZW9mKHN0cnVjdCBpbl9hZGRyKSwNCiAJCQkJQUZfSU5FVCk7
DQogCQkJaWYgKGhwKSB7DQotCQkJCWlmICgoY3AgPSBzdHJjaHIoaHAtPmhf
bmFtZSwgJy4nKSkgJiYgIXdmbGFnICYmDQotCQkJCSAgICAhc3RyY21wKGNw
ICsgMSwgZG9tYWluKSkNCi0JCQkJCSpjcCA9IDA7DQorCQkJCWNoYXIgKmNw
dHI7DQorCQkJCWlmICgoY3B0ciA9IHN0cmNocihocC0+aF9uYW1lLCAnLicp
KSAmJg0KKwkJCQkgICAgIXdmbGFnICYmICFzdHJjbXAoY3B0ciArIDEsIGRv
bWFpbikpDQorCQkJCQkqY3B0ciA9IDA7DQogCQkJCWNwID0gaHAtPmhfbmFt
ZTsNCiAJCQl9DQogCQl9DQpAQCAtNDE1LDEzICs0MTUsMTMgQEANCiAJCXJl
dHVybihsaW5rX250b2EoKHN0cnVjdCBzb2NrYWRkcl9kbCAqKXNhKSk7DQog
DQogCWRlZmF1bHQ6DQotCSAgICB7CXVfc2hvcnQgKnMgPSAodV9zaG9ydCAq
KXNhOw0KLQkJdV9zaG9ydCAqc2xpbSA9IHMgKyAoKHNhLT5zYV9sZW4gKyAx
KSA+PiAxKTsNCi0JCWNoYXIgKmNwID0gbGluZSArIHNwcmludGYobGluZSwg
IiglZCkiLCBzYS0+c2FfZmFtaWx5KTsNCisJICAgIHsJdV9zaG9ydCAqc3Ag
PSAodV9zaG9ydCAqKXNhOw0KKwkJdV9zaG9ydCAqc3BsaW0gPSBzcCArICgo
c2EtPnNhX2xlbiArIDEpID4+IDEpOw0KKwkJY2hhciAqY3BzID0gbGluZSAr
IHNwcmludGYobGluZSwgIiglZCkiLCBzYS0+c2FfZmFtaWx5KTsNCiAJCWNo
YXIgKmNwZSA9IGxpbmUgKyBzaXplb2YobGluZSk7DQogDQotCQl3aGlsZSAo
KytzIDwgc2xpbSAmJiBjcCA8IGNwZSkgLyogc3RhcnQgd2l0aCBzYS0+c2Ff
ZGF0YSAqLw0KLQkJCWNwICs9IHNucHJpbnRmKGNwLCBjcGUgLSBjcCwgIiAl
eCIsICpzKTsNCisJCXdoaWxlICgrK3NwIDwgc3BsaW0gJiYgY3BzIDwgY3Bl
KSAvKiBzdGFydCB3aXRoIHNhLT5zYV9kYXRhICovDQorCQkJY3BzICs9IHNu
cHJpbnRmKGNwcywgY3BlIC0gY3BzLCAiICV4IiwgKnNwKTsNCiAJCWJyZWFr
Ow0KIAkgICAgfQ0KIAl9DQpAQCAtNDM1LDE1ICs0MzUsMTIgQEANCiBjaGFy
ICoNCiBuZXRuYW1lKHN0cnVjdCBzb2NrYWRkciAqc2EpDQogew0KLQljaGFy
ICpjcCA9IDA7DQorCWNvbnN0IGNoYXIgKmNwID0gMDsNCiAJc3RhdGljIGNo
YXIgbGluZVtNQVhIT1NUTkFNRUxFTiArIDFdOw0KIAlzdHJ1Y3QgbmV0ZW50
ICpucCA9IDA7DQogCXVfbG9uZyBuZXQsIG1hc2s7DQogCXVfbG9uZyBpOw0K
IAlpbnQgc3VibmV0c2hpZnQ7DQotI2lmZGVmIE5TDQotCWNoYXIgKm5zX3By
aW50KCk7DQotI2VuZGlmDQogDQogCXN3aXRjaCAoc2EtPnNhX2ZhbWlseSkg
ew0KIA0KQEAgLTU0OSwyMCArNTQ2LDIwIEBADQogDQogDQogCWRlZmF1bHQ6
DQotCSAgICB7CXVfc2hvcnQgKnMgPSAodV9zaG9ydCAqKXNhLT5zYV9kYXRh
Ow0KLQkJdV9zaG9ydCAqc2xpbSA9IHMgKyAoKHNhLT5zYV9sZW4gKyAxKT4+
MSk7DQotCQljaGFyICpjcCA9IGxpbmUgKyBzcHJpbnRmKGxpbmUsICJhZiAl
ZDoiLCBzYS0+c2FfZmFtaWx5KTsNCisJICAgIHsJdV9zaG9ydCAqc3AgPSAo
dV9zaG9ydCAqKXNhLT5zYV9kYXRhOw0KKwkJdV9zaG9ydCAqc3BsaW0gPSBz
cCArICgoc2EtPnNhX2xlbiArIDEpPj4xKTsNCisJCWNoYXIgKmNwcyA9IGxp
bmUgKyBzcHJpbnRmKGxpbmUsICJhZiAlZDoiLCBzYS0+c2FfZmFtaWx5KTsN
CiAJCWNoYXIgKmNwZSA9IGxpbmUgKyBzaXplb2YobGluZSk7DQogDQotCQl3
aGlsZSAocyA8IHNsaW0gJiYgY3AgPCBjcGUpDQotCQkJY3AgKz0gc25wcmlu
dGYoY3AsIGNwZSAtIGNwLCAiICV4IiwgKnMrKyk7DQorCQl3aGlsZSAoKytz
cCA8IHNwbGltICYmIGNwcyA8IGNwZSkgLyogc3RhcnQgd2l0aCBzYS0+c2Ff
ZGF0YSAqLw0KKwkJCWNwcyArPSBzbnByaW50ZihjcHMsIGNwZSAtIGNwcywg
IiAleCIsICpzcCk7DQogCQlicmVhazsNCiAJICAgIH0NCiAJfQ0KIAlyZXR1
cm4obGluZSk7DQogfQ0KIA0KLXZvaWQNCitzdGF0aWMgdm9pZA0KIHNldF9t
ZXRyaWMoY2hhciAqdmFsdWUsIGludCBrZXkpDQogew0KIAlpbnQgZmxhZyA9
IDA7DQpAQCAtNTg3LDEwICs1ODQsMTEgQEANCiAJKnZhbHAgPSBhdG9pKHZh
bHVlKTsNCiB9DQogDQotdm9pZA0KK3N0YXRpYyB2b2lkDQogbmV3cm91dGUo
aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KIHsNCi0JY2hhciAqY21kLCAqZGVz
dCA9ICIiLCAqZ2F0ZXdheSA9ICIiLCAqZXJyOw0KKwljaGFyICpjbWQ7DQor
CWNvbnN0IGNoYXIgKmVycl9zdHIsICpkZXN0ID0gIiIsICpnYXRld2F5ID0g
IiI7DQogCWludCBpc2hvc3QgPSAwLCBwcm94eSA9IDAsIHJldCwgYXR0ZW1w
dHMsIG9lcnJubywgZmxhZ3MgPSBSVEZfU1RBVElDOw0KIAlpbnQga2V5Ow0K
IAlzdHJ1Y3QgaG9zdGVudCAqaHAgPSAwOw0KQEAgLTc3Niw4ICs3NzQsMTAg
QEANCiAJCQlicmVhazsNCiAJCWlmIChhZiA9PSBBRl9JTkVUICYmICpnYXRl
d2F5ICYmIGhwICYmIGhwLT5oX2FkZHJfbGlzdFsxXSkgew0KIAkJCWhwLT5o
X2FkZHJfbGlzdCsrOw0KLQkJCW1lbW1vdmUoJnNvX2dhdGUuc2luLnNpbl9h
ZGRyLCBocC0+aF9hZGRyX2xpc3RbMF0sDQotCQkJICAgIE1JTihocC0+aF9s
ZW5ndGgsIHNpemVvZihzb19nYXRlLnNpbi5zaW5fYWRkcikpKTsNCisJCQlt
ZW1tb3ZlKCZzb19nYXRlLnNpbi5zaW5fYWRkciwNCisJCQkJaHAtPmhfYWRk
cl9saXN0WzBdLA0KKwkJCQlNSU4oKHNpemVfdClocC0+aF9sZW5ndGgsDQor
CQkJCSAgICBzaXplb2Yoc29fZ2F0ZS5zaW4uc2luX2FkZHIpKSk7DQogCQl9
IGVsc2UNCiAJCQlicmVhazsNCiAJfQ0KQEAgLTc5NywzMCArNzk3LDMwIEBA
DQogCQl9IGVsc2Ugew0KIAkJCXN3aXRjaCAob2Vycm5vKSB7DQogCQkJY2Fz
ZSBFU1JDSDoNCi0JCQkJZXJyID0gIm5vdCBpbiB0YWJsZSI7DQorCQkJCWVy
cl9zdHIgPSAibm90IGluIHRhYmxlIjsNCiAJCQkJYnJlYWs7DQogCQkJY2Fz
ZSBFQlVTWToNCi0JCQkJZXJyID0gImVudHJ5IGluIHVzZSI7DQorCQkJCWVy
cl9zdHIgPSAiZW50cnkgaW4gdXNlIjsNCiAJCQkJYnJlYWs7DQogCQkJY2Fz
ZSBFTk9CVUZTOg0KLQkJCQllcnIgPSAicm91dGluZyB0YWJsZSBvdmVyZmxv
dyI7DQorCQkJCWVycl9zdHIgPSAicm91dGluZyB0YWJsZSBvdmVyZmxvdyI7
DQogCQkJCWJyZWFrOw0KIAkJCWNhc2UgRURRVU9UOiAvKiBoYW5kbGUgcmVj
dXJzaW9uIGF2b2lkYW5jZSBpbg0KIAkJCQkJcnRfc2V0Z2F0ZSgpICovDQot
CQkJCWVyciA9ICJnYXRld2F5IHVzZXMgdGhlIHNhbWUgcm91dGUiOw0KKwkJ
CQllcnJfc3RyID0gImdhdGV3YXkgdXNlcyB0aGUgc2FtZSByb3V0ZSI7DQog
CQkJCWJyZWFrOw0KIAkJCWRlZmF1bHQ6DQotCQkJCWVyciA9IHN0cmVycm9y
KG9lcnJubyk7DQorCQkJCWVycl9zdHIgPSBzdHJlcnJvcihvZXJybm8pOw0K
IAkJCQlicmVhazsNCiAJCQl9DQotCQkJcHJpbnRmKCI6ICVzXG4iLCBlcnIp
Ow0KKwkJCXByaW50ZigiOiAlc1xuIiwgZXJyX3N0cik7DQogCQl9DQogCX0N
CiAJZXhpdChyZXQgIT0gMCk7DQogfQ0KIA0KLXZvaWQNCi1pbmV0X21ha2Vu
ZXRhbmRtYXNrKHVfbG9uZyBuZXQsIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2lu
LCB1X2xvbmcgYml0cykNCitzdGF0aWMgdm9pZA0KK2luZXRfbWFrZW5ldGFu
ZG1hc2sodV9sb25nIG5ldCwgc3RydWN0IHNvY2thZGRyX2luICppbiwgdV9s
b25nIGJpdHMpDQogew0KIAl1X2xvbmcgYWRkciwgbWFzayA9IDA7DQogCWNo
YXIgKmNwOw0KQEAgLTg1MCwxNSArODUwLDE1IEBADQogCX0NCiAJaWYgKGJp
dHMpDQogCQltYXNrID0gMHhmZmZmZmZmZiA8PCAoMzIgLSBiaXRzKTsNCi0J
c2luLT5zaW5fYWRkci5zX2FkZHIgPSBodG9ubChhZGRyKTsNCi0Jc2luID0g
JnNvX21hc2suc2luOw0KLQlzaW4tPnNpbl9hZGRyLnNfYWRkciA9IGh0b25s
KG1hc2spOw0KLQlzaW4tPnNpbl9sZW4gPSAwOw0KLQlzaW4tPnNpbl9mYW1p
bHkgPSAwOw0KLQljcCA9IChjaGFyICopKCZzaW4tPnNpbl9hZGRyICsgMSk7
DQotCXdoaWxlICgqLS1jcCA9PSAwICYmIGNwID4gKGNoYXIgKilzaW4pDQor
CWluLT5zaW5fYWRkci5zX2FkZHIgPSBodG9ubChhZGRyKTsNCisJaW4gPSAm
c29fbWFzay5zaW47DQorCWluLT5zaW5fYWRkci5zX2FkZHIgPSBodG9ubCht
YXNrKTsNCisJaW4tPnNpbl9sZW4gPSAwOw0KKwlpbi0+c2luX2ZhbWlseSA9
IDA7DQorCWNwID0gKGNoYXIgKikoJmluLT5zaW5fYWRkciArIDEpOw0KKwl3
aGlsZSAoKi0tY3AgPT0gMCAmJiBjcCA+IChjaGFyICopaW4pDQogCQk7DQot
CXNpbi0+c2luX2xlbiA9IDEgKyBjcCAtIChjaGFyICopc2luOw0KKwlpbi0+
c2luX2xlbiA9IDEgKyBjcCAtIChjaGFyICopaW47DQogfQ0KIA0KICNpZmRl
ZiBJTkVUNg0KQEAgLTg2Niw3ICs4NjYsNyBAQA0KICAqIFhYWCB0aGUgZnVu
Y3Rpb24gbWF5IG5lZWQgbW9yZSBpbXByb3ZlbWVudC4uLg0KICAqLw0KIHN0
YXRpYyBpbnQNCi1pbmV0Nl9tYWtlbmV0YW5kbWFzayhzdHJ1Y3Qgc29ja2Fk
ZHJfaW42ICpzaW42LCBjaGFyICpwbGVuKQ0KK2luZXQ2X21ha2VuZXRhbmRt
YXNrKHN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjYsIGNvbnN0IGNoYXIgKnBs
ZW4pDQogew0KIAlzdHJ1Y3QgaW42X2FkZHIgaW42Ow0KIA0KQEAgLTg5NSw4
ICs4OTUsOCBAQA0KICAqIEludGVycHJldCBhbiBhcmd1bWVudCBhcyBhIG5l
dHdvcmsgYWRkcmVzcyBvZiBzb21lIGtpbmQsDQogICogcmV0dXJuaW5nIDEg
aWYgYSBob3N0IGFkZHJlc3MsIDAgaWYgYSBuZXR3b3JrIGFkZHJlc3MuDQog
ICovDQotaW50DQotZ2V0YWRkcihpbnQgd2hpY2gsIGNoYXIgKnMsIHN0cnVj
dCBob3N0ZW50ICoqaHBwKQ0KK3N0YXRpYyBpbnQNCitnZXRhZGRyKGludCB3
aGljaCwgY2hhciAqc3RyLCBzdHJ1Y3QgaG9zdGVudCAqKmhwcCkNCiB7DQog
CXN1cCBzdTsNCiAJc3RydWN0IGhvc3RlbnQgKmhwOw0KQEAgLTkyOCw3ICs5
MjgsNyBAQA0KIAkJCQlpZiAoaWZhLT5pZmFfYWRkci0+c2FfZmFtaWx5ICE9
IEFGX0xJTkspDQogCQkJCQljb250aW51ZTsNCiANCi0JCQkJaWYgKHN0cmNt
cChzLCBpZmEtPmlmYV9uYW1lKSkNCisJCQkJaWYgKHN0cmNtcChzdHIsIGlm
YS0+aWZhX25hbWUpKQ0KIAkJCQkJY29udGludWU7DQogDQogCQkJCXNkbCA9
IChzdHJ1Y3Qgc29ja2FkZHJfZGwgKilpZmEtPmlmYV9hZGRyOw0KQEAgLTk3
NSw3ICs5NzUsNyBAQA0KIAlzdS0+c2Euc2FfbGVuID0gYWZsZW47DQogCXN1
LT5zYS5zYV9mYW1pbHkgPSBhZmFtaWx5OyAvKiBjYXNlcyB0aGF0IGRvbid0
IHdhbnQgaXQgaGF2ZSBsZWZ0DQogCQkJCSAgICAgICBhbHJlYWR5ICovDQot
CWlmIChzdHJjbXAocywgImRlZmF1bHQiKSA9PSAwKSB7DQorCWlmIChzdHJj
bXAoc3RyLCAiZGVmYXVsdCIpID09IDApIHsNCiAJCS8qDQogCQkgKiBEZWZh
dWx0IGlzIG5ldCAwLjAuMC4wLzANCiAJCSAqLw0KQEAgLTk4Myw3ICs5ODMs
NyBAQA0KIAkJY2FzZSBSVEFfRFNUOg0KIAkJCWZvcmNlbmV0Kys7DQogCQkJ
LyogYnplcm8oc3UsIHNpemVvZigqc3UpKTsgKi8vKiBmb3IgcmVhZGFiaWxp
dHkgKi8NCi0JCQlnZXRhZGRyKFJUQV9ORVRNQVNLLCBzLCAwKTsNCisJCQln
ZXRhZGRyKFJUQV9ORVRNQVNLLCBzdHIsIDApOw0KIAkJCWJyZWFrOw0KIAkJ
Y2FzZSBSVEFfTkVUTUFTSzoNCiAJCWNhc2UgUlRBX0dFTk1BU0s6DQpAQCAt
OTk5LDE2ICs5OTksMTYgQEANCiAJCXN0cnVjdCBhZGRyaW5mbyBoaW50cywg
KnJlczsNCiANCiAJCXEgPSBOVUxMOw0KLQkJaWYgKHdoaWNoID09IFJUQV9E
U1QgJiYgKHEgPSBzdHJjaHIocywgJy8nKSkgIT0gTlVMTCkNCisJCWlmICh3
aGljaCA9PSBSVEFfRFNUICYmIChxID0gc3RyY2hyKHN0ciwgJy8nKSkgIT0g
TlVMTCkNCiAJCQkqcSA9ICdcMCc7DQogCQltZW1zZXQoJmhpbnRzLCAwLCBz
aXplb2YoaGludHMpKTsNCiAJCWhpbnRzLmFpX2ZhbWlseSA9IGFmYW1pbHk7
CS8qQUZfSU5FVDYqLw0KIAkJaGludHMuYWlfZmxhZ3MgPSBBSV9OVU1FUklD
SE9TVDsNCiAJCWhpbnRzLmFpX3NvY2t0eXBlID0gU09DS19ER1JBTTsJCS8q
ZHVtbXkqLw0KLQkJaWYgKGdldGFkZHJpbmZvKHMsICIwIiwgJmhpbnRzLCAm
cmVzKSAhPSAwIHx8DQorCQlpZiAoZ2V0YWRkcmluZm8oc3RyLCAiMCIsICZo
aW50cywgJnJlcykgIT0gMCB8fA0KIAkJICAgIHJlcy0+YWlfZmFtaWx5ICE9
IEFGX0lORVQ2IHx8DQogCQkgICAgcmVzLT5haV9hZGRybGVuICE9IHNpemVv
ZihzdS0+c2luNikpIHsNCi0JCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBiYWQg
dmFsdWVcbiIsIHMpOw0KKwkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGJhZCB2
YWx1ZVxuIiwgc3RyKTsNCiAJCQlleGl0KDEpOw0KIAkJfQ0KIAkJbWVtY3B5
KCZzdS0+c2luNiwgcmVzLT5haV9hZGRyLCBzaXplb2Yoc3UtPnNpbjYpKTsN
CkBAIC0xMDMzLDcgKzEwMzMsNiBAQA0KICNpZmRlZiBOUw0KIAljYXNlIEFG
X05TOg0KIAkJaWYgKHdoaWNoID09IFJUQV9EU1QpIHsNCi0JCQlleHRlcm4g
c2hvcnQgbnNfYmhbM107DQogCQkJc3RydWN0IHNvY2thZGRyX25zICpzbXMg
PSAmKHNvX21hc2suc25zKTsNCiAJCQltZW1zZXQoc21zLCAwLCBzaXplb2Yo
KnNtcykpOw0KIAkJCXNtcy0+c25zX2ZhbWlseSA9IDA7DQpAQCAtMTA0MSwy
NSArMTA0MCwyNSBAQA0KIAkJCXNtcy0+c25zX2FkZHIueF9uZXQgPSAqKHVu
aW9uIG5zX25ldCAqKW5zX2JoOw0KIAkJCXJ0bV9hZGRycyB8PSBSVEFfTkVU
TUFTSzsNCiAJCX0NCi0JCXN1LT5zbnMuc25zX2FkZHIgPSBuc19hZGRyKHMp
Ow0KKwkJc3UtPnNucy5zbnNfYWRkciA9IG5zX2FkZHIoc3RyKTsNCiAJCXJl
dHVybighbnNfbnVsbGhvc3Qoc3UtPnNucy5zbnNfYWRkcikpOw0KICNlbmRp
Zg0KIA0KIA0KIAljYXNlIEFGX0FQUExFVEFMSzoNCi0JCWlmICghYXRhbGtf
YXRvbihzLCAmc3UtPnNhdC5zYXRfYWRkcikpDQotCQkJZXJyeChFWF9OT0hP
U1QsICJiYWQgYWRkcmVzczogJXMiLCBzKTsNCisJCWlmICghYXRhbGtfYXRv
bihzdHIsICZzdS0+c2F0LnNhdF9hZGRyKSkNCisJCQllcnJ4KEVYX05PSE9T
VCwgImJhZCBhZGRyZXNzOiAlcyIsIHN0cik7DQogCQlydG1fYWRkcnMgfD0g
UlRBX05FVE1BU0s7DQogCQlyZXR1cm4oZm9yY2Vob3N0IHx8IHN1LT5zYXQu
c2F0X2FkZHIuc19ub2RlICE9IDApOw0KIA0KIAljYXNlIEFGX0xJTks6DQot
CQlsaW5rX2FkZHIocywgJnN1LT5zZGwpOw0KKwkJbGlua19hZGRyKHN0ciwg
JnN1LT5zZGwpOw0KIAkJcmV0dXJuKDEpOw0KIA0KIA0KIAljYXNlIFBGX1JP
VVRFOg0KIAkJc3UtPnNhLnNhX2xlbiA9IHNpemVvZigqc3UpOw0KLQkJc29j
a2FkZHIocywgJnN1LT5zYSk7DQorCQlzb2NrYWRkcihzdHIsICZzdS0+c2Ep
Ow0KIAkJcmV0dXJuKDEpOw0KIA0KIAljYXNlIEFGX0lORVQ6DQpAQCAtMTA3
MSwxMCArMTA3MCwxMCBAQA0KIAkJaHBwID0gJmhwOw0KIAkqaHBwID0gTlVM
TDsNCiANCi0JcSA9IHN0cmNocihzLCcvJyk7DQorCXEgPSBzdHJjaHIoc3Ry
LCcvJyk7DQogCWlmIChxICYmIHdoaWNoID09IFJUQV9EU1QpIHsNCiAJCSpx
ID0gJ1wwJzsNCi0JCWlmICgodmFsID0gaW5ldF9uZXR3b3JrKHMpKSAhPSBJ
TkFERFJfTk9ORSkgew0KKwkJaWYgKCh2YWwgPSBpbmV0X25ldHdvcmsoc3Ry
KSkgIT0gSU5BRERSX05PTkUpIHsNCiAJCQlpbmV0X21ha2VuZXRhbmRtYXNr
KA0KIAkJCQl2YWwsICZzdS0+c2luLCBzdHJ0b3VsKHErMSwgMCwgMCkpOw0K
IAkJCXJldHVybigwKTsNCkBAIC0xMDgyLDcgKzEwODEsNyBAQA0KIAkJKnEg
PSAnLyc7DQogCX0NCiAJaWYgKCh3aGljaCAhPSBSVEFfRFNUIHx8IGZvcmNl
bmV0ID09IDApICYmDQotCSAgICBpbmV0X2F0b24ocywgJnN1LT5zaW4uc2lu
X2FkZHIpKSB7DQorCSAgICBpbmV0X2F0b24oc3RyLCAmc3UtPnNpbi5zaW5f
YWRkcikpIHsNCiAJCXZhbCA9IHN1LT5zaW4uc2luX2FkZHIuc19hZGRyOw0K
IAkJaWYgKHdoaWNoICE9IFJUQV9EU1QgfHwNCiAJCSAgICBpbmV0X2xuYW9m
KHN1LT5zaW4uc2luX2FkZHIpICE9IElOQUREUl9BTlkpDQpAQCAtMTA5Mywy
NyArMTA5MiwyNyBAQA0KIAkJfQ0KIAl9DQogCWlmICh3aGljaCA9PSBSVEFf
RFNUICYmIGZvcmNlaG9zdCA9PSAwICYmDQotCSAgICAoKHZhbCA9IGluZXRf
bmV0d29yayhzKSkgIT0gSU5BRERSX05PTkUgfHwNCi0JICAgICgobnAgPSBn
ZXRuZXRieW5hbWUocykpICE9IE5VTEwgJiYgKHZhbCA9IG5wLT5uX25ldCkg
IT0gMCkpKSB7DQorCSAgICAoKHZhbCA9IGluZXRfbmV0d29yayhzdHIpKSAh
PSBJTkFERFJfTk9ORSB8fA0KKwkgICAgKChucCA9IGdldG5ldGJ5bmFtZShz
dHIpKSAhPSBOVUxMICYmICh2YWwgPSBucC0+bl9uZXQpICE9IDApKSkgew0K
IG5ldGRvbmU6DQogCQlpbmV0X21ha2VuZXRhbmRtYXNrKHZhbCwgJnN1LT5z
aW4sIDApOw0KIAkJcmV0dXJuKDApOw0KIAl9DQotCWhwID0gZ2V0aG9zdGJ5
bmFtZShzKTsNCisJaHAgPSBnZXRob3N0YnluYW1lKHN0cik7DQogCWlmICho
cCkgew0KIAkJKmhwcCA9IGhwOw0KIAkJc3UtPnNpbi5zaW5fZmFtaWx5ID0g
aHAtPmhfYWRkcnR5cGU7DQogCQltZW1tb3ZlKChjaGFyICopJnN1LT5zaW4u
c2luX2FkZHIsIGhwLT5oX2FkZHIsDQotCQkgICAgTUlOKGhwLT5oX2xlbmd0
aCwgc2l6ZW9mKHN1LT5zaW4uc2luX2FkZHIpKSk7DQorCQkgICAgTUlOKChz
aXplX3QpaHAtPmhfbGVuZ3RoLCBzaXplb2Yoc3UtPnNpbi5zaW5fYWRkcikp
KTsNCiAJCXJldHVybigxKTsNCiAJfQ0KLQllcnJ4KEVYX05PSE9TVCwgImJh
ZCBhZGRyZXNzOiAlcyIsIHMpOw0KKwllcnJ4KEVYX05PSE9TVCwgImJhZCBh
ZGRyZXNzOiAlcyIsIHN0cik7DQogfQ0KIA0KLWludA0KLXByZWZpeGxlbihj
aGFyICpzKQ0KK3N0YXRpYyBpbnQNCitwcmVmaXhsZW4oY29uc3QgY2hhciAq
bGVuX3N0cikNCiB7DQotCWludCBsZW4gPSBhdG9pKHMpLCBxLCByOw0KKwlp
bnQgbGVuID0gYXRvaShsZW5fc3RyKSwgcSwgcjsNCiAJaW50IG1heDsNCiAJ
Y2hhciAqcDsNCiANCkBAIC0xMTM2LDcgKzExMzUsNyBAQA0KIAl9DQogDQog
CWlmIChsZW4gPCAwIHx8IG1heCA8IGxlbikgew0KLQkJZnByaW50ZihzdGRl
cnIsICIlczogYmFkIHZhbHVlXG4iLCBzKTsNCisJCWZwcmludGYoc3RkZXJy
LCAiJXM6IGJhZCB2YWx1ZVxuIiwgbGVuX3N0cik7DQogCQlleGl0KDEpOw0K
IAl9DQogCQ0KQEAgLTExNTYsOCArMTE1NSw3IEBADQogfQ0KIA0KICNpZmRl
ZiBOUw0KLXNob3J0IG5zX251bGxoW10gPSB7MCwwLDB9Ow0KLXNob3J0IG5z
X2JoW10gPSB7LTEsLTEsLTF9Ow0KK3N0YXRpYyBzaG9ydCBuc19udWxsaFtd
ID0gezAsMCwwfTsNCiANCiBjaGFyICoNCiBuc19wcmludChzdHJ1Y3Qgc29j
a2FkZHJfbnMgKnNucykNCkBAIC0xMTY2LDcgKzExNjQsNyBAQA0KIAl1bmlv
biB7IHVuaW9uIG5zX25ldCBuZXRfZTsgdV9sb25nIGxvbmdfZTsgfSBuZXQ7
DQogCXVfc2hvcnQgcG9ydDsNCiAJc3RhdGljIGNoYXIgbXlidWZbNTArTUFY
SE9TVE5BTUVMRU5dLCBjcG9ydFsxMF0sIGNob3N0WzI1XTsNCi0JY2hhciAq
aG9zdCA9ICIiOw0KKwljb25zdCBjaGFyICpob3N0ID0gIiI7DQogCWNoYXIg
KnA7DQogCXVfY2hhciAqcTsNCiANCkBAIC0xMTc2LDggKzExNzQsOSBAQA0K
IAluZXQubmV0X2UgID0gd29yay54X25ldDsNCiAJaWYgKG5zX251bGxob3N0
KHdvcmspICYmIG5ldC5sb25nX2UgPT0gMCkgew0KIAkJaWYgKCFwb3J0KQ0K
LQkJCXJldHVybigiKi4qIik7DQotCQlzcHJpbnRmKG15YnVmLCAiKi4lWEgi
LCBwb3J0KTsNCisJCQlzdHJuY3B5KG15YnVmLCAiKi4qIiwgc2l6ZW9mKG15
YnVmKSk7DQorCQllbHNlDQorCQkJc3ByaW50ZihteWJ1ZiwgIiouJVhIIiwg
cG9ydCk7DQogCQlyZXR1cm4obXlidWYpOw0KIAl9DQogDQpAQCAtMTIwNSw3
ICsxMjA0LDcgQEANCiB9DQogI2VuZGlmDQogDQotdm9pZA0KK3N0YXRpYyB2
b2lkDQogaW50ZXJmYWNlcyh2b2lkKQ0KIHsNCiAJc2l6ZV90IG5lZWRlZDsN
CkBAIC0xMjMyLDcgKzEyMzEsNyBAQA0KIAl9DQogfQ0KIA0KLXZvaWQNCitz
dGF0aWMgdm9pZA0KIG1vbml0b3Iodm9pZCkNCiB7DQogCWludCBuOw0KQEAg
LTEyNTcsNyArMTI1Niw3IEBADQogCWNoYXIJbV9zcGFjZVs1MTJdOw0KIH0g
bV9ydG1zZzsNCiANCi1pbnQNCitzdGF0aWMgaW50DQogcnRtc2coaW50IGNt
ZCwgaW50IGZsYWdzKQ0KIHsNCiAJc3RhdGljIGludCBzZXE7DQpAQCAtMTMy
NSw3ICsxMzI0LDcgQEANCiAJcmV0dXJuKDApOw0KIH0NCiANCi12b2lkDQor
c3RhdGljIHZvaWQNCiBtYXNrX2FkZHIodm9pZCkNCiB7DQogCWludCBvbGVu
ID0gc29fbWFzay5zYS5zYV9sZW47DQpAQCAtMTM1OSw3ICsxMzU4LDcgQEAN
CiAJCSotLWNwMSAmPSAqLS1jcDI7DQogfQ0KIA0KLWNoYXIgKm1zZ3R5cGVz
W10gPSB7DQorY29uc3QgY2hhciAqbXNndHlwZXNbXSA9IHsNCiAJIiIsDQog
CSJSVE1fQUREOiBBZGQgUm91dGUiLA0KIAkiUlRNX0RFTEVURTogRGVsZXRl
IFJvdXRlIiwNCkBAIC0xMzk2LDggKzEzOTUsOCBAQA0KIGNoYXIgYWRkcm5h
bWVzW10gPQ0KICJcMURTVFwyR0FURVdBWVwzTkVUTUFTS1w0R0VOTUFTS1w1
SUZQXDZJRkFcN0FVVEhPUlwwMTBCUkQiOw0KIA0KLXZvaWQNCi1wcmludF9y
dG1zZyhzdHJ1Y3QgcnRfbXNnaGRyICpydG0sIGludCBtc2dsZW4pDQorc3Rh
dGljIHZvaWQNCitwcmludF9ydG1zZyhzdHJ1Y3QgcnRfbXNnaGRyICpydG0s
IGludCBtc2dsZW4gX191bnVzZWQpDQogew0KIAlzdHJ1Y3QgaWZfbXNnaGRy
ICppZm07DQogCXN0cnVjdCBpZmFfbXNnaGRyICppZmFtOw0KQEAgLTE0NjQs
NyArMTQ2Myw3IEBADQogCX0NCiB9DQogDQotdm9pZA0KK3N0YXRpYyB2b2lk
DQogcHJpbnRfZ2V0bXNnKHN0cnVjdCBydF9tc2doZHIgKnJ0bSwgaW50IG1z
Z2xlbikNCiB7DQogCXN0cnVjdCBzb2NrYWRkciAqZHN0ID0gTlVMTCwgKmdh
dGUgPSBOVUxMLCAqbWFzayA9IE5VTEw7DQpAQCAtMTU1OCw3ICsxNTU3LDcg
QEANCiAjdW5kZWYJUlRBX0lHTg0KIH0NCiANCi12b2lkDQorc3RhdGljIHZv
aWQNCiBwbXNnX2NvbW1vbihzdHJ1Y3QgcnRfbXNnaGRyICpydG0pDQogew0K
IAlwcmludGYoIlxubG9ja3M6ICIpOw0KQEAgLTE1NjgsNyArMTU2Nyw3IEBA
DQogCXBtc2dfYWRkcnMoKChjaGFyICopKHJ0bSArIDEpKSwgcnRtLT5ydG1f
YWRkcnMpOw0KIH0NCiANCi12b2lkDQorc3RhdGljIHZvaWQNCiBwbXNnX2Fk
ZHJzKGNoYXIgKmNwLCBpbnQgYWRkcnMpDQogew0KIAlzdHJ1Y3Qgc29ja2Fk
ZHIgKnNhOw0KQEAgLTE1OTEsMTUgKzE1OTAsMTUgQEANCiAJZmZsdXNoKHN0
ZG91dCk7DQogfQ0KIA0KLXZvaWQNCi1icHJpbnRmKEZJTEUgKmZwLCBpbnQg
YiwgdV9jaGFyICpzKQ0KK3N0YXRpYyB2b2lkDQorYnByaW50ZihGSUxFICpm
cCwgaW50IGIsIHVfY2hhciAqc3RyKQ0KIHsNCiAJaW50IGk7DQogCWludCBn
b3Rzb21lID0gMDsNCiANCiAJaWYgKGIgPT0gMCkNCiAJCXJldHVybjsNCi0J
d2hpbGUgKChpID0gKnMrKykgIT0gMCkgew0KKwl3aGlsZSAoKGkgPSAqc3Ry
KyspICE9IDApIHsNCiAJCWlmIChiICYgKDEgPDwgKGktMSkpKSB7DQogCQkJ
aWYgKGdvdHNvbWUgPT0gMCkNCiAJCQkJaSA9ICc8JzsNCkBAIC0xNjA3LDEx
ICsxNjA2LDExIEBADQogCQkJCWkgPSAnLCc7DQogCQkJcHV0YyhpLCBmcCk7
DQogCQkJZ290c29tZSA9IDE7DQotCQkJZm9yICg7IChpID0gKnMpID4gMzI7
IHMrKykNCisJCQlmb3IgKDsgKGkgPSAqc3RyKSA+IDMyOyBzdHIrKykNCiAJ
CQkJcHV0YyhpLCBmcCk7DQogCQl9IGVsc2UNCi0JCQl3aGlsZSAoKnMgPiAz
MikNCi0JCQkJcysrOw0KKwkJCXdoaWxlICgqc3RyID4gMzIpDQorCQkJCXN0
cisrOw0KIAl9DQogCWlmIChnb3Rzb21lKQ0KIAkJcHV0YygnPicsIGZwKTsN
CkBAIC0xNjI3LDggKzE2MjYsOCBAQA0KIAlyZXR1cm4oa3QtPmt0X2kpOw0K
IH0NCiANCi12b2lkDQotc29kdW1wKHN1cCBzdSwgY2hhciAqd2hpY2gpDQor
c3RhdGljIHZvaWQNCitzb2R1bXAoc3VwIHN1LCBjb25zdCBjaGFyICp3aGlj
aCkNCiB7DQogCXN3aXRjaCAoc3UtPnNhLnNhX2ZhbWlseSkgew0KIAljYXNl
IEFGX0xJTks6DQpAQCAtMTY2Miw3ICsxNjYxLDcgQEANCiAjZGVmaW5lCUVO
RAkoNCoxKQ0KICNkZWZpbmUgREVMSU0JKDQqMikNCiANCi12b2lkDQorc3Rh
dGljIHZvaWQNCiBzb2NrYWRkcihjaGFyICphZGRyLCBzdHJ1Y3Qgc29ja2Fk
ZHIgKnNhKQ0KIHsNCiAJY2hhciAqY3AgPSAoY2hhciAqKXNhOw0KQEAgLTE3
MDQsNyArMTcwMyw3IEBADQogCXNhLT5zYV9sZW4gPSBjcCAtIChjaGFyICop
c2E7DQogfQ0KIA0KLWludA0KK3N0YXRpYyBpbnQNCiBhdGFsa19hdG9uKGNv
bnN0IGNoYXIgKnRleHQsIHN0cnVjdCBhdF9hZGRyICphZGRyKQ0KIHsNCiAJ
dV9pbnQgbmV0LCBub2RlOw0KQEAgLTE3MTcsNyArMTcxNiw3IEBADQogCXJl
dHVybigxKTsNCiB9DQogDQotY2hhciAqDQorc3RhdGljIGNoYXIgKg0KIGF0
YWxrX250b2Eoc3RydWN0IGF0X2FkZHIgYXQpDQogew0KIAlzdGF0aWMgY2hh
ciBidWZbMjBdOw0K
--=_jive-19245-1110283532-0001-2
Content-Type: text/plain; charset=us-ascii; name="patch.show.c"
Content-Transfer-Encoding: base64
Content-ID: <20050308201142.E1319@localhost>
Content-Description:
Content-Disposition: attachment; filename="patch.show.c"
MSkgYWRkIG1pc3Npbmcgc3RhdGljIHZhcmlhYmxlIGluaXRpYWxpemVyDQoy
KSBTdHlsZSg5KSBjbGVhbiB1cA0KMykgYWRkIGBjb25zdCcgdG8gYXZvaWQg
LVdjYXN0LXF1YWwgd2FybmluZw0KNCkgY2hhbmdlIHNvbWUgbG9jYWwgdmFy
aWFibGUgbmFtZSB0byBhdm9pZCBzaGFkb3dpbmcgdGhlIGdsb2JhbCB2YXJp
YWJsZS4NCjUpIGNoYW5nZSBzb21lIGNvbnN0IHN0cmluZyBhc3NpZ24gdG8g
bm9uLWNvbnN0IHZhcmlhYmxlIHRvIGRlZXAgY29weSwgYW5kIGNvbW1lbnQg
dGhlbQ0KNikgYXZvaWQgc2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJhdGlv
biBieSBjYXN0IHNpZ25lZCB2YWx1ZSB0byB1bnNpZ25lZCB2YWx1ZSwgYW5k
IGFkZCBjb21tZW50IHRoaXMgY2FzdA0KDQpJbmRleDogc2hvdy5jDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL29wdC9kZl9jdnMvc3Jj
L3NiaW4vcm91dGUvc2hvdy5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4z
DQpkaWZmIC11IC1yMS4zIHNob3cuYw0KLS0tIHNob3cuYwkyMyBNYXIgMjAw
NCAxODoyNTo1MSAtMDAwMAkxLjMNCisrKyBzaG93LmMJOCBNYXIgMjAwNSAx
MTozNzowOCAtMDAwMA0KQEAgLTg0LDE4ICs4NCwxNCBAQA0KIAl7IFJURl9Q
Uk9UTzEsCScxJyB9LA0KIAl7IFJURl9QUk9UTzIsCScyJyB9LA0KIAl7IFJU
Rl9QUk9UTzMsCSczJyB9LA0KLQl7IDAgfQ0KKwl7IDAsIDAgfQ0KIH07DQog
DQotc3RhdGljIHZvaWQgcF9ydGVudHJ5KHN0cnVjdCBydF9tc2doZHIgKik7
DQotc3RhdGljIGludCBwX3NvY2thZGRyKHN0cnVjdCBzb2NrYWRkciAqLCBp
bnQsIGludCk7DQotc3RhdGljIHZvaWQgcF9mbGFncyhpbnQsIGNoYXIgKik7
DQotc3RhdGljIHZvaWQgcHJfcnRoZHIodm9pZCk7DQotc3RhdGljIHZvaWQg
cHJfZmFtaWx5KGludCk7DQotDQotaW50CWtleXdvcmQoY2hhciAqKTsNCi12
b2lkCXVzYWdlKGNoYXIgKik7DQotdm9pZAlzaG93KGludCBhcmdjLCBjaGFy
ICphcmd2W10pOw0KK3N0YXRpYyB2b2lkCXBfcnRlbnRyeShzdHJ1Y3QgcnRf
bXNnaGRyICopOw0KK3N0YXRpYyBpbnQJcF9zb2NrYWRkcihzdHJ1Y3Qgc29j
a2FkZHIgKiwgaW50LCBpbnQpOw0KK3N0YXRpYyB2b2lkCXBfZmxhZ3MoaW50
LCBjb25zdCBjaGFyICopOw0KK3N0YXRpYyB2b2lkCXByX3J0aGRyKHZvaWQp
Ow0KK3N0YXRpYyB2b2lkCXByX2ZhbWlseShpbnQpOw0KIA0KIC8qDQogICog
UHJpbnQgcm91dGluZyB0YWJsZXMuDQpAQCAtMjQ3LDcgKzI0Myw3IEBADQog
c3RhdGljIHZvaWQNCiBwcl9mYW1pbHkoaW50IGFmKQ0KIHsNCi0JY2hhciAq
YWZuYW1lOw0KKwljb25zdCBjaGFyICphZm5hbWU7DQogDQogCXN3aXRjaCAo
YWYpIHsNCiAJY2FzZSBBRl9JTkVUOg0KQEAgLTI4Niw4ICsyODIsOSBAQA0K
IHN0YXRpYyBpbnQNCiBwX3NvY2thZGRyKHN0cnVjdCBzb2NrYWRkciAqc2Es
IGludCBmbGFncywgaW50IHdpZHRoKQ0KIHsNCi0JY2hhciB3b3JrYnVmWzEy
OF0sICpjcGxpbTsNCisJY2hhciB3b3JrYnVmWzEyOF07DQogCWNoYXIgKmNw
ID0gd29ya2J1ZjsNCisJY29uc3QgY2hhciAqY3BsaW07DQogCWludCBsZW4g
PSBzaXplb2Yod29ya2J1Zik7DQogCWludCBjb3VudDsNCiANCkBAIC0zMzEs
MTEgKzMyOCwxMiBAQA0KIA0KIAljYXNlIEFGX0lORVQ6DQogCSAgICB7DQot
CQlzdHJ1Y3Qgc29ja2FkZHJfaW4gKnNpbiA9IChzdHJ1Y3Qgc29ja2FkZHJf
aW4gKilzYTsNCisJCXN0cnVjdCBzb2NrYWRkcl9pbiAqaW4gPSAoc3RydWN0
IHNvY2thZGRyX2luICopc2E7DQogDQotCQlpZiAoc2luLT5zaW5fYWRkci5z
X2FkZHIgPT0gMCkNCi0JCQljcCA9ICJkZWZhdWx0IjsNCi0JCWVsc2UNCisJ
CWlmIChpbi0+c2luX2FkZHIuc19hZGRyID09IDApIHsNCisJCQkvKiBjcCBw
b2ludHMgdG8gd29ya2J1ZiAqLw0KKwkJCXN0cm5jcHkoY3AsICJkZWZhdWx0
IiwgbGVuKTsNCisJCX0gZWxzZQ0KIAkJCWNwID0gKGZsYWdzICYgUlRGX0hP
U1QpID8gcm91dGVuYW1lKHNhKSA6IG5ldG5hbWUoc2EpOw0KIAkJYnJlYWs7
DQogCSAgICB9DQpAQCAtMzQzLDEyICszNDEsMjIgQEANCiAjaWZkZWYgSU5F
VDYNCiAJY2FzZSBBRl9JTkVUNjoNCiAJICAgIHsNCi0JCXN0cnVjdCBzb2Nr
YWRkcl9pbjYgKnNpbiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopc2E7DQor
CQlzdHJ1Y3Qgc29ja2FkZHJfaW42ICppbjYgPSAoc3RydWN0IHNvY2thZGRy
X2luNiAqKXNhOw0KIA0KLQkJY3AgPSBJTjZfSVNfQUREUl9VTlNQRUNJRklF
RCgmc2luLT5zaW42X2FkZHIpID8gImRlZmF1bHQiIDoNCi0JCQkoKGZsYWdz
ICYgUlRGX0hPU1QpID8gIHJvdXRlbmFtZShzYSkgOgluZXRuYW1lKHNhKSk7
DQotCQkvKiBtYWtlIHN1cmUgbnVtZXJpYyBhZGRyZXNzIGlzIG5vdCB0cnVu
Y2F0ZWQgKi8NCi0JCWlmIChzdHJjaHIoY3AsICc6JykgIT0gTlVMTCAmJiBz
dHJsZW4oY3ApID4gd2lkdGgpDQorCQlpZiAoSU42X0lTX0FERFJfVU5TUEVD
SUZJRUQoJmluNi0+c2luNl9hZGRyKSkgew0KKwkJCS8qIGNwIHBvaW50cyB0
byB3b3JrYnVmICovDQorCQkJc3RybmNweShjcCwgImRlZmF1bHQiLCBsZW4p
Ow0KKwkJfSBlbHNlIHsNCisJCQljcCA9ICgoZmxhZ3MgJiBSVEZfSE9TVCkg
PyByb3V0ZW5hbWUoc2EpDQorCQkJCQkJIDogbmV0bmFtZShzYSkpOw0KKwkJ
fQ0KKwkJLyoNCisJCSAqIElmIHdpZHRoIDwgMCwgaXQgaXMgY2VydGFpbiB0
aGF0IG5vIHRydW5jYXRpb24gd2lsbCBoZXBwZW4uDQorCQkgKiBJZiB3aWR0
aCA+PSAwLCB3ZSBoYXZlIHRvIG1ha2Ugc3VyZSBudW1lcmljIGFkZHJlc3Mg
aXMgbm90DQorCQkgKiB0cnVuY2F0ZWQsIGFsc28gaW4gdGhpcyBjYXNlIHR5
cGUgY2FzdCBpcyBzYWZlLg0KKwkJICovDQorCQlpZiAoc3RyY2hyKGNwLCAn
OicpICE9IE5VTEwgJiYNCisJCSAgICB3aWR0aCA+PSAwICYmIHN0cmxlbihj
cCkgPiAoc2l6ZV90KXdpZHRoKQ0KIAkJCXdpZHRoID0gc3RybGVuKGNwKTsN
CiAJCWJyZWFrOw0KIAkgICAgfQ0KQEAgLTQwMCw3ICs0MDgsNyBAQA0KIH0N
CiANCiBzdGF0aWMgdm9pZA0KLXBfZmxhZ3MoaW50IGYsIGNoYXIgKmZvcm1h
dCkNCitwX2ZsYWdzKGludCBmLCBjb25zdCBjaGFyICpmb3JtYXQpDQogew0K
IAljaGFyIG5hbWVbMzNdLCAqZmxhZ3M7DQogCWNvbnN0IHN0cnVjdCBiaXRz
ICpwID0gYml0czsNCg==
--=_jive-19245-1110283532-0001-2
Content-Type: text/plain; charset=us-ascii; name="patch.extern.h"
Content-Transfer-Encoding: base64
Content-ID: <20050308201142.K1319@localhost>
Content-Description:
Content-Disposition: attachment; filename="patch.extern.h"
MSkgU3R5bGUoOSkgY2xlYW4gdXANCjIpIHJlbW92ZSB1bnVzZWQgc3RydWN0
IHNvY2thZGRyX3gyNQ0KMykgY29uZGl0aW9uYWxseShOUykgZXhwb3NlIG5z
X3ByaW50DQoNCkluZGV4OiBleHRlcm4uaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KUkNTIGZpbGU6IC9vcHQvZGZfY3ZzL3NyYy9zYmluL3JvdXRlL2V4
dGVybi5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4yDQpkaWZmIC11IC1y
MS4yIGV4dGVybi5oDQotLS0gZXh0ZXJuLmgJMjMgTWFyIDIwMDQgMTg6MjU6
NTEgLTAwMDAJMS4yDQorKysgZXh0ZXJuLmgJOCBNYXIgMjAwNSAxMTozNDox
NCAtMDAwMA0KQEAgLTMzLDE0ICszMywxOCBAQA0KICAqLw0KIA0KIHN0cnVj
dCBzb2NrYWRkcjsNCi1zdHJ1Y3Qgc29ja2FkZHJfeDI1Ow0KIHN0cnVjdCBz
b2NrYWRkcl9uczsNCiANCiAvKiBzaG93LmMgKi8NCi12b2lkIHNob3coaW50
LCBjaGFyICoqKTsNCit2b2lkCSBzaG93KGludCwgY2hhciAqKik7DQogDQog
Lyogcm91dGUuYyAqLw0KLWV4dGVybiBpbnQgbmZsYWcsIHdmbGFnOw0KLWNo
YXIgKnJvdXRlbmFtZShzdHJ1Y3Qgc29ja2FkZHIgKik7DQotY2hhciAqbmV0
bmFtZShzdHJ1Y3Qgc29ja2FkZHIgKik7DQotY2hhciAqbnNfcHJpbnQoc3Ry
dWN0IHNvY2thZGRyX25zICopOw0KK2V4dGVybiBpbnQJbmZsYWcsIHdmbGFn
Ow0KKw0KK2NoYXIJKnJvdXRlbmFtZShzdHJ1Y3Qgc29ja2FkZHIgKik7DQor
Y2hhcgkqbmV0bmFtZShzdHJ1Y3Qgc29ja2FkZHIgKik7DQoraW50CSBrZXl3
b3JkKGNoYXIgKik7DQordm9pZAkgdXNhZ2UoY29uc3QgY2hhciAqKSBfX2Rl
YWQyOw0KKyNpZmRlZiBOUw0KK2NoYXIJKm5zX3ByaW50KHN0cnVjdCBzb2Nr
YWRkcl9ucyAqKTsNCisjZW5kaWYNCg==
--=_jive-19245-1110283532-0001-2
Content-Type: text/plain; charset=us-ascii; name="patch.Makefile"
Content-Transfer-Encoding: base64
Content-ID: <20050308201142.W1319@localhost>
Content-Description:
Content-Disposition: attachment; filename="patch.Makefile"
MSkgYWRkIFdBUk5TPz02IGFuZCBXQVJOU19XRVJST1I9eWVzDQoyKSByZW1v
dmUgLVdhbGwgZnJvbSBDRkxBR1MNCjMpIGNoYW5nZSBgY2hhciAqJyB0byBt
b3JlIHByb3BlciBgY29uc3QgY2hhciAqJyBkdXJpbmcga2V5d29yZC5oIGdl
bmVyYXRpb24NCg0KSW5kZXg6IE1ha2VmaWxlDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQpSQ1MgZmlsZTogL29wdC9kZl9jdnMvc3JjL3NiaW4vcm91dGUv
TWFrZWZpbGUsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjQNCmRpZmYgLXUg
LXIxLjQgTWFrZWZpbGUNCi0tLSBNYWtlZmlsZQkyNCBNYXIgMjAwNCAwNzow
NDoyOCAtMDAwMAkxLjQNCisrKyBNYWtlZmlsZQk4IE1hciAyMDA1IDExOjIy
OjA0IC0wMDAwDQpAQCAtMiwxNSArMiwxNyBAQA0KICMgJEZyZWVCU0Q6IHNy
Yy9zYmluL3JvdXRlL01ha2VmaWxlLHYgMS4xMS4yLjMgMjAwMi8xMi8wNCAx
NDowNTo0MiBydSBFeHAgJA0KICMgJERyYWdvbkZseTogc3JjL3NiaW4vcm91
dGUvTWFrZWZpbGUsdiAxLjQgMjAwNC8wMy8yNCAwNzowNDoyOCBkaWxsb24g
RXhwICQNCiANCitXQVJOUz89Ng0KK1dBUk5TX1dFUlJPUj15ZXMNCiBQUk9H
PQlyb3V0ZQ0KIE1BTj0Jcm91dGUuOA0KIFNSQ1M9CXJvdXRlLmMgc2hvdy5j
IGtleXdvcmRzLmgga2V5d29yZHMuYw0KLUNGTEFHUys9LUkuIC1XYWxsIC1E
TlMNCitDRkxBR1MrPS1JLiAtRE5TDQogQ0ZMQUdTKz0tRElORVQ2DQogQ0xF
QU5GSUxFUys9a2V5d29yZHMuaCBrZXl3b3Jkcy5jIF9rZXl3b3Jkcy50bXAN
CiANCiBrZXl3b3Jkcy5oOg0KLQllY2hvIC1lICJleHRlcm4gc3RydWN0IGtl
eXRhYiB7XG5cdGNoYXJcdCprdF9jcDtcblx0aW50XHQga3RfaTtcbn0ga2V5
d29yZHNbXTtcblxuIiA+ICR7LlRBUkdFVH0NCisJZWNobyAtZSAiZXh0ZXJu
IHN0cnVjdCBrZXl0YWIge1xuXHRjb25zdCBjaGFyXHQqa3RfY3A7XG5cdGlu
dFx0XHQga3RfaTtcbn0ga2V5d29yZHNbXTtcblxuIiA+ICR7LlRBUkdFVH0N
CiAJc2VkIC1lICcvXiMvZCcgLWUgJy9eJCQvZCcgJHsuQ1VSRElSfS9rZXl3
b3JkcyA+IF9rZXl3b3Jkcy50bXANCiAJdHIgYS16IEEtWiA8IF9rZXl3b3Jk
cy50bXAgfCBwYXN0ZSBfa2V5d29yZHMudG1wIC0gfCBcDQogCSAgICBhd2sg
J3sgXA0K
--=_jive-19245-1110283532-0001-2--
討論串 (同標題文章)
完整討論串 (本文為第 3 之 4 篇):