From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH XEN v8 26/29] tools/libs/*: Use O_CLOEXEC on Linux and FreeBSD Date: Fri, 15 Jan 2016 13:23:05 +0000 Message-ID: <1452864188-2417-27-git-send-email-ian.campbell@citrix.com> References: <1452864168.32341.97.camel@citrix.com> <1452864188-2417-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1452864188-2417-1-git-send-email-ian.campbell@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, xen-devel@lists.xen.org Cc: Ian Campbell , jbeulich@suse.com, Roger.Pau@citrix.com List-Id: xen-devel@lists.xenproject.org SW4gc29tZSBjYXNlcyB0aGlzIHJlcGxhY2VzIGFuIEZEX0NMT0VYRUMgZGFuY2UsIGluIG90aGVy cyBpdCBpcyBuZXcuCgpMaW51eCBoYXMgaGFkIE9fQ0xPRVhFQyBzaW5jZSAyLjYuMjMgKE9jdG9i ZXIgMjAwNyksIHNvIHdlIGNhbiByZWx5IG9uCml0IGZyb20gWGVuIDQuNyBJIHRoaW5rLiBTb21l IGxpYmMgaGVhZGVycyBtYXkgc3RpbGwgbGFjayB0aGUKZGVmaW5pdGlvbiwgc28gd2UgdGFrZSBj YXJlIG9mIHRoYXQgaWYgbmVlZCBiZSBieSBkZWZpbmluZyB0byAwIChvbgp0aGUgcHJlbWlzZSB0 aGF0IHN1Y2ggYW4gb2xkIGdsaWJjIG1pZ2h0IGJhcmYgb24gT19DTE9FWEVDIGV2ZW4gaWYgdGhl Cmtlcm5lbCBtYXkgb3IgbWF5IG5vdCBiZSBzbyBvbGQpLgoKQWxsIHN0YWJsZSB2ZXJzaW9ucyBv ZiBGcmVlQlNEIHN1cHBvcnQgT19DTE9FWEVDICgxMC4yLCA5LjMgYW5kIDguNCksCmFuZCB3ZSBh c3N1bWUgdGhlIGxpYmMgdGhlcmUgZG9lcyB0b28uCgpSZW1vdmUgdmFyaW91cyBjb21tZW50cyBh Ym91dCBoYXZpbmcgdG8gdGFrZSByZXNwb25zaWJpbGl0eSBmb3IgdGhpcwooc2luY2UgcmVhbGx5 IGl0IGlzIGp1c3QgaHlnaWVuZSwgcG9saXRlbmVzcywgbm90IGEgcmVxdWlyZW1lbnQpIGFuZAp0 aGUgcmVhc29ucyBmb3IgdXNpbmcgT19DTE9FWEVDIHNlZW0gcHJldHR5IHN0cmFpZ2h0Zm9yd2Fy ZC4KCkJhY2tlbmRzIGZvciBvdGhlciBPU2VzIGFyZSB1bnRvdWNoZWQuCgpTaWduZWQtb2ZmLWJ5 OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgpBY2tlZC1ieTogUm9nZXIg UGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNjOiBSb2dlci5QYXVAY2l0cml4LmNv bQpDYzogamJldWxpY2hAc3VzZS5jb20KLS0tCnY2OiBOZXcKCnY3OiBOZXcsIHJlcGxhY2VzICJ0 b29scy9saWJzL2NhbGw6IFVzZSBPX0NMT0VYRUMgd2hlbiBvcGVuaW5nCiAgICAvZGV2L3hlbi9w cml2Y21kIG9uIExpbnV4IgoKdjg6IERlZmluZSBjb21wYXQgT19DTE9FWEVDIG9mIDAuCi0tLQog dG9vbHMvbGlicy9jYWxsL2ZyZWVic2QuYyAgICAgICAgICB8IDMwICsrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogdG9vbHMvbGlicy9jYWxsL2xpbnV4LmMgICAgICAgICAgICB8IDM4ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0b29scy9saWJzL2V2dGNobi9m cmVlYnNkLmMgICAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnMvZXZ0Y2huL2xpbnV4LmMgICAgICAg ICAgfCAgNiArKysrKy0KIHRvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9mcmVlYnNkLmMgfCAyNCAr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saW51eC5j ICAgfCAzNiArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRvb2xzL2xpYnMv Z250dGFiL2xpbnV4LmMgICAgICAgICAgfCAgNiArKysrKy0KIDcgZmlsZXMgY2hhbmdlZCwgNDEg aW5zZXJ0aW9ucygrKSwgMTAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMv Y2FsbC9mcmVlYnNkLmMgYi90b29scy9saWJzL2NhbGwvZnJlZWJzZC5jCmluZGV4IDI0MTM5NjYu LmIzY2JjY2QgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvY2FsbC9mcmVlYnNkLmMKKysrIGIvdG9v bHMvbGlicy9jYWxsL2ZyZWVic2QuYwpAQCAtMzUsOCArMzUsMTQgQEAKIAogaW50IG9zZGVwX3hl bmNhbGxfb3Blbih4ZW5jYWxsX2hhbmRsZSAqeGNhbGwpCiB7Ci0gICAgaW50IGZsYWdzLCBzYXZl ZF9lcnJubzsKLSAgICBpbnQgZmQgPSBvcGVuKFBSSVZDTURfREVWLCBPX1JEV1IpOworICAgIGlu dCBzYXZlZF9lcnJubzsKKyAgICBpbnQgZmQgPSBvcGVuKFBSSVZDTURfREVWLCBPX1JEV1J8T19D TE9FWEVDKTsKKworICAgIC8qCisgICAgICogVGhpcyBmaWxlIGRlc2NyaXB0b3IgaXMgb3BhcXVl IHRvIHRoZSBjYWxsZXIsIHRodXMgd2UgYXJlCisgICAgICogcG9saXRlIGFuZCB0cnkgYW5kIGVu c3VyZSBpdCBkb2Vzbid0IHByb3BhZ2F0ZSAoaWUgbGVhaykKKyAgICAgKiBvdXRzaWRlIHRoZSBw cm9jZXNzLCBieSB1c2luZyBPX0NMT0VYRUMuCisgICAgICovCiAKICAgICBpZiAoIGZkID09IC0x ICkKICAgICB7CkBAIC00NSwyNiArNTEsNiBAQCBpbnQgb3NkZXBfeGVuY2FsbF9vcGVuKHhlbmNh bGxfaGFuZGxlICp4Y2FsbCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIC8qCi0g ICAgICogQWx0aG91Z2ggd2UgcmV0dXJuIHRoZSBmaWxlIGhhbmRsZSBhcyB0aGUgJ3hjIGhhbmRs ZScgdGhlIEFQSQotICAgICAqIGRvZXMgbm90IHNwZWNpZnkgLyBndWFyZW50ZWUgdGhhdCB0aGlz IGludGVnZXIgaXMgaW4gZmFjdAotICAgICAqIGEgZmlsZSBoYW5kbGUuIFRodXMgd2UgbXVzdCB0 YWtlIHJlc3BvbnNpYmxpdHkgdG8gZW5zdXJlCi0gICAgICogaXQgZG9lc24ndCBwcm9wYWdhdGUg KGllIGxlYWspIG91dHNpZGUgdGhlIHByb2Nlc3MuCi0gICAgICovCi0gICAgaWYgKCAoZmxhZ3Mg PSBmY250bChmZCwgRl9HRVRGRCkpIDwgMCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxk IG5vdCBnZXQgZmlsZSBoYW5kbGUgZmxhZ3MiKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9 Ci0KLSAgICBmbGFncyB8PSBGRF9DTE9FWEVDOwotCi0gICAgaWYgKCBmY250bChmZCwgRl9TRVRG RCwgZmxhZ3MpIDwgMCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBzZXQgZmls ZSBoYW5kbGUgZmxhZ3MiKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0KICAgICB4Y2Fs bC0+ZmQgPSBmZDsKICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9jYWxs L2xpbnV4LmMgYi90b29scy9saWJzL2NhbGwvbGludXguYwppbmRleCA2NTFmMzgwLi5lOGUwMzEx IDEwMDY0NAotLS0gYS90b29scy9saWJzL2NhbGwvbGludXguYworKysgYi90b29scy9saWJzL2Nh bGwvbGludXguYwpAQCAtMjYsMTUgKzI2LDIzIEBACiAKICNpbmNsdWRlICJwcml2YXRlLmgiCiAK KyNpZm5kZWYgT19DTE9FWEVDCisjZGVmaW5lIE9fQ0xPRVhFQyAwCisjZW5kaWYKKwogaW50IG9z ZGVwX3hlbmNhbGxfb3Blbih4ZW5jYWxsX2hhbmRsZSAqeGNhbGwpCiB7Ci0gICAgaW50IGZsYWdz LCBzYXZlZF9lcnJubzsKLSAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L3hlbi9wcml2Y21kIiwgT19S RFdSKTsgLyogcHJlZmVyIHRoaXMgbmV3ZXIgaW50ZXJmYWNlICovCisgICAgaW50IGZkOworCisg ICAgLyoKKyAgICAgKiBQcmVmZXIgdGhlIG5ld2VyIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBm ZCA9IG9wZW4oIi9kZXYveGVuL3ByaXZjbWQiLCBPX1JEV1J8T19DTE9FWEVDKTsKIAogICAgIGlm ICggZmQgPT0gLTEgJiYgKCBlcnJubyA9PSBFTk9FTlQgfHwgZXJybm8gPT0gRU5YSU8gfHwgZXJy bm8gPT0gRU5PREVWICkpCiAgICAgewogICAgICAgICAvKiBGYWxsYmFjayB0byAvcHJvYy94ZW4v cHJpdmNtZCAqLwotICAgICAgICBmZCA9IG9wZW4oIi9wcm9jL3hlbi9wcml2Y21kIiwgT19SRFdS KTsKKyAgICAgICAgZmQgPSBvcGVuKCIvcHJvYy94ZW4vcHJpdmNtZCIsIE9fUkRXUnxPX0NMT0VY RUMpOwogICAgIH0KIAogICAgIGlmICggZmQgPT0gLTEgKQpAQCAtNDMsMzIgKzUxLDggQEAgaW50 IG9zZGVwX3hlbmNhbGxfb3Blbih4ZW5jYWxsX2hhbmRsZSAqeGNhbGwpCiAgICAgICAgIHJldHVy biAtMTsKICAgICB9CiAKLSAgICAvKiBBbHRob3VnaCB3ZSByZXR1cm4gdGhlIGZpbGUgaGFuZGxl IGFzIHRoZSAneGMgaGFuZGxlJyB0aGUgQVBJCi0gICAgICAgZG9lcyBub3Qgc3BlY2lmeSAvIGd1 YXJlbnRlZSB0aGF0IHRoaXMgaW50ZWdlciBpcyBpbiBmYWN0Ci0gICAgICAgYSBmaWxlIGhhbmRs ZS4gVGh1cyB3ZSBtdXN0IHRha2UgcmVzcG9uc2libGl0eSB0byBlbnN1cmUKLSAgICAgICBpdCBk b2Vzbid0IHByb3BhZ2F0ZSAoaWUgbGVhaykgb3V0c2lkZSB0aGUgcHJvY2VzcyAqLwotICAgIGlm ICggKGZsYWdzID0gZmNudGwoZmQsIEZfR0VURkQpKSA8IDAgKQotICAgIHsKLSAgICAgICAgUEVS Uk9SKCJDb3VsZCBub3QgZ2V0IGZpbGUgaGFuZGxlIGZsYWdzIik7Ci0gICAgICAgIGdvdG8gZXJy b3I7Ci0gICAgfQotCi0gICAgZmxhZ3MgfD0gRkRfQ0xPRVhFQzsKLQotICAgIGlmICggZmNudGwo ZmQsIEZfU0VURkQsIGZsYWdzKSA8IDAgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJDb3VsZCBu b3Qgc2V0IGZpbGUgaGFuZGxlIGZsYWdzIik7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQot CiAgICAgeGNhbGwtPmZkID0gZmQ7CiAgICAgcmV0dXJuIDA7Ci0KLSBlcnJvcjoKLSAgICBzYXZl ZF9lcnJubyA9IGVycm5vOwotICAgIGNsb3NlKGZkKTsKLSAgICBlcnJubyA9IHNhdmVkX2Vycm5v OwotICAgIHJldHVybiAtMTsKIH0KIAogaW50IG9zZGVwX3hlbmNhbGxfY2xvc2UoeGVuY2FsbF9o YW5kbGUgKnhjYWxsKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlicy9ldnRjaG4vZnJlZWJzZC5jIGIv dG9vbHMvbGlicy9ldnRjaG4vZnJlZWJzZC5jCmluZGV4IDY0NzlmN2MuLmRkZjIyMWQgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnMvZXZ0Y2huL2ZyZWVic2QuYworKysgYi90b29scy9saWJzL2V2dGNo bi9mcmVlYnNkLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAogaW50IG9zZGVwX2V2dGNobl9vcGVuKHhl bmV2dGNobl9oYW5kbGUgKnhjZSkKIHsKLSAgICBpbnQgZmQgPSBvcGVuKEVWVENITl9ERVYsIE9f UkRXUik7CisgICAgaW50IGZkID0gb3BlbihFVlRDSE5fREVWLCBPX1JEV1J8T19DTE9FWEVDKTsK ICAgICBpZiAoIGZkID09IC0xICkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIHhjZS0+ZmQgPSBm ZDsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZXZ0Y2huL2xpbnV4LmMgYi90b29scy9saWJzL2V2 dGNobi9saW51eC5jCmluZGV4IDc2Y2YwYWMuLjBhM2M2ZTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnMvZXZ0Y2huL2xpbnV4LmMKKysrIGIvdG9vbHMvbGlicy9ldnRjaG4vbGludXguYwpAQCAtMjgs OSArMjgsMTMgQEAKIAogI2luY2x1ZGUgInByaXZhdGUuaCIKIAorI2lmbmRlZiBPX0NMT0VYRUMK KyNkZWZpbmUgT19DTE9FWEVDIDAKKyNlbmRpZgorCiBpbnQgb3NkZXBfZXZ0Y2huX29wZW4oeGVu ZXZ0Y2huX2hhbmRsZSAqeGNlKQogewotICAgIGludCBmZCA9IG9wZW4oIi9kZXYveGVuL2V2dGNo biIsIE9fUkRXUik7CisgICAgaW50IGZkID0gb3BlbigiL2Rldi94ZW4vZXZ0Y2huIiwgT19SRFdS fE9fQ0xPRVhFQyk7CiAgICAgaWYgKCBmZCA9PSAtMSApCiAgICAgICAgIHJldHVybiAtMTsKICAg ICB4Y2UtPmZkID0gZmQ7CmRpZmYgLS1naXQgYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvZnJl ZWJzZC5jIGIvdG9vbHMvbGlicy9mb3JlaWdubWVtb3J5L2ZyZWVic2QuYwppbmRleCAzODEzOGRj Li43YmYzOTM5IDEwMDY0NAotLS0gYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvZnJlZWJzZC5j CisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9mcmVlYnNkLmMKQEAgLTMzLDggKzMzLDgg QEAKIAogaW50IG9zZGVwX3hlbmZvcmVpZ25tZW1vcnlfb3Blbih4ZW5mb3JlaWdubWVtb3J5X2hh bmRsZSAqZm1lbSkKIHsKLSAgICBpbnQgZmxhZ3MsIHNhdmVkX2Vycm5vOwotICAgIGludCBmZCA9 IG9wZW4oUFJJVkNNRF9ERVYsIE9fUkRXUik7CisgICAgaW50IHNhdmVkX2Vycm5vOworICAgIGlu dCBmZCA9IG9wZW4oUFJJVkNNRF9ERVYsIE9fUkRXUnxPX0NMT0VYRUMpOwogCiAgICAgaWYgKCBm ZCA9PSAtMSApCiAgICAgewpAQCAtNDMsMjYgKzQzLDYgQEAgaW50IG9zZGVwX3hlbmZvcmVpZ25t ZW1vcnlfb3Blbih4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSkKICAgICAgICAgcmV0dXJu IC0xOwogICAgIH0KIAotICAgIC8qCi0gICAgICogQWx0aG91Z2ggd2UgcmV0dXJuIHRoZSBmaWxl IGhhbmRsZSBhcyB0aGUgJ3hjIGhhbmRsZScgdGhlIEFQSQotICAgICAqIGRvZXMgbm90IHNwZWNp ZnkgLyBndWFyZW50ZWUgdGhhdCB0aGlzIGludGVnZXIgaXMgaW4gZmFjdAotICAgICAqIGEgZmls ZSBoYW5kbGUuIFRodXMgd2UgbXVzdCB0YWtlIHJlc3BvbnNpYmxpdHkgdG8gZW5zdXJlCi0gICAg ICogaXQgZG9lc24ndCBwcm9wYWdhdGUgKGllIGxlYWspIG91dHNpZGUgdGhlIHByb2Nlc3MuCi0g ICAgICovCi0gICAgaWYgKCAoZmxhZ3MgPSBmY250bChmZCwgRl9HRVRGRCkpIDwgMCApCi0gICAg ewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBnZXQgZmlsZSBoYW5kbGUgZmxhZ3MiKTsKLSAg ICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0KLSAgICBmbGFncyB8PSBGRF9DTE9FWEVDOwotCi0g ICAgaWYgKCBmY250bChmZCwgRl9TRVRGRCwgZmxhZ3MpIDwgMCApCi0gICAgewotICAgICAgICBQ RVJST1IoIkNvdWxkIG5vdCBzZXQgZmlsZSBoYW5kbGUgZmxhZ3MiKTsKLSAgICAgICAgZ290byBl cnJvcjsKLSAgICB9Ci0KICAgICBmbWVtLT5mZCA9IGZkOwogICAgIHJldHVybiAwOwogCmRpZmYg LS1naXQgYS90b29scy9saWJzL2ZvcmVpZ25tZW1vcnkvbGludXguYyBiL3Rvb2xzL2xpYnMvZm9y ZWlnbm1lbW9yeS9saW51eC5jCmluZGV4IDMyYjZkZWYuLjQyM2M3NDQgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnMvZm9yZWlnbm1lbW9yeS9saW51eC5jCisrKyBiL3Rvb2xzL2xpYnMvZm9yZWlnbm1l bW9yeS9saW51eC5jCkBAIC0zMCwxNSArMzAsMjEgQEAKIAogI2RlZmluZSBST1VORFVQKF94LF93 KSAoKCh1bnNpZ25lZCBsb25nKShfeCkrKDFVTDw8KF93KSktMSkgJiB+KCgxVUw8PChfdykpLTEp KQogCisjaWZuZGVmIE9fQ0xPRVhFQworI2RlZmluZSBPX0NMT0VYRUMgMAorI2VuZGlmCisKIGlu dCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X29wZW4oeGVuZm9yZWlnbm1lbW9yeV9oYW5kbGUgKmZt ZW0pCiB7Ci0gICAgaW50IGZsYWdzLCBzYXZlZF9lcnJubzsKLSAgICBpbnQgZmQgPSBvcGVuKCIv ZGV2L3hlbi9wcml2Y21kIiwgT19SRFdSKTsgLyogcHJlZmVyIHRoaXMgbmV3ZXIgaW50ZXJmYWNl ICovCisgICAgaW50IGZkOworCisgICAgLyogcHJlZmVyIHRoaXMgbmV3ZXIgaW50ZXJmYWNlICov CisgICAgZmQgPSBvcGVuKCIvZGV2L3hlbi9wcml2Y21kIiwgT19SRFdSfE9fQ0xPRVhFQyk7CiAK ICAgICBpZiAoIGZkID09IC0xICYmICggZXJybm8gPT0gRU5PRU5UIHx8IGVycm5vID09IEVOWElP IHx8IGVycm5vID09IEVOT0RFViApKQogICAgIHsKICAgICAgICAgLyogRmFsbGJhY2sgdG8gL3By b2MveGVuL3ByaXZjbWQgKi8KLSAgICAgICAgZmQgPSBvcGVuKCIvcHJvYy94ZW4vcHJpdmNtZCIs IE9fUkRXUik7CisgICAgICAgIGZkID0gb3BlbigiL3Byb2MveGVuL3ByaXZjbWQiLCBPX1JEV1J8 T19DTE9FWEVDKTsKICAgICB9CiAKICAgICBpZiAoIGZkID09IC0xICkKQEAgLTQ3LDMyICs1Myw4 IEBAIGludCBvc2RlcF94ZW5mb3JlaWdubWVtb3J5X29wZW4oeGVuZm9yZWlnbm1lbW9yeV9oYW5k bGUgKmZtZW0pCiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICAvKiBBbHRob3VnaCB3 ZSByZXR1cm4gdGhlIGZpbGUgaGFuZGxlIGFzIHRoZSAneGMgaGFuZGxlJyB0aGUgQVBJCi0gICAg ICAgZG9lcyBub3Qgc3BlY2lmeSAvIGd1YXJlbnRlZSB0aGF0IHRoaXMgaW50ZWdlciBpcyBpbiBm YWN0Ci0gICAgICAgYSBmaWxlIGhhbmRsZS4gVGh1cyB3ZSBtdXN0IHRha2UgcmVzcG9uc2libGl0 eSB0byBlbnN1cmUKLSAgICAgICBpdCBkb2Vzbid0IHByb3BhZ2F0ZSAoaWUgbGVhaykgb3V0c2lk ZSB0aGUgcHJvY2VzcyAqLwotICAgIGlmICggKGZsYWdzID0gZmNudGwoZmQsIEZfR0VURkQpKSA8 IDAgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgZ2V0IGZpbGUgaGFuZGxlIGZs YWdzIik7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgZmxhZ3MgfD0gRkRfQ0xP RVhFQzsKLQotICAgIGlmICggZmNudGwoZmQsIEZfU0VURkQsIGZsYWdzKSA8IDAgKQotICAgIHsK LSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3Qgc2V0IGZpbGUgaGFuZGxlIGZsYWdzIik7Ci0gICAg ICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCiAgICAgZm1lbS0+ZmQgPSBmZDsKICAgICByZXR1cm4g MDsKLQotIGVycm9yOgotICAgIHNhdmVkX2Vycm5vID0gZXJybm87Ci0gICAgY2xvc2UoZmQpOwot ICAgIGVycm5vID0gc2F2ZWRfZXJybm87Ci0gICAgcmV0dXJuIC0xOwogfQogCiBpbnQgb3NkZXBf eGVuZm9yZWlnbm1lbW9yeV9jbG9zZSh4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqZm1lbSkKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZ250dGFiL2xpbnV4LmMgYi90b29scy9saWJzL2dudHRhYi9s aW51eC5jCmluZGV4IGJlMDQyOTUuLjdiMGZiYTQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnMvZ250 dGFiL2xpbnV4LmMKKysrIGIvdG9vbHMvbGlicy9nbnR0YWIvbGludXguYwpAQCAtNDMsOSArNDMs MTMgQEAKICNkZWZpbmUgUEFHRV9TSVpFICAgICAgICAgICAgKDFVTCA8PCBQQUdFX1NISUZUKQog I2RlZmluZSBQQUdFX01BU0sgICAgICAgICAgICAofihQQUdFX1NJWkUtMSkpCiAKKyNpZm5kZWYg T19DTE9FWEVDCisjZGVmaW5lIE9fQ0xPRVhFQyAwCisjZW5kaWYKKwogaW50IG9zZGVwX2dudHRh Yl9vcGVuKHhlbmdudHRhYl9oYW5kbGUgKnhndCkKIHsKLSAgICBpbnQgZmQgPSBvcGVuKERFVlhF TiAiZ250ZGV2IiwgT19SRFdSKTsKKyAgICBpbnQgZmQgPSBvcGVuKERFVlhFTiAiZ250ZGV2Iiwg T19SRFdSfE9fQ0xPRVhFQyk7CiAgICAgaWYgKCBmZCA9PSAtMSApCiAgICAgICAgIHJldHVybiAt MTsKICAgICB4Z3QtPmZkID0gZmQ7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==