From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Salyzyn Subject: [PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking Date: Wed, 31 Jul 2019 09:57:59 -0700 Message-ID: <20190731165803.4755-5-salyzyn@android.com> References: <20190731165803.4755-1-salyzyn@android.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190731165803.4755-1-salyzyn@android.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: cluster-devel-bounces@redhat.com Errors-To: cluster-devel-bounces@redhat.com Content-Type: text/plain; charset="macroman" To: linux-kernel@vger.kernel.org Cc: Latchesar Ionkov , Dave Kleikamp , jfs-discussion@lists.sourceforge.net, Randy Dunlap , linux-doc@vger.kernel.org, Martin Brandenburg , samba-technical@lists.samba.org, Dominique Martinet , Amir Goldstein , David Howells , Chris Mason , "David S . Miller" , Andreas Dilger , ocfs2-devel@oss.oracle.com, netdev@vger.kernel.org, Tyler Hicks , linux-afs@lists.infradead.org, Mike Marshall , linux-xfs@vger.kernel.org, Sage Weil , Jonathan Corbet , Richard Weinberger , Mark Fasheh , devel@lists.orangefs.org, Hugh Dickins , linux-security-module@vger Q2hlY2sgaW1wdXJlLCBvcGFxdWUsIG9yaWdpbiAmIG1ldGEgeGF0dHIgd2l0aCBubyBzZXBvbGlj eSBhdWRpdAoodXNpbmcgX192ZnNfZ2V0eGF0dHIpIHNpbmNlIHRoZXNlIG9wZXJhdGlvbnMgYXJl IGludGVybmFsIHRvCm92ZXJsYXlmcyBvcGVyYXRpb25zIGFuZCBkbyBub3QgZGlzY2xvc2UgYW55 IGRhdGEuICBUaGlzIGJlY2FtZQphbiBpc3N1ZSBmb3IgY3JlZGVudGlhbCBvdmVycmlkZSBvZmYg c2luY2Ugc3lzX2FkbWluIHdvdWxkIGhhdmUKYmVlbiByZXF1aXJlZCBieSB0aGUgY2FsbGVyOyB3 aGVyZWFzIHdvdWxkIGhhdmUgYmVlbiBpbmhlcmVudGx5CnByZXNlbnQgZm9yIHRoZSBjcmVhdG9y IHNpbmNlIGl0IHBlcmZvcm1lZCB0aGUgbW91bnQuCgpUaGlzIGlzIGEgY2hhbmdlIGluIG9wZXJh dGlvbnMgc2luY2Ugd2UgZG8gbm90IGNoZWNrIGluIHRoZSBuZXcKb3ZsX2RvX3Zmc19nZXR4YXR0 ciBmdW5jdGlvbiBpZiB0aGUgY3JlZGVudGlhbCBvdmVycmlkZSBpcyBvZmYgb3IKbm90LiAgUmVh c29uaW5nIGlzIHRoYXQgdGhlIHNlcG9saWN5IGNoZWNrIGlzIHVubmVjZXNzYXJ5IG92ZXJoZWFk LAplc3BlY2lhbGx5IHNpbmNlIHRoZSBjaGVjayBjYW4gYmUgZXhwZW5zaXZlLgoKQmVjYXVzZSBm b3Igb3ZlcnJpZGUgY3JlZGVudGlhbHMgb2ZmLCB0aGlzIGFmZmVjdHMgX2V2ZXJ5b25lXyB0aGF0 CnVuZGVybmVhdGggcGVyZm9ybXMgcHJpdmF0ZSB4YXR0ciBjYWxscyB3aXRob3V0IHRoZSBhcHBy b3ByaWF0ZQpzZXBvbGljeSBwZXJtaXNzaW9ucyBhbmQgc3lzX2FkbWluIGNhcGFiaWxpdHkuICBQ cm92aWRpbmcgYmxhbmtldApzdXBwb3J0IGZvciBzeXNfYWRtaW4gd291bGQgYmUgYmFkIGZvciBh bGwgcG9zc2libGUgY2FsbGVycy4KCkZvciB0aGUgb3ZlcnJpZGUgY3JlZGVudGlhbHMgb24sIHRo aXMgd2lsbCBhZmZlY3Qgb25seSB0aGUgbW91bnRlciwKc2hvdWxkIGl0IGxhY2sgc2Vwb2xpY3kg cGVybWlzc2lvbnMuIE5vdCBjb25zaWRlcmVkIGEgc2VjdXJpdHkKcHJvYmxlbSBzaW5jZSBtb3Vu dGluZyBieSBkZWZpbml0aW9uIGhhcyBzeXNfYWRtaW4gY2FwYWJpbGl0aWVzLApidXQgc2Vwb2xp Y3kgY29udGV4dHMgd291bGQgc3RpbGwgbmVlZCB0byBiZSBjcmFmdGVkLgoKSXQgc2hvdWxkIGJl IG5vdGVkIHRoYXQgdGhlcmUgaXMgcHJlY2VkZW5jZSwgX192ZnNfZ2V0eGF0dHIgaXMgdXNlZApp biBvdGhlciBmaWxlc3lzdGVtcyBmb3IgdGhlaXIgb3duIGludGVybmFsIHRydXN0ZWQgeGF0dHIg bWFuYWdlbWVudC4KClNpZ25lZC1vZmYtYnk6IE1hcmsgU2FseXp5biA8c2FseXp5bkBhbmRyb2lk LmNvbT4KQ2M6IE1pa2xvcyBTemVyZWRpIDxtaWtsb3NAc3plcmVkaS5odT4KQ2M6IEpvbmF0aGFu IENvcmJldCA8Y29yYmV0QGx3bi5uZXQ+CkNjOiBWaXZlayBHb3lhbCA8dmdveWFsQHJlZGhhdC5j b20+CkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpDYzogQW1p ciBHb2xkc3RlaW4gPGFtaXI3M2lsQGdtYWlsLmNvbT4KQ2M6IFJhbmR5IER1bmxhcCA8cmR1bmxh cEBpbmZyYWRlYWQub3JnPgpDYzogU3RlcGhlbiBTbWFsbGV5IDxzZHNAdHljaG8ubnNhLmdvdj4K Q2M6IGxpbnV4LXVuaW9uZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1kb2NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiBrZXJuZWwtdGVhbUBh bmRyb2lkLmNvbQpDYzogRXJpYyBWYW4gSGVuc2JlcmdlbiA8ZXJpY3ZoQGdtYWlsLmNvbT4KQ2M6 IExhdGNoZXNhciBJb25rb3YgPGx1Y2hvQGlvbmtvdi5uZXQ+CkNjOiBEb21pbmlxdWUgTWFydGlu ZXQgPGFzbWFkZXVzQGNvZGV3cmVjay5vcmc+CkNjOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0By ZWRoYXQuY29tPgpDYzogQ2hyaXMgTWFzb24gPGNsbUBmYi5jb20+CkNjOiBKb3NlZiBCYWNpayA8 am9zZWZAdG94aWNwYW5kYS5jb20+CkNjOiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5jb20+ CkNjOiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPgpDYzogU2FnZSBXZWlsIDxzYWdl QHJlZGhhdC5jb20+CkNjOiBJbHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IFN0 ZXZlIEZyZW5jaCA8c2ZyZW5jaEBzYW1iYS5vcmc+CkNjOiBUeWxlciBIaWNrcyA8dHloaWNrc0Bj YW5vbmljYWwuY29tPgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jb20+CkNjOiBUaGVvZG9yZSBU cydvIDx0eXRzb0BtaXQuZWR1PgpDYzogQW5kcmVhcyBEaWxnZXIgPGFkaWxnZXIua2VybmVsQGRp bGdlci5jYT4KQ2M6IEphZWdldWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBDaGFvIFl1 IDx5dWNoYW8wQGh1YXdlaS5jb20+CkNjOiBCb2IgUGV0ZXJzb24gPHJwZXRlcnNvQHJlZGhhdC5j b20+CkNjOiBBbmRyZWFzIEdydWVuYmFjaGVyIDxhZ3J1ZW5iYUByZWRoYXQuY29tPgpDYzogRGF2 aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgpDYzogUmljaGFyZCBXZWluYmVyZ2Vy IDxyaWNoYXJkQG5vZC5hdD4KQ2M6IERhdmUgS2xlaWthbXAgPHNoYWdneUBrZXJuZWwub3JnPgpD YzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IFRl anVuIEhlbyA8dGpAa2VybmVsLm9yZz4KQ2M6IFRyb25kIE15a2xlYnVzdCA8dHJvbmQubXlrbGVi dXN0QGhhbW1lcnNwYWNlLmNvbT4KQ2M6IEFubmEgU2NodW1ha2VyIDxhbm5hLnNjaHVtYWtlckBu ZXRhcHAuY29tPgpDYzogTWFyayBGYXNoZWggPG1hcmtAZmFzaGVoLmNvbT4KQ2M6IEpvZWwgQmVj a2VyIDxqbGJlY0BldmlscGxhbi5vcmc+CkNjOiBKb3NlcGggUWkgPGpvc2VwaC5xaUBsaW51eC5h bGliYWJhLmNvbT4KQ2M6IE1pa2UgTWFyc2hhbGwgPGh1YmNhcEBvbW5pYm9uZC5jb20+CkNjOiBN YXJ0aW4gQnJhbmRlbmJ1cmcgPG1hcnRpbkBvbW5pYm9uZC5jb20+CkNjOiBBbGV4YW5kZXIgVmly byA8dmlyb0B6ZW5pdi5saW51eC5vcmcudWs+CkNjOiBQaGlsbGlwIExvdWdoZXIgPHBoaWxsaXBA c3F1YXNoZnMub3JnLnVrPgpDYzogRGFycmljayBKLiBXb25nIDxkYXJyaWNrLndvbmdAb3JhY2xl LmNvbT4KQ2M6IGxpbnV4LXhmc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IEh1Z2ggRGlja2lucyA8aHVn aGRAZ29vZ2xlLmNvbT4KQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K Q2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBNYXRoaWV1 IE1hbGF0ZXJyZSA8bWFsYXRAZGViaWFuLm9yZz4KQ2M6IEVybmVzdG8gQS4gRmVybsOhbmRleiA8 ZXJuZXN0by5tbmQuZmVybmFuZGV6QGdtYWlsLmNvbT4KQ2M6IFZ5YWNoZXNsYXYgRHViZXlrbyA8 c2xhdmFAZHViZXlrby5jb20+CkNjOiB2OWZzLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKQ2M6IGxpbnV4LWFmc0BsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1idHJmc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1jaWZz QHZnZXIua2VybmVsLm9yZwpDYzogc2FtYmEtdGVjaG5pY2FsQGxpc3RzLnNhbWJhLm9yZwpDYzog ZWNyeXB0ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1leHQ0QHZnZXIua2VybmVsLm9yZwpD YzogbGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKQ2M6IGxpbnV4LWZzZGV2 ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjbHVzdGVyLWRldmVsQHJlZGhhdC5jb20KQ2M6IGxpbnV4 LW10ZEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBqZnMtZGlzY3Vzc2lvbkBsaXN0cy5zb3VyY2Vm b3JnZS5uZXQKQ2M6IGxpbnV4LW5mc0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IG9jZnMyLWRldmVsQG9z cy5vcmFjbGUuY29tCkNjOiBkZXZlbEBsaXN0cy5vcmFuZ2Vmcy5vcmcKQ2M6IHJlaXNlcmZzLWRl dmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBuZXRkZXZAdmdl ci5rZXJuZWwub3JnCkNjOiBsaW51eC1zZWN1cml0eS1tb2R1bGVAdmdlci5rZXJuZWwub3JnCkNj OiBzdGFibGVAdmdlci5rZXJuZWwub3JnICMgNC40LCA0LjksIDQuMTQgJiA0LjE5Ci0tLQp2MTMg LSByZWJhc2UgdG8gdXNlIF9fdmZzX2dldHhhdHRyIGZsYWdzIG9wdGlvbgoKdjEyIC0gcmViYXNl Cgp2MTEgLSBzd2l0Y2ggbmFtZSB0byBvdmxfZG9fdmZzX2dldHhhdHRyLCBmb3J0aWZ5IGNvbW1l bnQKCnYxMCAtIGFkZGVkIHRvIHBhdGNoIHNlcmllcwotLS0KIGZzL292ZXJsYXlmcy9uYW1laS5j ICAgICB8IDEyICsrKysrKystLS0tLQogZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIHwgIDIgKysK IGZzL292ZXJsYXlmcy91dGlsLmMgICAgICB8IDI1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0K IDMgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZnMvb3ZlcmxheWZzL25hbWVpLmMgYi9mcy9vdmVybGF5ZnMvbmFtZWkuYwppbmRl eCA5NzAyZjBkNTMwOWQuLmE0YTQ1MmM0ODlmYSAxMDA2NDQKLS0tIGEvZnMvb3ZlcmxheWZzL25h bWVpLmMKKysrIGIvZnMvb3ZlcmxheWZzL25hbWVpLmMKQEAgLTEwNiwxMCArMTA2LDExIEBAIGlu dCBvdmxfY2hlY2tfZmhfbGVuKHN0cnVjdCBvdmxfZmggKmZoLCBpbnQgZmhfbGVuKQogCiBzdGF0 aWMgc3RydWN0IG92bF9maCAqb3ZsX2dldF9maChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0 IGNoYXIgKm5hbWUpCiB7Ci0JaW50IHJlcywgZXJyOworCXNzaXplX3QgcmVzOworCWludCBlcnI7 CiAJc3RydWN0IG92bF9maCAqZmggPSBOVUxMOwogCi0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRy eSwgbmFtZSwgTlVMTCwgMCk7CisJcmVzID0gb3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5h bWUsIE5VTEwsIDApOwogCWlmIChyZXMgPCAwKSB7CiAJCWlmIChyZXMgPT0gLUVOT0RBVEEgfHwg cmVzID09IC1FT1BOT1RTVVBQKQogCQkJcmV0dXJuIE5VTEw7CkBAIC0xMjMsNyArMTI0LDcgQEAg c3RhdGljIHN0cnVjdCBvdmxfZmggKm92bF9nZXRfZmgoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj b25zdCBjaGFyICpuYW1lKQogCWlmICghZmgpCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwog Ci0JcmVzID0gdmZzX2dldHhhdHRyKGRlbnRyeSwgbmFtZSwgZmgsIHJlcyk7CisJcmVzID0gb3Zs X2RvX3Zmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIGZoLCByZXMpOwogCWlmIChyZXMgPCAwKQog CQlnb3RvIGZhaWw7CiAKQEAgLTE0MSwxMCArMTQyLDExIEBAIHN0YXRpYyBzdHJ1Y3Qgb3ZsX2Zo ICpvdmxfZ2V0X2ZoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqbmFtZSkKIAly ZXR1cm4gTlVMTDsKIAogZmFpbDoKLQlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5ZnM6IGZh aWxlZCB0byBnZXQgb3JpZ2luICglaSlcbiIsIHJlcyk7CisJcHJfd2Fybl9yYXRlbGltaXRlZCgi b3ZlcmxheWZzOiBmYWlsZWQgdG8gZ2V0IG9yaWdpbiAoJXppKVxuIiwgcmVzKTsKIAlnb3RvIG91 dDsKIGludmFsaWQ6Ci0JcHJfd2Fybl9yYXRlbGltaXRlZCgib3ZlcmxheWZzOiBpbnZhbGlkIG9y aWdpbiAoJSpwaE4pXG4iLCByZXMsIGZoKTsKKwlwcl93YXJuX3JhdGVsaW1pdGVkKCJvdmVybGF5 ZnM6IGludmFsaWQgb3JpZ2luICglKnBoTilcbiIsCisJCQkgICAgKGludClyZXMsIGZoKTsKIAln b3RvIG91dDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvb3ZlcmxheWZzL292ZXJsYXlmcy5oIGIvZnMv b3ZlcmxheWZzL292ZXJsYXlmcy5oCmluZGV4IGFiM2QwMzFjNDIyYi4uOWQyNmQ4NzU4NTEzIDEw MDY0NAotLS0gYS9mcy9vdmVybGF5ZnMvb3ZlcmxheWZzLmgKKysrIGIvZnMvb3ZlcmxheWZzL292 ZXJsYXlmcy5oCkBAIC0yMDUsNiArMjA1LDggQEAgaW50IG92bF93YW50X3dyaXRlKHN0cnVjdCBk ZW50cnkgKmRlbnRyeSk7CiB2b2lkIG92bF9kcm9wX3dyaXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy eSk7CiBzdHJ1Y3QgZGVudHJ5ICpvdmxfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwog Y29uc3Qgc3RydWN0IGNyZWQgKm92bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKTsKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnks IGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwKKwkJCSAgICBzaXplX3Qgc2l6ZSk7CiBzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50 IG92bF9jYW5fZGVjb2RlX2ZoKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogc3RydWN0IGRlbnRy eSAqb3ZsX2luZGV4ZGlyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwpkaWZmIC0tZ2l0IGEvZnMv b3ZlcmxheWZzL3V0aWwuYyBiL2ZzL292ZXJsYXlmcy91dGlsLmMKaW5kZXggZjU2NzhhM2Y4MzUw Li5jNTg4YzBkNjZkOGMgMTAwNjQ0Ci0tLSBhL2ZzL292ZXJsYXlmcy91dGlsLmMKKysrIGIvZnMv b3ZlcmxheWZzL3V0aWwuYwpAQCAtNDAsNiArNDAsMTMgQEAgY29uc3Qgc3RydWN0IGNyZWQgKm92 bF9vdmVycmlkZV9jcmVkcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCXJldHVybiBvdmVycmlk ZV9jcmVkcyhvZnMtPmNyZWF0b3JfY3JlZCk7CiB9CiAKK3NzaXplX3Qgb3ZsX2RvX3Zmc19nZXR4 YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKmJ1ZiwK KwkJCSAgICBzaXplX3Qgc2l6ZSkKK3sKKwlyZXR1cm4gX192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBk X2lub2RlKGRlbnRyeSksIG5hbWUsIGJ1Ziwgc2l6ZSwKKwkJCSAgICAgIFhBVFRSX05PU0VDVVJJ VFkpOworfQorCiBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm92bF9zYW1lX3NiKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpCiB7CiAJc3RydWN0IG92bF9mcyAqb2ZzID0gc2ItPnNfZnNfaW5mbzsKQEAgLTUz Nyw5ICs1NDQsOSBAQCB2b2lkIG92bF9jb3B5X3VwX2VuZChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp CiAKIGJvb2wgb3ZsX2NoZWNrX29yaWdpbl94YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7 Ci0JaW50IHJlczsKKwlzc2l6ZV90IHJlczsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnks IE9WTF9YQVRUUl9PUklHSU4sIE5VTEwsIDApOworCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIo ZGVudHJ5LCBPVkxfWEFUVFJfT1JJR0lOLCBOVUxMLCAwKTsKIAogCS8qIFplcm8gc2l6ZSB2YWx1 ZSBtZWFucyAiY29waWVkIHVwIGJ1dCBvcmlnaW4gdW5rbm93biIgKi8KIAlpZiAocmVzID49IDAp CkBAIC01NTAsMTMgKzU1NywxMyBAQCBib29sIG92bF9jaGVja19vcmlnaW5feGF0dHIoc3RydWN0 IGRlbnRyeSAqZGVudHJ5KQogCiBib29sIG92bF9jaGVja19kaXJfeGF0dHIoc3RydWN0IGRlbnRy eSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7 CiAJY2hhciB2YWw7CiAKIAlpZiAoIWRfaXNfZGlyKGRlbnRyeSkpCiAJCXJldHVybiBmYWxzZTsK IAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsICZ2YWwsIDEpOworCXJlcyA9IG92 bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCAmdmFsLCAxKTsKIAlpZiAocmVzID09IDEg JiYgdmFsID09ICd5JykKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTgzNywxMyArODQ0LDEzIEBAIGlu dCBvdmxfbG9ja19yZW5hbWVfd29ya2RpcihzdHJ1Y3QgZGVudHJ5ICp3b3JrZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICp1cHBlcmRpcikKIC8qIGVyciA8IDAsIDAgaWYgbm8gbWV0YWNvcHkgeGF0dHIsIDEg aWYgbWV0YWNvcHkgeGF0dHIgZm91bmQgKi8KIGludCBvdmxfY2hlY2tfbWV0YWNvcHlfeGF0dHIo c3RydWN0IGRlbnRyeSAqZGVudHJ5KQogewotCWludCByZXM7CisJc3NpemVfdCByZXM7CiAKIAkv KiBPbmx5IHJlZ3VsYXIgZmlsZXMgY2FuIGhhdmUgbWV0YWNvcHkgeGF0dHIgKi8KIAlpZiAoIVNf SVNSRUcoZF9pbm9kZShkZW50cnkpLT5pX21vZGUpKQogCQlyZXR1cm4gMDsKIAotCXJlcyA9IHZm c19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7CisJcmVzID0g b3ZsX2RvX3Zmc19nZXR4YXR0cihkZW50cnksIE9WTF9YQVRUUl9NRVRBQ09QWSwgTlVMTCwgMCk7 CiAJaWYgKHJlcyA8IDApIHsKIAkJaWYgKHJlcyA9PSAtRU5PREFUQSB8fCByZXMgPT0gLUVPUE5P VFNVUFApCiAJCQlyZXR1cm4gMDsKQEAgLTg1Miw3ICs4NTksNyBAQCBpbnQgb3ZsX2NoZWNrX21l dGFjb3B5X3hhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAogCXJldHVybiAxOwogb3V0Ogot CXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRvIGdldCBtZXRhY29weSAo JWkpXG4iLCByZXMpOworCXByX3dhcm5fcmF0ZWxpbWl0ZWQoIm92ZXJsYXlmczogZmFpbGVkIHRv IGdldCBtZXRhY29weSAoJXppKVxuIiwgcmVzKTsKIAlyZXR1cm4gcmVzOwogfQogCkBAIC04Nzgs NyArODg1LDcgQEAgc3NpemVfdCBvdmxfZ2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBj aGFyICpuYW1lLCBjaGFyICoqdmFsdWUsCiAJc3NpemVfdCByZXM7CiAJY2hhciAqYnVmID0gTlVM TDsKIAotCXJlcyA9IHZmc19nZXR4YXR0cihkZW50cnksIG5hbWUsIE5VTEwsIDApOworCXJlcyA9 IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1lLCBOVUxMLCAwKTsKIAlpZiAocmVzIDwg MCkgewogCQlpZiAocmVzID09IC1FTk9EQVRBIHx8IHJlcyA9PSAtRU9QTk9UU1VQUCkKIAkJCXJl dHVybiAtRU5PREFUQTsKQEAgLTg5MCw3ICs4OTcsNyBAQCBzc2l6ZV90IG92bF9nZXR4YXR0cihz dHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNoYXIgKm5hbWUsIGNoYXIgKip2YWx1ZSwKIAkJaWYgKCFi dWYpCiAJCQlyZXR1cm4gLUVOT01FTTsKIAotCQlyZXMgPSB2ZnNfZ2V0eGF0dHIoZGVudHJ5LCBu YW1lLCBidWYsIHJlcyk7CisJCXJlcyA9IG92bF9kb192ZnNfZ2V0eGF0dHIoZGVudHJ5LCBuYW1l LCBidWYsIHJlcyk7CiAJCWlmIChyZXMgPCAwKQogCQkJZ290byBmYWlsOwogCX0KLS0gCjIuMjIu MC43NzAuZzBmMmM0YTM3ZmQtZ29vZwoK