| home | help | back | first | fref | pref | prev | next | nref | lref | last | post |
Message-ID: <20050419123456.98228.qmail@web51510.mail.yahoo.com> Date: Tue, 19 Apr 2005 05:34:55 -0700 (PDT) From: Steve G <linux_4ever@yahoo.com> To: bugtraq@securityfocus.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-720694802-1113914095=:98221" --0-720694802-1113914095=:98221 Content-Type: text/plain; charset=us-ascii Content-Id: Content-Disposition: inline Hello, Since no fix has been posted, I've taken a stab at patching this. I think this patch solves all issues with chmod & chown. I would recommend people review this patch and apply since cpio can create suid files, devices, and directories with special permissions. I have a patch for coreutils mostly done and will post that soon. -Steve Grubb __________________________________ Do you Yahoo!? Make Yahoo! your home page http://www.yahoo.com/r/hs --0-720694802-1113914095=:98221 Content-Type: application/octet-stream; name="cpio-2.6-chmod.patch" Content-Transfer-Encoding: base64 Content-Description: cpio-2.6-chmod.patch Content-Disposition: attachment; filename="cpio-2.6-chmod.patch" ZGlmZiAtdXJiIGNwaW8tMi42Lm9yaWcvbGliL21rZGlyLmMgY3Bpby0yLjYv bGliL21rZGlyLmMKLS0tIGNwaW8tMi42Lm9yaWcvbGliL21rZGlyLmMJMjAw NS0wNC0xNyAwOTozNjoyNS4xODU2MTc1NjAgLTA0MDAKKysrIGNwaW8tMi42 L2xpYi9ta2Rpci5jCTIwMDUtMDQtMTcgMDk6MzY6NDYuNDI3Mzg4MzIwIC0w NDAwCkBAIC03NSwxNSArNzUsMTYgQEAKICAgICAgIHJldHVybiAtMTsJCS8q IGVycm5vIGlzIGFscmVhZHkgc2V0LiAgKi8KIAogICAgIGNhc2UgMDoJCQkv KiBDaGlsZCBwcm9jZXNzLiAgKi8KKyAgICB7CiAgICAgICAvKiBDaGVhcCBo YWNrIHRvIHNldCBtb2RlIG9mIG5ldyBkaXJlY3RvcnkuICBTaW5jZSB0aGlz IGNoaWxkCi0JIHByb2Nlc3MgaXMgZ29pbmcgYXdheSBhbnl3YXksIHdlIHph cCBpdHMgdW1hc2suCi0JIFRoaXMgd29uJ3Qgc3VmZmljZSB0byBzZXQgU1VJ RCwgU0dJRCwgZXRjLiBvbiB0aGlzCi0JIGRpcmVjdG9yeSwgc28gdGhlIHBh cmVudCBwcm9jZXNzIGNhbGxzIGNobW9kIGFmdGVyd2FyZC4gICovCisJIHBy b2Nlc3MgaXMgZ29pbmcgYXdheSBhbnl3YXksIHdlIHphcCBpdHMgdW1hc2su ICovCisgICAgICBjaGFyIG1vZGVbMTZdOwogICAgICAgc3RhdHVzID0gdW1h c2sgKDApOwkvKiBHZXQgY3VycmVudCB1bWFzay4gICovCiAgICAgICB1bWFz ayAoc3RhdHVzIHwgKDA3NzcgJiB+ZG1vZGUpKTsJLyogU2V0IGZvciBta2Rp ci4gICovCi0gICAgICBleGVjbCAoIi9iaW4vbWtkaXIiLCAibWtkaXIiLCBk cGF0aCwgKGNoYXIgKikgMCk7CisgICAgICBzbnByaW50Zihtb2RlLCBzaXpl b2YobW9kZSksICItbT0lbyIsIG1vZGUpOworICAgICAgZXhlY2wgKCIvYmlu L21rZGlyIiwgIm1rZGlyIiwgZHBhdGgsIG1vZGUsIChjaGFyICopIDApOwog ICAgICAgX2V4aXQgKDEpOwotCisgICAgfQogICAgIGRlZmF1bHQ6CQkJLyog UGFyZW50IHByb2Nlc3MuICAqLwogICAgICAgLyogV2FpdCBmb3Iga2lkIHRv IGZpbmlzaC4gICovCiAgICAgICB3aGlsZSAod2FpdCAoJnN0YXR1cykgIT0g Y3BpZCkKQEAgLTk1LDYgKzk2LDYgQEAKIAkgIGVycm5vID0gRUlPOwogCSAg cmV0dXJuIC0xOwogCX0KLSAgICAgIHJldHVybiBjaG1vZCAoZHBhdGgsIGRt b2RlKTsKKyAgICAgIHJldHVybiAwOwogICAgIH0KIH0KZGlmZiAtdXJiIGNw aW8tMi42Lm9yaWcvc3JjL2NvcHlpbi5jIGNwaW8tMi42L3NyYy9jb3B5aW4u YwotLS0gY3Bpby0yLjYub3JpZy9zcmMvY29weWluLmMJMjAwNS0wNC0xNyAw OTozNjoyNS4yMTk2MTIzOTIgLTA0MDAKKysrIGNwaW8tMi42L3NyYy9jb3B5 aW4uYwkyMDA1LTA0LTE3IDA5OjM2OjQ2LjQzMDM4Nzg2NCAtMDQwMApAQCAt Mzg5LDE5ICszODksMjAgQEAKIAkgIGNvbnRpbnVlOwogCX0KIAotICAgICAg aWYgKGNsb3NlIChvdXRfZmlsZV9kZXMpIDwgMCkKLQllcnJvciAoMCwgZXJy bm8sICIlcyIsIGQtPmhlYWRlci5jX25hbWUpOwotCiAgICAgICAvKiBGaWxl IGlzIG5vdyBjb3BpZWQ7IHNldCBhdHRyaWJ1dGVzLiAgKi8KICAgICAgIGlm ICghbm9fY2hvd25fZmxhZykKLQlpZiAoKGNob3duIChkLT5oZWFkZXIuY19u YW1lLAorCWlmICgoZmNob3duIChvdXRfZmlsZV9kZXMsCiAJCSAgICBzZXRf b3duZXJfZmxhZyA/IHNldF9vd25lciA6IGQtPmhlYWRlci5jX3VpZCwKIAkg ICAgICAgc2V0X2dyb3VwX2ZsYWcgPyBzZXRfZ3JvdXAgOiBkLT5oZWFkZXIu Y19naWQpIDwgMCkKIAkgICAgJiYgZXJybm8gIT0gRVBFUk0pCiAJICBlcnJv ciAoMCwgZXJybm8sICIlcyIsIGQtPmhlYWRlci5jX25hbWUpOwotICAgICAg LyogY2hvd24gbWF5IGhhdmUgdHVybmVkIG9mZiBzb21lIHBlcm1pc3Npb25z IHdlIHdhbnRlZC4gKi8KLSAgICAgIGlmIChjaG1vZCAoZC0+aGVhZGVyLmNf bmFtZSwgKGludCkgZC0+aGVhZGVyLmNfbW9kZSkgPCAwKQorICAgICAgLyog ZmNob3duIG1heSBoYXZlIHR1cm5lZCBvZmYgc29tZSBwZXJtaXNzaW9ucyB3 ZSB3YW50ZWQuICovCisgICAgICBpZiAoZmNobW9kIChvdXRfZmlsZV9kZXMs IChpbnQpIGQtPmhlYWRlci5jX21vZGUpIDwgMCkKIAllcnJvciAoMCwgZXJy bm8sICIlcyIsIGQtPmhlYWRlci5jX25hbWUpOworCisgICAgICBpZiAoY2xv c2UgKG91dF9maWxlX2RlcykgPCAwKQorCWVycm9yICgwLCBlcnJubywgIiVz IiwgZC0+aGVhZGVyLmNfbmFtZSk7CisKICAgICAgIGlmIChyZXRhaW5fdGlt ZV9mbGFnKQogCXsKIAkgIHRpbWVzLmFjdGltZSA9IHRpbWVzLm1vZHRpbWUg PSBkLT5oZWFkZXIuY19tdGltZTsKQEAgLTU1Nyw5ICs1NTgsNiBAQAogICAg ICAgd3JpdGUgKG91dF9maWxlX2RlcywgIiIsIDEpOwogICAgICAgZGVsYXll ZF9zZWVrX2NvdW50ID0gMDsKICAgICB9Ci0gIGlmIChjbG9zZSAob3V0X2Zp bGVfZGVzKSA8IDApCi0gICAgZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBmaWxl X2hkci0+Y19uYW1lKTsKLQogICBpZiAoYXJjaGl2ZV9mb3JtYXQgPT0gYXJm X2NyY2FzY2lpKQogICAgIHsKICAgICAgIGlmIChjcmMgIT0gZmlsZV9oZHIt PmNfY2hrc3VtKQpAQCAtNTY5LDE0ICs1NjcsMTcgQEAKIAogICAvKiBGaWxl IGlzIG5vdyBjb3BpZWQ7IHNldCBhdHRyaWJ1dGVzLiAgKi8KICAgaWYgKCFu b19jaG93bl9mbGFnKQotICAgIGlmICgoY2hvd24gKGZpbGVfaGRyLT5jX25h bWUsCisgICAgaWYgKChmY2hvd24gKG91dF9maWxlX2RlcywKIAkJc2V0X293 bmVyX2ZsYWcgPyBzZXRfb3duZXIgOiBmaWxlX2hkci0+Y191aWQsCiAJICAg c2V0X2dyb3VwX2ZsYWcgPyBzZXRfZ3JvdXAgOiBmaWxlX2hkci0+Y19naWQp IDwgMCkKIAkmJiBlcnJubyAhPSBFUEVSTSkKICAgICAgIGVycm9yICgwLCBl cnJubywgIiVzIiwgZmlsZV9oZHItPmNfbmFtZSk7CiAgIAogICAvKiBjaG93 biBtYXkgaGF2ZSB0dXJuZWQgb2ZmIHNvbWUgcGVybWlzc2lvbnMgd2Ugd2Fu dGVkLiAqLwotICBpZiAoY2htb2QgKGZpbGVfaGRyLT5jX25hbWUsIChpbnQp IGZpbGVfaGRyLT5jX21vZGUpIDwgMCkKKyAgaWYgKGZjaG1vZCAob3V0X2Zp bGVfZGVzLCAoaW50KSBmaWxlX2hkci0+Y19tb2RlKSA8IDApCisgICAgZXJy b3IgKDAsIGVycm5vLCAiJXMiLCBmaWxlX2hkci0+Y19uYW1lKTsKKyAgCisg IGlmIChjbG9zZSAob3V0X2ZpbGVfZGVzKSA8IDApCiAgICAgZXJyb3IgKDAs IGVycm5vLCAiJXMiLCBmaWxlX2hkci0+Y19uYW1lKTsKICAgCiAgIGlmIChy ZXRhaW5fdGltZV9mbGFnKQpAQCAtNjEwLDYgKzYxMSw4IEBACiAgIGludCBj ZGZfZmxhZzsgICAgICAgICAgICAgICAgIC8qIFRydWUgaWYgZmlsZSBpcyBh IENERi4gICovCiAgIGludCBjZGZfY2hhcjsgICAgICAgICAgICAgICAgIC8q IEluZGV4IG9mIGArJyBjaGFyIGluZGljYXRpbmcgYSBDREYuICAqLwogI2Vu ZGlmCisgIGludCBmZDsJCQkvKiBGaWxlIGRlc2NyaXB0b3IgZm9yIGZjaG1v ZCAqLworICBzdHJ1Y3Qgc3RhdCBmaWxlX3N0YXQ7CiAKICAgaWYgKHRvX3N0 ZG91dF9vcHRpb24pCiAgICAgcmV0dXJuOwpAQCAtNjYyLDcgKzY2NSw2IEBA CiAJIGNyZWF0ZV9hbGxfZGlyZWN0b3JpZXMoKSwgc28gdGhlIG1rZGlyIHdp bGwgZmFpbAogCSBiZWNhdXNlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLiAgSWYg dGhhdCdzIHRoZSBjYXNlLAogCSBkb24ndCBjb21wbGFpbiBhYm91dCBpdC4g ICovCi0gICAgICBzdHJ1Y3Qgc3RhdCBmaWxlX3N0YXQ7CiAgICAgICBpZiAo IChlcnJubyAhPSBFRVhJU1QpIHx8CiAJICAgKGxzdGF0IChmaWxlX2hkci0+ Y19uYW1lLCAmZmlsZV9zdGF0KSAhPSAwKSB8fAogCSAgICEoU19JU0RJUiAo ZmlsZV9zdGF0LnN0X21vZGUpICkgKQpAQCAtNjcxLDE4ICs2NzMsMzAgQEAK IAkgIHJldHVybjsKIAl9CiAgICAgfQorICBmZCA9IG9wZW4oZmlsZV9oZHIt PmNfbmFtZSwgT19OT0NUVFl8T19SRFdSKTsKKyAgaWYgKGZkIDwgMCkgewor ICAgIGVycm9yICgwLCBlcnJubywgIiVzIiwgZmlsZV9oZHItPmNfbmFtZSk7 CisgICAgcmV0dXJuOworICB9CisgIGlmICgoZnN0YXQoZmQsICZmaWxlX3N0 YXQpICE9IDApIHx8ICEoU19JU0RJUihmaWxlX3N0YXQuc3RfbW9kZSkpKSB7 CisgICAgZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBmaWxlX2hkci0+Y19uYW1l KTsKKyAgICBjbG9zZShmZCk7CisgICAgcmV0dXJuOworICB9CisgIAogICBp ZiAoIW5vX2Nob3duX2ZsYWcpCi0gICAgaWYgKChjaG93biAoZmlsZV9oZHIt PmNfbmFtZSwKKyAgICBpZiAoKGZjaG93biAoZmQsCiAJCXNldF9vd25lcl9m bGFnID8gc2V0X293bmVyIDogZmlsZV9oZHItPmNfdWlkLAogCQlzZXRfZ3Jv dXBfZmxhZyA/IHNldF9ncm91cCA6IGZpbGVfaGRyLT5jX2dpZCkgPCAwKQog CSYmIGVycm5vICE9IEVQRVJNKQogICAgICAgZXJyb3IgKDAsIGVycm5vLCAi JXMiLCBmaWxlX2hkci0+Y19uYW1lKTsKICAgLyogY2hvd24gbWF5IGhhdmUg dHVybmVkIG9mZiBzb21lIHBlcm1pc3Npb25zIHdlIHdhbnRlZC4gKi8KLSAg aWYgKGNobW9kIChmaWxlX2hkci0+Y19uYW1lLCAoaW50KSBmaWxlX2hkci0+ Y19tb2RlKSA8IDApCisgIGlmIChmY2htb2QgKGZkLCAoaW50KSBmaWxlX2hk ci0+Y19tb2RlKSA8IDApCiAgICAgZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBm aWxlX2hkci0+Y19uYW1lKTsKKyAgY2xvc2UoZmQpOwogI2lmZGVmIEhQVVhf Q0RGCiAgIGlmIChjZGZfZmxhZykKLSAgICAvKiBPbmNlIHdlICJoaWRlIiB0 aGUgZGlyZWN0b3J5IHdpdGggdGhlIGNobW9kKCksCisgICAgLyogT25jZSB3 ZSAiaGlkZSIgdGhlIGRpcmVjdG9yeSB3aXRoIHRoZSBmY2htb2QoKSwKICAg ICAgICB3ZSBoYXZlIHRvIHJlZmVyIHRvIGl0IHVzaW5nIG5hbWUrIGluc3Rl YWQgb2YgbmFtZS4gICovCiAgICAgZmlsZV9oZHItPmNfbmFtZSBbY2RmX2No YXJdID0gJysnOwogI2VuZGlmCkBAIC03MDIsNiArNzE2LDggQEAKIGNvcHlp bl9kZXZpY2Uoc3RydWN0IG5ld19jcGlvX2hlYWRlciogZmlsZV9oZHIpCiB7 CiAgIGludCByZXM7CQkJLyogUmVzdWx0IG9mIHZhcmlvdXMgZnVuY3Rpb24g Y2FsbHMuICAqLworICBpbnQgZmQ7ICAgICAgICAgICAgICAgICAgICAgICAv KiBGaWxlIGRlc2NyaXB0b3IgZm9yIGZjaG1vZCAqLworICBzdHJ1Y3Qgc3Rh dCBmaWxlX3N0YXQ7CiAKICAgaWYgKHRvX3N0ZG91dF9vcHRpb24pCiAgICAg cmV0dXJuOwpAQCAtNzU1LDE1ICs3NzEsMjggQEAKICAgICAgIGVycm9yICgw LCBlcnJubywgIiVzIiwgZmlsZV9oZHItPmNfbmFtZSk7CiAgICAgICByZXR1 cm47CiAgICAgfQorICBmZCA9IG9wZW4oZmlsZV9oZHItPmNfbmFtZSwgT19O T0NUVFl8T19SRFdSKTsKKyAgaWYgKGZkIDwgMCkgeworICAgIGVycm9yICgw LCBlcnJubywgIiVzIiwgZmlsZV9oZHItPmNfbmFtZSk7CisgICAgcmV0dXJu OworICB9CisgIGlmICgoZnN0YXQoZmQsICZmaWxlX3N0YXQpICE9IDApIHx8 ICEoU19JU0NIUihmaWxlX3N0YXQuc3RfbW9kZSkgfHwKKwkJU19JU0JMSyhm aWxlX3N0YXQuc3RfbW9kZSkgfHwgU19JU0ZJRk8oZmlsZV9zdGF0LnN0X21v ZGUpIHx8CisJCVNfSVNTT0NLKGZpbGVfc3RhdC5zdF9tb2RlKSkgKSB7Cisg ICAgZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBmaWxlX2hkci0+Y19uYW1lKTsK KyAgICBjbG9zZShmZCk7CisgICAgcmV0dXJuOworICB9CiAgIGlmICghbm9f Y2hvd25fZmxhZykKLSAgICBpZiAoKGNob3duIChmaWxlX2hkci0+Y19uYW1l LAorICAgIGlmICgoZmNob3duIChmZCwKIAkJc2V0X293bmVyX2ZsYWcgPyBz ZXRfb3duZXIgOiBmaWxlX2hkci0+Y191aWQsCiAJCXNldF9ncm91cF9mbGFn ID8gc2V0X2dyb3VwIDogZmlsZV9oZHItPmNfZ2lkKSA8IDApCiAJJiYgZXJy bm8gIT0gRVBFUk0pCiAgICAgICBlcnJvciAoMCwgZXJybm8sICIlcyIsIGZp bGVfaGRyLT5jX25hbWUpOwogICAvKiBjaG93biBtYXkgaGF2ZSB0dXJuZWQg b2ZmIHNvbWUgcGVybWlzc2lvbnMgd2Ugd2FudGVkLiAqLwotICBpZiAoY2ht b2QgKGZpbGVfaGRyLT5jX25hbWUsIGZpbGVfaGRyLT5jX21vZGUpIDwgMCkK KyAgaWYgKGZjaG1vZCAoZmQsIGZpbGVfaGRyLT5jX21vZGUpIDwgMCkKICAg ICBlcnJvciAoMCwgZXJybm8sICIlcyIsIGZpbGVfaGRyLT5jX25hbWUpOwor ICBjbG9zZShmZCk7CiAgIGlmIChyZXRhaW5fdGltZV9mbGFnKQogICAgIHsK ICAgICAgIHN0cnVjdCB1dGltYnVmIHRpbWVzOwkJLyogRm9yIHNldHRpbmcg ZmlsZSB0aW1lcy4gICovCmRpZmYgLXVyYiBjcGlvLTIuNi5vcmlnL3NyYy9j b3B5cGFzcy5jIGNwaW8tMi42L3NyYy9jb3B5cGFzcy5jCi0tLSBjcGlvLTIu Ni5vcmlnL3NyYy9jb3B5cGFzcy5jCTIwMDUtMDQtMTcgMDk6MzY6MjUuMjE5 NjEyMzkyIC0wNDAwCisrKyBjcGlvLTIuNi9zcmMvY29weXBhc3MuYwkyMDA1 LTA0LTE3IDA5OjM2OjQ2LjQzMTM4NzcxMiAtMDQwMApAQCAtMTgxLDE4ICsx ODEsMTkgQEAKIAkJfQogCSAgICAgIGlmIChjbG9zZSAoaW5fZmlsZV9kZXMp IDwgMCkKIAkJZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBpbnB1dF9uYW1lLmRz X3N0cmluZyk7Ci0JICAgICAgaWYgKGNsb3NlIChvdXRfZmlsZV9kZXMpIDwg MCkKLQkJZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBvdXRwdXRfbmFtZS5kc19z dHJpbmcpOwogCiAJICAgICAgLyogU2V0IHRoZSBhdHRyaWJ1dGVzIG9mIHRo ZSBuZXcgZmlsZS4gICovCiAJICAgICAgaWYgKCFub19jaG93bl9mbGFnKQot CQlpZiAoKGNob3duIChvdXRwdXRfbmFtZS5kc19zdHJpbmcsCisJCWlmICgo ZmNob3duIChvdXRfZmlsZV9kZXMsCiAJCQkgICAgc2V0X293bmVyX2ZsYWcg PyBzZXRfb3duZXIgOiBpbl9maWxlX3N0YXQuc3RfdWlkLAogCQkgICAgICBz ZXRfZ3JvdXBfZmxhZyA/IHNldF9ncm91cCA6IGluX2ZpbGVfc3RhdC5zdF9n aWQpIDwgMCkKIAkJICAgICYmIGVycm5vICE9IEVQRVJNKQogCQkgIGVycm9y ICgwLCBlcnJubywgIiVzIiwgb3V0cHV0X25hbWUuZHNfc3RyaW5nKTsKLQkg ICAgICAvKiBjaG93biBtYXkgaGF2ZSB0dXJuZWQgb2ZmIHNvbWUgcGVybWlz c2lvbnMgd2Ugd2FudGVkLiAqLwotCSAgICAgIGlmIChjaG1vZCAob3V0cHV0 X25hbWUuZHNfc3RyaW5nLCBpbl9maWxlX3N0YXQuc3RfbW9kZSkgPCAwKQor CSAgICAgIC8qIGZjaG93biBtYXkgaGF2ZSB0dXJuZWQgb2ZmIHNvbWUgcGVy bWlzc2lvbnMgd2Ugd2FudGVkLiAqLworCSAgICAgIGlmIChmY2htb2QgKG91 dF9maWxlX2RlcywgaW5fZmlsZV9zdGF0LnN0X21vZGUpIDwgMCkKKwkJZXJy b3IgKDAsIGVycm5vLCAiJXMiLCBvdXRwdXRfbmFtZS5kc19zdHJpbmcpOwor CSAgICAgIC8qIG5vdyB0aGF0IHdlIHNldCBwZXJtaXNzaW9ucywgY2xvc2Ug b3V0IGZpbGUgKi8KKwkgICAgICBpZiAoY2xvc2UgKG91dF9maWxlX2Rlcykg PCAwKQogCQllcnJvciAoMCwgZXJybm8sICIlcyIsIG91dHB1dF9uYW1lLmRz X3N0cmluZyk7CiAJICAgICAgaWYgKHJlc2V0X3RpbWVfZmxhZykKIAkJewpA QCAtMjIyLDYgKzIyMyw3IEBACiAJfQogICAgICAgZWxzZSBpZiAoU19JU0RJ UiAoaW5fZmlsZV9zdGF0LnN0X21vZGUpKQogCXsKKwkgIGludCBmZDsgICAg ICAgICAgICAgICAgICAgICAgIC8qIEZpbGUgZGVzY3JpcHRvciBmb3IgZmNo bW9kICovCiAjaWZkZWYgSFBVWF9DREYKIAkgIGNkZl9mbGFnID0gMDsKICNl bmRpZgpAQCAtMjY1LDE4ICsyNjcsMzEgQEAKIAkJICBjb250aW51ZTsKIAkJ fQogCSAgICB9CisJICBmZCA9IG9wZW4ob3V0cHV0X25hbWUuZHNfc3RyaW5n LCBPX05PQ1RUWXxPX1JEV1IpOworCSAgaWYgKGZkIDwgMCkgeworCSAgICBl cnJvciAoMCwgZXJybm8sICIlcyIsIG91dHB1dF9uYW1lLmRzX3N0cmluZyk7 CisJICAgIGNvbnRpbnVlOworCSAgfQorCSAgaWYgKChmc3RhdChmZCwgJm91 dF9maWxlX3N0YXQpICE9IDApIHx8IAorCQkhKFNfSVNESVIob3V0X2ZpbGVf c3RhdC5zdF9tb2RlKSkpIHsKKwkgICAgZXJyb3IgKDAsIGVycm5vLCAiJXMi LCBvdXRwdXRfbmFtZS5kc19zdHJpbmcpOworCSAgICBjbG9zZShmZCk7CisJ ICAgIGNvbnRpbnVlOworCSAgfQorCiAJICBpZiAoIW5vX2Nob3duX2ZsYWcp Ci0JICAgIGlmICgoY2hvd24gKG91dHB1dF9uYW1lLmRzX3N0cmluZywKKwkg ICAgaWYgKChmY2hvd24gKGZkLAogCQkJc2V0X293bmVyX2ZsYWcgPyBzZXRf b3duZXIgOiBpbl9maWxlX3N0YXQuc3RfdWlkLAogCQkgICAgICBzZXRfZ3Jv dXBfZmxhZyA/IHNldF9ncm91cCA6IGluX2ZpbGVfc3RhdC5zdF9naWQpIDwg MCkKIAkJJiYgZXJybm8gIT0gRVBFUk0pCiAJICAgICAgZXJyb3IgKDAsIGVy cm5vLCAiJXMiLCBvdXRwdXRfbmFtZS5kc19zdHJpbmcpOwogCSAgLyogY2hv d24gbWF5IGhhdmUgdHVybmVkIG9mZiBzb21lIHBlcm1pc3Npb25zIHdlIHdh bnRlZC4gKi8KLQkgIGlmIChjaG1vZCAob3V0cHV0X25hbWUuZHNfc3RyaW5n LCBpbl9maWxlX3N0YXQuc3RfbW9kZSkgPCAwKQorCSAgaWYgKGZjaG1vZCAo ZmQsIGluX2ZpbGVfc3RhdC5zdF9tb2RlKSA8IDApCiAJICAgIGVycm9yICgw LCBlcnJubywgIiVzIiwgb3V0cHV0X25hbWUuZHNfc3RyaW5nKTsKKwkgIGNs b3NlKGZkKTsKICNpZmRlZiBIUFVYX0NERgogCSAgaWYgKGNkZl9mbGFnKQot CSAgICAvKiBPbmNlIHdlICJoaWRlIiB0aGUgZGlyZWN0b3J5IHdpdGggdGhl IGNobW9kKCksCisJICAgIC8qIE9uY2Ugd2UgImhpZGUiIHRoZSBkaXJlY3Rv cnkgd2l0aCB0aGUgZmNobW9kKCksCiAJICAgICAgIHdlIGhhdmUgdG8gcmVm ZXIgdG8gaXQgdXNpbmcgbmFtZSsgaXNudGVhZCBvZiBuYW1lLiAgKi8KIAkg ICAgb3V0cHV0X25hbWUuZHNfc3RyaW5nIFtjZGZfY2hhcl0gPSAnKyc7CiAj ZW5kaWYKQEAgLTI5Nyw2ICszMTIsNyBAQAogI2VuZGlmCiAJICAgICAgIDAp CiAJeworCSAgaW50IGZkOwkvKiBGaWxlIGRlc2NyaXB0b3IgZm9yIGZjaG1v ZCAqLwogCSAgLyogQ2FuIHRoZSBjdXJyZW50IGZpbGUgYmUgbGlua2VkIHRv IGEgYW5vdGhlciBmaWxlPwogCSAgICAgU2V0IGxpbmtfbmFtZSB0byB0aGUg b3JpZ2luYWwgZmlsZSBuYW1lLiAgKi8KIAkgIGlmIChsaW5rX2ZsYWcpCkBA IC0zMjQsMTUgKzM0MCwzMCBAQAogCQkgIGVycm9yICgwLCBlcnJubywgIiVz Iiwgb3V0cHV0X25hbWUuZHNfc3RyaW5nKTsKIAkJICBjb250aW51ZTsKIAkJ fQorCSAgICAgICAgZmQgPSBvcGVuKG91dHB1dF9uYW1lLmRzX3N0cmluZywg T19OT0NUVFl8T19SRFdSKTsKKwkgICAgICAgIGlmIChmZCA8IDApIHsKKwkg ICAgICAgICAgZXJyb3IgKDAsIGVycm5vLCAiJXMiLCBvdXRwdXRfbmFtZS5k c19zdHJpbmcpOworCSAgICAgICAgICBjb250aW51ZTsKKwkgICAgICAgIH0K KwkgICAgICAgIGlmICgoZnN0YXQoZmQsICZvdXRfZmlsZV9zdGF0KSAhPSAw KSB8fCAKKwkJCSEoKFNfSVNDSFIob3V0X2ZpbGVfc3RhdC5zdF9tb2RlKSB8 fCAKKwkJCSAgIFNfSVNCTEsob3V0X2ZpbGVfc3RhdC5zdF9tb2RlKSB8fAor CQkJICAgU19JU0ZJRk8ob3V0X2ZpbGVfc3RhdC5zdF9tb2RlKSB8fAorCQkJ ICAgU19JU1NPQ0sob3V0X2ZpbGVfc3RhdC5zdF9tb2RlKSkpKSB7CisJICAg ICAgICAgICBlcnJvciAoMCwgZXJybm8sICIlcyIsIG91dHB1dF9uYW1lLmRz X3N0cmluZyk7CisJICAgICAgICAgICBjbG9zZShmZCk7CisJICAgICAgICAg ICBjb250aW51ZTsKKwkgICAgICAgIH0KIAkgICAgICBpZiAoIW5vX2Nob3du X2ZsYWcpCi0JCWlmICgoY2hvd24gKG91dHB1dF9uYW1lLmRzX3N0cmluZywK KwkJaWYgKChmY2hvd24gKGZkLAogCQkJICAgIHNldF9vd25lcl9mbGFnID8g c2V0X293bmVyIDogaW5fZmlsZV9zdGF0LnN0X3VpZCwKIAkJCSAgc2V0X2dy b3VwX2ZsYWcgPyBzZXRfZ3JvdXAgOiBpbl9maWxlX3N0YXQuc3RfZ2lkKSA8 IDApCiAJCSAgICAmJiBlcnJubyAhPSBFUEVSTSkKIAkJICBlcnJvciAoMCwg ZXJybm8sICIlcyIsIG91dHB1dF9uYW1lLmRzX3N0cmluZyk7Ci0JICAgICAg LyogY2hvd24gbWF5IGhhdmUgdHVybmVkIG9mZiBzb21lIHBlcm1pc3Npb25z IHdlIHdhbnRlZC4gKi8KLQkgICAgICBpZiAoY2htb2QgKG91dHB1dF9uYW1l LmRzX3N0cmluZywgaW5fZmlsZV9zdGF0LnN0X21vZGUpIDwgMCkKKwkgICAg ICAvKiBmY2hvd24gbWF5IGhhdmUgdHVybmVkIG9mZiBzb21lIHBlcm1pc3Np b25zIHdlIHdhbnRlZC4gKi8KKwkgICAgICBpZiAoZmNobW9kIChmZCwgaW5f ZmlsZV9zdGF0LnN0X21vZGUpIDwgMCkKIAkJZXJyb3IgKDAsIGVycm5vLCAi JXMiLCBvdXRwdXRfbmFtZS5kc19zdHJpbmcpOworCSAgICAgIGNsb3NlKGZk KTsKIAkgICAgICBpZiAocmV0YWluX3RpbWVfZmxhZykKIAkJewogCQkgIHRp bWVzLmFjdGltZSA9IHRpbWVzLm1vZHRpbWUgPSBpbl9maWxlX3N0YXQuc3Rf bXRpbWU7CmRpZmYgLXVyYiBjcGlvLTIuNi5vcmlnL3NyYy9tYWtlcGF0aC5j IGNwaW8tMi42L3NyYy9tYWtlcGF0aC5jCi0tLSBjcGlvLTIuNi5vcmlnL3Ny Yy9tYWtlcGF0aC5jCTIwMDUtMDQtMTcgMDk6MzY6MjUuMjIxNjEyMDg4IC0w NDAwCisrKyBjcGlvLTIuNi9zcmMvbWFrZXBhdGguYwkyMDA1LTA0LTE3IDA5 OjM3OjQ1LjM3MDQyNzYxNiAtMDQwMApAQCAtMTAwLDEyICsxMDAsMTQgQEAK ICAgICAgIGNoYXIgKnNsYXNoOwogICAgICAgaW50IHRtcF9tb2RlOwkJLyog SW5pdGlhbCBwZXJtcyBmb3IgbGVhZGluZyBkaXJzLiAgKi8KICAgICAgIGlu dCByZV9wcm90ZWN0OwkJLyogU2hvdWxkIGxlYWRpbmcgZGlycyBiZSB1bndy aXRhYmxlPyAqLworICAgICAgaW50IGZkOyAgICAgICAgICAgICAgICAgICAv KiBGaWxlIGRlc2NyaXB0b3IgZm9yIGZjaG1vZCAqLwogICAgICAgc3RydWN0 IHB0cl9saXN0CiAgICAgICB7CiAJY2hhciAqZGlybmFtZV9lbmQ7CiAJc3Ry dWN0IHB0cl9saXN0ICpuZXh0OwogICAgICAgfTsKICAgICAgIHN0cnVjdCBw dHJfbGlzdCAqcCwgKmxlYWRpbmdfZGlycyA9IE5VTEw7CisgICAgICBzdHJ1 Y3Qgc3RhdCB0c3RhdHM7ICAgICAgIC8qIHRlbXBvcmFyeSBzdGF0cyBmb3Ig ZmNobW9kICovCiAKICAgICAgIC8qIElmIGxlYWRpbmcgZGlyZWN0b3JpZXMg c2hvdWxkbid0IGJlIHdyaXRhYmxlIG9yIGV4ZWN1dGFibGUsCiAJIG9yIHNo b3VsZCBoYXZlIHNldFt1Z11pZCBvciBzdGlja3kgYml0cyBzZXQgYW5kIHdl IGFyZSBzZXR0aW5nCkBAIC0xNTcsOCArMTU5LDIwIEBACiAJCSAgaWYgKHZl cmJvc2VfZm10X3N0cmluZyAhPSBOVUxMKQogCQkgICAgZXJyb3IgKDAsIDAs IHZlcmJvc2VfZm10X3N0cmluZywgZGlycGF0aCk7CiAKKwkJICBmZCA9IG9w ZW4oZGlycGF0aCwgT19OT0NUVFl8T19SRFdSKTsKKwkJICBpZiAoZmQgPCAw KSB7CisJCSAgICBlcnJvciAoMCwgZXJybm8sICIlcyIsIGRpcnBhdGgpOwor CQkgICAgdW1hc2sgKG9sZG1hc2spOworCQkgICAgcmV0dXJuIDE7CisJCSAg fQorCQkgIGlmICgoZnN0YXQoZmQsICZ0c3RhdHMpICE9IDApIHx8ICEoU19J U0RJUih0c3RhdHMuc3RfbW9kZSkpKSB7CisJCSAgICBlcnJvciAoMCwgZXJy bm8sICIlcyIsIGRpcnBhdGgpOworCQkgICAgdW1hc2sgKG9sZG1hc2spOwor CQkgICAgY2xvc2UoZmQpOworCQkgICAgcmV0dXJuIDE7CisJCSAgfQogCQkg IGlmIChvd25lciAhPSAodWlkX3QpIC0xICYmIGdyb3VwICE9IChnaWRfdCkg LTEKLQkJICAgICAgJiYgY2hvd24gKGRpcnBhdGgsIG93bmVyLCBncm91cCkK KwkJICAgICAgJiYgZmNob3duIChmZCwgb3duZXIsIGdyb3VwKQogI2lmZGVm IEFGUwogCQkgICAgICAmJiBlcnJubyAhPSBFUEVSTQogI2VuZGlmCkBAIC0x ODIsMTAgKzE5NiwxMSBAQAogCQkJICBpdHMgaGlkZGVuL3NldHVpZCBiaXQu ICBBbHNvIGFkZCB0aGUgYCsnIGJhY2sgdG8KIAkJCSAgaXRzIG5hbWUgKHNp bmNlIG9uY2UgaXQncyAiaGlkZGVuIiB3ZSBtdXN0IHJlZmVyCiAJCQkgIHRv IGFzIGBuYW1lKycgaW5zdGVhZCBvZiBgbmFtZScpLiAgKi8KLQkJICAgICAg Y2htb2QgKGRpcnBhdGgsIDA0NzAwKTsKKwkJICAgICAgZmNobW9kIChmZCwg MDQ3MDApOwogCQkgICAgICAqKHNsYXNoIC0gMSkgPSAnKyc7CiAJCSAgICB9 CiAjZW5kaWYKKwkJICBjbG9zZShmZCk7CiAJCX0KIAkgICAgfQogCSAgZWxz ZSBpZiAoIVNfSVNESVIgKHN0YXRzLnN0X21vZGUpKQpAQCAtMjIyLDEwICsy MzcsMTkgQEAKIAl9CiAgICAgICBpZiAodmVyYm9zZV9mbXRfc3RyaW5nICE9 IE5VTEwpCiAJZXJyb3IgKDAsIDAsIHZlcmJvc2VfZm10X3N0cmluZywgZGly cGF0aCk7Ci0KKyAgICAgIGZkID0gb3BlbihkaXJwYXRoLCBPX05PQ1RUWXxP X1JEV1IpOworICAgICAgaWYgKGZkIDwgMCkgeworICAgICAgICBlcnJvciAo MCwgZXJybm8sICIlcyIsIGRpcnBhdGgpOworICAgICAgICByZXR1cm4gMTsK KyAgICAgIH0KKyAgICAgIGlmICgoZnN0YXQoZmQsICZ0c3RhdHMpICE9IDAp IHx8ICEoU19JU0RJUih0c3RhdHMuc3RfbW9kZSkpKSB7CisgICAgICAgIGVy cm9yICgwLCBlcnJubywgIiVzIiwgZGlycGF0aCk7CisgICAgICAgIGNsb3Nl KGZkKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgICB9CiAgICAgICBpZiAo b3duZXIgIT0gKHVpZF90KSAtMSAmJiBncm91cCAhPSAoZ2lkX3QpIC0xKQog CXsKLQkgIGlmIChjaG93biAoZGlycGF0aCwgb3duZXIsIGdyb3VwKQorCSAg aWYgKGZjaG93biAoZmQsIG93bmVyLCBncm91cCkKICNpZmRlZiBBRlMKIAkg ICAgICAmJiBlcnJubyAhPSBFUEVSTQogI2VuZGlmCkBAIC0yMzYsMTIgKzI2 MCwxMiBAQAogCSAgICB9CiAJfQogCSAgLyogY2hvd24gbWF5IGhhdmUgdHVy bmVkIG9mZiBzb21lIHBlcm1pc3Npb24gYml0cyB3ZSB3YW50ZWQuICAqLwot CSAgaWYgKChtb2RlICYgMDcwMDApICE9IDAgJiYgY2htb2QgKGRpcnBhdGgs IG1vZGUpKQorCSAgaWYgKChtb2RlICYgMDcwMDApICE9IDAgJiYgZmNobW9k IChmZCwgbW9kZSkpCiAJICAgIHsKIAkgICAgICBlcnJvciAoMCwgZXJybm8s ICIlcyIsIGRpcnBhdGgpOwogCSAgICAgIHJldHZhbCA9IDE7CiAJICAgIH0K LQorICAgICAgICBjbG9zZShmZCk7CiAgICAgICAvKiBJZiB0aGUgbW9kZSBm b3IgbGVhZGluZyBkaXJlY3RvcmllcyBkaWRuJ3QgaW5jbHVkZSBvd25lciAi d3giCiAJIHByaXZpbGVnZXMsIHdlIGhhdmUgdG8gcmVzZXQgdGhlaXIgcHJv dGVjdGlvbnMgdG8gdGhlIGNvcnJlY3QKIAkgdmFsdWUuICAqLwpAQCAtMjY1 LDcgKzI4OSw3IEBACiAgIGVsc2UKICAgICB7CiAgICAgICAvKiBXZSBnZXQg aGVyZSBpZiB0aGUgZW50aXJlIHBhdGggYWxyZWFkeSBleGlzdHMuICAqLwot CisgICAgICBpbnQgZmQ7CS8qIEZpbGUgZGVzY3JpcHRvciBmb3IgZmNobW9k ICovCiAgICAgICBpZiAoIVNfSVNESVIgKHN0YXRzLnN0X21vZGUpKQogCXsK IAkgIGVycm9yICgwLCAwLCBfKCJgJXMnIGV4aXN0cyBidXQgaXMgbm90IGEg ZGlyZWN0b3J5IiksIGRpcnBhdGgpOwpAQCAtMjczLDE0ICsyOTcsMjYgQEAK IAkgIHJldHVybiAxOwogCX0KIAotICAgICAgLyogY2hvd24gbXVzdCBwcmVj ZWRlIGNobW9kIGJlY2F1c2Ugb24gc29tZSBzeXN0ZW1zLAorICAgICAgZmQg PSBvcGVuKGRpcnBhdGgsIE9fTk9DVFRZfE9fUkRXUik7CisgICAgICBpZiAo ZmQgPCAwKSB7CisgICAgICAgIGVycm9yICgwLCBlcnJubywgIiVzIiwgZGly cGF0aCk7CisJdW1hc2sgKG9sZG1hc2spOworICAgICAgICByZXR1cm4gMTsK KyAgICAgIH0KKyAgICAgIGlmICgoZnN0YXQoZmQsICZ0c3RhdHMpICE9IDAp IHx8ICEoU19JU0RJUih0c3RhdHMuc3RfbW9kZSkpKSB7CisgICAgICAgIGVy cm9yICgwLCBlcnJubywgIiVzIiwgZGlycGF0aCk7CisJdW1hc2sgKG9sZG1h c2spOworICAgICAgICBjbG9zZShmZCk7CisgICAgICAgIHJldHVybiAxOwor ICAgICAgfQorICAgICAgLyogY2hvd24gbXVzdCBwcmVjZWRlIGZjaG1vZCBi ZWNhdXNlIG9uIHNvbWUgc3lzdGVtcywKIAkgY2hvd24gY2xlYXJzIHRoZSBz ZXRbdWddaWQgYml0cyBmb3Igbm9uLXN1cGVydXNlcnMsCiAJIHJlc3VsdGlu ZyBpbiBpbmNvcnJlY3QgcGVybWlzc2lvbnMuCiAJIE9uIFN5c3RlbSBWLCB1 c2VycyBjYW4gZ2l2ZSBhd2F5IGZpbGVzIHdpdGggY2hvd24gYW5kIHRoZW4g bm90Ci0JIGJlIGFibGUgdG8gY2htb2QgdGhlbS4gIFNvIGRvbid0IGdpdmUg ZmlsZXMgYXdheS4gICovCisJIGJlIGFibGUgdG8gZmNobW9kIHRoZW0uICBT byBkb24ndCBnaXZlIGZpbGVzIGF3YXkuICAqLwogCiAgICAgICBpZiAob3du ZXIgIT0gKHVpZF90KSAtMSAmJiBncm91cCAhPSAoZ2lkX3QpIC0xCi0JICAm JiBjaG93biAoZGlycGF0aCwgb3duZXIsIGdyb3VwKQorCSAgJiYgZmNob3du IChmZCwgb3duZXIsIGdyb3VwKQogI2lmZGVmIEFGUwogCSAgJiYgZXJybm8g IT0gRVBFUk0KICNlbmRpZgpAQCAtMjg5LDExICszMjUsMTIgQEAKIAkgIGVy cm9yICgwLCBlcnJubywgIiVzIiwgZGlycGF0aCk7CiAJICByZXR2YWwgPSAx OwogCX0KLSAgICAgIGlmIChjaG1vZCAoZGlycGF0aCwgbW9kZSkpCisgICAg ICBpZiAoZmNobW9kIChmZCwgbW9kZSkpCiAJewogCSAgZXJyb3IgKDAsIGVy cm5vLCAiJXMiLCBkaXJwYXRoKTsKIAkgIHJldHZhbCA9IDE7CiAJfQorICAg ICAgY2xvc2UoZmQpOwogICAgIH0KIAogICB1bWFzayAob2xkbWFzayk7Cg== --0-720694802-1113914095=:98221--
| home | help | back | first | fref | pref | prev | next | nref | lref | last | post |