From owner-freebsd-hackers Sat Dec 1 0:24:48 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from warez.scriptkiddie.org (uswest-dsl-142-38.cortland.com [209.162.142.38]) by hub.freebsd.org (Postfix) with ESMTP id 2FAF937B416 for ; Sat, 1 Dec 2001 00:24:36 -0800 (PST) Received: from [192.168.69.11] (unknown [192.168.69.11]) by warez.scriptkiddie.org (Postfix) with ESMTP id ACDCA62D01 for ; Sat, 1 Dec 2001 00:24:35 -0800 (PST) Date: Sat, 1 Dec 2001 00:24:52 -0800 (PST) From: Lamont Granquist To: Subject: another global LD_PRELOAD patch for rtld-elf In-Reply-To: <20011130102928.E30981@iguana.aciri.org> Message-ID: <20011201001248.J72815-200000@coredump.scriptkiddie.org> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-858320923-1007195092=:72815" 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-858320923-1007195092=:72815 Content-Type: TEXT/PLAIN; charset=US-ASCII this adds a -p option to ldconfig so you can do something like: ldconfig -p /usr/local/lib/libsafe.so to set a preload, and: ldconfig -pm /usr/local/lib/libsafe.so to merge one. the major problem i know of with this patch is that setting a preload ELF library will hose your ability to run linux binaries. also, you probably need to: cp /usr/src/include/elf-hints.h /usr/include/elf-hints.h initially in order to build (is this indicative of larger build issues involved with installed include files being selected before the one in the source tree?) --0-858320923-1007195092=:72815 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=rtld-elf-patch-2 Content-Transfer-Encoding: BASE64 Content-ID: <20011201002452.F72815@coredump.scriptkiddie.org> Content-Description: Content-Disposition: attachment; filename=rtld-elf-patch-2 LS0tIGluY2x1ZGUvZWxmLWhpbnRzLmh+CUZyaSBOb3YgMzAgMjM6MTA6MTIg MjAwMQ0KKysrIGluY2x1ZGUvZWxmLWhpbnRzLmgJRnJpIE5vdiAzMCAyMzox MToxNSAyMDAxDQpAQCAtNDAsNyArNDAsMTAgQEANCiAJdV9pbnQzMl90CWRp cmxpc3Q7CS8qIE9mZnNldCBvZiBkaXJlY3RvcnkgbGlzdCBpbg0KIAkJCQkJ ICAgc3RyaW5nIHRhYmxlICovDQogCXVfaW50MzJfdAlkaXJsaXN0bGVuOwkv KiBzdHJsZW4oZGlybGlzdCkgKi8NCi0JdV9pbnQzMl90CXNwYXJlWzI2XTsJ LyogUm9vbSBmb3IgZXhwYW5zaW9uICovDQorCXVfaW50MzJfdAlwcmVsb2Fk bGlzdDsJLyogT2Zmc2V0IG9mIHByZWxvYWQgbGlzdCBpbiANCisJCQkJCSAg IHN0cmluZyB0YWJsZSAqLw0KKwl1X2ludDMyX3QJcHJlbG9hZGxpc3RsZW47 IC8qIHN0cmxlbihwcmVsb2FkbGlzdCkgKi8NCisJdV9pbnQzMl90CXNwYXJl WzI0XTsJLyogUm9vbSBmb3IgZXhwYW5zaW9uICovDQogfTsNCiANCiAjZGVm aW5lIEVMRkhJTlRTX01BR0lDCTB4NzQ2ZTY4NDUNCi0tLSBsaWJleGVjL3J0 bGQtZWxmL3J0bGQuY34JRnJpIE5vdiAzMCAyMzoxMDo1NCAyMDAxDQorKysg bGliZXhlYy9ydGxkLWVsZi9ydGxkLmMJRnJpIE5vdiAzMCAyMzoxMTowMiAy MDAxDQpAQCAtNTIsOCArNTIsMTAgQEANCiAjaW5jbHVkZSAiZGVidWcuaCIN CiAjaW5jbHVkZSAicnRsZC5oIg0KIA0KLSNkZWZpbmUgRU5EX1NZTQkJIl9l bmQiDQotI2RlZmluZSBQQVRIX1JUTEQJIi91c3IvbGliZXhlYy9sZC1lbGYu c28uMSINCisjZGVmaW5lIEVORF9TWU0JCQkiX2VuZCINCisjZGVmaW5lIFBB VEhfUlRMRAkJIi91c3IvbGliZXhlYy9sZC1lbGYuc28uMSINCisjZGVmaW5l IEhJTlRfTElCUkFSWV9QQVRICTB4MDENCisjZGVmaW5lIEhJTlRfUFJFTE9B RAkJMHgwMg0KIA0KIC8qIFR5cGVzLiAqLw0KIHR5cGVkZWYgdm9pZCAoKmZ1 bmNfcHRyX3R5cGUpKCk7DQpAQCAtODAsNyArODIsNyBAQA0KIHN0YXRpYyB2 b2lkIGVycm1zZ19yZXN0b3JlKGNoYXIgKik7DQogc3RhdGljIGNoYXIgKmVy cm1zZ19zYXZlKHZvaWQpOw0KIHN0YXRpYyBjaGFyICpmaW5kX2xpYnJhcnko Y29uc3QgY2hhciAqLCBjb25zdCBPYmpfRW50cnkgKik7DQotc3RhdGljIGNv bnN0IGNoYXIgKmdldGhpbnRzKHZvaWQpOw0KK3N0YXRpYyBjaGFyICpnZXRo aW50cyhpbnQpOw0KIHN0YXRpYyB2b2lkIGluaXRfZGFnKE9ial9FbnRyeSAq KTsNCiBzdGF0aWMgdm9pZCBpbml0X2RhZzEoT2JqX0VudHJ5ICpyb290LCBP YmpfRW50cnkgKm9iaiwgRG9uZUxpc3QgKik7DQogc3RhdGljIHZvaWQgaW5p dF9ydGxkKGNhZGRyX3QpOw0KQEAgLTkxLDcgKzkzLDcgQEANCiBzdGF0aWMg dm9pZCBsaW5rbWFwX2FkZChPYmpfRW50cnkgKik7DQogc3RhdGljIHZvaWQg bGlua21hcF9kZWxldGUoT2JqX0VudHJ5ICopOw0KIHN0YXRpYyBpbnQgbG9h ZF9uZWVkZWRfb2JqZWN0cyhPYmpfRW50cnkgKik7DQotc3RhdGljIGludCBs b2FkX3ByZWxvYWRfb2JqZWN0cyh2b2lkKTsNCitzdGF0aWMgaW50IGxvYWRf cHJlbG9hZF9vYmplY3RzKGNoYXIgKik7DQogc3RhdGljIE9ial9FbnRyeSAq bG9hZF9vYmplY3QoY2hhciAqKTsNCiBzdGF0aWMgdm9pZCBsb2NrX2NoZWNr KHZvaWQpOw0KIHN0YXRpYyBPYmpfRW50cnkgKm9ial9mcm9tX2FkZHIoY29u c3Qgdm9pZCAqKTsNCkBAIC0zNTksNyArMzYxLDkgQEANCiAgICAgc3ltX3pl cm8uc3Rfc2huZHggPSBTSE5fQUJTOw0KIA0KICAgICBkYmcoImxvYWRpbmcg TERfUFJFTE9BRCBsaWJyYXJpZXMiKTsNCi0gICAgaWYgKGxvYWRfcHJlbG9h ZF9vYmplY3RzKCkgPT0gLTEpDQorICAgIGlmIChsb2FkX3ByZWxvYWRfb2Jq ZWN0cyhsZF9wcmVsb2FkKSA9PSAtMSkNCisJZGllKCk7DQorICAgIGlmIChs b2FkX3ByZWxvYWRfb2JqZWN0cyhnZXRoaW50cyhISU5UX1BSRUxPQUQpKSA9 PSAtMSkNCiAJZGllKCk7DQogICAgIHByZWxvYWRfdGFpbCA9IG9ial90YWls Ow0KIA0KQEAgLTgwNSw3ICs4MDksNyBAQA0KICAgICBpZiAoKHJlZm9iaiAh PSBOVUxMICYmDQogICAgICAgKHBhdGhuYW1lID0gc2VhcmNoX2xpYnJhcnlf cGF0aChuYW1lLCByZWZvYmotPnJwYXRoKSkgIT0gTlVMTCkgfHwNCiAgICAg ICAocGF0aG5hbWUgPSBzZWFyY2hfbGlicmFyeV9wYXRoKG5hbWUsIGxkX2xp YnJhcnlfcGF0aCkpICE9IE5VTEwgfHwNCi0gICAgICAocGF0aG5hbWUgPSBz ZWFyY2hfbGlicmFyeV9wYXRoKG5hbWUsIGdldGhpbnRzKCkpKSAhPSBOVUxM IHx8DQorICAgICAgKHBhdGhuYW1lID0gc2VhcmNoX2xpYnJhcnlfcGF0aChu YW1lLCBnZXRoaW50cyhISU5UX0xJQlJBUllfUEFUSCkpKSAhPSBOVUxMIHx8 DQogICAgICAgKHBhdGhuYW1lID0gc2VhcmNoX2xpYnJhcnlfcGF0aChuYW1l LCBTVEFOREFSRF9MSUJSQVJZX1BBVEgpKSAhPSBOVUxMKQ0KIAlyZXR1cm4g cGF0aG5hbWU7DQogDQpAQCAtODczLDM4ICs4NzcsNTQgQEANCiAgKiBuZWNl c3NhcnkuICBSZXR1cm5zIE5VTEwgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdp dGggdGhlIGhpbnRzIGZpbGUsDQogICogb3IgaWYgdGhlIHNlYXJjaCBwYXRo IHRoZXJlIGlzIGVtcHR5Lg0KICAqLw0KLXN0YXRpYyBjb25zdCBjaGFyICoN Ci1nZXRoaW50cyh2b2lkKQ0KK3N0YXRpYyBjaGFyICoNCitnZXRoaW50cyhp bnQgaGludGZsYWcpDQogew0KLSAgICBzdGF0aWMgY2hhciAqaGludHM7DQor ICAgIHN0YXRpYyBjaGFyICpwcmVsb2FkOw0KKyAgICBzdGF0aWMgY2hhciAq bGlicmFyeV9wYXRoOw0KIA0KLSAgICBpZiAoaGludHMgPT0gTlVMTCkgew0K KyAgICBpZiAoKGxpYnJhcnlfcGF0aCA9PSBOVUxMKSB8fCAocHJlbG9hZCA9 PSBOVUxMKSkgew0KIAlpbnQgZmQ7DQogCXN0cnVjdCBlbGZoaW50c19oZHIg aGRyOw0KIAljaGFyICpwOw0KIA0KIAkvKiBLZWVwIGZyb20gdHJ5aW5nIGFn YWluIGluIGNhc2UgdGhlIGhpbnRzIGZpbGUgaXMgYmFkLiAqLw0KLQloaW50 cyA9ICIiOw0KKwlsaWJyYXJ5X3BhdGggPSAiIjsNCisJcHJlbG9hZCA9ICIi Ow0KIA0KIAlpZiAoKGZkID0gb3BlbihfUEFUSF9FTEZfSElOVFMsIE9fUkRP TkxZKSkgPT0gLTEpDQogCSAgICByZXR1cm4gTlVMTDsNCiAJaWYgKHJlYWQo ZmQsICZoZHIsIHNpemVvZiBoZHIpICE9IHNpemVvZiBoZHIgfHwNCiAJICBo ZHIubWFnaWMgIT0gRUxGSElOVFNfTUFHSUMgfHwNCiAJICBoZHIudmVyc2lv biAhPSAxKSB7DQotCSAgICBjbG9zZShmZCk7DQotCSAgICByZXR1cm4gTlVM TDsNCisJICAgIGdvdG8gY2xlYW51cDsNCiAJfQ0KIAlwID0geG1hbGxvYyho ZHIuZGlybGlzdGxlbiArIDEpOw0KIAlpZiAobHNlZWsoZmQsIGhkci5zdHJ0 YWIgKyBoZHIuZGlybGlzdCwgU0VFS19TRVQpID09IC0xIHx8DQogCSAgcmVh ZChmZCwgcCwgaGRyLmRpcmxpc3RsZW4gKyAxKSAhPSBoZHIuZGlybGlzdGxl biArIDEpIHsNCiAJICAgIGZyZWUocCk7DQotCSAgICBjbG9zZShmZCk7DQot CSAgICByZXR1cm4gTlVMTDsNCisJICAgIGdvdG8gY2xlYW51cDsNCiAJfQ0K LQloaW50cyA9IHA7DQorCWxpYnJhcnlfcGF0aCA9IHA7DQorCXAgPSB4bWFs bG9jKGhkci5wcmVsb2FkbGlzdGxlbiArIDEpOw0KKwlpZiAoaGRyLnByZWxv YWRsaXN0bGVuID09IDAgfHwNCisJICBsc2VlayhmZCwgaGRyLnN0cnRhYiAr IGhkci5wcmVsb2FkbGlzdCwgU0VFS19TRVQpID09IC0xIHx8DQorCSAgcmVh ZChmZCwgcCwgaGRyLnByZWxvYWRsaXN0bGVuICsgMSkgIT0gaGRyLnByZWxv YWRsaXN0bGVuICsgMSkgew0KKwkgICAgZnJlZShwKTsNCisJICAgIGdvdG8g Y2xlYW51cDsNCisJfQ0KKwlwcmVsb2FkID0gcDsNCitjbGVhbnVwOg0KIAlj bG9zZShmZCk7DQogICAgIH0NCi0gICAgcmV0dXJuIGhpbnRzWzBdICE9ICdc MCcgPyBoaW50cyA6IE5VTEw7DQorICAgIHN3aXRjaCAoaGludGZsYWcpIHsN CisJY2FzZSBISU5UX0xJQlJBUllfUEFUSDoNCisgICAgICAgICAgcmV0dXJu IGxpYnJhcnlfcGF0aFswXSAhPSAnXDAnID8gbGlicmFyeV9wYXRoIDogTlVM TDsNCisJY2FzZSBISU5UX1BSRUxPQUQ6DQorICAgICAgICAgIHJldHVybiBw cmVsb2FkWzBdICE9ICdcMCcgPyBwcmVsb2FkIDogTlVMTDsNCisJZGVmYXVs dDoNCisJICByZXR1cm4gTlVMTDsNCisgICAgfQ0KIH0NCiANCiBzdGF0aWMg dm9pZA0KQEAgLTEwNzcsOSArMTA5Nyw4IEBADQogfQ0KIA0KIHN0YXRpYyBp bnQNCi1sb2FkX3ByZWxvYWRfb2JqZWN0cyh2b2lkKQ0KK2xvYWRfcHJlbG9h ZF9vYmplY3RzKGNoYXIgKnApDQogew0KLSAgICBjaGFyICpwID0gbGRfcHJl bG9hZDsNCiAgICAgc3RhdGljIGNvbnN0IGNoYXIgZGVsaW1bXSA9ICIgXHQ6 OyI7DQogDQogICAgIGlmIChwID09IE5VTEwpDQotLS0gc2Jpbi9sZGNvbmZp Zy9sZGNvbmZpZy5jfglGcmkgTm92IDMwIDIzOjEwOjI5IDIwMDENCisrKyBz YmluL2xkY29uZmlnL2xkY29uZmlnLmMJRnJpIE5vdiAzMCAyMzoxMTozMyAy MDAxDQpAQCAtNzEsNiArNzEsNyBAQA0KIHN0YXRpYyBpbnQJCQlqdXN0cmVh ZDsNCiBzdGF0aWMgaW50CQkJbWVyZ2U7DQogc3RhdGljIGludAkJCXJlc2Nh bjsNCitzdGF0aWMgaW50CQkJcHJlbG9hZDsNCiBzdGF0aWMgY2hhcgkJCSpo aW50c19maWxlOw0KIA0KIHN0cnVjdCBzaGxpYl9saXN0IHsNCkBAIC0xMTcs NyArMTE4LDcgQEANCiAJaGludHNfZmlsZSA9IGlzX2FvdXQgPyBfUEFUSF9M RF9ISU5UUyA6IF9QQVRIX0VMRl9ISU5UUzsNCiAJaWYgKGFyZ2MgPT0gMSkN CiAJCXJlc2NhbiA9IDE7DQotCWVsc2Ugd2hpbGUoKGMgPSBnZXRvcHQoYXJn YywgYXJndiwgIlJmOmltcnN2IikpICE9IC0xKSB7DQorCWVsc2Ugd2hpbGUo KGMgPSBnZXRvcHQoYXJnYywgYXJndiwgIlJmOmltcnN2cCIpKSAhPSAtMSkg ew0KIAkJc3dpdGNoIChjKSB7DQogCQljYXNlICdSJzoNCiAJCQlyZXNjYW4g PSAxOw0KQEAgLTE0MCw2ICsxNDEsOSBAQA0KIAkJY2FzZSAndic6DQogCQkJ dmVyYm9zZSA9IDE7DQogCQkJYnJlYWs7DQorCQljYXNlICdwJzoNCisJCQlw cmVsb2FkID0gMTsNCisJCQlicmVhazsNCiAJCWRlZmF1bHQ6DQogCQkJdXNh Z2UoKTsNCiAJCQlicmVhazsNCkBAIC0xNTAsOCArMTU0LDEyIEBADQogCQlp ZiAoanVzdHJlYWQpDQogCQkJbGlzdF9lbGZfaGludHMoaGludHNfZmlsZSk7 DQogCQllbHNlDQotCQkJdXBkYXRlX2VsZl9oaW50cyhoaW50c19maWxlLCBh cmdjIC0gb3B0aW5kLA0KLQkJCSAgICBhcmd2ICsgb3B0aW5kLCBtZXJnZSB8 fCByZXNjYW4pOw0KKwkJCWlmIChwcmVsb2FkKQ0KKwkJCQl1cGRhdGVfZWxm X3ByZWxvYWRzKGhpbnRzX2ZpbGUsIGFyZ2MgLSBvcHRpbmQsDQorCQkJCSAg ICBhcmd2ICsgb3B0aW5kLCBtZXJnZSB8fCByZXNjYW4pOw0KKwkJCWVsc2UN CisJCQkJdXBkYXRlX2VsZl9kaXJzKGhpbnRzX2ZpbGUsIGFyZ2MgLSBvcHRp bmQsDQorCQkJCSAgICBhcmd2ICsgb3B0aW5kLCBtZXJnZSB8fCByZXNjYW4p Ow0KIAkJcmV0dXJuIDA7DQogCX0NCiANCi0tLSBzYmluL2xkY29uZmlnL2xk Y29uZmlnLmh+CUZyaSBOb3YgMzAgMjM6MTA6MjUgMjAwMQ0KKysrIHNiaW4v bGRjb25maWcvbGRjb25maWcuaAlGcmkgTm92IDMwIDIzOjExOjMzIDIwMDEN CkBAIC0zNSw3ICszNSw4IEBADQogDQogX19CRUdJTl9ERUNMUw0KIHZvaWQJ bGlzdF9lbGZfaGludHMgX19QKChjb25zdCBjaGFyICopKTsNCi12b2lkCXVw ZGF0ZV9lbGZfaGludHMgX19QKChjb25zdCBjaGFyICosIGludCwgY2hhciAq KiwgaW50KSk7DQordm9pZAl1cGRhdGVfZWxmX2RpcnMgX19QKChjb25zdCBj aGFyICosIGludCwgY2hhciAqKiwgaW50KSk7DQordm9pZAl1cGRhdGVfZWxm X3ByZWxvYWRzIF9fUCgoY29uc3QgY2hhciAqLCBpbnQsIGNoYXIgKiosIGlu dCkpOw0KIF9fRU5EX0RFQ0xTDQogDQogI2VuZGlmDQotLS0gc2Jpbi9sZGNv bmZpZy9lbGZoaW50cy5jfglGcmkgTm92IDMwIDIzOjEwOjM2IDIwMDENCisr KyBzYmluL2xkY29uZmlnL2VsZmhpbnRzLmMJRnJpIE5vdiAzMCAyMzo1NDo1 MiAyMDAxDQpAQCAtNDQsMTggKzQ0LDU2IEBADQogI2luY2x1ZGUgImxkY29u ZmlnLmgiDQogDQogI2RlZmluZSBNQVhESVJTCQkxMDI0CQkvKiBNYXhpbXVt IGRpcmVjdG9yaWVzIGluIHBhdGggKi8NCisjZGVmaW5lIE1BWFBSRUxPQURT CTEwMjQJCS8qIE1heGltdW0gcHJlbG9hZGVkIGxpYnJhcmllcyAqLw0KICNk ZWZpbmUgTUFYRklMRVNJWkUJKDE2KjEwMjQpCS8qIE1heGltdW0gaGludHMg ZmlsZSBzaXplICovDQogDQogc3RhdGljIHZvaWQJYWRkX2Rpcihjb25zdCBj aGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsNCitzdGF0aWMgdm9pZAlhZGRf cHJlbG9hZChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsNCiBz dGF0aWMgdm9pZAlyZWFkX2RpcnNfZnJvbV9maWxlKGNvbnN0IGNoYXIgKiwg Y29uc3QgY2hhciAqKTsNCiBzdGF0aWMgdm9pZAlyZWFkX2VsZl9oaW50cyhj b25zdCBjaGFyICosIGludCk7DQogc3RhdGljIHZvaWQJd3JpdGVfZWxmX2hp bnRzKGNvbnN0IGNoYXIgKik7DQogDQogc3RhdGljIGNvbnN0IGNoYXIJKmRp cnNbTUFYRElSU107DQorc3RhdGljIGNvbnN0IGNoYXIJKnByZWxvYWRzW01B WFBSRUxPQURTXTsNCiBzdGF0aWMgaW50CQkgbmRpcnM7DQorc3RhdGljIGlu dAkJIG5wcmVsb2FkczsNCiBpbnQJCQkgaW5zZWN1cmU7DQogDQogc3RhdGlj IHZvaWQNCithZGRfcHJlbG9hZChjb25zdCBjaGFyICpoaW50c2ZpbGUsIGNv bnN0IGNoYXIgKm5hbWUsIGludCB0cnVzdGVkKQ0KK3sNCisJc3RydWN0IHN0 YXQJc3RidWY7DQorCWludAkJaTsNCisNCisJaWYgKCF0cnVzdGVkICYmICFp bnNlY3VyZSkgew0KKwkJaWYgKHN0YXQobmFtZSwgJnN0YnVmKSA9PSAtMSkg ew0KKwkJCXdhcm4oIiVzIiwgbmFtZSk7DQorCQkJcmV0dXJuOw0KKwkJfQ0K KwkJaWYgKHN0YnVmLnN0X3VpZCAhPSAwKSB7DQorCQkJd2FybngoIiVzOiBp Z25vcmluZyBsaWJyYXJ5IG5vdCBvd25lZCBieSByb290IiwgbmFtZSk7DQor CQkJcmV0dXJuOw0KKwkJfQ0KKwkJaWYgKChzdGJ1Zi5zdF9tb2RlICYgU19J V09USCkgIT0gMCkgew0KKwkJCXdhcm54KCIlczogaWdub3Jpbmcgd29ybGQt d3JpdGFibGUgbGlicmFyeSIsIG5hbWUpOw0KKwkJCXJldHVybjsNCisJCX0N CisJCWlmICgoc3RidWYuc3RfbW9kZSAmIFNfSVdHUlApICE9IDApIHsNCisJ CQl3YXJueCgiJXM6IGlnbm9yaW5nIGdyb3VwLXdyaXRhYmxlIGRpcmVjdG9y eSIsIG5hbWUpOw0KKwkJCXJldHVybjsNCisJCX0NCisJfQ0KKw0KKwlmb3Ig KGkgPSAwOyAgaSA8IG5wcmVsb2FkczsgaSsrKQ0KKwkJaWYgKHN0cmNtcChw cmVsb2Fkc1tpXSwgbmFtZSkgPT0gMCkNCisJCQlyZXR1cm47DQorCWlmIChu cHJlbG9hZHMgPj0gTUFYUFJFTE9BRFMpDQorCQllcnJ4KDEsICJcIiVzXCI6 IFRvbyBtYW55IHByZWxvYWRlZCBsaWJyYXJpZXMiLCBoaW50c2ZpbGUpOw0K KwlwcmVsb2Fkc1tucHJlbG9hZHMrK10gPSBuYW1lOw0KK30NCisNCisNCitz dGF0aWMgdm9pZA0KIGFkZF9kaXIoY29uc3QgY2hhciAqaGludHNmaWxlLCBj b25zdCBjaGFyICpuYW1lLCBpbnQgdHJ1c3RlZCkNCiB7DQogCXN0cnVjdCBz dGF0IAlzdGJ1ZjsNCkBAIC05Nyw2ICsxMzUsMTAgQEANCiANCiAJcmVhZF9l bGZfaGludHMoaGludHNmaWxlLCAxKTsNCiAJcHJpbnRmKCIlczpcbiIsIGhp bnRzZmlsZSk7DQorCXByaW50ZigiXHRwcmVsb2FkZWQgbGlicmFyaWVzOiIp Ow0KKwlmb3IgKGkgPSAwOyAgaSA8IG5wcmVsb2FkczsgIGkrKykNCisJCXBy aW50ZigiJWMlcyIsIGkgPT0gMCA/ICcgJyA6ICc6JywgcHJlbG9hZHNbaV0p Ow0KKwlwcmludGYoIlxuIik7DQogCXByaW50ZigiXHRzZWFyY2ggZGlyZWN0 b3JpZXM6Iik7DQogCWZvciAoaSA9IDA7ICBpIDwgbmRpcnM7ICBpKyspDQog CQlwcmludGYoIiVjJXMiLCBpID09IDAgPyAnICcgOiAnOicsIGRpcnNbaV0p Ow0KQEAgLTE5Miw2ICsyMzQsNyBAQA0KIAlzdHJ1Y3QgZWxmaGludHNfaGRy CSpoZHI7DQogCWNoYXIJCQkqc3RydGFiOw0KIAljaGFyCQkJKmRpcmxpc3Q7 DQorCWNoYXIJCQkqcHJlbG9hZGxpc3Q7DQogCWNoYXIJCQkqcDsNCiANCiAJ aWYgKChmZCA9IG9wZW4oaGludHNmaWxlLCBPX1JET05MWSkpID09IC0xKSB7 DQpAQCAtMjIyLDE5ICsyNjUsNDcgQEANCiANCiAJc3RydGFiID0gKGNoYXIg KiltYXBiYXNlICsgaGRyLT5zdHJ0YWI7DQogCWRpcmxpc3QgPSBzdHJ0YWIg KyBoZHItPmRpcmxpc3Q7DQorCXByZWxvYWRsaXN0ID0gc3RydGFiICsgaGRy LT5wcmVsb2FkbGlzdDsNCiANCiAJaWYgKCpkaXJsaXN0ICE9ICdcMCcpDQog CQl3aGlsZSAoKHAgPSBzdHJzZXAoJmRpcmxpc3QsICI6IikpICE9IE5VTEwp DQogCQkJYWRkX2RpcihoaW50c2ZpbGUsIHAsIDEpOw0KK3ByaW50ZigiJWQg ZGlycyBsb2FkZWRcbiIsIG5kaXJzKTsNCisJaWYgKCpwcmVsb2FkbGlzdCAh PSAnXDAnICYmIGhkci0+cHJlbG9hZGxpc3RsZW4gIT0gMCkNCisJCXdoaWxl ICgocCA9IHN0cnNlcCgmcHJlbG9hZGxpc3QsICI6IikpICE9IE5VTEwpDQor CQkJYWRkX3ByZWxvYWQoaGludHNmaWxlLCBwLCAxKTsNCitwcmludGYoIiVk IHByZWxvYWRzIGxvYWRlZFxuIiwgbnByZWxvYWRzKTsNCiB9DQogDQogdm9p ZA0KLXVwZGF0ZV9lbGZfaGludHMoY29uc3QgY2hhciAqaGludHNmaWxlLCBp bnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCBtZXJnZSkNCit1cGRhdGVfZWxm X3ByZWxvYWRzKGNvbnN0IGNoYXIgKmhpbnRzZmlsZSwgaW50IGFyZ2MsIGNo YXIgKiphcmd2LCBpbnQgbWVyZ2UpDQogew0KIAlpbnQJaTsNCiANCi0JaWYg KG1lcmdlKQ0KLQkJcmVhZF9lbGZfaGludHMoaGludHNmaWxlLCAwKTsNCisJ cmVhZF9lbGZfaGludHMoaGludHNmaWxlLCAwKTsNCisJaWYgKCFtZXJnZSkN CisJCW5wcmVsb2FkcyA9IDA7DQorCWZvciAoaSA9IDA7ICBpIDwgYXJnYzsg IGkrKykgew0KKwkJc3RydWN0IHN0YXQJczsNCisNCisJCWlmIChzdGF0KGFy Z3ZbaV0sICZzKSA9PSAtMSkNCisJCQl3YXJuKCJ3YXJuaW5nOiAlcyIsIGFy Z3ZbaV0pOw0KKwkJZWxzZSBpZiAoIVNfSVNSRUcocy5zdF9tb2RlKSkNCisJ CQl3YXJuKCJub3QgYSByZWd1bGFyIGZpbGU6ICVzIiwgYXJndltpXSk7DQor CQllbHNlDQorCQkJYWRkX3ByZWxvYWQoaGludHNmaWxlLCBhcmd2W2ldLCAw KTsNCisJfQ0KKwl3cml0ZV9lbGZfaGludHMoaGludHNmaWxlKTsNCit9DQor DQordm9pZA0KK3VwZGF0ZV9lbGZfZGlycyhjb25zdCBjaGFyICpoaW50c2Zp bGUsIGludCBhcmdjLCBjaGFyICoqYXJndiwgaW50IG1lcmdlKQ0KK3sNCisJ aW50CWk7DQorcHJpbnRmKCJ1cGRhdGVfZWxmX2RpcnNcbiIpOwkNCisJcmVh ZF9lbGZfaGludHMoaGludHNmaWxlLCAwKTsNCisJaWYgKCFtZXJnZSkNCisJ CW5kaXJzID0gMDsNCiAJZm9yIChpID0gMDsgIGkgPCBhcmdjOyAgaSsrKSB7 DQogCQlzdHJ1Y3Qgc3RhdAlzOw0KIA0KQEAgLTI3MSw2ICszNDIsOCBAQA0K IAloZHIuc3RydGFiID0gc2l6ZW9mIGhkcjsNCiAJaGRyLnN0cnNpemUgPSAw Ow0KIAloZHIuZGlybGlzdCA9IDA7DQorCWhkci5wcmVsb2FkbGlzdGxlbiA9 IDA7DQorDQogCW1lbXNldChoZHIuc3BhcmUsIDAsIHNpemVvZiBoZHIuc3Bh cmUpOw0KIA0KIAkvKiBDb3VudCB1cCB0aGUgc2l6ZSBvZiB0aGUgc3RyaW5n IHRhYmxlLiAqLw0KQEAgLTI4MSw2ICszNTQsMTYgQEANCiAJfQ0KIAloZHIu ZGlybGlzdGxlbiA9IGhkci5zdHJzaXplOw0KIAloZHIuc3Ryc2l6ZSsrOwkv KiBGb3IgdGhlIG51bGwgdGVybWluYXRvciAqLw0KKwloZHIucHJlbG9hZGxp c3QgPSBoZHIuc3Ryc2l6ZTsNCisNCisJaWYgKG5wcmVsb2FkcyA+IDApIHsN CisJCWhkci5wcmVsb2FkbGlzdGxlbiArPSBzdHJsZW4ocHJlbG9hZHNbMF0p Ow0KKwkJZm9yIChpID0gMTsgIGkgPCBucHJlbG9hZHM7ICBpKyspDQorCQkJ aGRyLnByZWxvYWRsaXN0bGVuICs9IDEgKyBzdHJsZW4ocHJlbG9hZHNbaV0p Ow0KKwl9DQorDQorCWhkci5zdHJzaXplICs9IGhkci5wcmVsb2FkbGlzdGxl bjsNCisJaGRyLnN0cnNpemUrKzsJLyogRm9yIHRoZSBudWxsIHRlcm1pbmF0 b3IgKi8NCiANCiAJLyogV3JpdGUgdGhlIGhlYWRlci4gKi8NCiAJaWYgKGZ3 cml0ZSgmaGRyLCAxLCBzaXplb2YgaGRyLCBmcCkgIT0gc2l6ZW9mIGhkcikN CkBAIC0yOTMsNiArMzc2LDE3IEBADQogCQkJaWYgKGZwcmludGYoZnAsICI6 JXMiLCBkaXJzW2ldKSA8IDApDQogCQkJCWVycigxLCAiJXM6IHdyaXRlIGVy cm9yIiwgdGVtcG5hbWUpOw0KIAl9DQorCWlmIChwdXRjKCdcMCcsIGZwKSA9 PSBFT0YpDQorCQllcnIoMSwgIiVzOiB3cml0ZSBlcnJvciIsIHRlbXBuYW1l KTsNCisNCisJaWYgKG5wcmVsb2FkcyA+IDApIHsNCisJCWlmIChmcHV0cyhw cmVsb2Fkc1swXSwgZnApID09IEVPRikNCisJCQllcnIoMSwgIiVzOiB3cml0 ZSBlcnJvciIsIHRlbXBuYW1lKTsNCisJCWZvciAoaSA9IDE7ICBpIDwgbnBy ZWxvYWRzOyAgaSsrKQ0KKwkJCWlmIChmcHJpbnRmKGZwLCAiOiVzIiwgcHJl bG9hZHNbaV0pIDwgMCkNCisJCQkJZXJyKDEsICIlczogd3JpdGUgZXJyb3Ii LCB0ZW1wbmFtZSk7DQorCX0NCisNCiAJaWYgKHB1dGMoJ1wwJywgZnApID09 IEVPRiB8fCBmY2xvc2UoZnApID09IEVPRikNCiAJCWVycigxLCAiJXM6IHdy aXRlIGVycm9yIiwgdGVtcG5hbWUpOw0KIA0KLS0tIHNiaW4vbGRjb25maWcv bGRjb25maWcuOH4JU2F0IERlYyAgMSAwMDowNToyMCAyMDAxDQorKysgc2Jp bi9sZGNvbmZpZy9sZGNvbmZpZy44CVNhdCBEZWMgIDEgMDA6MDQ6MTMgMjAw MQ0KQEAgLTM4LDcgKzM4LDcgQEANCiAuU2ggU1lOT1BTSVMNCiAuTm0NCiAu T3AgRmwgYW91dCB8IEZsIGVsZg0KLS5PcCBGbCBSaW1yc3YNCisuT3AgRmwg UmltcnN2cA0KIC5PcCBGbCBmIEFyIGhpbnRzX2ZpbGUNCiAuT3AgQXIgZGly ZWN0b3J5IHwgQXINCiAuU2ggREVTQ1JJUFRJT04NCkBAIC0xMjgsNiArMTI4 LDggQEANCiBmb3Igc2hhcmVkIGxpYnJhcmllcy4NCiAuSXQgRmwgdg0KIFN3 aXRjaCBvbiB2ZXJib3NlIG1vZGUuDQorLkl0IEZsIHANCitUaGUgYXJndW1l bnRzIGFyZSB0YWtlbiB0byBiZSBsaWJyYXJpZXMgdG8gZ2xvYmFsbHkgcHJl bG9hZC4NCiAuRWwNCiAuU2ggU2VjdXJpdHkNCiBTcGVjaWFsIGNhcmUgbXVz dCBiZSB0YWtlbiB3aGVuIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmllcyBpbnRv IHRoZSBhZGRyZXNzDQo= --0-858320923-1007195092=:72815-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message