Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jan 2005 23:50:59 +0800
From:      Xin LI <delphij@frontfree.net>
To:        freebsd-hackers@FreeBSD.org
Subject:   RFC: WARNS=6 patch for libexec/rpc.rstatd
Message-ID:  <1106236259.1019.15.camel@spirit>

next in thread | raw e-mail | index | archive | help

--=-9IFxBf6ZWclETM4gUS1A
Content-Type: multipart/mixed; boundary="=-euKsYllbFcnXwOfBcCcV"


--=-euKsYllbFcnXwOfBcCcV
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hello, everyone,

I have a preliminary patch against rpc.rstatd to get it WARNS=3D6 clean on
both i386 and all Tier-1 64-bit platforms.  Since I'm not quite familiar
with the rpc* code I would like to solicit a review on the patch, see
attachment.

Changes include:
	- Avoid 64-bit platform complains due to timeval width
	  changes, by introducing an temporary newcurtime when
	  obtaining the current time, since rstat_timeval uses
	  u_int while timeval uses long.  (value could be truncated
	  but that's better than overwriting unwanted area)
	- Use xdrproc_t instead of the more complicated definations
	  (and which doesn't provided enough information for compiler
	  to generate correct code if optimization level is turned
	  too high)
	- Initialize variables that can potentially be used without
	  initialization.
	- Explicitly cast when necessary
	- Use NULL in favor of 0 when representing a NULL pointer
	- Don't use constant strings for initialization of char *
	- Add a missing prototype for rstat_service
	- Prefer complete prototype over incomplete ones.
	- Use static where applicable.
	- Apply __unused on unused parameters
	- Avoid shadowed names
	- Bump WARNS?=3D from default to 6

Thanks in advance!

Cheers,
--=20
Xin LI <delphij delphij net>  http://www.delphij.net/

--=-euKsYllbFcnXwOfBcCcV
Content-Disposition: attachment; filename=patch-rpc.rstatd
Content-Type: text/x-patch; name=patch-rpc.rstatd; charset=ISO-8859-1
Content-Transfer-Encoding: base64

SW5kZXg6IE1ha2VmaWxlDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvbGli
ZXhlYy9ycGMucnN0YXRkL01ha2VmaWxlLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS44DQpkaWZm
IC11IC1yMS44IE1ha2VmaWxlDQotLS0gTWFrZWZpbGUJNCBGZWIgMjAwNCAxMDoyMDo0MyAtMDAw
MAkxLjgNCisrKyBNYWtlZmlsZQkyMCBKYW4gMjAwNSAxNDo0NDo0NiAtMDAwMA0KQEAgLTQsNiAr
NCw4IEBADQogU1JDUyA9CXJzdGF0ZC5jIHJzdGF0X3Byb2MuYw0KIE1BTiA9CXJwYy5yc3RhdGQu
OA0KIA0KK1dBUk5TPz0JNg0KKw0KIERQQUREPQkke0xJQlJQQ1NWQ30gJHtMSUJVVElMfSAke0xJ
QkRFVlNUQVR9ICR7TElCS1ZNfQ0KIExEQUREPQktbHJwY3N2YyAtbHV0aWwgLWxkZXZzdGF0IC1s
a3ZtDQogDQpJbmRleDogcnN0YXRfcHJvYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUv
bmN2cy9zcmMvbGliZXhlYy9ycGMucnN0YXRkL3JzdGF0X3Byb2MuYyx2DQpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMjUNCmRpZmYgLXUgLXIxLjI1IHJzdGF0X3Byb2MuYw0KLS0tIHJzdGF0X3Byb2Mu
YwkyIEp1biAyMDAzIDAyOjM0OjM2IC0wMDAwCTEuMjUNCisrKyByc3RhdF9wcm9jLmMJMjAgSmFu
IDIwMDUgMTU6Mzg6NTYgLTAwMDANCkBAIC03NiwxOCArNzYsMjIgQEANCiAjdW5kZWYgaWZfY29s
bGlzaW9ucw0KICNpbmNsdWRlIDxycGNzdmMvcnN0YXQuaD4NCiANCitzdGF0aWMgY2hhciBzdHJj
cHRpbWVbXSA9ICJfY3BfdGltZSI7DQorc3RhdGljIGNoYXIgc3RyY250W10gPSAiX2NudCI7IA0K
Kw0KIHN0cnVjdCBubGlzdCBubFtdID0gew0KICNkZWZpbmUJWF9DUFRJTUUJMA0KLQl7ICJfY3Bf
dGltZSIgfSwNCisJeyBzdHJjcHRpbWUsIDAsIDAsIDAsIDAgfSwNCiAjZGVmaW5lCVhfQ05UCQkx
DQotCXsgIl9jbnQiIH0sDQotCXsgIiIgfSwNCisJeyBzdHJjbnQsIDAsIDAsIDAsIDAgfSwNCisJ
eyBOVUxMLCAwLCAwLCAwLCAwIH0sDQogfTsNCiANCiBpbnQgaGF2ZWFkaXNrKHZvaWQpOw0KIHZv
aWQgdXBkYXRleGZlcnMoaW50LCBpbnQgKik7DQogdm9pZCBzZXR1cCh2b2lkKTsNCiBpbnQgc3Rh
dHNfc2VydmljZSh2b2lkKTsNCit2b2lkIHJzdGF0X3NlcnZpY2Uoc3RydWN0IHN2Y19yZXEgKiwg
U1ZDWFBSVCAqKTsNCiANCiBleHRlcm4gaW50IGZyb21faW5ldGQ7DQogaW50IHNpbmNlbGFzdHJl
cSA9IDA7CQkvKiBudW1iZXIgb2YgYWxhcm1zIHNpbmNlIGxhc3QgcmVxdWVzdCAqLw0KQEAgLTk5
LDcgKzEwMyw3IEBADQogICAgIHN0cnVjdCBzdGF0c3RpbWUgczM7DQogfSBzdGF0c19hbGw7DQog
DQotdm9pZCB1cGRhdGVzdGF0KCk7DQordm9pZCB1cGRhdGVzdGF0KGludCk7DQogc3RhdGljIGlu
dCBzdGF0X2lzX2luaXQgPSAwOw0KIHN0YXRpYyBrdm1fdCAqa2Q7DQogDQpAQCAtMTEyLDE5ICsx
MTYsMTkgQEANCiAjZGVmaW5lIEZTQ0FMRSAoMSA8PCA4KQ0KICNlbmRpZg0KIA0KLXZvaWQNCitz
dGF0aWMgdm9pZA0KIHN0YXRfaW5pdCh2b2lkKQ0KIHsNCiAgICAgc3RhdF9pc19pbml0ID0gMTsN
CiAgICAgc2V0dXAoKTsNCiAgICAgYWxhcm0oMCk7DQotICAgIHVwZGF0ZXN0YXQoKTsNCi0gICAg
KHZvaWQpIHNpZ25hbChTSUdBTFJNLCB1cGRhdGVzdGF0KTsNCisgICAgdXBkYXRlc3RhdCgwKTsN
CisgICAgc2lnbmFsKFNJR0FMUk0sIHVwZGF0ZXN0YXQpOw0KICAgICBhbGFybSgxKTsNCiB9DQog
DQogc3RhdHN0aW1lICoNCi1yc3RhdHByb2Nfc3RhdHNfM19zdmModm9pZCAqYXJncCwgc3RydWN0
IHN2Y19yZXEgKnJxc3RwKQ0KK3JzdGF0cHJvY19zdGF0c18zX3N2YyhfX3VudXNlZCB2b2lkICph
cmdwLCBfX3VudXNlZCBzdHJ1Y3Qgc3ZjX3JlcSAqcnFzdHApDQogew0KICAgICBpZiAoISBzdGF0
X2lzX2luaXQpDQogICAgICAgICBzdGF0X2luaXQoKTsNCkBAIC0xMzMsNyArMTM3LDcgQEANCiB9
DQogDQogc3RhdHNzd3RjaCAqDQotcnN0YXRwcm9jX3N0YXRzXzJfc3ZjKHZvaWQgKmFyZ3AsIHN0
cnVjdCBzdmNfcmVxICpycXN0cCkNCityc3RhdHByb2Nfc3RhdHNfMl9zdmMoX191bnVzZWQgdm9p
ZCAqYXJncCwgX191bnVzZWQgc3RydWN0IHN2Y19yZXEgKnJxc3RwKQ0KIHsNCiAgICAgaWYgKCEg
c3RhdF9pc19pbml0KQ0KICAgICAgICAgc3RhdF9pbml0KCk7DQpAQCAtMTQyLDcgKzE0Niw3IEBA
DQogfQ0KIA0KIHN0YXRzICoNCi1yc3RhdHByb2Nfc3RhdHNfMV9zdmModm9pZCAqYXJncCwgc3Ry
dWN0IHN2Y19yZXEgKnJxc3RwKQ0KK3JzdGF0cHJvY19zdGF0c18xX3N2YyhfX3VudXNlZCB2b2lk
ICphcmdwLCBfX3VudXNlZCBzdHJ1Y3Qgc3ZjX3JlcSAqcnFzdHApDQogew0KICAgICBpZiAoISBz
dGF0X2lzX2luaXQpDQogICAgICAgICBzdGF0X2luaXQoKTsNCkBAIC0xNTEsNyArMTU1LDcgQEAN
CiB9DQogDQogdV9pbnQgKg0KLXJzdGF0cHJvY19oYXZlZGlza18zX3N2Yyh2b2lkICphcmdwLCBz
dHJ1Y3Qgc3ZjX3JlcSAqcnFzdHApDQorcnN0YXRwcm9jX2hhdmVkaXNrXzNfc3ZjKF9fdW51c2Vk
IHZvaWQgKmFyZ3AsIF9fdW51c2VkIHN0cnVjdCBzdmNfcmVxICpycXN0cCkNCiB7DQogICAgIHN0
YXRpYyB1X2ludCBoYXZlOw0KIA0KQEAgLTE3NSwxMiArMTc5LDEzIEBADQogfQ0KIA0KIHZvaWQN
Ci11cGRhdGVzdGF0KHZvaWQpDQordXBkYXRlc3RhdChfX3VudXNlZCBpbnQgZHVtbXkpDQogew0K
IAlpbnQgaSwgaHo7DQogCXN0cnVjdCBjbG9ja2luZm8gY2xvY2tyYXRlOw0KIAlzdHJ1Y3Qgdm1t
ZXRlciBjbnQ7DQogCXN0cnVjdCBpZm1pYmRhdGEgaWZtZDsNCisJc3RydWN0IHRpbWV2YWwgbmV3
Y3VydGltZTsJLyogWFhYIDY0LWJpdCAqLw0KIAlkb3VibGUgYXZydW5bM107DQogCXN0cnVjdCB0
aW1ldmFsIHRtLCBidG07DQogCWludCBtaWJbNl07DQpAQCAtMjIxLDcgKzIyNiw3IEBADQogCWZv
cihpID0gMDsgaSA8IFJTVEFUX0NQVVNUQVRFUyA7IGkrKykNCiAJCXN0YXRzX2FsbC5zMS5jcF90
aW1lW2ldID0gYnNkX2NwX3RpbWVbY3BfdGltZV94bGF0W2ldXTsNCiANCi0gICAgICAgICh2b2lk
KWdldGxvYWRhdmcoYXZydW4sIHNpemVvZihhdnJ1bikgLyBzaXplb2YoYXZydW5bMF0pKTsNCisg
ICAgICAgIGdldGxvYWRhdmcoYXZydW4sIHNpemVvZihhdnJ1bikgLyBzaXplb2YoYXZydW5bMF0p
KTsNCiANCiAJc3RhdHNfYWxsLnMyLmF2ZW5ydW5bMF0gPSBhdnJ1blswXSAqIEZTQ0FMRTsNCiAJ
c3RhdHNfYWxsLnMyLmF2ZW5ydW5bMV0gPSBhdnJ1blsxXSAqIEZTQ0FMRTsNCkBAIC0yNTQsNyAr
MjU5LDcgQEANCiAJc3RhdHNfYWxsLnMxLnZfcHN3cGluID0gY250LnZfc3dhcHBnc2luOw0KIAlz
dGF0c19hbGwuczEudl9wc3dwb3V0ID0gY250LnZfc3dhcHBnc291dDsNCiAJc3RhdHNfYWxsLnMx
LnZfaW50ciA9IGNudC52X2ludHI7DQotCWdldHRpbWVvZmRheSgmdG0sIChzdHJ1Y3QgdGltZXpv
bmUgKikgMCk7DQorCWdldHRpbWVvZmRheSgmdG0sIChzdHJ1Y3QgdGltZXpvbmUgKikgTlVMTCk7
DQogCXN0YXRzX2FsbC5zMS52X2ludHIgLT0gaHoqKHRtLnR2X3NlYyAtIGJ0bS50dl9zZWMpICsN
CiAJICAgIGh6Kih0bS50dl91c2VjIC0gYnRtLnR2X3VzZWMpLzEwMDAwMDA7DQogCXN0YXRzX2Fs
bC5zMi52X3N3dGNoID0gY250LnZfc3d0Y2g7DQpAQCAtMjk4LDggKzMwMyw5IEBADQogCQlzdGF0
c19hbGwuczEuaWZfb2Vycm9ycyArPSBpZm1kLmlmbWRfZGF0YS5pZmlfb2Vycm9yczsNCiAJCXN0
YXRzX2FsbC5zMS5pZl9jb2xsaXNpb25zICs9IGlmbWQuaWZtZF9kYXRhLmlmaV9jb2xsaXNpb25z
Ow0KIAl9DQotCWdldHRpbWVvZmRheSgoc3RydWN0IHRpbWV2YWwgKikmc3RhdHNfYWxsLnMzLmN1
cnRpbWUsDQotCQkoc3RydWN0IHRpbWV6b25lICopIDApOw0KKwlnZXR0aW1lb2ZkYXkoJm5ld2N1
cnRpbWUsIChzdHJ1Y3QgdGltZXpvbmUgKikgTlVMTCk7DQorCXN0YXRzX2FsbC5zMy5jdXJ0aW1l
LnR2X3NlYyA9IG5ld2N1cnRpbWUudHZfc2VjOw0KKwlzdGF0c19hbGwuczMuY3VydGltZS50dl91
c2VjID0gbmV3Y3VydGltZS50dl91c2VjOw0KIAlhbGFybSgxKTsNCiB9DQogDQpAQCAtMzI4LDcg
KzMzNCw3IEBADQogaGF2ZWFkaXNrKHZvaWQpDQogew0KIAlyZWdpc3RlciBpbnQgaTsNCi0Jc3Ry
dWN0IHN0YXRpbmZvIHN0YXRzOw0KKwlzdHJ1Y3Qgc3RhdGluZm8gZGlza3N0YXRzOw0KIAlpbnQg
bnVtX2RldmljZXMsIHJldHZhbCA9IDA7DQogDQogCWlmICgobnVtX2RldmljZXMgPSBkZXZzdGF0
X2dldG51bWRldnMoTlVMTCkpIDwgMCkgew0KQEAgLTM0MiwyOCArMzQ4LDI4IEBADQogCQlleGl0
KDEpOw0KIAl9DQogDQotCXN0YXRzLmRpbmZvID0gKHN0cnVjdCBkZXZpbmZvICopbWFsbG9jKHNp
emVvZihzdHJ1Y3QgZGV2aW5mbykpOw0KLQliemVybyhzdGF0cy5kaW5mbywgc2l6ZW9mKHN0cnVj
dCBkZXZpbmZvKSk7DQorCWRpc2tzdGF0cy5kaW5mbyA9IG1hbGxvYyhzaXplb2YoKmRpc2tzdGF0
cy5kaW5mbykpOw0KKwliemVybyhkaXNrc3RhdHMuZGluZm8sIHNpemVvZigqZGlza3N0YXRzLmRp
bmZvKSk7DQogDQotCWlmIChkZXZzdGF0X2dldGRldnMoTlVMTCwgJnN0YXRzKSA9PSAtMSkgew0K
KwlpZiAoZGV2c3RhdF9nZXRkZXZzKE5VTEwsICZkaXNrc3RhdHMpID09IC0xKSB7DQogCQlzeXNs
b2coTE9HX0VSUiwgInJzdGF0ZDogY2FuJ3QgZ2V0IGRldmljZSBsaXN0OiAlcyIsDQogCQkgICAg
ICAgZGV2c3RhdF9lcnJidWYpOw0KIAkJZXhpdCgxKTsNCiAJfQ0KLQlmb3IgKGkgPSAwOyBpIDwg
c3RhdHMuZGluZm8tPm51bWRldnM7IGkrKykgew0KLQkJaWYgKCgoc3RhdHMuZGluZm8tPmRldmlj
ZXNbaV0uZGV2aWNlX3R5cGUNCisJZm9yIChpID0gMDsgaSA8IGRpc2tzdGF0cy5kaW5mby0+bnVt
ZGV2czsgaSsrKSB7DQorCQlpZiAoKChkaXNrc3RhdHMuZGluZm8tPmRldmljZXNbaV0uZGV2aWNl
X3R5cGUNCiAJCSAgICAgICYgREVWU1RBVF9UWVBFX01BU0spID09IERFVlNUQVRfVFlQRV9ESVJF
Q1QpDQotCQkgJiYgKChzdGF0cy5kaW5mby0+ZGV2aWNlc1tpXS5kZXZpY2VfdHlwZQ0KKwkJICYm
ICgoZGlza3N0YXRzLmRpbmZvLT5kZXZpY2VzW2ldLmRldmljZV90eXBlDQogCQkgICAgICAmIERF
VlNUQVRfVFlQRV9QQVNTKSA9PSAwKSkgew0KIAkJCXJldHZhbCA9IDE7DQogCQkJYnJlYWs7DQog
CQl9DQogCX0NCiANCi0JaWYgKHN0YXRzLmRpbmZvLT5tZW1fcHRyKQ0KLQkJZnJlZShzdGF0cy5k
aW5mby0+bWVtX3B0cik7DQorCWlmIChkaXNrc3RhdHMuZGluZm8tPm1lbV9wdHIpDQorCQlmcmVl
KGRpc2tzdGF0cy5kaW5mby0+bWVtX3B0cik7DQogDQotCWZyZWUoc3RhdHMuZGluZm8pOw0KKwlm
cmVlKGRpc2tzdGF0cy5kaW5mbyk7DQogCXJldHVybihyZXR2YWwpOw0KIH0NCiANCkBAIC0zNzEs
NyArMzc3LDcgQEANCiB1cGRhdGV4ZmVycyhpbnQgbnVtZGV2cywgaW50ICpkZXZzKQ0KIHsNCiAJ
cmVnaXN0ZXIgaW50IGksIGosIGssIHQ7DQotCXN0cnVjdCBzdGF0aW5mbyBzdGF0czsNCisJc3Ry
dWN0IHN0YXRpbmZvIGRpc2tzdGF0czsNCiAJaW50IG51bV9kZXZpY2VzID0gMDsNCiAJdV9pbnQ2
NF90IHRvdGFsX3RyYW5zZmVyczsNCiANCkBAIC0zODYsMjQgKzM5MiwyNCBAQA0KIAkJZXhpdCgx
KTsNCiAJfQ0KIA0KLQlzdGF0cy5kaW5mbyA9IChzdHJ1Y3QgZGV2aW5mbyAqKW1hbGxvYyhzaXpl
b2Yoc3RydWN0IGRldmluZm8pKTsNCi0JYnplcm8oc3RhdHMuZGluZm8sIHNpemVvZihzdHJ1Y3Qg
ZGV2aW5mbykpOw0KKwlkaXNrc3RhdHMuZGluZm8gPSBtYWxsb2Moc2l6ZW9mKCpkaXNrc3RhdHMu
ZGluZm8pKTsNCisJYnplcm8oZGlza3N0YXRzLmRpbmZvLCBzaXplb2YoKmRpc2tzdGF0cy5kaW5m
bykpOw0KIA0KLQlpZiAoZGV2c3RhdF9nZXRkZXZzKE5VTEwsICZzdGF0cykgPT0gLTEpIHsNCisJ
aWYgKGRldnN0YXRfZ2V0ZGV2cyhOVUxMLCAmZGlza3N0YXRzKSA9PSAtMSkgew0KIAkJc3lzbG9n
KExPR19FUlIsICJyc3RhdGQ6IGNhbid0IGdldCBkZXZpY2UgbGlzdDogJXMiLA0KIAkJICAgICAg
IGRldnN0YXRfZXJyYnVmKTsNCiAJCWV4aXQoMSk7DQogCX0NCiANCi0JZm9yIChpID0gMCwgaiA9
IDA7IGkgPCBzdGF0cy5kaW5mby0+bnVtZGV2cyAmJiBqIDwgbnVtZGV2czsgaSsrKSB7DQotCQlp
ZiAoKChzdGF0cy5kaW5mby0+ZGV2aWNlc1tpXS5kZXZpY2VfdHlwZQ0KKwlmb3IgKGkgPSAwLCBq
ID0gMDsgaSA8IGRpc2tzdGF0cy5kaW5mby0+bnVtZGV2cyAmJiBqIDwgbnVtZGV2czsgaSsrKSB7
DQorCQlpZiAoKChkaXNrc3RhdHMuZGluZm8tPmRldmljZXNbaV0uZGV2aWNlX3R5cGUNCiAJCSAg
ICAgICYgREVWU1RBVF9UWVBFX01BU0spID09IERFVlNUQVRfVFlQRV9ESVJFQ1QpDQotCQkgJiYg
KChzdGF0cy5kaW5mby0+ZGV2aWNlc1tpXS5kZXZpY2VfdHlwZQ0KKwkJICYmICgoZGlza3N0YXRz
LmRpbmZvLT5kZXZpY2VzW2ldLmRldmljZV90eXBlDQogCQkgICAgICAmIERFVlNUQVRfVFlQRV9Q
QVNTKSA9PSAwKSkgew0KIAkJCXRvdGFsX3RyYW5zZmVycyA9IDA7DQogCQkJZm9yIChrID0gMDsg
ayA8IERFVlNUQVRfTl9UUkFOU19GTEFHUzsgaysrKQ0KIAkJCQl0b3RhbF90cmFuc2ZlcnMgKz0N
Ci0JCQkJICAgIHN0YXRzLmRpbmZvLT5kZXZpY2VzW2ldLm9wZXJhdGlvbnNba107DQorCQkJCSAg
ICBkaXNrc3RhdHMuZGluZm8tPmRldmljZXNbaV0ub3BlcmF0aW9uc1trXTsNCiAJCQkvKg0KIAkJ
CSAqIFhYWCBLRE0gSWYgdGhlIHRvdGFsIHRyYW5zZmVycyBmb3IgdGhpcyBkZXZpY2UNCiAJCQkg
KiBhcmUgZ3JlYXRlciB0aGFuIHRoZSBhbW91bnQgd2UgY2FuIGZpdCBpbiBhDQpAQCAtNDIyLDEw
ICs0MjgsMTAgQEANCiAJCX0NCiAJfQ0KIA0KLQlpZiAoc3RhdHMuZGluZm8tPm1lbV9wdHIpDQot
CQlmcmVlKHN0YXRzLmRpbmZvLT5tZW1fcHRyKTsNCisJaWYgKGRpc2tzdGF0cy5kaW5mby0+bWVt
X3B0cikNCisJCWZyZWUoZGlza3N0YXRzLmRpbmZvLT5tZW1fcHRyKTsNCiANCi0JZnJlZShzdGF0
cy5kaW5mbyk7DQorCWZyZWUoZGlza3N0YXRzLmRpbmZvKTsNCiB9DQogDQogdm9pZA0KQEAgLTQz
NSwyNiArNDQxLDI2IEBADQogCQlpbnQgZmlsbDsNCiAJfSBhcmd1bWVudDsNCiAJY2hhciAqcmVz
dWx0Ow0KLQlib29sX3QgKCp4ZHJfYXJndW1lbnQpKCksICgqeGRyX3Jlc3VsdCkoKTsNCi0JY2hh
ciAqKCpsb2NhbCkoKTsNCi0NCisJeGRycHJvY190IHhkcl9hcmd1bWVudCwgeGRyX3Jlc3VsdDsN
CisJdHlwZWRlZiB2b2lkICooKnJzdmNmcF90KSh2b2lkICosIHN0cnVjdCBzdmNfcmVxICopOw0K
Kwlyc3ZjZnBfdCBsb2NhbDsNCiAJc3dpdGNoIChycXN0cC0+cnFfcHJvYykgew0KIAljYXNlIE5V
TExQUk9DOg0KLQkJKHZvaWQpc3ZjX3NlbmRyZXBseSh0cmFuc3AsICh4ZHJwcm9jX3QpeGRyX3Zv
aWQsIE5VTEwpOw0KKwkJc3ZjX3NlbmRyZXBseSh0cmFuc3AsICh4ZHJwcm9jX3QpeGRyX3ZvaWQs
IE5VTEwpOw0KIAkJZ290byBsZWF2ZTsNCiANCiAJY2FzZSBSU1RBVFBST0NfU1RBVFM6DQotCQl4
ZHJfYXJndW1lbnQgPSB4ZHJfdm9pZDsNCi0JCXhkcl9yZXN1bHQgPSB4ZHJfc3RhdHN0aW1lOw0K
KwkJeGRyX2FyZ3VtZW50ID0gKHhkcnByb2NfdCl4ZHJfdm9pZDsNCisJCXhkcl9yZXN1bHQgPSAo
eGRycHJvY190KXhkcl9zdGF0c3RpbWU7DQogICAgICAgICAgICAgICAgIHN3aXRjaCAocnFzdHAt
PnJxX3ZlcnMpIHsNCiAgICAgICAgICAgICAgICAgY2FzZSBSU1RBVFZFUlNfT1JJRzoNCi0gICAg
ICAgICAgICAgICAgICAgICAgICBsb2NhbCA9IChjaGFyICooKikoKSkgcnN0YXRwcm9jX3N0YXRz
XzFfc3ZjOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsID0gKHJzdmNmcF90KSByc3Rh
dHByb2Nfc3RhdHNfMV9zdmM7DQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg
ICAgICAgICAgICAgIGNhc2UgUlNUQVRWRVJTX1NXVENIOg0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxvY2FsID0gKGNoYXIgKigqKSgpKSByc3RhdHByb2Nfc3RhdHNfMl9zdmM7DQorICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYWwgPSAocnN2Y2ZwX3QpIHJzdGF0cHJvY19zdGF0c18yX3N2
YzsNCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgY2Fz
ZSBSU1RBVFZFUlNfVElNRToNCi0gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCA9IChjaGFy
ICooKikoKSkgcnN0YXRwcm9jX3N0YXRzXzNfc3ZjOw0KKyAgICAgICAgICAgICAgICAgICAgICAg
IGxvY2FsID0gKHJzdmNmcF90KSByc3RhdHByb2Nfc3RhdHNfM19zdmM7DQogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAg
ICAgICAgICAgICAgICAgc3ZjZXJyX3Byb2d2ZXJzKHRyYW5zcCwgUlNUQVRWRVJTX09SSUcsIFJT
VEFUVkVSU19USU1FKTsNCkBAIC00NjQsMTcgKzQ3MCwxNyBAQA0KIAkJYnJlYWs7DQogDQogCWNh
c2UgUlNUQVRQUk9DX0hBVkVESVNLOg0KLQkJeGRyX2FyZ3VtZW50ID0geGRyX3ZvaWQ7DQotCQl4
ZHJfcmVzdWx0ID0geGRyX3VfaW50Ow0KKwkJeGRyX2FyZ3VtZW50ID0gKHhkcnByb2NfdCl4ZHJf
dm9pZDsNCisJCXhkcl9yZXN1bHQgPSAoeGRycHJvY190KXhkcl91X2ludDsNCiAgICAgICAgICAg
ICAgICAgc3dpdGNoIChycXN0cC0+cnFfdmVycykgew0KICAgICAgICAgICAgICAgICBjYXNlIFJT
VEFUVkVSU19PUklHOg0KLSAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsID0gKGNoYXIgKigq
KSgpKSByc3RhdHByb2NfaGF2ZWRpc2tfMV9zdmM7DQorICAgICAgICAgICAgICAgICAgICAgICAg
bG9jYWwgPSAocnN2Y2ZwX3QpIHJzdGF0cHJvY19oYXZlZGlza18xX3N2YzsNCiAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgY2FzZSBSU1RBVFZFUlNfU1dU
Q0g6DQotICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgPSAoY2hhciAqKCopKCkpIHJzdGF0
cHJvY19oYXZlZGlza18yX3N2YzsNCisgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbCA9IChy
c3ZjZnBfdCkgcnN0YXRwcm9jX2hhdmVkaXNrXzJfc3ZjOw0KICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICBjYXNlIFJTVEFUVkVSU19USU1FOg0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIGxvY2FsID0gKGNoYXIgKigqKSgpKSByc3RhdHByb2NfaGF2ZWRp
c2tfM19zdmM7DQorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgPSAocnN2Y2ZwX3QpIHJz
dGF0cHJvY19oYXZlZGlza18zX3N2YzsNCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN
CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICBzdmNl
cnJfcHJvZ3ZlcnModHJhbnNwLCBSU1RBVFZFUlNfT1JJRywgUlNUQVRWRVJTX1RJTUUpOw0KQEAg
LTQ4Nyw3ICs0OTMsNyBAQA0KIAkJc3ZjZXJyX25vcHJvYyh0cmFuc3ApOw0KIAkJZ290byBsZWF2
ZTsNCiAJfQ0KLQliemVybygoY2hhciAqKSZhcmd1bWVudCwgc2l6ZW9mKGFyZ3VtZW50KSk7DQor
CWJ6ZXJvKCZhcmd1bWVudCwgc2l6ZW9mKGFyZ3VtZW50KSk7DQogCWlmICghc3ZjX2dldGFyZ3Mo
dHJhbnNwLCAoeGRycHJvY190KXhkcl9hcmd1bWVudCwgJmFyZ3VtZW50KSkgew0KIAkJc3ZjZXJy
X2RlY29kZSh0cmFuc3ApOw0KIAkJZ290byBsZWF2ZTsNCkluZGV4OiByc3RhdGQuYw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL2xpYmV4ZWMvcnBjLnJzdGF0ZC9yc3RhdGQu
Yyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTANCmRpZmYgLXUgLXIxLjEwIHJzdGF0ZC5jDQot
LS0gcnN0YXRkLmMJMTUgSnVsIDIwMDIgMTg6NTE6NTcgLTAwMDAJMS4xMA0KKysrIHJzdGF0ZC5j
CTIwIEphbiAyMDA1IDE1OjQ0OjI1IC0wMDAwDQpAQCAtNDcsMjIgKzQ3LDIyIEBADQogaW50IGZy
b21faW5ldGQgPSAxOyAgICAgLyogc3RhcnRlZCBmcm9tIGluZXRkID8gKi8NCiBpbnQgY2xvc2Vk
b3duID0gMjA7CS8qIGhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIGdvaW5nIGRvcm1hbnQgKi8NCiAN
Ci12b2lkDQorc3RhdGljIHZvaWQNCiBjbGVhbnVwKGludCBzaWcgX191bnVzZWQpDQogew0KLSAg
ICAgICAgKHZvaWQpIHJwY2JfdW5zZXQoUlNUQVRQUk9HLCBSU1RBVFZFUlNfVElNRSwgTlVMTCk7
DQotICAgICAgICAodm9pZCkgcnBjYl91bnNldChSU1RBVFBST0csIFJTVEFUVkVSU19TV1RDSCwg
TlVMTCk7DQotICAgICAgICAodm9pZCkgcnBjYl91bnNldChSU1RBVFBST0csIFJTVEFUVkVSU19P
UklHLCBOVUxMKTsNCisgICAgICAgIHJwY2JfdW5zZXQoUlNUQVRQUk9HLCBSU1RBVFZFUlNfVElN
RSwgTlVMTCk7DQorICAgICAgICBycGNiX3Vuc2V0KFJTVEFUUFJPRywgUlNUQVRWRVJTX1NXVENI
LCBOVUxMKTsNCisgICAgICAgIHJwY2JfdW5zZXQoUlNUQVRQUk9HLCBSU1RBVFZFUlNfT1JJRywg
TlVMTCk7DQogICAgICAgICBleGl0KDApOw0KIH0NCiANCiBpbnQNCiBtYWluKGludCBhcmdjLCBj
aGFyICphcmd2W10pDQogew0KLQlTVkNYUFJUICp0cmFuc3A7DQorCVNWQ1hQUlQgKnRyYW5zcCA9
IE5VTEw7DQogCWludCBvazsNCiAJc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgZnJvbTsNCi0JaW50
IGZyb21sZW47DQorCXNvY2tsZW5fdCBmcm9tbGVuOw0KIA0KICAgICAgICAgaWYgKGFyZ2MgPT0g
MikNCiAgICAgICAgICAgICAgICAgY2xvc2Vkb3duID0gYXRvaShhcmd2WzFdKTsNCkBAIC03OCwx
NSArNzgsMTUgQEANCiAgICAgICAgIH0NCiANCiAgICAgICAgIGlmICghZnJvbV9pbmV0ZCkgew0K
LSAgICAgICAgICAgICAgICBkYWVtb24oMCwgMCk7DQorCQlkYWVtb24oMCwgMCk7DQogDQotICAg
ICAgICAgICAgICAgICh2b2lkKXJwY2JfdW5zZXQoUlNUQVRQUk9HLCBSU1RBVFZFUlNfVElNRSwg
TlVMTCk7DQotICAgICAgICAgICAgICAgICh2b2lkKXJwY2JfdW5zZXQoUlNUQVRQUk9HLCBSU1RB
VFZFUlNfU1dUQ0gsIE5VTEwpOw0KLSAgICAgICAgICAgICAgICAodm9pZClycGNiX3Vuc2V0KFJT
VEFUUFJPRywgUlNUQVRWRVJTX09SSUcsIE5VTEwpOw0KLQ0KLQkJKHZvaWQpIHNpZ25hbChTSUdJ
TlQsIGNsZWFudXApOw0KLQkJKHZvaWQpIHNpZ25hbChTSUdURVJNLCBjbGVhbnVwKTsNCi0JCSh2
b2lkKSBzaWduYWwoU0lHSFVQLCBjbGVhbnVwKTsNCisJCXJwY2JfdW5zZXQoUlNUQVRQUk9HLCBS
U1RBVFZFUlNfVElNRSwgTlVMTCk7DQorCQlycGNiX3Vuc2V0KFJTVEFUUFJPRywgUlNUQVRWRVJT
X1NXVENILCBOVUxMKTsNCisJCXJwY2JfdW5zZXQoUlNUQVRQUk9HLCBSU1RBVFZFUlNfT1JJRywg
TlVMTCk7DQorDQorCQlzaWduYWwoU0lHSU5ULCBjbGVhbnVwKTsNCisJCXNpZ25hbChTSUdURVJN
LCBjbGVhbnVwKTsNCisJCXNpZ25hbChTSUdIVVAsIGNsZWFudXApOw0KICAgICAgICAgfQ0KIA0K
ICAgICAgICAgb3BlbmxvZygicnBjLnJzdGF0ZCIsIExPR19DT05TfExPR19QSUQsIExPR19EQUVN
T04pOw0K


--=-euKsYllbFcnXwOfBcCcV--

--=-9IFxBf6ZWclETM4gUS1A
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: 
	=?UTF-8?Q?=E8=BF=99=E6=98=AF=E4=BF=A1=E4=BB=B6=E7=9A=84=E6=95=B0?=
	=?UTF-8?Q?=E5=AD=97=E7=AD=BE=E5=90=8D=E9=83=A8?= =?UTF-8?Q?=E5=88=86?=

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (FreeBSD)

iD8DBQBB79Nj/cVsHxFZiIoRAhzyAJ9Kt3q94gi9XnaKhiVVFPJ0YtjUGgCdExLK
2cvDQXyWtxGbWjgZirK/TNs=
=Yxos
-----END PGP SIGNATURE-----

--=-9IFxBf6ZWclETM4gUS1A--



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