[security] radius: VSA parser OOB read + integer underflows, pre-auth via single UDP packet (CWE-125/CWE-191)
[email protected] Mon, 15 Jun 2026 03:25:55 -0700
| Newsgroups | gmane.comp.gnu.radius.bugs |
|---|---|
| Message-ID | <[email protected]> |
--===============7617822018131247789== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 QWZmZWN0ZWQ6ICBHTlUgcmFkaXVzIDEuNyAobGF0ZXN0IHJlbGVhc2Ugb24gZnRwLmdudS5vcmc7 IG5vIG5ld2VyIHJlbGVhc2UpCkZpbGVzOiAgICAgbGliL3JhZHBkdS5jOjQ0Ny00NzYgKFZTQSBp bm5lciBzdWItYXR0cmlidXRlIGxvb3ApCiAgICAgICAgICAgbGliL3JhZHBkdS5jOjM4MyAoZ3Jh ZF9kZWNvZGVfcGR1LCB0aGUgZGVjb2RlIGVudHJ5IHBvaW50KQogICAgICAgICAgIHJhZGl1c2Qv cmFkaXVzLmM6MTgzLCAyMzIgKHJhZGl1c19hdXRoX3JlcV9kZWNvZGUsCiAgICAgICAgICAgcmFk aXVzX2FjY3RfcmVxX2RlY29kZSDigJQgY2FsbCBncmFkX2RlY29kZV9wZHUgQkVGT1JFCiAgICAg ICAgICAgdmFsaWRhdGVfY2xpZW50KCkpClNldmVyaXR5OiAgSElHSCDigJQgVW5hdXRoZW50aWNh dGVkIHJlbW90ZSBjcmFzaCB2aWEgYSBzaW5nbGUgVURQCiAgICAgICAgICAgQWNjZXNzLVJlcXVl c3QgcGFja2V0CkNXRTogICAgICAgQ1dFLTE5MSAoSW50ZWdlciBVbmRlcmZsb3cpLCBDV0UtMTI1 IChPT0IgUmVhZCksCiAgICAgICAgICAgQ1dFLTgzNSAoTG9vcCB3aXRob3V0IFJlYWNoYWJsZSBF eGl0LCByZWxhdGVkKQoKUmVwb3J0ZXI6ICB6aGFuZ3BoIChhZmxkbCksIGluZGVwZW5kZW50IHNl Y3VyaXR5IHJlc2VhcmNoZXIKICAgICAgICAgICB6aGFuZ3BoMTIxMzhAMTYzLmNvbQoKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQoxLiBTdW1tYXJ5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KClRoZSBWZW5kb3ItU3BlY2lmaWMgQXR0cmlidXRlIChWU0Es IGF0dHJpYnV0ZSB0eXBlIDI2KSBpbm5lcgpzdWItYXR0cmlidXRlIHBhcnNlciBpbiBncmFkX2Rl Y29kZV9wZHUoKSAobGliL3JhZHBkdS5jKSBwZXJmb3JtcyBubwpib3VuZHMgY2hlY2tzIG9uIGF0 dGFja2VyLWNvbnRyb2xsZWQgbGVuZ3RoIGJ5dGVzLiBUaGUgcHJpbWFyeSBmaW5kaW5nCihidWcg IzIgYmVsb3cpIGlzIHJlYWNoYWJsZSB3aXRoIHRoZSBERUZBVUxUIHJhZGRiL2RpY3Rpb25hcnkg KGl0IHVzZXMKdmVuZG9yIExpdmluZ3N0b24sIFBFQyAzMDcsIHdoaWNoIHNoaXBzIGluIHRoZSBz dG9jayBkaWN0aW9uYXJ5KSBhbmQKaXMgdHJpZ2dlcmVkIGJ5IGEgc2luZ2xlIFVEUCBBY2Nlc3Mt UmVxdWVzdCDigJQgQkVGT1JFIGFueSBjbGllbnQKYXV0aGVudGljYXRpb24gaXMgcGVyZm9ybWVk LgoKVGhyZWUgYnVncyBsaXZlIGluIHRoZSBzYW1lIGxvb3A6CgogICMxIChTRUNPTkRBUlksIGNv bmRpdGlvbmFsKS4gbGliL3JhZHBkdS5jOjQ1MiDigJQgdGhlIFVTUi92ZW5kb3ItNDI5CiAgICAg IGJyYW5jaCBkb2VzIGBtZW1jcHkoJmF0dHJubywgcHRyLCA0KWAgd2l0aCBubyBjaGVjayB0aGF0 CiAgICAgIGF0dHJsZW4gPj0gNCwgYSAxKy1ieXRlIE9PQiByZWFkLiBSZWFjaGFibGUgb25seSB3 aGVuIHRoZSBVU1IKICAgICAgZGljdGlvbmFyeSBpcyBsb2FkZWQgKGAkSU5DTFVERSBkaWN0L3Vz cmAsIGNvbW1lbnRlZCBvdXQgaW4gdGhlCiAgICAgIGRlZmF1bHQgcmFkZGIvZGljdGlvbmFyeSks IHNvIHRoaXMgaXMgYSB3ZWFrZXIsIGNvbmRpdGlvbmFsCiAgICAgIGZpbmRpbmcuCgogICMyIChQ UklNQVJZLCBISUdIKS4gbGliL3JhZHBkdS5jOjQ2MyDigJQgYGxlbiA9ICpwdHIrKyAtIDI7YCB3 aGVyZSB0aGUKICAgICAgc3ViLWF0dHJpYnV0ZSBsZW5ndGggYnl0ZSBpcyBhIHVfY2hhciBhbmQg bGVuIGlzIHNpemVfdC4gQQogICAgICBzdWItbGVuZ3RoIGJ5dGUgPCAyIHVuZGVyZmxvd3MgbGVu IHRvIChzaXplX3QpLTIgb3IgKHNpemVfdCktMS4KICAgICAgVGhlbjoKICAgICAgICAtIGBhdHRy bGVuIC09IGxlbiArIDI7YCAobGluZSA0NjQpIHdyYXBzIGF0dHJsZW4gdG8gYSBodWdlIHZhbHVl OwogICAgICAgIC0gYHB0ciArPSBsZW47YCAobGluZSA0NzUpIGFkdmFuY2VzIHRoZSBwb2ludGVy IGJ5IH5TSVpFX01BWCwKICAgICAgICAgIHdyYXBwaW5nIGl0OwogICAgICB0aGUgbG9vcCBjb250 aW51ZXMsIHJlYWRpbmcgb3V0IG9mIGJvdW5kcyAoQ1dFLTEyNSkuIFJlYWNoYWJsZQogICAgICB3 aXRoIHRoZSBERUZBVUxUIGRpY3Rpb25hcnkgdmlhIHZlbmRvciBMaXZpbmdzdG9uIFBFQyAzMDcu CgogICMzIChSRUxBVEVEKS4gbGliL3JhZHBkdS5jOjQ2MyDigJQgd2hlbiB0aGUgc3ViLWxlbmd0 aCBieXRlID09IDAsCiAgICAgIGBsZW5gIHVuZGVyZmxvd3MgYW5kIGBhdHRybGVuIC09IGxlbiAr IDJgIGxlYXZlcyBhdHRybGVuCiAgICAgIGVzc2VudGlhbGx5IHVuY2hhbmdlZCwgc28gdGhlIGB3 aGlsZSAoYXR0cmxlbiA+IDApYCBsb29wIG5ldmVyCiAgICAgIGV4aXRzIChDV0UtODM1KS4gU2Ft ZSBjb2RlIHBhdGggYXMgIzIuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFByZS1hdXRoZW50aWNhdGlvbiB0cmlnZ2Vy IChwcm92ZW4pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KCmdyYWRfZGVjb2RlX3BkdSgpIHBhcnNlcyBBTEwgYXR0cmlidXRl cyBmcm9tIHRoZSByYXcgVURQIGJ1ZmZlci4gSXRzCnNpZ25hdHVyZSB0YWtlcyBOTyBzaGFyZWQg c2VjcmV0OgoKICAgIGdyYWRfcmVxdWVzdF90ICoKICAgIGdyYWRfZGVjb2RlX3BkdSh1aW50MzJf dCBob3N0LCB1X3Nob3J0IHVkcF9wb3J0LAogICAgICAgICAgICAgICAgICAgIHVfY2hhciAqYnVm ZmVyLCBzaXplX3QgbGVuZ3RoKTsgICAvKiByYWRwZHUuYzozODMgKi8KClRoZSB0d28gcmFkaXVz ZCBjYWxsZXJzIGludm9rZSBncmFkX2RlY29kZV9wZHUgRklSU1QgYW5kIG9ubHkgY2FsbAp2YWxp ZGF0ZV9jbGllbnQoKSBBRlRFUiBhIHN1Y2Nlc3NmdWwgZGVjb2RlOgoKICAgIHJhZGl1c2QvcmFk aXVzLmM6MTgzICBncmVxID0gZ3JhZF9kZWNvZGVfcGR1KC4uLik7CiAgICByYWRpdXNkL3JhZGl1 cy5jOjE5MCAgaWYgKHZhbGlkYXRlX2NsaWVudChncmVxKSkgeyAuLi4gfSAgIC8qIEFGVEVSICov CiAgICByYWRpdXNkL3JhZGl1cy5jOjIzMiAgZ3JlcSA9IGdyYWRfZGVjb2RlX3BkdSguLi4pOwog ICAgcmFkaXVzZC9yYWRpdXMuYzoyMzkgIGlmICh2YWxpZGF0ZV9jbGllbnQoZ3JlcSkpIHsgLi4u IH0gICAvKiBBRlRFUiAqLwoKVGhlcmVmb3JlIGEgbWFsZm9ybWVkIFZTQSBjcmFzaGVzIHRoZSBz ZXJ2ZXIgRFVSSU5HIGF0dHJpYnV0ZSBkZWNvZGUsCmJlZm9yZSB2YWxpZGF0ZV9jbGllbnQoKSBp cyBldmVyIHJlYWNoZWQuIEEgc2luZ2xlIFVEUCBBY2Nlc3MtUmVxdWVzdApzdWZmaWNlczsgbm8g c2hhcmVkIHNlY3JldCwgY3JlZGVudGlhbHMsIG9yIHZhbGlkIGNsaWVudCBlbnRyeSBuZWVkZWQu Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CjMuIFZlcmlmaWVkIHJlcHJvZHVjdGlvbiAocmVhbCBsaWJnbnVyYWRpdXMuYSwg QVNBTi9VQlNhbikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKVmVyaWZpZWQgYWdhaW5zdCB0aGUgcmVhbCwgQVNBTi9VQlNh bi1pbnN0cnVtZW50ZWQKcmFkaXVzLTEuNy9saWIvLmxpYnMvbGliZ251cmFkaXVzLmEgKHN5bWJv bHMgZnJvbSB0aGUgcmVidWlsdCBzdGF0aWMKYXJjaGl2ZSDigJQgTk9UIGEgaGFydmVzdGVyIHdy YXBwZXIpLiBUaGUgUG9DIGxpbmtzIHRoZSBhY3R1YWwgbGlicmFyeQphbmQgY2FsbHMgZ3JhZF9k ZWNvZGVfcGR1KCkgb24gYSAyOC1ieXRlIGNyYWZ0ZWQgQWNjZXNzLVJlcXVlc3Qgd2l0aAphbiBp bm5lciBzdWItYXR0cmlidXRlIGxlbmd0aCBieXRlIG9mIDEgKHZlbmRvciBMaXZpbmdzdG9uLCBQ RUMgMzA3LApwcmVzZW50IGluIHRoZSBkZWZhdWx0IGRpY3Rpb25hcnkpLgoKUG9DIHNvdXJjZTog L2hvbWUvdWJ1bnR1L2RpZmYvcG9jcy9nbnUtcmFkaXVzLXZzYS11bmRlcmZsb3cvdnNhLXVuZGVy Zmxvdy1wb2MuYwoKQnVpbGQgKGZyb20gaW5zaWRlIHJhZGl1cy0xLjcvKToKCiAgICBjbGFuZyAt ZyAtTzAgLWZzYW5pdGl6ZT1hZGRyZXNzLHVuZGVmaW5lZCBcCiAgICAgICAgLUkuL2luY2x1ZGUg XAogICAgICAgIC9ob21lL3VidW50dS9kaWZmL3BvY3MvZ251LXJhZGl1cy12c2EtdW5kZXJmbG93 L3ZzYS11bmRlcmZsb3ctcG9jLmMgXAogICAgICAgIGxpYi8ubGlicy9saWJnbnVyYWRpdXMuYSAt bG0gLWxjcnlwdCBcCiAgICAgICAgLW8gL3RtcC92c2FfcG9jCgpSdW46CgogICAgQVNBTl9PUFRJ T05TPWRldGVjdF9sZWFrcz0wIC90bXAvdnNhX3BvYwoKRXhwZWN0ZWQgc2FuaXRpemVyIG91dHB1 dCAocmVhbCwgZnJvbSB0aGUgcmVidWlsdCBhcmNoaXZlOyBQSUQvYWRkcmVzcwp2YWx1ZXMgYXJl IHJ1bi1zcGVjaWZpYyBleGFtcGxlcyk6CgogICAgWypdIGRpY3Rpb25hcnkgbG9hZGVkIChMaXZp bmdzdG9uIFBFQyAzMDcgcHJlc2VudCkKICAgIFsqXSBjcmFmdGVkIDI4LWJ5dGUgcGFja2V0IChv dXRlciBhdHRybGVuPTgsIGlubmVyIHN1Yi1sZW49MSkKICAgIFsqXSBjYWxsaW5nIFJFQUwgZ3Jh ZF9kZWNvZGVfcGR1Li4uCiAgICByYWRwZHUuYzo0NjE6MTU6IHJ1bnRpbWUgZXJyb3I6IGFkZGl0 aW9uIG9mIHVuc2lnbmVkIG9mZnNldCBvdmVyZmxvd2VkCiAgICB0byAxODQ0Njc0NDA3MzcwOTU1 MTYxNCwgd2hpY2ggY2Fubm90IGJlIHJlcHJlc2VudGVkIGluICd1bnNpZ25lZCBsb25nJwogICAg Li4uCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogICAgPT1QSUQ9PUVSUk9SOiBBZGRyZXNzU2FuaXRpemVyOiBzdGFj ay1idWZmZXItb3ZlcmZsb3cgb24gYWRkcmVzcwogICAgMHguLi4gYXQgcGMgMHguLi4gYnAgMHgu Li4gc3AgMHguLi4KICAgIFJFQUQgb2Ygc2l6ZSAxIGF0IDB4Li4uIHRocmVhZCBUMAogICAgICAg ICMwIDB4Li4uIGluIGdyYWRfZGVjb2RlX3BkdSBsaWIvcmFkcGR1LmM6NDYxOjE1CiAgICAgICAg IzEgMHguLi4gaW4gbWFpbiAoLi4uL3ZzYS11bmRlcmZsb3ctcG9jLmM6NjE6NDYpCiAgICAgICAg Li4uCiAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQoKVGhlIFVCU2FuIHJlcG9ydCBhdCByYWRwZHUuYzo0NjEgKHRoZSB1 bnNpZ25lZC1vZmZzZXQgb3ZlcmZsb3cgaW4gdGhlCmBhdHRybGVuIC09IGxlbiArIDJgIC8gcG9p bnRlciBhcml0aG1ldGljIHBhdGgpIHBsdXMgdGhlIEFTQU4Kc3RhY2stYnVmZmVyLW92ZXJmbG93 IFJFQUQgYXQgdGhlIHNhbWUgbG9jYXRpb24gY29uZmlybSB0aGUgdW5kZXJmbG93CmxlYWRzIHRv IGFuIG91dC1vZi1ib3VuZHMgcmVhZCwgZXhhY3RseSBhcyBhbmFseXplZC4KCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4g Tm90IGZpeGVkIGluIGxhdGVzdCBjb2RlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgLSBMYXRlc3QgcmVsZWFzZSBpcyAx LjcgKGZ0cC5nbnUub3JnL2dudS9yYWRpdXMpOyB0aGVyZSBpcyBubyBuZXdlci4KICAtIFVwc3Ry ZWFtIGdpdCBtYXN0ZXIgKGNvbW1pdCA5NmM4YTFlLCAyMDI2LTA0LTA1KSBjb250YWlucyB0aGUK ICAgIGlkZW50aWNhbCB2dWxuZXJhYmxlIGNvZGUgYXQgbGliL3JhZHBkdS5jOjQ4Ny01MDQg4oCU IE5PVCBGSVhFRC4KICAtIEdOVSBSYWRpdXMgaXMgTk9UIGNvdmVyZWQgYnkgT1NTLUZ1enogKG9u bHkgRnJlZVJBRElVUyBpcywgd2hpY2gKICAgIGlzIGEgZGlmZmVyZW50IHByb2plY3QpLgoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQo1LiBTdWdnZXN0ZWQgZml4Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkluIGxpYi9yYWRwZHUuYywgaW4gdGhlIFZT QSBpbm5lciBsb29wOgoKICAtIEJlZm9yZSBgbGVuID0gKnB0cisrIC0gMjtgIGFkZCBhIGd1YXJk IHNvIHRoZSBzdWJ0cmFjdGlvbiBjYW5ub3QKICAgIHVuZGVyZmxvdyBhbmQgdGhlIGxvb3AgdGVy bWluYXRlcyBvbiBtYWxmb3JtZWQgaW5wdXQ6CgogICAgICAgIGlmIChhdHRybGVuIDwgMikgYnJl YWs7CgogIC0gQWZ0ZXIgY29tcHV0aW5nIGxlbiwgdmVyaWZ5IGl0IGZpdHMgaW5zaWRlIHRoZSBy ZW1haW5pbmcgYXR0cmxlbjoKCiAgICAgICAgaWYgKGxlbiA+IGF0dHJsZW4gLSAyKSBicmVhazsK CiAgLSBJbiB0aGUgVVNSL3ZlbmRvci00MjkgYnJhbmNoLCBiZWZvcmUgYG1lbWNweSgmYXR0cm5v LCBwdHIsIDQpYCwKICAgIGFkZDoKCiAgICAgICAgaWYgKGF0dHJsZW4gPCA0KSBicmVhazsKClRo ZXNlIHRocmVlIGd1YXJkcyBjbG9zZSBidWdzICMxLCAjMiwgYW5kICMzICh0aGUgc2FtZSBndWFy ZCB0aGF0CnByZXZlbnRzIHRoZSB1bmRlcmZsb3cgYWxzbyBicmVha3MgdGhlIGF0dHJsZW4tdW5j aGFuZ2VkIGluZmluaXRlCmxvb3Agb2YgIzMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo2LiBEaXNjbG9zdXJlCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KClJlcG9ydGVkIDIwMjYtMDYtMTUuIE5vIHByaW9yIHB1YmxpYyBkaXNjbG9zdXJlLgoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQo3LiBDcmVkaXRzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KCnpoYW5ncGggKGFmbGRsKSwgaW5kZXBlbmRlbnQgc2Vj dXJpdHkgcmVzZWFyY2hlci4K --===============7617822018131247789== Content-Type: text/markdown; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="CVE-REPORT.md" IyBDVkUgQ2FuZGlkYXRlOiBHTlUgUmFkaXVzIDEuNyBWU0Egc2l6ZV90IHVuZGVyZmxvdyAoQ1dF LTE5MSkKCiMjIFN1bW1hcnkKCmBncmFkX2RlY29kZV9wZHUoKWAgaW4gYGxpYi9yYWRwZHUuY2Ag b2YgR05VIFJhZGl1cyAxLjcgcGFyc2VzIGluY29taW5nClJBRElVUyBwYWNrZXRzLiBXaGVuIHBy b2Nlc3NpbmcgVmVuZG9yLVNwZWNpZmljIEF0dHJpYnV0ZXMgKFZTQXMpLCB0aGUKaW5uZXIgc3Vi LWF0dHJpYnV0ZSBsZW5ndGggaXMgY29tcHV0ZWQgdmlhIGAqcHRyKysgLSAyYCB3aGVyZSBgKnB0 cisrYCBpcwphIGB1X2NoYXJgICgwLTI1NSkgYW5kIHRoZSByZXN1bHQgaXMgYXNzaWduZWQgdG8g YHNpemVfdCBsZW5gICh1bnNpZ25lZCkuCkEgbGVuZ3RoIGJ5dGUgb2YgMCBvciAxIGNhdXNlcyB0 aGUgc3VidHJhY3Rpb24gdG8gdW5kZXJmbG93LCBwcm9kdWNpbmcKYChzaXplX3QpLTFgIG9yIGAo c2l6ZV90KS0yYC4gVGhlIHVuZGVyZmxvd2VkIHZhbHVlIGlzIHRoZW46CgotIFBhc3NlZCB0byBg Z3JhZF9kZWNvZGVfcGFpcigpYCAoY2F1Z2h0IGJ5IGl0cyBgYXR0cmxlbiA+IEdSQURfU1RSSU5H X0xFTkdUSGAKICBjaGVjaywgcmV0dXJucyBOVUxMIGZvciB0aGUgcGFpcikKLSBVc2VkIGF0IGBw dHIgKz0gbGVuYCAobGluZSA0NzUpIHRvIGFkdmFuY2UgdGhlIGJ1ZmZlciBwb2ludGVyIGJ5CiAg flNJWkVfTUFYIGJ5dGVzLCB3cmFwcGluZyB0aGUgcG9pbnRlcgotIFVzZWQgdG8gZGVjcmVtZW50 IGBhdHRybGVuIC09IGxlbiArIDJgLCBjYXVzaW5nIGFub3RoZXIgc2l6ZV90IHVuZGVyZmxvdwog IHRoYXQgbGV0cyB0aGUgb3V0ZXIgYHdoaWxlIChhdHRybGVuID4gMClgIGxvb3AgY29udGludWUg cGFzdCB0aGUKICBpbnRlbmRlZCBidWZmZXIgYm91bmRhcnkKCiMjIEFmZmVjdGVkIGNvZGUKCmBs aWIvcmFkcGR1LmM6NDQ3LTQ3NmAg4oCUIFZTQSBzdWItYXR0cmlidXRlIHBhcnNpbmc6CgpgYGBj CndoaWxlIChhdHRybGVuID4gMCkgewogICAgc2l6ZV90IGxlbjsKCiAgICBpZiAodmVuZG9ycGVj ID09IDQyOSkgewogICAgICAgIC8qIEhhY2sgZm9yIG5vbi1jb21wbGlhbnQgVVNSIFZTQSAqLwog ICAgICAgIG1lbWNweSgmYXR0cm5vLCBwdHIsIDQpOyAgLy8gbm8gYm91bmRzIGNoZWNrCiAgICAg ICAgYXR0cm5vID0gR1JBRF9WU0FfQVRUUl9OVU1CRVIoCiAgICAgICAgICAgICAgICAgICAgICAg ICAgbnRvaGwoYXR0cm5vKSwgdmVuZG9yY29kZSk7CiAgICAgICAgcHRyICs9IDQ7CiAgICAgICAg YXR0cmxlbiAtPSA0OyAgICAgICAgICAgICAvLyBubyB1bmRlcmZsb3cgY2hlY2sKICAgICAgICBs ZW4gPSBhdHRybGVuOwogICAgICAgIGF0dHJsZW4gPSAwOwogICAgfSBlbHNlIHsKICAgICAgICBh dHRybm8gPSBHUkFEX1ZTQV9BVFRSX05VTUJFUigqcHRyKyssIHZlbmRvcmNvZGUpOwogICAgICAg IGxlbiA9ICpwdHIrKyAtIDI7ICAgICAgICAgLy8gQlVHOiBzaXplX3QgdW5kZXJmbG93IGlmICpw dHIrKyA8IDIKICAgICAgICBhdHRybGVuIC09IGxlbiArIDI7ICAgICAgIC8vIEJVRzogc2Vjb25k YXJ5IHVuZGVyZmxvdwogICAgfQoKICAgIHBhaXIgPSBncmFkX2RlY29kZV9wYWlyKGF0dHJubywg KGNoYXIqKXB0ciwgbGVuKTsKICAgIGlmIChwYWlyKSB7CiAgICAgICAgaWYgKGZpcnN0X3BhaXIg PT0gTlVMTCkKICAgICAgICAgICAgZmlyc3RfcGFpciA9IHBhaXI7CiAgICAgICAgZWxzZQogICAg ICAgICAgICBwcmV2LT5uZXh0ID0gcGFpcjsKICAgICAgICBwcmV2ID0gcGFpcjsKICAgIH0KICAg IHB0ciArPSBsZW47ICAgICAgICAgICAgICAgICAgIC8vIEJVRzogcG9pbnRlciB3cmFwCn0KYGBg CgpUaGUgZmlyc3QgdGltZSBgZ3JhZF9kZWNvZGVfcGFpcmAgaXMgY2FsbGVkIHdpdGggYSBodWdl IGBsZW5gLCBpdCByZXR1cm5zCk5VTEwgYmVjYXVzZSBvZiB0aGUgYGF0dHJsZW4gPiBHUkFEX1NU UklOR19MRU5HVEhgICgyNTMpIGNoZWNrIGF0CmBncmFkX2RlY29kZV9wYWlyYC4gQnV0IGJ5IHRo ZW4gYHB0cmAgaGFzIGJlZW4gYWR2YW5jZWQgYnkgU0laRV9NQVggYnl0ZXMKYW5kIGBhdHRybGVu YCBoYXMgYmVlbiB1bmRlcmZsb3dlZCB0byBhIHNtYWxsIHBvc2l0aXZlIHZhbHVlLCBzbyB0aGUg b3V0ZXIKbG9vcCBjYW4gY29udGludWUgcmVhZGluZyBhcmJpdHJhcnkgbWVtb3J5IGFmdGVyIHRo ZSBidWZmZXIuCgojIyBBZGRpdGlvbmFsIGJ1Z3MgaW4gdGhlIHNhbWUgZnVuY3Rpb24KCjEuIGBh dHRybm8gPSAqcHRyKys7IGF0dHJsZW4gPSAqcHRyKys7YCAobGluZXMgNDMyLTQzMykg4oCUIG5v IGNoZWNrIHRoYXQKICAgYXQgbGVhc3QgMiBieXRlcyByZW1haW4gaW4gdGhlIGJ1ZmZlci4gQSAx LWJ5dGUgT09CIHJlYWQgaXMgcG9zc2libGUKICAgaWYgdGhlIGJ1ZmZlciBoYXMgb2RkIGxlbmd0 aC4KCjIuIGBsZW5ndGggLT0gMjtgIChsaW5lIDQ0MCkg4oCUIGBsZW5ndGhgIGlzIGEgbG9jYWwg dGhhdCBoYXMgbm90IGJlZW4KICAgY2hlY2tlZCBmb3Igc3VmZmljaWVudCByZW1haW5pbmcgYnl0 ZXMuIElmIGBsZW5ndGhgIGlzIDEsIHRoaXMKICAgdW5kZXJmbG93cyB0byBTSVpFX01BWCwgY2F1 c2luZyBgZW5kcCA9IGF1dGggKyBTSVpFX01BWGAgYW5kIHRoZQogICBvdXRlciBgd2hpbGUgKHB0 ciA8IGVuZHApYCBsb29wIHRvIGNvbnRpbnVlIHJlYWRpbmcgd2lsZCBtZW1vcnkuCgozLiBgcHRy ICs9IDQ7IGF0dHJsZW4gLT0gNDtgIChsaW5lcyA0NDQtNDQ1KSDigJQgbm8gY2hlY2sgdGhhdCBh dHRybGVuCiAgIGlzIGF0IGxlYXN0IDQgYmVmb3JlIGNvbnN1bWluZyA0IGJ5dGVzIGZvciB0aGUg dmVuZG9yIElELgoKNC4gYG1lbWNweSgmYXR0cm5vLCBwdHIsIDQpO2AgKGxpbmUgNDUyKSDigJQg cmVhZHMgNCBieXRlcyB3aXRob3V0IGNoZWNraW5nCiAgIHRoYXQgNCBieXRlcyByZW1haW4uIElm IHRoZSBWU0EgbGVuZ3RoIGJ5dGUgc2F5cyDiiaU2IGJ1dCB0aGUgYnVmZmVyCiAgIGlzIHNob3J0 ZXIsIHRoaXMgaXMgYSAxKyBieXRlIE9PQiByZWFkLgoKIyMgUmVhY2hhYmlsaXR5CgpgcmFkaXVz ZGAgbGlzdGVucyBvbiBVRFAvMTgxMiAoQXV0aGVudGljYXRpb24pIGFuZCBVRFAvMTgxMyAoQWNj b3VudGluZykKYnkgZGVmYXVsdC4gQW4gdW5hdXRoZW50aWNhdGVkIGF0dGFja2VyIGNhbiB0cmln Z2VyIHRoaXMgYnVnIHdpdGggYQpzaW5nbGUgVURQIHBhY2tldCBjb250YWluaW5nIGEgVlNBIGF0 dHJpYnV0ZSB3aXRoIGEgbWFsZm9ybWVkIHN1Yi1hdHRyaWJ1dGUKbGVuZ3RoIGJ5dGUuCgpObyBD VkUgaGFzIGJlZW4gYXNzaWduZWQgZm9yIHRoaXMgaXNzdWUgYXMgb2YgMjAyNi0wNi0xMi4KCiMj IENXRQoKLSAqKkNXRS0xOTEqKjogSW50ZWdlciBVbmRlcmZsb3cgKFdyYXAgb3IgV3JhcGFyb3Vu ZCkKLSAqKkNXRS03ODcqKjogT3V0LW9mLWJvdW5kcyBXcml0ZSAocG90ZW50aWFsLCBpZiB0aGUg dW5kZXJmbG93ZWQgYGxlbmAKICBpcyBldmVyIHVzZWQgaW4gYSB3cml0ZSB0aGF0IGJ5cGFzc2Vz IHRoZSBTSVpFX01BWCBjaGVjaykKLSAqKkNXRS0xMjUqKjogT3V0LW9mLWJvdW5kcyBSZWFkIChw b3RlbnRpYWwsIHZpYSBgcHRyICs9IGxlbmAgd3JhcCkKCiMjIFNldmVyaXR5CgotICoqTmV0d29y ay1yZWFjaGFibGUqKiB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIChzaW5nbGUgVURQIHBhY2tldCku Ci0gKipMb3cgY29tcGxleGl0eSoqOiBqdXN0IG9uZSBtYWxmb3JtZWQgUkFESVVTIHBhY2tldC4K LSAqKlByZS1hdXRoIFBST1ZFTioqOiBgZ3JhZF9kZWNvZGVfcGR1KGhvc3QsIHVkcF9wb3J0LCBi dWZmZXIsIGxlbmd0aClgCiAgKHJhZHBkdS5jOjM4MykgdGFrZXMgTk8gc2hhcmVkIHNlY3JldDsg dGhlIHJhZGl1c2QgY2FsbGVycwogIChgcmFkaXVzX2F1dGhfcmVxX2RlY29kZWAgLyBgcmFkaXVz X2FjY3RfcmVxX2RlY29kZWAsCiAgcmFkaXVzZC9yYWRpdXMuYzoxODMgLyAyMzIpIGNhbGwgYGdy YWRfZGVjb2RlX3BkdWAgRklSU1QgYW5kCiAgYHZhbGlkYXRlX2NsaWVudCgpYCBBRlRFUiAocmFk aXVzLmM6MTkwIC8gMjM5KS4gQ3Jhc2ggaGFwcGVucyBkdXJpbmcKICBkZWNvZGUsIGJlZm9yZSBh dXRoZW50aWNhdGlvbi4KLSAqKlJlYWNoYWJsZSB3aXRoIHRoZSBERUZBVUxUIHJhZGRiL2RpY3Rp b25hcnkqKiB2aWEgdmVuZG9yIExpdmluZ3N0b24KICBQRUMgMzA3IOKAlCB0aGlzIGlzIHRoZSBw cmltYXJ5LCBTVUJNSVRUQUJMRSBmaW5kaW5nIChISUdIKS4KLSAqKkF2YWlsYWJpbGl0eSBpbXBh Y3Q6IGhpZ2gqKiDigJQgbGlrZWx5IGNyYXNoIChTRUdWKSBkdWUgdG8gcG9pbnRlciB3cmFwLgot ICoqQ29uZmlkZW50aWFsaXR5IC8gaW50ZWdyaXR5OiBwb3RlbnRpYWxseSoqIOKAlCB0aGUgd3Jh cHBlZCBwb2ludGVyIG1heQogIHJlYWQgYXR0YWNrZXItY29udHJvbGxhYmxlIGhlYXAgZGF0YSBv biBzdWJzZXF1ZW50IGl0ZXJhdGlvbnMuCgpSZWxhdGVkIGZpbmRpbmdzIGluIHRoZSBzYW1lIGxv b3A6IGJ1ZyAjMyAoc3ViLWxlbmd0aCBieXRlID09IDApIHlpZWxkcwp0aGUgc2FtZSB1bmRlcmZs b3cgYW5kIGFuIGluZmluaXRlIGxvb3AgKENXRS04MzUpLiBCdWcgIzEgKFVTUi92ZW5kb3ItNDI5 CmBtZW1jcHkoJmF0dHJubywgcHRyLCA0KWAgT09CIGF0IHJhZHBkdS5jOjQ1MikgaXMgYSB3ZWFr ZXIgY29uZGl0aW9uYWwKZmluZGluZyDigJQgaXQgbmVlZHMgYCRJTkNMVURFIGRpY3QvdXNyYCwg d2hpY2ggaXMgY29tbWVudGVkIG91dCBieSBkZWZhdWx0LgoKIyMgTm90IGZpeGVkIGluIGxhdGVz dCBjb2RlCgotIExhdGVzdCByZWxlYXNlIGlzIDEuNyAoZnRwLmdudS5vcmcvZ251L3JhZGl1cyk7 IHRoZXJlIGlzIG5vIG5ld2VyLgotIFVwc3RyZWFtIGdpdCBtYXN0ZXIgY29tbWl0IDk2YzhhMWUg KDIwMjYtMDQtMDUpIGhhcyB0aGUgaWRlbnRpY2FsIGNvZGUKICBhdCBsaWIvcmFkcGR1LmM6NDg3 LTUwNCDigJQgTk9UIEZJWEVELgotIEdOVSBSYWRpdXMgaXMgTk9UIGNvdmVyZWQgYnkgT1NTLUZ1 enogKG9ubHkgRnJlZVJBRElVUyBpcywgYSBkaWZmZXJlbnQKICBwcm9qZWN0KS4KCiMjIFBvQyAo UkVBTCwgbGlua3MgbGliZ251cmFkaXVzLmEg4oCUIG5vdCBhIGhhcnZlc3RlciB3cmFwcGVyKQoK VGhlIHJlYWwgcmVwcm9kdWNlciBpcyBgdnNhLXVuZGVyZmxvdy1wb2MuY2AuIEl0IGxpbmtzIHRo ZSBhY3R1YWwKQVNBTi9VQlNhbi1pbnN0cnVtZW50ZWQgYHJhZGl1cy0xLjcvbGliLy5saWJzL2xp YmdudXJhZGl1cy5hYCAoc3ltYm9scwpmcm9tIHRoZSByZWJ1aWx0IHN0YXRpYyBhcmNoaXZlKSwg bG9hZHMgdGhlIHN0b2NrIHJhZGRiL2RpY3Rpb25hcnkKKExpdmluZ3N0b24gUEVDIDMwNyBpcyBw cmVzZW50IGJ5IGRlZmF1bHQpLCBhbmQgY2FsbHMgdGhlIFJFQUwKYGdyYWRfZGVjb2RlX3BkdSgp YCBvbiBhIDI4LWJ5dGUgY3JhZnRlZCBBY2Nlc3MtUmVxdWVzdCB3aG9zZSBpbm5lcgpzdWItYXR0 cmlidXRlIGxlbmd0aCBieXRlIGlzIDEuIE5vIHNoYXJlZCBzZWNyZXQgaXMgcmVxdWlyZWQgYmVj YXVzZQphdHRyaWJ1dGUgcGFyc2luZyBydW5zIGJlZm9yZSBgdmFsaWRhdGVfY2xpZW50KClgIChy YWRpdXNkL3JhZGl1cy5jOjE5MCkuCgpCdWlsZCAocnVuIGZyb20gaW5zaWRlIGByYWRpdXMtMS43 L2ApOgoKYGBgCmNsYW5nIC1nIC1PMCAtZnNhbml0aXplPWFkZHJlc3MsdW5kZWZpbmVkIFwKICAg IC1JLi9pbmNsdWRlIFwKICAgIC9ob21lL3VidW50dS9kaWZmL3BvY3MvZ251LXJhZGl1cy12c2Et dW5kZXJmbG93L3ZzYS11bmRlcmZsb3ctcG9jLmMgXAogICAgbGliLy5saWJzL2xpYmdudXJhZGl1 cy5hIC1sbSAtbGNyeXB0IFwKICAgIC1vIC90bXAvdnNhX3BvYwpgYGAKClJ1bjoKCmBgYApBU0FO X09QVElPTlM9ZGV0ZWN0X2xlYWtzPTAgL3RtcC92c2FfcG9jCmBgYAoKRXhwZWN0ZWQgb3V0cHV0 IChSRUFMLCBmcm9tIHRoZSByZWJ1aWx0IGFyY2hpdmU7IFBJRC9hZGRyZXNzIHZhbHVlcyBhcmUK cnVuLXNwZWNpZmljIGV4YW1wbGVzKToKCmBgYApbKl0gZGljdGlvbmFyeSBsb2FkZWQgKExpdmlu Z3N0b24gUEVDIDMwNyBwcmVzZW50KQpbKl0gY3JhZnRlZCAyOC1ieXRlIHBhY2tldCAob3V0ZXIg YXR0cmxlbj04LCBpbm5lciBzdWItbGVuPTEpClsqXSBjYWxsaW5nIFJFQUwgZ3JhZF9kZWNvZGVf cGR1Li4uCnJhZHBkdS5jOjQ2MToxNTogcnVudGltZSBlcnJvcjogYWRkaXRpb24gb2YgdW5zaWdu ZWQgb2Zmc2V0IG92ZXJmbG93ZWQKdG8gMTg0NDY3NDQwNzM3MDk1NTE2MTQsIHdoaWNoIGNhbm5v dCBiZSByZXByZXNlbnRlZCBpbiAndW5zaWduZWQgbG9uZycKLi4uCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj09UElEPT1F UlJPUjogQWRkcmVzc1Nhbml0aXplcjogc3RhY2stYnVmZmVyLW92ZXJmbG93IG9uIGFkZHJlc3MK MHguLi4gYXQgcGMgMHguLi4gYnAgMHguLi4gc3AgMHguLi4KUkVBRCBvZiBzaXplIDEgYXQgMHgu Li4gdGhyZWFkIFQwCiAgICAjMCAweC4uLiBpbiBncmFkX2RlY29kZV9wZHUgbGliL3JhZHBkdS5j OjQ2MToxNQogICAgIzEgMHguLi4gaW4gbWFpbiAoLi4uL3ZzYS11bmRlcmZsb3ctcG9jLmM6NjE6 NDYpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CmBgYAoKVGhlIFVCU2FuIG92ZXJmbG93IGF0IHJhZHBkdS5jOjQ2MSBwbHVz IHRoZSBBU0FOIHN0YWNrLWJ1ZmZlci1vdmVyZmxvdwpSRUFEIGF0IHRoZSBzYW1lIGxvY2F0aW9u IGNvbmZpcm0gdGhlIHNpemVfdCB1bmRlcmZsb3cgbGVhZHMgdG8gYW4Kb3V0LW9mLWJvdW5kcyBy ZWFkLiBUaGlzIGlzIHRoZSBwcmltYXJ5IGZpbmRpbmcgKGJ1ZyAjMiksIHJlYWNoYWJsZQp3aXRo IHRoZSBERUZBVUxUIGRpY3Rpb25hcnkuCgpBIG5ldHdvcmsgdHJpZ2dlciBpcyBhdCBgdHJpZ2dl ci5weWAuIEl0IHNlbmRzIGEgc2luZ2xlIFVEUCBBY2Nlc3MtUmVxdWVzdAp0byB0aGUgUkFESVVT IHNlcnZlciB3aXRoIHRoZSBtYWxmb3JtZWQgVlNBIGFuZCBvYnNlcnZlcyB0aGUgY3Jhc2guCgoo VGhlIG9sZCBgcG9jLmNgIGluIHRoaXMgZGlyZWN0b3J5IGlzIGEgc3RhbmRhbG9uZSBTSU1VTEFU SU9OIG9mIHRoZQp1bmRlcmZsb3cgbG9naWMgZm9yIGlsbHVzdHJhdGlvbiBvbmx5OyBgdnNhLXVu ZGVyZmxvdy1wb2MuY2AgaXMgdGhlCmF1dGhvcml0YXRpdmUgcmVwcm9kdWNlciBhZ2FpbnN0IHRo ZSByZWFsIGxpYnJhcnkuKQoKIyMgU3VnZ2VzdGVkIGZpeAoKYGBgYwp9IGVsc2UgewogICAgYXR0 cm5vID0gR1JBRF9WU0FfQVRUUl9OVU1CRVIoKnB0cisrLCB2ZW5kb3Jjb2RlKTsKICAgIHVuc2ln bmVkIGNoYXIgc3VibGVuID0gKnB0cisrOwogICAgaWYgKHN1YmxlbiA8IDIgfHwgc3VibGVuIC0g MiA+IGF0dHJsZW4pIHsKICAgICAgICBncmFkX2xvZyhHUkFEX0xPR19OT1RJQ0UsCiAgICAgICAg ICAgICJSZWNlaXZlZCBWU0Egc3ViLWF0dHJpYnV0ZSB3aXRoIGludmFsaWQgbGVuZ3RoICVkIiwK ICAgICAgICAgICAgc3VibGVuKTsKICAgICAgICByZXR1cm4gcmFkcmVxOwogICAgfQogICAgbGVu ID0gc3VibGVuIC0gMjsKICAgIGF0dHJsZW4gLT0gbGVuICsgMjsKfQpgYGAKCkFsc28gZml4IHRo ZSBhZGRpdGlvbmFsIGJ1Z3M6CgpgYGBjCi8qIEJlZm9yZSB0aGUgd2hpbGUgbG9vcCwgZW5zdXJl IGF0IGxlYXN0IDIgYnl0ZXMgcmVtYWluICovCndoaWxlIChwdHIgKyAyIDw9IGVuZHAgJiYgIXN0 b3ApIHsKICAgIGF0dHJubyA9ICpwdHIrKzsKICAgIGF0dHJsZW4gPSAqcHRyKys7CiAgICBpZiAo YXR0cmxlbiA8IDIpIHsgc3RvcCA9IDE7IGNvbnRpbnVlOyB9CiAgICBhdHRybGVuIC09IDI7CiAg ICBsZW5ndGggLT0gMjsgIC8qIE5vdyBzYWZlLCBwdHIrMiA8PSBlbmRwICovCiAgICAuLi4KfQpg YGAKCiMjIE5vdGVzCgotIFRoaXMgaXMgYSBjbGFzc2ljICJ1bmNoZWNrZWQgbGVuZ3RoIGJ5dGUi IGJ1ZyBwYXR0ZXJuIHRoYXQgYXBwZWFycyBpbgogIG1hbnkgb2xkZXIgQyBwYXJzZXJzLgotIFRo ZSBSQURJVVMgcHJvdG9jb2wgaXMgYSBVRFAtYmFzZWQgcHJvdG9jb2wsIHNvIGFtcGxpZmljYXRp b24gYW5kCiAgc3Bvb2ZpbmcgYXJlIGJvdGggcG9zc2libGUgdmVjdG9ycy4KLSBUaGUgc2FtZSBi dWcgcGF0dGVybiBtYXkgZXhpc3QgaW4gdGhlIGVuY29kZSBzaWRlIChgZ3JhZF9lbmNvZGVfcGFp cmApLgo= --===============7617822018131247789==--