From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Tomas Mraz To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: fix locking and reseeding problems with FIPS drbg Date: Tue, 09 Jun 2026 12:43:10 GMT Message-ID: <178100899071.1.10169449465573087087.rpms-openssl-ad237d19e6e2@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: ad237d19e6e27391028428e945cfe6775490845e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IGFkMjM3ZDE5ZTZlMjczOTEwMjg0MjhlOTQ1Y2Zl Njc3NTQ5MDg0NWUKQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+ CkRhdGUgICA6IDIwMTMtMTEtMTlUMTQ6NTI6MzArMDE6MDAKU3RhdHMgIDogKzI5My8tMTggaW4g MiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvb3Bl bnNzbC9jL2FkMjM3ZDE5ZTZlMjczOTEwMjg0MjhlOTQ1Y2ZlNjc3NTQ5MDg0NWU/YnJhbmNoPXJl YmFzZV80MGJldGEKCkxvZzoKZml4IGxvY2tpbmcgYW5kIHJlc2VlZGluZyBwcm9ibGVtcyB3aXRo IEZJUFMgZHJiZwoKLS0tCmRpZmYgLS1naXQgYS9vcGVuc3NsLTEuMC4xZS1uZXctZmlwcy1yZXFz LnBhdGNoIGIvb3BlbnNzbC0xLjAuMWUtbmV3LWZpcHMtcmVxcy5wYXRjaAppbmRleCBiNGI5YTFh Li5jZGMwNDJiIDEwMDY0NAotLS0gYS9vcGVuc3NsLTEuMC4xZS1uZXctZmlwcy1yZXFzLnBhdGNo CisrKyBiL29wZW5zc2wtMS4wLjFlLW5ldy1maXBzLXJlcXMucGF0Y2gKQEAgLTEsNiArMSw1NyBA QAorZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYy5m aXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYworLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZHJiZ19yYW5kLmMuZmlwcy1yZXFzCTIw MTMtMTEtMTUgMTY6NTQ6NDkuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYwkyMDEzLTExLTE5IDE0OjQ4OjM4LjkzNTI1MTgxOSAr MDEwMAorQEAgLTc3LDcgKzc3LDggQEAgc3RhdGljIGludCBmaXBzX2RyYmdfYnl0ZXModW5zaWdu ZWQgY2hhcgorIAlpbnQgcnYgPSAwOworIAl1bnNpZ25lZCBjaGFyICphZGluID0gTlVMTDsKKyAJ c2l6ZV90IGFkaW5sZW4gPSAwOworLQlDUllQVE9fd19sb2NrKENSWVBUT19MT0NLX1JBTkQpOwor KwlpbnQgbG9ja2VkOworKwlsb2NrZWQgPSBwcml2YXRlX1JBTkRfbG9jaygxKTsKKyAJZG8gCisg CQl7CisgCQlzaXplX3QgcmNudDsKK0BAIC0xMDksNyArMTEwLDggQEAgc3RhdGljIGludCBmaXBz X2RyYmdfYnl0ZXModW5zaWduZWQgY2hhcgorIAl3aGlsZSAoY291bnQpOworIAlydiA9IDE7Cisg CWVycjoKKy0JQ1JZUFRPX3dfdW5sb2NrKENSWVBUT19MT0NLX1JBTkQpOworKwlpZiAobG9ja2Vk KQorKwkJcHJpdmF0ZV9SQU5EX2xvY2soMCk7CisgCXJldHVybiBydjsKKyAJfQorIAorQEAgLTE0 MSw4ICsxNDMsMTMgQEAgc3RhdGljIHZvaWQgZmlwc19kcmJnX2NsZWFudXAodm9pZCkKKyBzdGF0 aWMgaW50IGZpcHNfZHJiZ19zZWVkKGNvbnN0IHZvaWQgKnNlZWQsIGludCBzZWVkbGVuKQorIAl7 CisgCURSQkdfQ1RYICpkY3R4ID0gJm9zc2xfZGN0eDsKKysJaW50IGxvY2tlZDsKKysKKysJbG9j a2VkID0gcHJpdmF0ZV9SQU5EX2xvY2soMSk7CisgCWlmIChkY3R4LT5yYW5kX3NlZWRfY2IpCisg CQlyZXR1cm4gZGN0eC0+cmFuZF9zZWVkX2NiKGRjdHgsIHNlZWQsIHNlZWRsZW4pOworKwlpZiAo bG9ja2VkKQorKwkJcHJpdmF0ZV9SQU5EX2xvY2soMCk7CisgCXJldHVybiAxOworIAl9CisgCitA QCAtMTUwLDggKzE1NywxMyBAQCBzdGF0aWMgaW50IGZpcHNfZHJiZ19hZGQoY29uc3Qgdm9pZCAq c2VlCisgCQkJCQlkb3VibGUgYWRkX2VudHJvcHkpCisgCXsKKyAJRFJCR19DVFggKmRjdHggPSAm b3NzbF9kY3R4OworKwlpbnQgbG9ja2VkOworKworKwlsb2NrZWQgPSBwcml2YXRlX1JBTkRfbG9j aygxKTsKKyAJaWYgKGRjdHgtPnJhbmRfYWRkX2NiKQorIAkJcmV0dXJuIGRjdHgtPnJhbmRfYWRk X2NiKGRjdHgsIHNlZWQsIHNlZWRsZW4sIGFkZF9lbnRyb3B5KTsKKysJaWYgKGxvY2tlZCkKKysJ CXByaXZhdGVfUkFORF9sb2NrKDApOworIAlyZXR1cm4gMTsKKyAJfQorIAogZGlmZiAtdXAgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3QuYy5maXBzLXJlcXMgb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3QuYwotLS0tIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0ZXN0LmMuZmlwcy1yZXFzCTIwMTMtMTEt MTUgMTY6Mzg6MTguMzc4NDg0ODk0ICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvZmlwc19yc2Ffc2VsZnRlc3QuYwkyMDEzLTExLTE1IDE2OjU0OjE5LjU4NDU3MDM4MCArMDEw MAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0ZXN0LmMuZmlw cy1yZXFzCTIwMTMtMTEtMTUgMTY6NTQ6NDkuMzkwMjI0MjA5ICswMTAwCisrKysgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19yc2Ffc2VsZnRlc3QuYwkyMDEzLTExLTE1IDE2OjU0OjQ5 LjQyNzIyNTAyMSArMDEwMAogQEAgLTM0MCw2ICszNDAsNDIgQEAgc3RhdGljIGNvbnN0IHVuc2ln bmVkIGNoYXIga2F0X1JTQV9YOTMxXwogICAgMHg2MCwgMHg4MywgMHgxOCwgMHg4OCwgMHhBMywg MHhGNSwgMHg1OSwgMHhDMwogIH07CkBAIC03Miw3ICsxMjMsNyBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JzYV9zZWxmdGVzdC5jLmZpcHMtcmVxcyBvcGVuc3Ns LTEuMC4xZQogIAl9CiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9kZXMvZ2NtMTI4 LmMuZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9nY20xMjguYwogLS0tIG9w ZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9nY20xMjguYy5maXBzLXJlcXMJMjAxMy0wMi0xMSAx NjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9kZXMv Z2NtMTI4LmMJMjAxMy0xMS0xNSAxNjozODoxOC40MTc0ODU3NDkgKzAxMDAKKysrKyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vbW9kZXMvZ2NtMTI4LmMJMjAxMy0xMS0xNSAxNjo1NDo0OS40MjcyMjUw MjEgKzAxMDAKIEBAIC04OTgsNiArODk4LDEwIEBAIGludCBDUllQVE9fZ2NtMTI4X2VuY3J5cHQo R0NNMTI4X0NPTlRFWFQKICAjIGVuZGlmCiAgI2VuZGlmCkBAIC05Niw4ICsxNDcsOCBAQCBkaWZm IC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9kZXMvZ2NtMTI4LmMuZmlwcy1yZXFzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9tbwogIAlpZiAobWxlbj4oKFU2NCgxKTw8MzYpLTMyKSB8fCAoc2l6 ZW9mKGxlbik9PTggJiYgbWxlbjxsZW4pKQogIAkJcmV0dXJuIC0xOwogZGlmZiAtdXAgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL21vZGVzL21vZGVzX2xjbC5oLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vbW9kZXMvbW9kZXNfbGNsLmgKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9k ZXMvbW9kZXNfbGNsLmguZmlwcy1yZXFzCTIwMTMtMTEtMTUgMTY6Mzg6MTcuOTg0NDc2MjUwICsw MTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21vZGVzL21vZGVzX2xjbC5oCTIwMTMtMTEt MTUgMTY6Mzg6MTguNDE3NDg1NzQ5ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21v ZGVzL21vZGVzX2xjbC5oLmZpcHMtcmVxcwkyMDEzLTExLTE1IDE2OjU0OjQ4Ljk5NTIxNTU0NCAr MDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9tb2Rlc19sY2wuaAkyMDEzLTEx LTE1IDE2OjU0OjQ5LjQyNzIyNTAyMSArMDEwMAogQEAgLTExNSw2ICsxMTUsNyBAQCBzdHJ1Y3Qg Z2NtMTI4X2NvbnRleHQgewogIAl1bnNpZ25lZCBpbnQgbXJlcywgYXJlczsKICAJYmxvY2sxMjhf ZiBibG9jazsKQEAgLTEwNiw5ICsxNTcsMTk2IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9tb2Rlcy9tb2Rlc19sY2wuaC5maXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvCiAg fTsKICAKICBzdHJ1Y3QgeHRzMTI4X2NvbnRleHQgeworZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL3JhbmQvbWRfcmFuZC5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFu ZC9tZF9yYW5kLmMKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9tZF9yYW5kLmMuZmlw cy1yZXFzCTIwMTMtMTEtMTUgMTY6NTQ6NDkuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL3JhbmQvbWRfcmFuZC5jCTIwMTMtMTEtMTkgMTQ6NDM6MDAuNTkyODI5Nzc1 ICswMTAwCitAQCAtMTQzLDEyICsxNDMsNiBAQCBzdGF0aWMgbG9uZyBtZF9jb3VudFsyXT17MCww fTsKKyBzdGF0aWMgZG91YmxlIGVudHJvcHk9MDsKKyBzdGF0aWMgaW50IGluaXRpYWxpemVkPTA7 CisgCistc3RhdGljIHVuc2lnbmVkIGludCBjcnlwdG9fbG9ja19yYW5kID0gMDsgLyogbWF5IGJl IHNldCBvbmx5IHdoZW4gYSB0aHJlYWQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKiBob2xkcyBDUllQVE9fTE9DS19SQU5ECistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICogKHRvIHByZXZlbnQgZG91YmxlIGxvY2tpbmcpICov CistLyogYWNjZXNzIHRvIGxvY2tpbl90aHJlYWQgaXMgc3luY2hyb25pemVkIGJ5IENSWVBUT19M T0NLX1JBTkQyICovCistc3RhdGljIENSWVBUT19USFJFQURJRCBsb2NraW5nX3RocmVhZGlkOyAv KiB2YWxpZCBpZmYgY3J5cHRvX2xvY2tfcmFuZCBpcyBzZXQgKi8KKy0KKyAKKyAjaWZkZWYgUFJF RElDVAorIGludCByYW5kX3ByZWRpY3RhYmxlPTA7CitAQCAtMTk2LDcgKzE5MCw3IEBAIHN0YXRp YyB2b2lkIHNzbGVheV9yYW5kX2FkZChjb25zdCB2b2lkICoKKyAJbG9uZyBtZF9jWzJdOworIAl1 bnNpZ25lZCBjaGFyIGxvY2FsX21kW01EX0RJR0VTVF9MRU5HVEhdOworIAlFVlBfTURfQ1RYIG07 CistCWludCBkb19ub3RfbG9jazsKKysJaW50IGxvY2tlZDsKKyAKKyAJLyoKKyAJICogKEJhc2Vk IG9uIHRoZSByYW5kKDMpIG1hbnBhZ2UpCitAQCAtMjEzLDE5ICsyMDcsOCBAQCBzdGF0aWMgdm9p ZCBzc2xlYXlfcmFuZF9hZGQoY29uc3Qgdm9pZCAqCisgICAgICAgICAgKiBoYXNoIGZ1bmN0aW9u LgorIAkgKi8KKyAKKy0JLyogY2hlY2sgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZSBsb2NrICovCist CWlmIChjcnlwdG9fbG9ja19yYW5kKQorLQkJeworLQkJQ1JZUFRPX1RIUkVBRElEIGN1cjsKKy0J CUNSWVBUT19USFJFQURJRF9jdXJyZW50KCZjdXIpOworLQkJQ1JZUFRPX3JfbG9jayhDUllQVE9f TE9DS19SQU5EMik7CistCQlkb19ub3RfbG9jayA9ICFDUllQVE9fVEhSRUFESURfY21wKCZsb2Nr aW5nX3RocmVhZGlkLCAmY3VyKTsKKy0JCUNSWVBUT19yX3VubG9jayhDUllQVE9fTE9DS19SQU5E Mik7CistCQl9CistCWVsc2UKKy0JCWRvX25vdF9sb2NrID0gMDsKKysJbG9ja2VkID0gcHJpdmF0 ZV9SQU5EX2xvY2soMSk7CisgCistCWlmICghZG9fbm90X2xvY2spIENSWVBUT193X2xvY2soQ1JZ UFRPX0xPQ0tfUkFORCk7CisgCXN0X2lkeD1zdGF0ZV9pbmRleDsKKyAKKyAJLyogdXNlIG91ciBv d24gY29waWVzIG9mIHRoZSBjb3VudGVycyBzbyB0aGF0IGV2ZW4KK0BAIC0yNTcsNyArMjQwLDgg QEAgc3RhdGljIHZvaWQgc3NsZWF5X3JhbmRfYWRkKGNvbnN0IHZvaWQgKgorIAorIAltZF9jb3Vu dFsxXSArPSAobnVtIC8gTURfRElHRVNUX0xFTkdUSCkgKyAobnVtICUgTURfRElHRVNUX0xFTkdU SCA+IDApOworIAorLQlpZiAoIWRvX25vdF9sb2NrKSBDUllQVE9fd191bmxvY2soQ1JZUFRPX0xP Q0tfUkFORCk7CisrCWlmIChsb2NrZWQpCisrCQlwcml2YXRlX1JBTkRfbG9jaygwKTsKKyAKKyAJ RVZQX01EX0NUWF9pbml0KCZtKTsKKyAJZm9yIChpPTA7IGk8bnVtOyBpKz1NRF9ESUdFU1RfTEVO R1RIKQorQEAgLTMwOCw3ICsyOTIsNyBAQCBzdGF0aWMgdm9pZCBzc2xlYXlfcmFuZF9hZGQoY29u c3Qgdm9pZCAqCisgCQl9CisgCUVWUF9NRF9DVFhfY2xlYW51cCgmbSk7CisgCistCWlmICghZG9f bm90X2xvY2spIENSWVBUT193X2xvY2soQ1JZUFRPX0xPQ0tfUkFORCk7CisrCWxvY2tlZCA9IHBy aXZhdGVfUkFORF9sb2NrKDEpOworIAkvKiBEb24ndCBqdXN0IGNvcHkgYmFjayBsb2NhbF9tZCBp bnRvIG1kIC0tIHRoaXMgY291bGQgbWVhbiB0aGF0CisgCSAqIG90aGVyIHRocmVhZCdzIHNlZWRp bmcgcmVtYWlucyB3aXRob3V0IGVmZmVjdCAoZXhjZXB0IGZvcgorIAkgKiB0aGUgaW5jcmVtZW50 ZWQgY291bnRlcikuICBCeSBYT1JpbmcgaXQgd2Uga2VlcCBhdCBsZWFzdCBhcworQEAgLTMxOSw3 ICszMDMsOCBAQCBzdGF0aWMgdm9pZCBzc2xlYXlfcmFuZF9hZGQoY29uc3Qgdm9pZCAqCisgCQl9 CisgCWlmIChlbnRyb3B5IDwgRU5UUk9QWV9ORUVERUQpIC8qIHN0b3AgY291bnRpbmcgd2hlbiB3 ZSBoYXZlIGVub3VnaCAqLworIAkgICAgZW50cm9weSArPSBhZGQ7CistCWlmICghZG9fbm90X2xv Y2spIENSWVBUT193X3VubG9jayhDUllQVE9fTE9DS19SQU5EKTsKKysJaWYgKGxvY2tlZCkKKysJ CXByaXZhdGVfUkFORF9sb2NrKDApOworIAkKKyAjaWYgIWRlZmluZWQoT1BFTlNTTF9USFJFQURT KSAmJiAhZGVmaW5lZChPUEVOU1NMX1NZU19XSU4zMikKKyAJYXNzZXJ0KG1kX2NbMV0gPT0gbWRf Y291bnRbMV0pOworQEAgLTM0NCw2ICszMjksNyBAQCBzdGF0aWMgaW50IHNzbGVheV9yYW5kX2J5 dGVzKHVuc2lnbmVkIGNoCisgCXBpZF90IGN1cnJfcGlkID0gZ2V0cGlkKCk7CisgI2VuZGlmCisg CWludCBkb19zdGlyX3Bvb2wgPSAwOworKwlpbnQgbG9ja2VkOworIAorICNpZmRlZiBQUkVESUNU CisgCWlmIChyYW5kX3ByZWRpY3RhYmxlKQorQEAgLTM4MSwxMyArMzY3LDcgQEAgc3RhdGljIGlu dCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaAorIAkgKiBnbG9iYWwgJ21kJy4KKyAJICov CisgCistCUNSWVBUT193X2xvY2soQ1JZUFRPX0xPQ0tfUkFORCk7CistCistCS8qIHByZXZlbnQg c3NsZWF5X3JhbmRfYnl0ZXMoKSBmcm9tIHRyeWluZyB0byBvYnRhaW4gdGhlIGxvY2sgYWdhaW4g Ki8KKy0JQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5EMik7CistCUNSWVBUT19USFJFQURJ RF9jdXJyZW50KCZsb2NraW5nX3RocmVhZGlkKTsKKy0JQ1JZUFRPX3dfdW5sb2NrKENSWVBUT19M T0NLX1JBTkQyKTsKKy0JY3J5cHRvX2xvY2tfcmFuZCA9IDE7CisrCWxvY2tlZCA9IHByaXZhdGVf UkFORF9sb2NrKDEpOworIAorIAkvKiBhbHdheXMgcG9sbCBmb3IgZXh0ZXJuYWwgZW50cm9weSBp biBGSVBTIG1vZGUsIGRyYmcgcHJvdmlkZXMgdGhlIAorIAkgKiBleHBhbnNpb24KK0BAIC00NjEs OSArNDQxLDggQEAgc3RhdGljIGludCBzc2xlYXlfcmFuZF9ieXRlcyh1bnNpZ25lZCBjaAorIAor IAltZF9jb3VudFswXSArPSAxOworIAorLQkvKiBiZWZvcmUgdW5sb2NraW5nLCB3ZSBtdXN0IGNs ZWFyICdjcnlwdG9fbG9ja19yYW5kJyAqLworLQljcnlwdG9fbG9ja19yYW5kID0gMDsKKy0JQ1JZ UFRPX3dfdW5sb2NrKENSWVBUT19MT0NLX1JBTkQpOworKwlpZiAobG9ja2VkKQorKwkJcHJpdmF0 ZV9SQU5EX2xvY2soMCk7CisgCisgCXdoaWxlIChudW0gPiAwKQorIAkJeworQEAgLTUxNSwxMCAr NDk0LDExIEBAIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfYnl0ZXModW5zaWduZWQgY2gKKyAJTURf SW5pdCgmbSk7CisgCU1EX1VwZGF0ZSgmbSwodW5zaWduZWQgY2hhciAqKSYobWRfY1swXSksc2l6 ZW9mKG1kX2MpKTsKKyAJTURfVXBkYXRlKCZtLGxvY2FsX21kLE1EX0RJR0VTVF9MRU5HVEgpOwor LQlDUllQVE9fd19sb2NrKENSWVBUT19MT0NLX1JBTkQpOworKwlsb2NrZWQgPSBwcml2YXRlX1JB TkRfbG9jaygxKTsKKyAJTURfVXBkYXRlKCZtLG1kLE1EX0RJR0VTVF9MRU5HVEgpOworIAlNRF9G aW5hbCgmbSxtZCk7CistCUNSWVBUT193X3VubG9jayhDUllQVE9fTE9DS19SQU5EKTsKKysJaWYg KGxvY2tlZCkKKysJCXByaXZhdGVfUkFORF9sb2NrKDApOworIAorIAlFVlBfTURfQ1RYX2NsZWFu dXAoJm0pOworIAlpZiAob2spCitAQCAtNTQ4LDMyICs1MjgsMTAgQEAgc3RhdGljIGludCBzc2xl YXlfcmFuZF9wc2V1ZG9fYnl0ZXModW5zaQorIAorIHN0YXRpYyBpbnQgc3NsZWF5X3JhbmRfc3Rh dHVzKHZvaWQpCisgCXsKKy0JQ1JZUFRPX1RIUkVBRElEIGN1cjsKKyAJaW50IHJldDsKKy0JaW50 IGRvX25vdF9sb2NrOworKwlpbnQgbG9ja2VkOworIAorLQlDUllQVE9fVEhSRUFESURfY3VycmVu dCgmY3VyKTsKKy0JLyogY2hlY2sgaWYgd2UgYWxyZWFkeSBoYXZlIHRoZSBsb2NrCistCSAqIChj b3VsZCBoYXBwZW4gaWYgYSBSQU5EX3BvbGwoKSBpbXBsZW1lbnRhdGlvbiBjYWxscyBSQU5EX3N0 YXR1cygpKSAqLworLQlpZiAoY3J5cHRvX2xvY2tfcmFuZCkKKy0JCXsKKy0JCUNSWVBUT19yX2xv Y2soQ1JZUFRPX0xPQ0tfUkFORDIpOworLQkJZG9fbm90X2xvY2sgPSAhQ1JZUFRPX1RIUkVBRElE X2NtcCgmbG9ja2luZ190aHJlYWRpZCwgJmN1cik7CistCQlDUllQVE9fcl91bmxvY2soQ1JZUFRP X0xPQ0tfUkFORDIpOworLQkJfQorLQllbHNlCistCQlkb19ub3RfbG9jayA9IDA7CistCQorLQlp ZiAoIWRvX25vdF9sb2NrKQorLQkJeworLQkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5E KTsKKy0JCQorLQkJLyogcHJldmVudCBzc2xlYXlfcmFuZF9ieXRlcygpIGZyb20gdHJ5aW5nIHRv IG9idGFpbiB0aGUgbG9jayBhZ2FpbiAqLworLQkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19S QU5EMik7CistCQlDUllQVE9fVEhSRUFESURfY3B5KCZsb2NraW5nX3RocmVhZGlkLCAmY3VyKTsK Ky0JCUNSWVBUT193X3VubG9jayhDUllQVE9fTE9DS19SQU5EMik7CistCQljcnlwdG9fbG9ja19y YW5kID0gMTsKKy0JCX0KKysJbG9ja2VkID0gcHJpdmF0ZV9SQU5EX2xvY2soMSk7CisgCQorIAlp ZiAoIWluaXRpYWxpemVkKQorIAkJeworQEAgLTU4MywxMyArNTQxLDggQEAgc3RhdGljIGludCBz c2xlYXlfcmFuZF9zdGF0dXModm9pZCkKKyAKKyAJcmV0ID0gZW50cm9weSA+PSBFTlRST1BZX05F RURFRDsKKyAKKy0JaWYgKCFkb19ub3RfbG9jaykKKy0JCXsKKy0JCS8qIGJlZm9yZSB1bmxvY2tp bmcsIHdlIG11c3QgY2xlYXIgJ2NyeXB0b19sb2NrX3JhbmQnICovCistCQljcnlwdG9fbG9ja19y YW5kID0gMDsKKy0JCQorLQkJQ1JZUFRPX3dfdW5sb2NrKENSWVBUT19MT0NLX1JBTkQpOworLQkJ fQorKwlpZiAobG9ja2VkKQorKwkJcHJpdmF0ZV9SQU5EX2xvY2soMCk7CisgCQorIAlyZXR1cm4g cmV0OworIAl9CitkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kLmguZmlw cy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmQuaAorLS0tIG9wZW5zc2wtMS4w LjFlL2NyeXB0by9yYW5kL3JhbmQuaC5maXBzLXJlcXMJMjAxMy0xMS0xOSAxNDozMjoyNS4xODI4 OTExMTMgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kLmgJMjAxMy0x MS0xOSAxNDozMjowMy41NDY0MTY0NzIgKzAxMDAKK0BAIC0xMjQsNiArMTI0LDggQEAgdm9pZCBS QU5EX3NldF9maXBzX2RyYmdfdHlwZShpbnQgdHlwZSwgaQorIGludCBSQU5EX2luaXRfZmlwcyh2 b2lkKTsKKyAjZW5kaWYKKyAKKytpbnQgcHJpdmF0ZV9SQU5EX2xvY2soaW50IGxvY2spOworKwor IC8qIEJFR0lOIEVSUk9SIENPREVTICovCisgLyogVGhlIGZvbGxvd2luZyBsaW5lcyBhcmUgYXV0 byBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdCBta2Vyci5wbC4gQW55IGNoYW5nZXMKKyAgKiBtYWRl IGFmdGVyIHRoaXMgcG9pbnQgbWF5IGJlIG92ZXJ3cml0dGVuIHdoZW4gdGhlIHNjcmlwdCBpcyBu ZXh0IHJ1bi4KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmRfbGNsLmgu Zmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmRfbGNsLmgKLS0tLSBvcGVu c3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oLmZpcHMtcmVxcwkyMDEzLTExLTE1IDE2 OjM4OjE4LjExMDQ3OTAxNCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3Jh bmRfbGNsLmgJMjAxMy0xMS0xNSAxNjozODoxOC40MTc0ODU3NDkgKzAxMDAKKy0tLSBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oLmZpcHMtcmVxcwkyMDEzLTExLTE1IDE2OjU0 OjQ5LjEyMjIxODMzMCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmRf bGNsLmgJMjAxMy0xMS0xNSAxNjo1NDo0OS40MjcyMjUwMjEgKzAxMDAKIEBAIC0xMTIsNyArMTEy LDcgQEAKICAjaWZuZGVmIEhFQURFUl9SQU5EX0xDTF9ICiAgI2RlZmluZSBIRUFERVJfUkFORF9M Q0xfSApAQCAtMTIwLDI3ICszNTgsNjEgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L3JhbmQvcmFuZF9sY2wuaC5maXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3IKICAjaWYg IWRlZmluZWQoVVNFX01ENV9SQU5EKSAmJiAhZGVmaW5lZChVU0VfU0hBMV9SQU5EKSAmJiAhZGVm aW5lZChVU0VfTURDMl9SQU5EKSAmJiAhZGVmaW5lZChVU0VfTUQyX1JBTkQpCiBkaWZmIC11cCBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jLmZpcHMtcmVxcyBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCiAtLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3Jh bmQvcmFuZF9saWIuYy5maXBzLXJlcXMJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCTIwMTMtMTEtMTUg MTY6Mzg6MTguNDE3NDg1NzQ5ICswMTAwCi1AQCAtNjgsNiArNjgsNyBAQAorKysrIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9yYW5kL3JhbmRfbGliLmMJMjAxMy0xMS0xOSAxNDo0NDoyMi40MjI2MjQ4 MzMgKzAxMDAKK0BAIC0xODEsNiArMTgxLDQxIEBAIGludCBSQU5EX3N0YXR1cyh2b2lkKQorIAly ZXR1cm4gMDsKKyAJfQorIAorK2ludCBwcml2YXRlX1JBTkRfbG9jayhpbnQgbG9jaykKKysJewor KwlzdGF0aWMgaW50IGNyeXB0b19sb2NrX3JhbmQ7CisrCXN0YXRpYyBDUllQVE9fVEhSRUFESUQg bG9ja2luZ190aHJlYWRpZDsKKysJaW50IGRvX2xvY2s7CisrCisrCWlmICghbG9jaykKKysJCXsK KysJCWNyeXB0b19sb2NrX3JhbmQgPSAwOworKwkJQ1JZUFRPX3dfdW5sb2NrKENSWVBUT19MT0NL X1JBTkQpOworKwkJcmV0dXJuIDA7CisrCQl9CisrCisrCS8qIGNoZWNrIGlmIHdlIGFscmVhZHkg aGF2ZSB0aGUgbG9jayAqLworKwlpZiAoY3J5cHRvX2xvY2tfcmFuZCkKKysJCXsKKysJCUNSWVBU T19USFJFQURJRCBjdXI7CisrCQlDUllQVE9fVEhSRUFESURfY3VycmVudCgmY3VyKTsKKysJCUNS WVBUT19yX2xvY2soQ1JZUFRPX0xPQ0tfUkFORDIpOworKwkJZG9fbG9jayA9ICEhQ1JZUFRPX1RI UkVBRElEX2NtcCgmbG9ja2luZ190aHJlYWRpZCwgJmN1cik7CisrCQlDUllQVE9fcl91bmxvY2so Q1JZUFRPX0xPQ0tfUkFORDIpOworKwkJfQorKyAgICAgICAgZWxzZQorKwkJZG9fbG9jayA9IDE7 CisrCWlmIChkb19sb2NrKQorKwkJeworKwkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9DS19SQU5E KTsKKysJCWNyeXB0b19sb2NrX3JhbmQgPSAxOworKwkJQ1JZUFRPX3dfbG9jayhDUllQVE9fTE9D S19SQU5EMik7CisrCQlDUllQVE9fVEhSRUFESURfY3VycmVudCgmbG9ja2luZ190aHJlYWRpZCk7 CisrCQlDUllQVE9fd191bmxvY2soQ1JZUFRPX0xPQ0tfUkFORDIpOworKwkJfQorKwlyZXR1cm4g ZG9fbG9jazsKKysJfQorKwogICNpZmRlZiBPUEVOU1NMX0ZJUFMKLSAjaW5jbHVkZSA8b3BlbnNz bC9maXBzLmg+Ci0gI2luY2x1ZGUgPG9wZW5zc2wvZmlwc19yYW5kLmg+Ci0rI2luY2x1ZGUgIi4u L2ZpcHMvZmlwc19yYW5kX2xjbC5oIgotICNlbmRpZgogIAotICNpZm5kZWYgT1BFTlNTTF9OT19F TkdJTkUKLUBAIC0yMzksMTIgKzI0MCwxNCBAQCBzdGF0aWMgaW50IGRyYmdfcmFuZF9hZGQoRFJC R19DVFggKmN0eCwKKyAvKiBGSVBTIERSQkcgaW5pdGlhbGlzYXRpb24gY29kZS4gVGhpcyBzZXRz IHVwIHRoZSBEUkJHIGZvciB1c2UgYnkgdGhlCitAQCAtMjM5LDEyICsyNzQsMTQgQEAgc3RhdGlj IGludCBkcmJnX3JhbmRfYWRkKERSQkdfQ1RYICpjdHgsCiAgCQkJCWRvdWJsZSBlbnRyb3B5KQog IAl7CiAgCVJBTkRfU1NMZWF5KCktPmFkZChpbiwgaW5sZW4sIGVudHJvcHkpOwotKwljdHgtPnN0 YXR1cyA9IERSQkdfU1RBVFVTX1JFU0VFRDsKKysJRklQU19kcmJnX3Jlc2VlZChjdHgsIE5VTEws IDApOwogIAlyZXR1cm4gMTsKICAJfQogIAogIHN0YXRpYyBpbnQgZHJiZ19yYW5kX3NlZWQoRFJC R19DVFggKmN0eCwgY29uc3Qgdm9pZCAqaW4sIGludCBpbmxlbikKICAJewogIAlSQU5EX1NTTGVh eSgpLT5zZWVkKGluLCBpbmxlbik7Ci0rCWN0eC0+c3RhdHVzID0gRFJCR19TVEFUVVNfUkVTRUVE OworKwlGSVBTX2RyYmdfcmVzZWVkKGN0eCwgTlVMTCwgMCk7CiAgCXJldHVybiAxOwogIAl9CiAg CgpkaWZmIC0tZ2l0IGEvb3BlbnNzbC5zcGVjIGIvb3BlbnNzbC5zcGVjCmluZGV4IDM2YWFkYTUu LjM0OTBhZjQgMTAwNjQ0Ci0tLSBhL29wZW5zc2wuc3BlYworKysgYi9vcGVuc3NsLnNwZWMKQEAg LTIxLDcgKzIxLDcgQEAKIFN1bW1hcnk6IFV0aWxpdGllcyBmcm9tIHRoZSBnZW5lcmFsIHB1cnBv c2UgY3J5cHRvZ3JhcGh5IGxpYnJhcnkgd2l0aCBUTFMgaW1wbGVtZW50YXRpb24KIE5hbWU6IG9w ZW5zc2wKIFZlcnNpb246IDEuMC4xZQotUmVsZWFzZTogMzMlez9kaXN0fQorUmVsZWFzZTogMzQl ez9kaXN0fQogRXBvY2g6IDEKICMgV2UgaGF2ZSB0byByZW1vdmUgY2VydGFpbiBwYXRlbnRlZCBh bGdvcml0aG1zIGZyb20gdGhlIG9wZW5zc2wgc291cmNlCiAjIHRhcmJhbGwgd2l0aCB0aGUgaG9i YmxlLW9wZW5zc2wgc2NyaXB0IHdoaWNoIGlzIGluY2x1ZGVkIGJlbG93LgpAQCAtNDYyLDYgKzQ2 Miw5IEBAIHJtIC1yZiAkUlBNX0JVSUxEX1JPT1QvJXtfbGliZGlyfS9maXBzY2FuaXN0ZXIuKgog JXBvc3R1biBsaWJzIC1wIC9zYmluL2xkY29uZmlnCiAKICVjaGFuZ2Vsb2cKKyogVHVlIE5vdiAx OSAyMDEzIFRvbcOhxaEgTXLDoXogPHRtcmF6QHJlZGhhdC5jb20+IDEuMC4xZS0zNAorLSBmaXgg bG9ja2luZyBhbmQgcmVzZWVkaW5nIHByb2JsZW1zIHdpdGggRklQUyBkcmJnCisKICogRnJpIE5v diAxNSAyMDEzIFRvbcOhxaEgTXLDoXogPHRtcmF6QHJlZGhhdC5jb20+IDEuMC4xZS0zMwogLSBh ZGRpdGlvbmFsIGNoYW5nZXMgcmVxdWlyZWQgZm9yIEZJUFMgdmFsaWRhdGlvbgogCg==