[PATCH v13 4/5] overlayfs: internal getxattr operations without sepolicy checking

Mark Salyzyn via Jfs-discussion <[email protected]> Wed, 31 Jul 2019 09:57:59 -0700
Newsgroups gmane.comp.file-systems.jfs.general
Message-ID <20190731165803.4755-5-salyzyn__24201.4787437924$1564594002$gmane$org@android.com>
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
MC43NzAuZzBmMmM0YTM3ZmQtZ29vZwoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpKZnMtZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKSmZzLWRpc2N1c3Np
b25AbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xp
c3RzL2xpc3RpbmZvL2pmcy1kaXNjdXNzaW9uCg==