From owner-freebsd-hackers Sat Mar 9 15:31:20 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from nas.dgap.mipt.ru (nas.dgap.mipt.ru [194.85.81.203]) by hub.freebsd.org (Postfix) with ESMTP id 122A537B416; Sat, 9 Mar 2002 15:30:53 -0800 (PST) Received: from localhost (andrew@localhost) by nas.dgap.mipt.ru (8.11.6/8.11.6) with ESMTP id g29NUn813282; Sun, 10 Mar 2002 02:30:50 +0300 (MSK) (envelope-from andr@dgap.mipt.ru) X-Authentication-Warning: nas.dgap.mipt.ru: andrew owned process doing -bs Date: Sun, 10 Mar 2002 02:30:49 +0300 (MSK) From: "Andrew L. Neporada" To: freebsd-bugs@freebsd.org Cc: freebsd-hackers@freebsd.org Subject: [PATCH] exit status of mtree(1) Message-ID: <20020310015221.J11778-200000@nas.dgap.mipt.ru> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-793760758-1015716649=:11778" Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-793760758-1015716649=:11778 Content-Type: TEXT/PLAIN; charset=US-ASCII According to man page, mtree should exit with a status of 0 on success (directory matches spec.), 1 if any error occurred and 2 in the case of directory with spec. mismatch. But our mtree(1) is badly broken here (see f.e. bin/28424). Attached patch solves (I hope) this problem. This patch also introduces slightly enhanced exit status reporting: 0 - directory matches spec, success 1 - "hard error" -- spec/dir not found, wrong options, etc. 2 - directory/spec mismatch that was fixed successfully 3 - unfixed directory/spec mismatch Please comment/review. Andrew. --0-793760758-1015716649=:11778 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="mtree.diff" Content-Transfer-Encoding: BASE64 Content-ID: <20020310023049.P11778@nas.dgap.mipt.ru> Content-Description: mtree.diff Content-Disposition: attachment; filename="mtree.diff" SW5kZXg6IGNvbXBhcmUuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9ob21lL25jdnMvc3JjL3Vzci5zYmluL210cmVlL2NvbXBhcmUu Yyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjANCmRpZmYgLXUgLXIxLjIw IGNvbXBhcmUuYw0KLS0tIGNvbXBhcmUuYwk2IE9jdCAyMDAwIDEyOjQ4OjU1 IC0wMDAwCTEuMjANCisrKyBjb21wYXJlLmMJNyBNYXIgMjAwMiAyMjo1Njoy NSAtMDAwMA0KQEAgLTYyLDYgKzYyLDcgQEANCiANCiBleHRlcm4gaW50IHVm bGFnOw0KIGV4dGVybiBpbnQgbGluZW5vOw0KK2V4dGVybiBpbnQgcnZhbDsN CiANCiBzdGF0aWMgY2hhciAqZnR5cGUgX19QKCh1X2ludCkpOw0KIA0KQEAg LTExNSw2ICsxMTYsNyBAQA0KIHR5cGVlcnI6CQlMQUJFTDsNCiAJCQkodm9p ZClwcmludGYoIlx0dHlwZSBleHBlY3RlZCAlcyBmb3VuZCAlc1xuIiwNCiAJ CQkgICAgZnR5cGUocy0+dHlwZSksIGlub3R5cGUocC0+ZnRzX3N0YXRwLT5z dF9tb2RlKSk7DQorCQkJRkFJTEVEOw0KIAkJCXJldHVybiAobGFiZWwpOw0K IAkJfQ0KIAkJYnJlYWs7DQpAQCAtMTI0LDExICsxMjYsMTMgQEANCiAJCUxB QkVMOw0KIAkJKHZvaWQpcHJpbnRmKCIlc3VzZXIgZXhwZWN0ZWQgJWx1IGZv dW5kICVsdSIsDQogCQkgICAgdGFiLCAodV9sb25nKXMtPnN0X3VpZCwgKHVf bG9uZylwLT5mdHNfc3RhdHAtPnN0X3VpZCk7DQorCQlGSVhFRDsNCiAJCWlm ICh1ZmxhZykNCi0JCQlpZiAoY2hvd24ocC0+ZnRzX2FjY3BhdGgsIHMtPnN0 X3VpZCwgLTEpKQ0KKwkJCWlmIChjaG93bihwLT5mdHNfYWNjcGF0aCwgcy0+ c3RfdWlkLCAtMSkpIHsNCiAJCQkJKHZvaWQpcHJpbnRmKCIgbm90IG1vZGlm aWVkOiAlc1xuIiwNCiAJCQkJICAgIHN0cmVycm9yKGVycm5vKSk7DQotCQkJ ZWxzZQ0KKwkJCQlGQUlMRUQ7DQorCQkJfSBlbHNlDQogCQkJCSh2b2lkKXBy aW50ZigiIG1vZGlmaWVkXG4iKTsNCiAJCWVsc2UNCiAJCQkodm9pZClwcmlu dGYoIlxuIik7DQpAQCAtMTM4LDExICsxNDIsMTMgQEANCiAJCUxBQkVMOw0K IAkJKHZvaWQpcHJpbnRmKCIlc2dpZCBleHBlY3RlZCAlbHUgZm91bmQgJWx1 IiwNCiAJCSAgICB0YWIsICh1X2xvbmcpcy0+c3RfZ2lkLCAodV9sb25nKXAt PmZ0c19zdGF0cC0+c3RfZ2lkKTsNCisJCUZJWEVEOw0KIAkJaWYgKHVmbGFn KQ0KLQkJCWlmIChjaG93bihwLT5mdHNfYWNjcGF0aCwgLTEsIHMtPnN0X2dp ZCkpDQorCQkJaWYgKGNob3duKHAtPmZ0c19hY2NwYXRoLCAtMSwgcy0+c3Rf Z2lkKSkgew0KIAkJCQkodm9pZClwcmludGYoIiBub3QgbW9kaWZpZWQ6ICVz XG4iLA0KIAkJCQkgICAgc3RyZXJyb3IoZXJybm8pKTsNCi0JCQllbHNlDQor CQkJCUZBSUxFRDsNCisJCQl9IGVsc2UNCiAJCQkJKHZvaWQpcHJpbnRmKCIg bW9kaWZpZWRcbiIpOw0KIAkJZWxzZQ0KIAkJCSh2b2lkKXByaW50ZigiXG4i KTsNCkBAIC0xNTQsMTEgKzE2MCwxMyBAQA0KIAkJTEFCRUw7DQogCQkodm9p ZClwcmludGYoIiVzcGVybWlzc2lvbnMgZXhwZWN0ZWQgJSNvIGZvdW5kICUj byIsDQogCQkgICAgdGFiLCBzLT5zdF9tb2RlLCBwLT5mdHNfc3RhdHAtPnN0 X21vZGUgJiBNQklUUyk7DQorCQlGSVhFRDsNCiAJCWlmICh1ZmxhZykNCi0J CQlpZiAoY2htb2QocC0+ZnRzX2FjY3BhdGgsIHMtPnN0X21vZGUpKQ0KKwkJ CWlmIChjaG1vZChwLT5mdHNfYWNjcGF0aCwgcy0+c3RfbW9kZSkpIHsNCiAJ CQkJKHZvaWQpcHJpbnRmKCIgbm90IG1vZGlmaWVkOiAlc1xuIiwNCiAJCQkJ ICAgIHN0cmVycm9yKGVycm5vKSk7DQotCQkJZWxzZQ0KKwkJCQlGQUlMRUQ7 DQorCQkJfSBlbHNlDQogCQkJCSh2b2lkKXByaW50ZigiIG1vZGlmaWVkXG4i KTsNCiAJCWVsc2UNCiAJCQkodm9pZClwcmludGYoIlxuIik7DQpAQCAtMTY5 LDYgKzE3Nyw3IEBADQogCQlMQUJFTDsNCiAJCSh2b2lkKXByaW50ZigiJXNs aW5rX2NvdW50IGV4cGVjdGVkICV1IGZvdW5kICV1XG4iLA0KIAkJICAgIHRh Yiwgcy0+c3RfbmxpbmssIHAtPmZ0c19zdGF0cC0+c3RfbmxpbmspOw0KKwkJ RkFJTEVEOw0KIAkJdGFiID0gIlx0IjsNCiAJfQ0KIAlpZiAocy0+ZmxhZ3Mg JiBGX1NJWkUgJiYgcy0+c3Rfc2l6ZSAhPSBwLT5mdHNfc3RhdHAtPnN0X3Np emUgJiYNCkBAIC0xNzYsNiArMTg1LDcgQEANCiAJCUxBQkVMOw0KIAkJKHZv aWQpcHJpbnRmKCIlc3NpemUgZXhwZWN0ZWQgJXFkIGZvdW5kICVxZFxuIiwN CiAJCSAgICB0YWIsIHMtPnN0X3NpemUsIHAtPmZ0c19zdGF0cC0+c3Rfc2l6 ZSk7DQorCQlGQUlMRUQ7DQogCQl0YWIgPSAiXHQiOw0KIAl9DQogCS8qDQpA QCAtMTkwLDYgKzIwMCw3IEBADQogCQkgICAgdGFiLCBjdGltZSgmcy0+c3Rf bXRpbWVzcGVjLnR2X3NlYykpOw0KIAkJKHZvaWQpcHJpbnRmKCJmb3VuZCAl LjI0c1xuIiwNCiAJCSAgICBjdGltZSgmcC0+ZnRzX3N0YXRwLT5zdF9tdGlt ZXNwZWMudHZfc2VjKSk7DQorCQlGQUlMRUQ7DQogCQl0YWIgPSAiXHQiOw0K IAl9DQogCWlmIChzLT5mbGFncyAmIEZfQ0tTVU0pIHsNCkBAIC0xOTcsMTIg KzIwOCwxNCBAQA0KIAkJCUxBQkVMOw0KIAkJCSh2b2lkKXByaW50ZigiJXNj a3N1bTogJXM6ICVzXG4iLA0KIAkJCSAgICB0YWIsIHAtPmZ0c19hY2NwYXRo LCBzdHJlcnJvcihlcnJubykpOw0KKwkJCUZBSUxFRDsNCiAJCQl0YWIgPSAi XHQiOw0KIAkJfSBlbHNlIGlmIChjcmMoZmQsICZ2YWwsICZsZW4pKSB7DQog CQkJKHZvaWQpY2xvc2UoZmQpOw0KIAkJCUxBQkVMOw0KIAkJCSh2b2lkKXBy aW50ZigiJXNja3N1bTogJXM6ICVzXG4iLA0KIAkJCSAgICB0YWIsIHAtPmZ0 c19hY2NwYXRoLCBzdHJlcnJvcihlcnJubykpOw0KKwkJCUZBSUxFRDsNCiAJ CQl0YWIgPSAiXHQiOw0KIAkJfSBlbHNlIHsNCiAJCQkodm9pZCljbG9zZShm ZCk7DQpAQCAtMjEwLDYgKzIyMyw3IEBADQogCQkJCUxBQkVMOw0KIAkJCQko dm9pZClwcmludGYoIiVzY2tzdW0gZXhwZWN0ZWQgJWx1IGZvdW5kICVsdVxu IiwNCiAJCQkJICAgIHRhYiwgcy0+Y2tzdW0sIHZhbCk7DQorCQkJCUZBSUxF RDsNCiAJCQl9DQogCQkJdGFiID0gIlx0IjsNCiAJCX0NCkBAIC0yMjksMTIg KzI0MywxNCBAQA0KIAkJZmZsYWdzID0gZmxhZ3NfdG9fc3RyaW5nKHAtPmZ0 c19zdGF0cC0+c3RfZmxhZ3MpOw0KIAkJKHZvaWQpcHJpbnRmKCIgZm91bmQg XCIlc1wiIiwgZmZsYWdzKTsNCiAJCWZyZWUoZmZsYWdzKTsNCisJCUZJWEVE Ow0KIA0KIAkJaWYgKHVmbGFnKQ0KLQkJCWlmIChjaGZsYWdzKHAtPmZ0c19h Y2NwYXRoLCBzLT5zdF9mbGFncykpDQorCQkJaWYgKGNoZmxhZ3MocC0+ZnRz X2FjY3BhdGgsIHMtPnN0X2ZsYWdzKSkgew0KIAkJCQkodm9pZClwcmludGYo IiBub3QgbW9kaWZpZWQ6ICVzXG4iLA0KIAkJCQkgICAgc3RyZXJyb3IoZXJy bm8pKTsNCi0JCQllbHNlDQorCQkJCUZBSUxFRDsNCisJCQl9IGVsc2UNCiAJ CQkJKHZvaWQpcHJpbnRmKCIgbW9kaWZpZWRcbiIpOw0KIAkJZWxzZQ0KIAkJ CSh2b2lkKXByaW50ZigiXG4iKTsNCkBAIC0yNDksMTEgKzI2NSwxMyBAQA0K IAkJCUxBQkVMOw0KIAkJCXByaW50ZigiJXNNRDU6ICVzOiAlc1xuIiwgdGFi LCBwLT5mdHNfYWNjcGF0aCwNCiAJCQkgICAgICAgc3RyZXJyb3IoZXJybm8p KTsNCisJCQlGQUlMRUQ7DQogCQkJdGFiID0gIlx0IjsNCiAJCX0gZWxzZSBp ZiAoc3RyY21wKG5ld19kaWdlc3QsIHMtPm1kNWRpZ2VzdCkpIHsNCiAJCQlM QUJFTDsNCiAJCQlwcmludGYoIiVzTUQ1IGV4cGVjdGVkICVzIGZvdW5kICVz XG4iLCB0YWIsIHMtPm1kNWRpZ2VzdCwNCiAJCQkgICAgICAgbmV3X2RpZ2Vz dCk7DQorCQkJRkFJTEVEOw0KIAkJCXRhYiA9ICJcdCI7DQogCQl9DQogCX0N CkBAIC0yNjcsMTEgKzI4NSwxMyBAQA0KIAkJCUxBQkVMOw0KIAkJCXByaW50 ZigiJXNTSEEtMTogJXM6ICVzXG4iLCB0YWIsIHAtPmZ0c19hY2NwYXRoLA0K IAkJCSAgICAgICBzdHJlcnJvcihlcnJubykpOw0KKwkJCUZBSUxFRDsNCiAJ CQl0YWIgPSAiXHQiOw0KIAkJfSBlbHNlIGlmIChzdHJjbXAobmV3X2RpZ2Vz dCwgcy0+c2hhMWRpZ2VzdCkpIHsNCiAJCQlMQUJFTDsNCiAJCQlwcmludGYo IiVzU0hBLTEgZXhwZWN0ZWQgJXMgZm91bmQgJXNcbiIsIA0KIAkJCSAgICAg ICB0YWIsIHMtPnNoYTFkaWdlc3QsIG5ld19kaWdlc3QpOw0KKwkJCUZBSUxF RDsNCiAJCQl0YWIgPSAiXHQiOw0KIAkJfQ0KIAl9DQpAQCAtMjg1LDExICsz MDUsMTMgQEANCiAJCQlMQUJFTDsNCiAJCQlwcmludGYoIiVzUklQRU1EMTYw OiAlczogJXNcbiIsIHRhYiwNCiAJCQkgICAgICAgcC0+ZnRzX2FjY3BhdGgs IHN0cmVycm9yKGVycm5vKSk7DQorCQkJRkFJTEVEOw0KIAkJCXRhYiA9ICJc dCI7DQogCQl9IGVsc2UgaWYgKHN0cmNtcChuZXdfZGlnZXN0LCBzLT5ybWQx NjBkaWdlc3QpKSB7DQogCQkJTEFCRUw7DQogCQkJcHJpbnRmKCIlc1JJUEVN RDE2MCBleHBlY3RlZCAlcyBmb3VuZCAlc1xuIiwNCiAJCQkgICAgICAgdGFi LCBzLT5ybWQxNjBkaWdlc3QsIG5ld19kaWdlc3QpOw0KKwkJCUZBSUxFRDsN CiAJCQl0YWIgPSAiXHQiOw0KIAkJfQ0KIAl9DQpAQCAtMzAwLDYgKzMyMiw3 IEBADQogCQlMQUJFTDsNCiAJCSh2b2lkKXByaW50ZigiJXNsaW5rX3JlZiBl eHBlY3RlZCAlcyBmb3VuZCAlc1xuIiwNCiAJCSAgICAgIHRhYiwgY3AsIHMt PnNsaW5rKTsNCisJCUZBSUxFRDsNCiAJfQ0KIAlyZXR1cm4gKGxhYmVsKTsN CiB9DQpJbmRleDogZXh0ZXJuLmgNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy91c3Iuc2Jpbi9tdHJlZS9leHRl cm4uaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQ0KZGlmZiAtdSAtcjEu NSBleHRlcm4uaA0KLS0tIGV4dGVybi5oCTE3IEp1biAyMDAwIDE0OjE5OjMz IC0wMDAwCTEuNQ0KKysrIGV4dGVybi5oCTcgTWFyIDIwMDIgMjI6NTY6MjUg LTAwMDANCkBAIC00Myw3ICs0Myw3IEBADQogdV9pbnQJIHBhcnNla2V5IF9f UCgoY2hhciAqLCBpbnQgKikpOw0KIGNoYXIJKnJsaW5rIF9fUCgoY2hhciAq KSk7DQogTk9ERQkqc3BlYyBfX1AoKHZvaWQpKTsNCi1pbnQJIHZlcmlmeSBf X1AoKHZvaWQpKTsNCit2b2lkCSB2ZXJpZnkgX19QKCh2b2lkKSk7DQogDQog aW50CSBjaGVja19leGNsdWRlcyBfX1AoKGNvbnN0IGNoYXIgKiwgY29uc3Qg Y2hhciAqKSk7DQogdm9pZAkgaW5pdF9leGNsdWRlcyBfX1AoKHZvaWQpKTsN CkluZGV4OiBtdHJlZS5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg ZmlsZTogL2hvbWUvbmN2cy9zcmMvdXNyLnNiaW4vbXRyZWUvbXRyZWUuYyx2 DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTgNCmRpZmYgLXUgLXIxLjE4IG10 cmVlLmMNCi0tLSBtdHJlZS5jCTI1IFNlcCAyMDAwIDE2OjI0OjIyIC0wMDAw CTEuMTgNCisrKyBtdHJlZS5jCTkgTWFyIDIwMDIgMjE6MDY6NDcgLTAwMDAN CkBAIC01OSw2ICs1OSw3IEBADQogDQogaW50IGZ0c29wdGlvbnMgPSBGVFNf UEhZU0lDQUw7DQogaW50IGNmbGFnLCBkZmxhZywgZWZsYWcsIGlmbGFnLCBu ZmxhZywgcWZsYWcsIHJmbGFnLCBzZmxhZywgdWZsYWcsIFVmbGFnOw0KK2lu dCBydmFsOw0KIHVfaW50IGtleXM7DQogY2hhciBmdWxscGF0aFtNQVhQQVRI TEVOXTsNCiANCkBAIC03MSw3ICs3Miw2IEBADQogew0KIAlpbnQgY2g7DQog CWNoYXIgKmRpciwgKnA7DQotCWludCBzdGF0dXM7DQogDQogCWRpciA9IE5V TEw7DQogCWtleXMgPSBLRVlERUZBVUxUOw0KQEAgLTE2NCwxMCArMTY0LDEw IEBADQogCQljd2FsaygpOw0KIAkJZXhpdCgwKTsNCiAJfQ0KLQlzdGF0dXMg PSB2ZXJpZnkoKTsNCi0JaWYgKFVmbGFnICYgKHN0YXR1cyA9PSBNSVNNQVRD SEVYSVQpKQ0KLQkJc3RhdHVzID0gMDsNCi0JZXhpdChzdGF0dXMpOw0KKwl2 ZXJpZnkoKTsNCisJaWYgKFVmbGFnICYgKHJ2YWwgPT0gTUlTTUFUQ0hGSVhF RCkpDQorCQlydmFsID0gMDsNCisJZXhpdChydmFsKTsNCiB9DQogDQogc3Rh dGljIHZvaWQNCkluZGV4OiBtdHJlZS5oDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvdXNyLnNiaW4vbXRyZWUv bXRyZWUuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNQ0KZGlmZiAtdSAt cjEuNSBtdHJlZS5oDQotLS0gbXRyZWUuaAk5IERlYyAxOTk5IDIwOjM4OjM1 IC0wMDAwCTEuNQ0KKysrIG10cmVlLmgJOSBNYXIgMjAwMiAyMDo0NzowOCAt MDAwMA0KQEAgLTQwLDcgKzQwLDEwIEBADQogI2RlZmluZQlLRVlERUZBVUxU IFwNCiAJKEZfR0lEIHwgRl9NT0RFIHwgRl9OTElOSyB8IEZfU0laRSB8IEZf U0xJTksgfCBGX1RJTUUgfCBGX1VJRCB8IEZfRkxBR1MpDQogDQotI2RlZmlu ZQlNSVNNQVRDSEVYSVQJMg0KKyNkZWZpbmUJTUlTTUFUQ0hGSVhFRAkyDQor I2RlZmluZQlGSVhGQUlMRUQJMw0KKyNkZWZpbmUJRklYRUQJaWYgKHJ2YWwg IT0gRklYRkFJTEVEKSBydmFsID0gTUlTTUFUQ0hGSVhFRDsNCisjZGVmaW5l CUZBSUxFRAlydmFsID0gRklYRkFJTEVEOw0KIA0KIHR5cGVkZWYgc3RydWN0 IF9ub2RlIHsNCiAJc3RydWN0IF9ub2RlCSpwYXJlbnQsICpjaGlsZDsJLyog dXAsIGRvd24gKi8NCkluZGV4OiB2ZXJpZnkuYw0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3Vzci5zYmluL210 cmVlL3ZlcmlmeS5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNQ0KZGlm ZiAtdSAtcjEuMTUgdmVyaWZ5LmMNCi0tLSB2ZXJpZnkuYwkzIE9jdCAyMDAw IDEzOjEzOjQ3IC0wMDAwCTEuMTUNCisrKyB2ZXJpZnkuYwk5IE1hciAyMDAy IDIwOjM5OjQxIC0wMDAwDQpAQCAtNTYsMzEgKzU2LDI5IEBADQogZXh0ZXJu IGludCBkZmxhZywgZWZsYWcsIHFmbGFnLCByZmxhZywgc2ZsYWcsIHVmbGFn Ow0KIGV4dGVybiBjaGFyIGZ1bGxwYXRoW01BWFBBVEhMRU5dOw0KIGV4dGVy biBpbnQgbGluZW5vOw0KK2V4dGVybiBpbnQgcnZhbDsNCiANCiBzdGF0aWMg Tk9ERSAqcm9vdDsNCiBzdGF0aWMgY2hhciBwYXRoW01BWFBBVEhMRU5dOw0K IA0KIHN0YXRpYyB2b2lkCW1pc3MgX19QKChOT0RFICosIGNoYXIgKikpOw0K LXN0YXRpYyBpbnQJdndhbGsgX19QKCh2b2lkKSk7DQorc3RhdGljIHZvaWQJ dndhbGsgX19QKCh2b2lkKSk7DQogDQotaW50DQordm9pZA0KIHZlcmlmeSgp DQogew0KLQlpbnQgcnZhbDsNCi0NCiAJcm9vdCA9IHNwZWMoKTsNCi0JcnZh bCA9IHZ3YWxrKCk7DQorCXZ3YWxrKCk7DQogCW1pc3Mocm9vdCwgcGF0aCk7 DQotCXJldHVybiAocnZhbCk7DQogfQ0KIA0KLXN0YXRpYyBpbnQNCit2b2lk DQogdndhbGsoKQ0KIHsNCiAJcmVnaXN0ZXIgRlRTICp0Ow0KIAlyZWdpc3Rl ciBGVFNFTlQgKnA7DQogCXJlZ2lzdGVyIE5PREUgKmVwLCAqbGV2ZWw7DQot CWludCBzcGVjZGVwdGgsIHJ2YWw7DQorCWludCBzcGVjZGVwdGg7DQogCWNo YXIgKmFyZ3ZbMl07DQogDQogCWFyZ3ZbMF0gPSAiLiI7DQpAQCAtMTIyLDkg KzEyMCw4IEBADQogCQkJICAgICFmbm1hdGNoKGVwLT5uYW1lLCBwLT5mdHNf bmFtZSwgRk5NX1BBVEhOQU1FKSkgfHwNCiAJCQkgICAgIXN0cmNtcChlcC0+ bmFtZSwgcC0+ZnRzX25hbWUpKSB7DQogCQkJCWVwLT5mbGFncyB8PSBGX1ZJ U0lUOw0KLQkJCQlpZiAoKGVwLT5mbGFncyAmIEZfTk9DSEFOR0UpID09IDAg JiYNCi0JCQkJICAgIGNvbXBhcmUoZXAtPm5hbWUsIGVwLCBwKSkNCi0JCQkJ CXJ2YWwgPSBNSVNNQVRDSEVYSVQ7DQorCQkJCWlmICgoZXAtPmZsYWdzICYg Rl9OT0NIQU5HRSkgPT0gMCkNCisJCQkJCSh2b2lkKWNvbXBhcmUoZXAtPm5h bWUsIGVwLCBwKTsNCiAJCQkJaWYgKGVwLT5mbGFncyAmIEZfSUdOKQ0KIAkJ CQkJKHZvaWQpZnRzX3NldCh0LCBwLCBGVFNfU0tJUCk7DQogCQkJCWVsc2Ug aWYgKGVwLT5jaGlsZCAmJiBlcC0+dHlwZSA9PSBGX0RJUiAmJg0KQEAgLTEz OSwxNSArMTM2LDE4IEBADQogCQkJY29udGludWU7DQogZXh0cmE6DQogCQlp ZiAoIWVmbGFnKSB7DQorCQkJRklYRUQ7DQogCQkJKHZvaWQpcHJpbnRmKCIl cyBleHRyYSIsIFJQKHApKTsNCiAJCQlpZiAocmZsYWcpIHsNCiAJCQkJaWYg KChTX0lTRElSKHAtPmZ0c19zdGF0cC0+c3RfbW9kZSkNCiAJCQkJICAgID8g cm1kaXIgOiB1bmxpbmspKHAtPmZ0c19hY2NwYXRoKSkgew0KIAkJCQkJKHZv aWQpcHJpbnRmKCIsIG5vdCByZW1vdmVkOiAlcyIsDQogCQkJCQkgICAgc3Ry ZXJyb3IoZXJybm8pKTsNCisJCQkJCUZBSUxFRDsNCiAJCQkJfSBlbHNlDQog CQkJCQkodm9pZClwcmludGYoIiwgcmVtb3ZlZCIpOw0KLQkJCX0NCisJCQl9 IGVsc2UNCisJCQkJRkFJTEVEOw0KIAkJCSh2b2lkKXB1dGNoYXIoJ1xuJyk7 DQogCQl9DQogCQkodm9pZClmdHNfc2V0KHQsIHAsIEZUU19TS0lQKTsNCkBA IC0xNTUsNyArMTU1LDYgQEANCiAJKHZvaWQpZnRzX2Nsb3NlKHQpOw0KIAlp ZiAoc2ZsYWcpDQogCQl3YXJueCgiJXMgY2hlY2tzdW06ICVsdSIsIGZ1bGxw YXRoLCBjcmNfdG90YWwpOw0KLQlyZXR1cm4gKHJ2YWwpOw0KIH0NCiANCiBz dGF0aWMgdm9pZA0KQEAgLTE3OCw4ICsxNzcsMTAgQEANCiAgDQogCQkJaWYg KHFmbGFnICYmIHN0YXQocGF0aCwgJnN0YXRidWYpID09IDApDQogCQkJCXAt PmZsYWdzIHw9IEZfVklTSVQ7DQotCQkJZWxzZQ0KKwkJCWVsc2Ugew0KIAkJ CQkodm9pZClwcmludGYoIiVzIG1pc3NpbmciLCBwYXRoKTsNCisJCQkJRklY RUQ7DQorCQkJfQ0KIAkJfQ0KIAkJaWYgKHAtPnR5cGUgIT0gRl9ESVIgJiYg cC0+dHlwZSAhPSBGX0xJTkspIHsNCiAJCQlwdXRjaGFyKCdcbicpOw0KQEAg LTE5NywxNCArMTk4LDE3IEBADQogCQkJZWxzZSBpZiAoIShwLT5mbGFncyAm IChGX0dJRCB8IEZfR05BTUUpKSkNCiAJCQkJKHZvaWQpcHJpbnRmKCIgKCVz IG5vdCBjcmVhdGVkOiBncm91cCBub3Qgc3BlY2lmaWVkKSIsIHR5cGUpOw0K IAkJCWVsc2UgaWYgKHAtPnR5cGUgPT0gRl9MSU5LKSB7DQotCQkJCWlmIChz eW1saW5rKHAtPnNsaW5rLCBwYXRoKSkNCisJCQkJaWYgKHN5bWxpbmsocC0+ c2xpbmssIHBhdGgpKSB7DQogCQkJCQkodm9pZClwcmludGYoIiAoc3ltbGlu ayBub3QgY3JlYXRlZDogJXMpXG4iLA0KIAkJCQkJICAgIHN0cmVycm9yKGVy cm5vKSk7DQotCQkJCWVsc2UNCisJCQkJCUZBSUxFRDsNCisJCQkJfSBlbHNl DQogCQkJCQkodm9pZClwcmludGYoIiAoY3JlYXRlZClcbiIpOw0KLQkJCQlp ZiAobGNob3duKHBhdGgsIHAtPnN0X3VpZCwgcC0+c3RfZ2lkKSkNCisJCQkJ aWYgKGxjaG93bihwYXRoLCBwLT5zdF91aWQsIHAtPnN0X2dpZCkpIHsNCiAJ CQkJCSh2b2lkKXByaW50ZigiJXM6IHVzZXIvZ3JvdXAgbm90IG1vZGlmaWVk OiAlc1xuIiwNCiAJCQkJCSAgICBwYXRoLCBzdHJlcnJvcihlcnJubykpOw0K KwkJCQkJRkFJTEVEOw0KKwkJCQl9DQogCQkJCWNvbnRpbnVlOw0KIAkJCX0g ZWxzZSBpZiAoIShwLT5mbGFncyAmIEZfTU9ERSkpDQogCQkJICAgICh2b2lk KXByaW50ZigiIChkaXJlY3Rvcnkgbm90IGNyZWF0ZWQ6IG1vZGUgbm90IHNw ZWNpZmllZCkiKTsNCkBAIC0yMTUsNiArMjE5LDggQEANCiAJCQkJY3JlYXRl ID0gMTsNCiAJCQkJKHZvaWQpcHJpbnRmKCIgKGNyZWF0ZWQpIik7DQogCQkJ fQ0KKwkJCWlmICghY3JlYXRlKQ0KKwkJCQlGQUlMRUQ7DQogCQl9DQogCQlp ZiAoIShwLT5mbGFncyAmIEZfVklTSVQpKQ0KIAkJCSh2b2lkKXB1dGNoYXIo J1xuJyk7DQpAQCAtMjMxLDE0ICsyMzcsMTkgQEANCiAJCQkgICAgcGF0aCwg c3RyZXJyb3IoZXJybm8pKTsNCiAJCQkodm9pZClwcmludGYoIiVzOiB3YXJu aW5nOiBmaWxlIG1vZGUgJXNub3Qgc2V0XG4iLCBwYXRoLA0KIAkJCSAgICAo cC0+ZmxhZ3MgJiBGX0ZMQUdTKSA/ICJhbmQgZmlsZSBmbGFncyAiIDogIiIp Ow0KKwkJCUZBSUxFRDsNCiAJCQljb250aW51ZTsNCiAJCX0NCi0JCWlmIChj aG1vZChwYXRoLCBwLT5zdF9tb2RlKSkNCisJCWlmIChjaG1vZChwYXRoLCBw LT5zdF9tb2RlKSkgew0KIAkJCSh2b2lkKXByaW50ZigiJXM6IHBlcm1pc3Np b25zIG5vdCBzZXQ6ICVzXG4iLA0KIAkJCSAgICBwYXRoLCBzdHJlcnJvcihl cnJubykpOw0KKwkJCUZBSUxFRDsNCisJCX0NCiAJCWlmICgocC0+ZmxhZ3Mg JiBGX0ZMQUdTKSAmJiBwLT5zdF9mbGFncyAmJg0KLQkJICAgIGNoZmxhZ3Mo cGF0aCwgcC0+c3RfZmxhZ3MpKQ0KKwkJICAgIGNoZmxhZ3MocGF0aCwgcC0+ c3RfZmxhZ3MpKSB7DQogCQkJKHZvaWQpcHJpbnRmKCIlczogZmlsZSBmbGFn cyBub3Qgc2V0OiAlc1xuIiwNCiAJCQkgICAgcGF0aCwgc3RyZXJyb3IoZXJy bm8pKTsNCisJCQlGQUlMRUQ7DQorCQl9DQogCX0NCiB9DQo= --0-793760758-1015716649=:11778-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message