From owner-freebsd-hackers@FreeBSD.ORG Thu Jan 20 15:52:56 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C533B16A4CE for ; Thu, 20 Jan 2005 15:52:56 +0000 (GMT) Received: from mail.freebsd.org.cn (dns3.freebsd.org.cn [61.129.66.75]) by mx1.FreeBSD.org (Postfix) with SMTP id DFC0843D41 for ; Thu, 20 Jan 2005 15:52:40 +0000 (GMT) (envelope-from delphij@frontfree.net) Received: (qmail 98033 invoked by uid 0); 20 Jan 2005 15:44:46 -0000 Received: from unknown (HELO beastie.frontfree.net) (219.239.99.7) by mail.freebsd.org.cn with SMTP; 20 Jan 2005 15:44:46 -0000 Received: from localhost (localhost.frontfree.net [127.0.0.1]) by beastie.frontfree.net (Postfix) with ESMTP id 224C1133530 for ; Thu, 20 Jan 2005 23:52:32 +0800 (CST) Received: from beastie.frontfree.net ([127.0.0.1]) by localhost (beastie.frontfree.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 44372-02 for ; Thu, 20 Jan 2005 23:52:25 +0800 (CST) Received: from localhost.localdomain (unknown [61.48.135.6]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by beastie.frontfree.net (Postfix) with ESMTP id D741E13351C for ; Thu, 20 Jan 2005 23:52:23 +0800 (CST) From: Xin LI To: freebsd-hackers@FreeBSD.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9IFxBf6ZWclETM4gUS1A" Organization: The FreeBSD Simplified Chinese Project Date: Thu, 20 Jan 2005 23:50:59 +0800 Message-Id: <1106236259.1019.15.camel@spirit> Mime-Version: 1.0 X-Mailer: Evolution 2.0.3 FreeBSD GNOME Team Port X-Virus-Scanned: by amavisd-new at frontfree.net Subject: RFC: WARNS=6 patch for libexec/rpc.rstatd X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: delphij@delphij.net List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Jan 2005 15:52:56 -0000 --=-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 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--