From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4BA82DE4.2000601@ak.jp.nec.com> Date: Tue, 23 Mar 2010 11:56:36 +0900 From: KaiGai Kohei MIME-Version: 1.0 To: Stephen Smalley CC: SELinux Subject: Re: libselinux APIs should take "const" qualifier? References: <4BA32D3B.9010502@ak.jp.nec.com> <1269005549.25642.5.camel@moss-pluto.epoch.ncsc.mil> In-Reply-To: <1269005549.25642.5.camel@moss-pluto.epoch.ncsc.mil> Content-Type: multipart/mixed; boundary="------------040707050309050400030301" Sender: owner-selinux@tycho.nsa.gov List-Id: selinux@tycho.nsa.gov This is a multi-part message in MIME format. --------------040707050309050400030301 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit (2010/03/19 22:32), Stephen Smalley wrote: > On Fri, 2010-03-19 at 16:52 +0900, KaiGai Kohei wrote: >> Right now, security_context_t is an alias of char *, declared in selinux.h. >> >> Various kind of libselinux API takes security_context_t arguments, >> however, it is inconvenience in several situations. >> >> For example, the following query is parsed, then delivered to access >> control subsystem with the security context as "const char *" cstring. >> >> ALTER TABLE my_tbl SECURITY LABEL TO 'system_u:object_r:sepgsql_table_t:SystemHigh'; >> const char *<---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> >> In this case, we want to call selinux_trans_to_raw_context() to translate >> the given security context into raw format. But it takes security_context_t >> argument for the source context, although this pointer is read-only. >> In the result, compiler raises warnings because we gave "const char *" pointer >> into functions which take security_context_t (= char *). >> >> Any comments? >> >> It seems to me the following functions' prototype should be qualified by >> "const". > > That seems reasonable and should have no impact on library ABI. > On the other hand, others have pointed out that security_context_t is > not a properly encapsulated data type at all, and perhaps should be > deprecated and replaced with direct use of char*/const char* throughout. > > There are other library API issues as well that have come up in the > past, such as lack of adequate namespacing (with approaches put forth), > but we don't ever seem to get a round tuit. At first, I tried to add const qualifiers read-only security_context_t pointers, but didn't replace them by char */const char * yet, right now. BTW, I could find out the following code: int security_compute_create(security_context_t scon, security_context_t tcon, security_class_t tclass, security_context_t * newcon) { int ret; security_context_t rscon = scon; security_context_t rtcon = tcon; security_context_t rnewcon; if (selinux_trans_to_raw_context(scon, &rscon)) return -1; if (selinux_trans_to_raw_context(tcon, &rtcon)) { freecon(rscon); return -1; } : In this case, scon and tcon can be qualified by const, and the first argument of selinux_trans_to_raw_context() can take const pointer. But it tries to initialize rscon and tscon by const pointer, although these are used to store raw security contexts. The selinux_trans_to_raw_context() always set dynamically allocated text string on the second argument, so we don't need to initialize it anyway. I also removed these initializations in this patch. Does the older mcstrans code could return without allocation of raw format when the given scon is already raw format? I don't know why these are initialized in this manner. Thanks. -- KaiGai Kohei --------------040707050309050400030301 Content-Type: application/octect-stream; name="libselinux-const-qualify.1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="libselinux-const-qualify.1.patch" IGxpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4L2F2Yy5oICAgICAgICAgICAgICAgICB8ICAg IDQgKy0KIGxpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4L3NlbGludXguaCAgICAgICAgICAg ICB8ICAgODIgKysrKysrKysrKystLS0tLS0tLS0tLQogbGlic2VsaW51eC9zcmMvYXZjLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogbGlic2VsaW51eC9zcmMv YXZjX3NpZHRhYi5jICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogbGlic2VsaW51 eC9zcmMvY2Fub25pY2FsaXplX2NvbnRleHQuYyAgICAgICAgICAgIHwgICAgNiArLQogbGli c2VsaW51eC9zcmMvY2hlY2tfY29udGV4dC5jICAgICAgICAgICAgICAgICAgIHwgICAgNiAr LQogbGlic2VsaW51eC9zcmMvY29tcHV0ZV9hdi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAyMCArKystLS0KIGxpYnNlbGludXgvc3JjL2NvbXB1dGVfY3JlYXRlLmMgICAgICAgICAg ICAgICAgICB8ICAgMTIgKystLQogbGlic2VsaW51eC9zcmMvY29tcHV0ZV9tZW1iZXIuYyAg ICAgICAgICAgICAgICAgIHwgICAxMiArKy0tCiBsaWJzZWxpbnV4L3NyYy9jb21wdXRlX3Jl bGFiZWwuYyAgICAgICAgICAgICAgICAgfCAgIDEyICsrLS0KIGxpYnNlbGludXgvc3JjL2Nv bXB1dGVfdXNlci5jICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIGxpYnNlbGludXgv c3JjL2ZzZXRmaWxlY29uLmMgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIGxpYnNl bGludXgvc3JjL2lzX2N1c3RvbWl6YWJsZV90eXBlLmMgICAgICAgICAgICB8ICAgIDIgKy0K IGxpYnNlbGludXgvc3JjL2xzZXRmaWxlY29uLmMgICAgICAgICAgICAgICAgICAgICB8ICAg IDYgKy0KIGxpYnNlbGludXgvc3JjL3Byb2NhdHRyLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDggKy0KIGxpYnNlbGludXgvc3JjL3NlbGludXhfY2hlY2tfc2VjdXJldHR5X2Nv bnRleHQuYyB8ICAgIDIgKy0KIGxpYnNlbGludXgvc3JjL3NldGZpbGVjb24uYyAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDYgKy0KIGxpYnNlbGludXgvc3JjL3NldHJhbnNfY2xpZW50 LmMgICAgICAgICAgICAgICAgICB8ICAgMTYgKystLQogMTggZmlsZXMgY2hhbmdlZCwgMTA3 IGluc2VydGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJzZWxp bnV4L2luY2x1ZGUvc2VsaW51eC9hdmMuaCBiL2xpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4 L2F2Yy5oCmluZGV4IDllYzIzYWIuLjM3ZGQyNzkgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgv aW5jbHVkZS9zZWxpbnV4L2F2Yy5oCisrKyBiL2xpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4 L2F2Yy5oCkBAIC01MSw4ICs1MSw4IEBAIGludCBhdmNfc2lkX3RvX2NvbnRleHRfcmF3KHNl Y3VyaXR5X2lkX3Qgc2lkLCBzZWN1cml0eV9jb250ZXh0X3QgKiBjdHgpOwogICogdG8gdGhl IFNJRCBzdHJ1Y3R1cmUgaW50byB0aGUgbWVtb3J5IHJlZmVyZW5jZWQgYnkgQHNpZCwgCiAg KiByZXR1cm5pbmcgJTAgb24gc3VjY2VzcyBvciAtJTEgb24gZXJyb3Igd2l0aCBAZXJybm8g c2V0LiAgCiAgKi8KLWludCBhdmNfY29udGV4dF90b19zaWQoc2VjdXJpdHlfY29udGV4dF90 IGN0eCwgc2VjdXJpdHlfaWRfdCAqIHNpZCk7Ci1pbnQgYXZjX2NvbnRleHRfdG9fc2lkX3Jh dyhzZWN1cml0eV9jb250ZXh0X3QgY3R4LCBzZWN1cml0eV9pZF90ICogc2lkKTsKK2ludCBh dmNfY29udGV4dF90b19zaWQoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGN0eCwgc2VjdXJp dHlfaWRfdCAqIHNpZCk7CitpbnQgYXZjX2NvbnRleHRfdG9fc2lkX3Jhdyhjb25zdCBzZWN1 cml0eV9jb250ZXh0X3QgY3R4LCBzZWN1cml0eV9pZF90ICogc2lkKTsKIAogLyoqCiAgKiBz aWRnZXQgLSBpbmNyZW1lbnQgU0lEIHJlZmVyZW5jZSBjb3VudGVyLgpkaWZmIC0tZ2l0IGEv bGlic2VsaW51eC9pbmNsdWRlL3NlbGludXgvc2VsaW51eC5oIGIvbGlic2VsaW51eC9pbmNs dWRlL3NlbGludXgvc2VsaW51eC5oCmluZGV4IDgzNGExZWUuLjA3MjViNTcgMTAwNjQ0Ci0t LSBhL2xpYnNlbGludXgvaW5jbHVkZS9zZWxpbnV4L3NlbGludXguaAorKysgYi9saWJzZWxp bnV4L2luY2x1ZGUvc2VsaW51eC9zZWxpbnV4LmgKQEAgLTM2LDggKzM2LDggQEAgZXh0ZXJu IGludCBnZXRjb25fcmF3KHNlY3VyaXR5X2NvbnRleHRfdCAqIGNvbik7CiAgICBpbnN0ZWFk LiBOb3RlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIG1heSBsb3NlIGFjY2VzcyB0byBpdHMgb3Bl biBkZXNjcmlwdG9ycwogICAgYXMgYSByZXN1bHQgb2YgYSBzZXRjb24oKSB1bmxlc3MgcG9s aWN5IGFsbG93cyBpdCB0byB1c2UgZGVzY3JpcHRvcnMgb3BlbmVkCiAgICBieSB0aGUgb2xk IGNvbnRleHQuICovCi1leHRlcm4gaW50IHNldGNvbihzZWN1cml0eV9jb250ZXh0X3QgY29u KTsKLWV4dGVybiBpbnQgc2V0Y29uX3JhdyhzZWN1cml0eV9jb250ZXh0X3QgY29uKTsKK2V4 dGVybiBpbnQgc2V0Y29uKGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBjb24pOworZXh0ZXJu IGludCBzZXRjb25fcmF3KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBjb24pOwogCiAvKiBH ZXQgY29udGV4dCBvZiBwcm9jZXNzIGlkZW50aWZpZWQgYnkgcGlkLCBhbmQgCiAgICBzZXQg KmNvbiB0byByZWZlciB0byBpdC4gIENhbGxlciBtdXN0IGZyZWUgdmlhIGZyZWVjb24uICov CkBAIC01Nyw4ICs1Nyw4IEBAIGV4dGVybiBpbnQgZ2V0ZXhlY2Nvbl9yYXcoc2VjdXJpdHlf Y29udGV4dF90ICogY29uKTsKIAogLyogU2V0IGV4ZWMgc2VjdXJpdHkgY29udGV4dCBmb3Ig dGhlIG5leHQgZXhlY3ZlLiAKICAgIENhbGwgd2l0aCBOVUxMIGlmIHlvdSB3YW50IHRvIHJl c2V0IHRvIHRoZSBkZWZhdWx0LiAqLwotZXh0ZXJuIGludCBzZXRleGVjY29uKHNlY3VyaXR5 X2NvbnRleHRfdCBjb24pOwotZXh0ZXJuIGludCBzZXRleGVjY29uX3JhdyhzZWN1cml0eV9j b250ZXh0X3QgY29uKTsKK2V4dGVybiBpbnQgc2V0ZXhlY2Nvbihjb25zdCBzZWN1cml0eV9j b250ZXh0X3QgY29uKTsKK2V4dGVybiBpbnQgc2V0ZXhlY2Nvbl9yYXcoY29uc3Qgc2VjdXJp dHlfY29udGV4dF90IGNvbik7CiAKIC8qIEdldCBmc2NyZWF0ZSBjb250ZXh0LCBhbmQgc2V0 ICpjb24gdG8gcmVmZXIgdG8gaXQuCiAgICBTZXRzICpjb24gdG8gTlVMTCBpZiBubyBmcyBj cmVhdGUgY29udGV4dCBoYXMgYmVlbiBzZXQsIGkuZS4gdXNpbmcgZGVmYXVsdC4KQEAgLTY4 LDggKzY4LDggQEAgZXh0ZXJuIGludCBnZXRmc2NyZWF0ZWNvbl9yYXcoc2VjdXJpdHlfY29u dGV4dF90ICogY29uKTsKIAogLyogU2V0IHRoZSBmc2NyZWF0ZSBzZWN1cml0eSBjb250ZXh0 IGZvciBzdWJzZXF1ZW50IGZpbGUgY3JlYXRpb25zLgogICAgQ2FsbCB3aXRoIE5VTEwgaWYg eW91IHdhbnQgdG8gcmVzZXQgdG8gdGhlIGRlZmF1bHQuICovCi1leHRlcm4gaW50IHNldGZz Y3JlYXRlY29uKHNlY3VyaXR5X2NvbnRleHRfdCBjb250ZXh0KTsKLWV4dGVybiBpbnQgc2V0 ZnNjcmVhdGVjb25fcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBjb250ZXh0KTsKK2V4dGVybiBp bnQgc2V0ZnNjcmVhdGVjb24oY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpOwor ZXh0ZXJuIGludCBzZXRmc2NyZWF0ZWNvbl9yYXcoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90 IGNvbnRleHQpOwogCiAvKiBHZXQga2V5Y3JlYXRlIGNvbnRleHQsIGFuZCBzZXQgKmNvbiB0 byByZWZlciB0byBpdC4KICAgIFNldHMgKmNvbiB0byBOVUxMIGlmIG5vIGtleSBjcmVhdGUg Y29udGV4dCBoYXMgYmVlbiBzZXQsIGkuZS4gdXNpbmcgZGVmYXVsdC4KQEAgLTc5LDggKzc5 LDggQEAgZXh0ZXJuIGludCBnZXRrZXljcmVhdGVjb25fcmF3KHNlY3VyaXR5X2NvbnRleHRf dCAqIGNvbik7CiAKIC8qIFNldCB0aGUga2V5Y3JlYXRlIHNlY3VyaXR5IGNvbnRleHQgZm9y IHN1YnNlcXVlbnQga2V5IGNyZWF0aW9ucy4KICAgIENhbGwgd2l0aCBOVUxMIGlmIHlvdSB3 YW50IHRvIHJlc2V0IHRvIHRoZSBkZWZhdWx0LiAqLwotZXh0ZXJuIGludCBzZXRrZXljcmVh dGVjb24oc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpOwotZXh0ZXJuIGludCBzZXRrZXlj cmVhdGVjb25fcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBjb250ZXh0KTsKK2V4dGVybiBpbnQg c2V0a2V5Y3JlYXRlY29uKGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBjb250ZXh0KTsKK2V4 dGVybiBpbnQgc2V0a2V5Y3JlYXRlY29uX3Jhdyhjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qg Y29udGV4dCk7CiAKIC8qIEdldCBzb2NrY3JlYXRlIGNvbnRleHQsIGFuZCBzZXQgKmNvbiB0 byByZWZlciB0byBpdC4KICAgIFNldHMgKmNvbiB0byBOVUxMIGlmIG5vIHNvY2tldCBjcmVh dGUgY29udGV4dCBoYXMgYmVlbiBzZXQsIGkuZS4gdXNpbmcgZGVmYXVsdC4KQEAgLTkwLDgg KzkwLDggQEAgZXh0ZXJuIGludCBnZXRzb2NrY3JlYXRlY29uX3JhdyhzZWN1cml0eV9jb250 ZXh0X3QgKiBjb24pOwogCiAvKiBTZXQgdGhlIHNvY2tjcmVhdGUgc2VjdXJpdHkgY29udGV4 dCBmb3Igc3Vic2VxdWVudCBzb2NrZXQgY3JlYXRpb25zLgogICAgQ2FsbCB3aXRoIE5VTEwg aWYgeW91IHdhbnQgdG8gcmVzZXQgdG8gdGhlIGRlZmF1bHQuICovCi1leHRlcm4gaW50IHNl dHNvY2tjcmVhdGVjb24oc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpOwotZXh0ZXJuIGlu dCBzZXRzb2NrY3JlYXRlY29uX3JhdyhzZWN1cml0eV9jb250ZXh0X3QgY29udGV4dCk7Citl eHRlcm4gaW50IHNldHNvY2tjcmVhdGVjb24oY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGNv bnRleHQpOworZXh0ZXJuIGludCBzZXRzb2NrY3JlYXRlY29uX3Jhdyhjb25zdCBzZWN1cml0 eV9jb250ZXh0X3QgY29udGV4dCk7CiAKIC8qIFdyYXBwZXJzIGZvciB0aGUgeGF0dHIgQVBJ LiAqLwogCkBAIC0xNzksNjcgKzE3OSw2NyBAQCBleHRlcm4gdm9pZCBzZWxpbnV4X3NldF9j YWxsYmFjayhpbnQgdHlwZSwgdW5pb24gc2VsaW51eF9jYWxsYmFjayBjYik7CiAjZGVmaW5l IFNFTElOVVhfQVZDCQkzCiAKIC8qIENvbXB1dGUgYW4gYWNjZXNzIGRlY2lzaW9uLiAqLwot ZXh0ZXJuIGludCBzZWN1cml0eV9jb21wdXRlX2F2KHNlY3VyaXR5X2NvbnRleHRfdCBzY29u LAotCQkJICAgICAgIHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAorZXh0ZXJuIGludCBzZWN1 cml0eV9jb21wdXRlX2F2KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAorCQkJICAg ICAgIGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAogCQkJICAgICAgIHNlY3VyaXR5 X2NsYXNzX3QgdGNsYXNzLAogCQkJICAgICAgIGFjY2Vzc192ZWN0b3JfdCByZXF1ZXN0ZWQs CiAJCQkgICAgICAgc3RydWN0IGF2X2RlY2lzaW9uICphdmQpOwotZXh0ZXJuIGludCBzZWN1 cml0eV9jb21wdXRlX2F2X3JhdyhzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJCQkgICBz ZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKK2V4dGVybiBpbnQgc2VjdXJpdHlfY29tcHV0ZV9h dl9yYXcoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHNjb24sCisJCQkJICAgY29uc3Qgc2Vj dXJpdHlfY29udGV4dF90IHRjb24sCiAJCQkJICAgc2VjdXJpdHlfY2xhc3NfdCB0Y2xhc3Ms CiAJCQkJICAgYWNjZXNzX3ZlY3Rvcl90IHJlcXVlc3RlZCwKIAkJCQkgICBzdHJ1Y3QgYXZf ZGVjaXNpb24gKmF2ZCk7CiAKLWV4dGVybiBpbnQgc2VjdXJpdHlfY29tcHV0ZV9hdl9mbGFn cyhzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJCQkgICAgIHNlY3VyaXR5X2NvbnRleHRf dCB0Y29uLAorZXh0ZXJuIGludCBzZWN1cml0eV9jb21wdXRlX2F2X2ZsYWdzKGNvbnN0IHNl Y3VyaXR5X2NvbnRleHRfdCBzY29uLAorCQkJCSAgICAgY29uc3Qgc2VjdXJpdHlfY29udGV4 dF90IHRjb24sCiAJCQkJICAgICBzZWN1cml0eV9jbGFzc190IHRjbGFzcywKIAkJCQkgICAg IGFjY2Vzc192ZWN0b3JfdCByZXF1ZXN0ZWQsCiAJCQkJICAgICBzdHJ1Y3QgYXZfZGVjaXNp b24gKmF2ZCk7Ci1leHRlcm4gaW50IHNlY3VyaXR5X2NvbXB1dGVfYXZfZmxhZ3NfcmF3KHNl Y3VyaXR5X2NvbnRleHRfdCBzY29uLAotCQkJCQkgc2VjdXJpdHlfY29udGV4dF90IHRjb24s CitleHRlcm4gaW50IHNlY3VyaXR5X2NvbXB1dGVfYXZfZmxhZ3NfcmF3KGNvbnN0IHNlY3Vy aXR5X2NvbnRleHRfdCBzY29uLAorCQkJCQkgY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHRj b24sCiAJCQkJCSBzZWN1cml0eV9jbGFzc190IHRjbGFzcywKIAkJCQkJIGFjY2Vzc192ZWN0 b3JfdCByZXF1ZXN0ZWQsCiAJCQkJCSBzdHJ1Y3QgYXZfZGVjaXNpb24gKmF2ZCk7CiAKIC8q IENvbXB1dGUgYSBsYWJlbGluZyBkZWNpc2lvbiBhbmQgc2V0ICpuZXdjb24gdG8gcmVmZXIg dG8gaXQuCiAgICBDYWxsZXIgbXVzdCBmcmVlIHZpYSBmcmVlY29uLiAqLwotZXh0ZXJuIGlu dCBzZWN1cml0eV9jb21wdXRlX2NyZWF0ZShzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJ CQkgICBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKK2V4dGVybiBpbnQgc2VjdXJpdHlfY29t cHV0ZV9jcmVhdGUoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHNjb24sCisJCQkJICAgY29u c3Qgc2VjdXJpdHlfY29udGV4dF90IHRjb24sCiAJCQkJICAgc2VjdXJpdHlfY2xhc3NfdCB0 Y2xhc3MsCiAJCQkJICAgc2VjdXJpdHlfY29udGV4dF90ICogbmV3Y29uKTsKLWV4dGVybiBp bnQgc2VjdXJpdHlfY29tcHV0ZV9jcmVhdGVfcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBzY29u LAotCQkJCSAgICAgICBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKK2V4dGVybiBpbnQgc2Vj dXJpdHlfY29tcHV0ZV9jcmVhdGVfcmF3KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBzY29u LAorCQkJCSAgICAgICBjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKIAkJCQkgICAg ICAgc2VjdXJpdHlfY2xhc3NfdCB0Y2xhc3MsCiAJCQkJICAgICAgIHNlY3VyaXR5X2NvbnRl eHRfdCAqIG5ld2Nvbik7CiAKIC8qIENvbXB1dGUgYSByZWxhYmVsaW5nIGRlY2lzaW9uIGFu ZCBzZXQgKm5ld2NvbiB0byByZWZlciB0byBpdC4KICAgIENhbGxlciBtdXN0IGZyZWUgdmlh IGZyZWVjb24uICovCi1leHRlcm4gaW50IHNlY3VyaXR5X2NvbXB1dGVfcmVsYWJlbChzZWN1 cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJCQkgICAgc2VjdXJpdHlfY29udGV4dF90IHRjb24s CitleHRlcm4gaW50IHNlY3VyaXR5X2NvbXB1dGVfcmVsYWJlbChjb25zdCBzZWN1cml0eV9j b250ZXh0X3Qgc2NvbiwKKwkJCQkgICAgY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHRjb24s CiAJCQkJICAgIHNlY3VyaXR5X2NsYXNzX3QgdGNsYXNzLAogCQkJCSAgICBzZWN1cml0eV9j b250ZXh0X3QgKiBuZXdjb24pOwotZXh0ZXJuIGludCBzZWN1cml0eV9jb21wdXRlX3JlbGFi ZWxfcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAotCQkJCQlzZWN1cml0eV9jb250ZXh0 X3QgdGNvbiwKK2V4dGVybiBpbnQgc2VjdXJpdHlfY29tcHV0ZV9yZWxhYmVsX3Jhdyhjb25z dCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKKwkJCQkJY29uc3Qgc2VjdXJpdHlfY29udGV4 dF90IHRjb24sCiAJCQkJCXNlY3VyaXR5X2NsYXNzX3QgdGNsYXNzLAogCQkJCQlzZWN1cml0 eV9jb250ZXh0X3QgKiBuZXdjb24pOwogCiAvKiBDb21wdXRlIGEgcG9seWluc3RhbnRpYXRp b24gbWVtYmVyIGRlY2lzaW9uIGFuZCBzZXQgKm5ld2NvbiB0byByZWZlciB0byBpdC4KICAg IENhbGxlciBtdXN0IGZyZWUgdmlhIGZyZWVjb24uICovCi1leHRlcm4gaW50IHNlY3VyaXR5 X2NvbXB1dGVfbWVtYmVyKHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAotCQkJCSAgIHNlY3Vy aXR5X2NvbnRleHRfdCB0Y29uLAorZXh0ZXJuIGludCBzZWN1cml0eV9jb21wdXRlX21lbWJl cihjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKKwkJCQkgICBjb25zdCBzZWN1cml0 eV9jb250ZXh0X3QgdGNvbiwKIAkJCQkgICBzZWN1cml0eV9jbGFzc190IHRjbGFzcywKIAkJ CQkgICBzZWN1cml0eV9jb250ZXh0X3QgKiBuZXdjb24pOwotZXh0ZXJuIGludCBzZWN1cml0 eV9jb21wdXRlX21lbWJlcl9yYXcoc2VjdXJpdHlfY29udGV4dF90IHNjb24sCi0JCQkJICAg ICAgIHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAorZXh0ZXJuIGludCBzZWN1cml0eV9jb21w dXRlX21lbWJlcl9yYXcoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHNjb24sCisJCQkJICAg ICAgIGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAogCQkJCSAgICAgICBzZWN1cml0 eV9jbGFzc190IHRjbGFzcywKIAkJCQkgICAgICAgc2VjdXJpdHlfY29udGV4dF90ICogbmV3 Y29uKTsKIAogLyogQ29tcHV0ZSB0aGUgc2V0IG9mIHJlYWNoYWJsZSB1c2VyIGNvbnRleHRz IGFuZCBzZXQgKmNvbiB0byByZWZlciB0byAKICAgIHRoZSBOVUxMLXRlcm1pbmF0ZWQgYXJy YXkgb2YgY29udGV4dHMuICBDYWxsZXIgbXVzdCBmcmVlIHZpYSBmcmVlY29uYXJ5LiAqLwot ZXh0ZXJuIGludCBzZWN1cml0eV9jb21wdXRlX3VzZXIoc2VjdXJpdHlfY29udGV4dF90IHNj b24sCitleHRlcm4gaW50IHNlY3VyaXR5X2NvbXB1dGVfdXNlcihjb25zdCBzZWN1cml0eV9j b250ZXh0X3Qgc2NvbiwKIAkJCQkgY29uc3QgY2hhciAqdXNlcm5hbWUsCiAJCQkJIHNlY3Vy aXR5X2NvbnRleHRfdCAqKiBjb24pOwotZXh0ZXJuIGludCBzZWN1cml0eV9jb21wdXRlX3Vz ZXJfcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAorZXh0ZXJuIGludCBzZWN1cml0eV9j b21wdXRlX3VzZXJfcmF3KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAogCQkJCSAg ICAgY29uc3QgY2hhciAqdXNlcm5hbWUsCiAJCQkJICAgICBzZWN1cml0eV9jb250ZXh0X3Qg KiogY29uKTsKIApAQCAtMzAxLDEzICszMDEsMTMgQEAgZXh0ZXJuIGludCBzZWN1cml0eV9z ZXRfYm9vbGVhbl9saXN0KHNpemVfdCBib29sY250LAogZXh0ZXJuIGludCBzZWN1cml0eV9s b2FkX2Jvb2xlYW5zKGNoYXIgKnBhdGgpOwogCiAvKiBDaGVjayB0aGUgdmFsaWRpdHkgb2Yg YSBzZWN1cml0eSBjb250ZXh0LiAqLwotZXh0ZXJuIGludCBzZWN1cml0eV9jaGVja19jb250 ZXh0KHNlY3VyaXR5X2NvbnRleHRfdCBjb24pOwotZXh0ZXJuIGludCBzZWN1cml0eV9jaGVj a19jb250ZXh0X3JhdyhzZWN1cml0eV9jb250ZXh0X3QgY29uKTsKK2V4dGVybiBpbnQgc2Vj dXJpdHlfY2hlY2tfY29udGV4dChjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgY29uKTsKK2V4 dGVybiBpbnQgc2VjdXJpdHlfY2hlY2tfY29udGV4dF9yYXcoY29uc3Qgc2VjdXJpdHlfY29u dGV4dF90IGNvbik7CiAKIC8qIENhbm9uaWNhbGl6ZSBhIHNlY3VyaXR5IGNvbnRleHQuICov Ci1leHRlcm4gaW50IHNlY3VyaXR5X2Nhbm9uaWNhbGl6ZV9jb250ZXh0KHNlY3VyaXR5X2Nv bnRleHRfdCBjb24sCitleHRlcm4gaW50IHNlY3VyaXR5X2Nhbm9uaWNhbGl6ZV9jb250ZXh0 KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBjb24sCiAJCQkJCSBzZWN1cml0eV9jb250ZXh0 X3QgKiBjYW5vbmNvbik7Ci1leHRlcm4gaW50IHNlY3VyaXR5X2Nhbm9uaWNhbGl6ZV9jb250 ZXh0X3JhdyhzZWN1cml0eV9jb250ZXh0X3QgY29uLAorZXh0ZXJuIGludCBzZWN1cml0eV9j YW5vbmljYWxpemVfY29udGV4dF9yYXcoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGNvbiwK IAkJCQkJICAgICBzZWN1cml0eV9jb250ZXh0X3QgKiBjYW5vbmNvbik7CiAKIC8qIEdldCB0 aGUgZW5mb3JjZSBmbGFnIHZhbHVlLiAqLwpAQCAtNTA2LDcgKzUwNiw3IEBAIGV4dGVybiBp bnQgY2hlY2tQYXNzd2RBY2Nlc3MoYWNjZXNzX3ZlY3Rvcl90IHJlcXVlc3RlZCk7CiAKIC8q IENoZWNrIGlmIHRoZSB0dHlfY29udGV4dCBpcyBkZWZpbmVkIGFzIGEgc2VjdXJldHR5CiAg ICBSZXR1cm4gMCBpZiBzZWN1cmUsIDwgMCBvdGhlcndpc2UuICovCi1leHRlcm4gaW50IHNl bGludXhfY2hlY2tfc2VjdXJldHR5X2NvbnRleHQoc2VjdXJpdHlfY29udGV4dF90IHR0eV9j b250ZXh0KTsKK2V4dGVybiBpbnQgc2VsaW51eF9jaGVja19zZWN1cmV0dHlfY29udGV4dChj b25zdCBzZWN1cml0eV9jb250ZXh0X3QgdHR5X2NvbnRleHQpOwogCiAvKiBTZXQgdGhlIHBh dGggdG8gdGhlIHNlbGludXhmcyBtb3VudCBwb2ludCBleHBsaWNpdGx5LgogICAgTm9ybWFs bHksIHRoaXMgaXMgZGV0ZXJtaW5lZCBhdXRvbWF0aWNhbGx5IGR1cmluZyBsaWJzZWxpbnV4 IApAQCAtNTIxLDE2ICs1MjEsMTYgQEAgZXh0ZXJuIGludCBycG1fZXhlY2Nvbih1bnNpZ25l ZCBpbnQgdmVyaWZpZWQsCiAKIC8qIFJldHVybnMgd2hldGhlciBhIGZpbGUgY29udGV4dCBp cyBjdXN0b21pemFibGUsIGFuZCBzaG91bGQgbm90IAogICAgYmUgcmVsYWJlbGVkIC4gKi8K LWV4dGVybiBpbnQgaXNfY29udGV4dF9jdXN0b21pemFibGUoc2VjdXJpdHlfY29udGV4dF90 IHNjb250ZXh0KTsKK2V4dGVybiBpbnQgaXNfY29udGV4dF9jdXN0b21pemFibGUoY29uc3Qg c2VjdXJpdHlfY29udGV4dF90IHNjb250ZXh0KTsKIAogLyogUGVyZm9ybSBjb250ZXh0IHRy YW5zbGF0aW9uIGJldHdlZW4gdGhlIGh1bWFuLXJlYWRhYmxlIGZvcm1hdAogICAgKCJ0cmFu c2xhdGVkIikgYW5kIHRoZSBpbnRlcm5hbCBzeXN0ZW0gZm9ybWF0ICgicmF3IikuIAogICAg Q2FsbGVyIG11c3QgZnJlZSB0aGUgcmVzdWx0aW5nIGNvbnRleHQgdmlhIGZyZWVjb24uICAK ICAgIFJldHVybnMgLTEgdXBvbiBhbiBlcnJvciBvciAwIG90aGVyd2lzZS4KICAgIElmIHBh c3NlZCBOVUxMLCBzZXRzIHRoZSByZXR1cm5lZCBjb250ZXh0IHRvIE5VTEwgYW5kIHJldHVy bnMgMC4gKi8KLWV4dGVybiBpbnQgc2VsaW51eF90cmFuc190b19yYXdfY29udGV4dChzZWN1 cml0eV9jb250ZXh0X3QgdHJhbnMsCitleHRlcm4gaW50IHNlbGludXhfdHJhbnNfdG9fcmF3 X2NvbnRleHQoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHRyYW5zLAogCQkJCQlzZWN1cml0 eV9jb250ZXh0X3QgKiByYXdwKTsKLWV4dGVybiBpbnQgc2VsaW51eF9yYXdfdG9fdHJhbnNf Y29udGV4dChzZWN1cml0eV9jb250ZXh0X3QgcmF3LAorZXh0ZXJuIGludCBzZWxpbnV4X3Jh d190b190cmFuc19jb250ZXh0KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCByYXcsCiAJCQkJ CXNlY3VyaXR5X2NvbnRleHRfdCAqIHRyYW5zcCk7CiAKIC8qIFBlcmZvcm0gY29udGV4dCB0 cmFuc2xhdGlvbiBiZXR3ZWVuIHNlY3VyaXR5IGNvbnRleHRzCkBAIC01MzgsNyArNTM4LDcg QEAgZXh0ZXJuIGludCBzZWxpbnV4X3Jhd190b190cmFuc19jb250ZXh0KHNlY3VyaXR5X2Nv bnRleHRfdCByYXcsCiAgICB0ZW4gaGV4IFJHQiB0cmlwbGVzIHByZWZpeGVkIGJ5IGhhc2gg bWFya3MsIGUuZy4gIiNmZjAwMDAiLgogICAgQ2FsbGVyIG11c3QgZnJlZSB0aGUgcmVzdWx0 aW5nIHN0cmluZyB2aWEgZnJlZS4KICAgIFJldHVybnMgLTEgdXBvbiBhbiBlcnJvciBvciAw IG90aGVyd2lzZS4gKi8KLWV4dGVybiBpbnQgc2VsaW51eF9yYXdfY29udGV4dF90b19jb2xv cihzZWN1cml0eV9jb250ZXh0X3QgcmF3LAorZXh0ZXJuIGludCBzZWxpbnV4X3Jhd19jb250 ZXh0X3RvX2NvbG9yKGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCByYXcsCiAJCQkJCWNoYXIg Kipjb2xvcl9zdHIpOwogCiAvKiBHZXQgdGhlIFNFTGludXggdXNlcm5hbWUgYW5kIGxldmVs IHRvIHVzZSBmb3IgYSBnaXZlbiBMaW51eCB1c2VybmFtZS4gCmRpZmYgLS1naXQgYS9saWJz ZWxpbnV4L3NyYy9hdmMuYyBiL2xpYnNlbGludXgvc3JjL2F2Yy5jCmluZGV4IGU5ZTM1Mjku Ljc0NTkxYjQgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL2F2Yy5jCisrKyBiL2xpYnNl bGludXgvc3JjL2F2Yy5jCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGF2 Y19oYXNoKHNlY3VyaXR5X2lkX3Qgc3NpZCwKIAkgICAgJiAoQVZDX0NBQ0hFX1NMT1RTIC0g MSk7CiB9CiAKLWludCBhdmNfY29udGV4dF90b19zaWRfcmF3KHNlY3VyaXR5X2NvbnRleHRf dCBjdHgsIHNlY3VyaXR5X2lkX3QgKiBzaWQpCitpbnQgYXZjX2NvbnRleHRfdG9fc2lkX3Jh dyhjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgY3R4LCBzZWN1cml0eV9pZF90ICogc2lkKQog ewogCWludCByYzsKIAlhdmNfZ2V0X2xvY2soYXZjX2xvY2spOwpAQCAtNzUsNyArNzUsNyBA QCBpbnQgYXZjX2NvbnRleHRfdG9fc2lkX3JhdyhzZWN1cml0eV9jb250ZXh0X3QgY3R4LCBz ZWN1cml0eV9pZF90ICogc2lkKQogCXJldHVybiByYzsKIH0KIAotaW50IGF2Y19jb250ZXh0 X3RvX3NpZChzZWN1cml0eV9jb250ZXh0X3QgY3R4LCBzZWN1cml0eV9pZF90ICogc2lkKQor aW50IGF2Y19jb250ZXh0X3RvX3NpZChjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgY3R4LCBz ZWN1cml0eV9pZF90ICogc2lkKQogewogCWludCByZXQ7CiAJc2VjdXJpdHlfY29udGV4dF90 IHJjdHg7CmRpZmYgLS1naXQgYS9saWJzZWxpbnV4L3NyYy9hdmNfc2lkdGFiLmMgYi9saWJz ZWxpbnV4L3NyYy9hdmNfc2lkdGFiLmMKaW5kZXggM2NhMWQxZi4uMGI2OTZiYiAxMDA2NDQK LS0tIGEvbGlic2VsaW51eC9zcmMvYXZjX3NpZHRhYi5jCisrKyBiL2xpYnNlbGludXgvc3Jj L2F2Y19zaWR0YWIuYwpAQCAtNDYsNyArNDYsNyBAQCBpbnQgc2lkdGFiX2luaXQoc3RydWN0 IHNpZHRhYiAqcykKIAlyZXR1cm4gcmM7CiB9CiAKLWludCBzaWR0YWJfaW5zZXJ0KHN0cnVj dCBzaWR0YWIgKnMsIHNlY3VyaXR5X2NvbnRleHRfdCBjdHgpCitpbnQgc2lkdGFiX2luc2Vy dChzdHJ1Y3Qgc2lkdGFiICpzLCBjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgY3R4KQogewog CWludCBodmFsdWUsIHJjID0gMDsKIAlzdHJ1Y3Qgc2lkdGFiX25vZGUgKm5ld25vZGU7CkBA IC03Niw3ICs3Niw3IEBAIGludCBzaWR0YWJfaW5zZXJ0KHN0cnVjdCBzaWR0YWIgKnMsIHNl Y3VyaXR5X2NvbnRleHRfdCBjdHgpCiAKIGludAogc2lkdGFiX2NvbnRleHRfdG9fc2lkKHN0 cnVjdCBzaWR0YWIgKnMsCi0JCSAgICAgIHNlY3VyaXR5X2NvbnRleHRfdCBjdHgsIHNlY3Vy aXR5X2lkX3QgKiBzaWQpCisJCSAgICAgIGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBjdHgs IHNlY3VyaXR5X2lkX3QgKiBzaWQpCiB7CiAJaW50IGh2YWx1ZSwgcmMgPSAwOwogCXN0cnVj dCBzaWR0YWJfbm9kZSAqY3VyOwpkaWZmIC0tZ2l0IGEvbGlic2VsaW51eC9zcmMvY2Fub25p Y2FsaXplX2NvbnRleHQuYyBiL2xpYnNlbGludXgvc3JjL2Nhbm9uaWNhbGl6ZV9jb250ZXh0 LmMKaW5kZXggODViYmJmYS4uMTc2YzQ1YSAxMDA2NDQKLS0tIGEvbGlic2VsaW51eC9zcmMv Y2Fub25pY2FsaXplX2NvbnRleHQuYworKysgYi9saWJzZWxpbnV4L3NyYy9jYW5vbmljYWxp emVfY29udGV4dC5jCkBAIC05LDcgKzksNyBAQAogI2luY2x1ZGUgInBvbGljeS5oIgogI2lu Y2x1ZGUgPGxpbWl0cy5oPgogCi1pbnQgc2VjdXJpdHlfY2Fub25pY2FsaXplX2NvbnRleHRf cmF3KHNlY3VyaXR5X2NvbnRleHRfdCBjb24sCitpbnQgc2VjdXJpdHlfY2Fub25pY2FsaXpl X2NvbnRleHRfcmF3KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBjb24sCiAJCQkJICAgICAg c2VjdXJpdHlfY29udGV4dF90ICogY2Fub25jb24pCiB7CiAJY2hhciBwYXRoW1BBVEhfTUFY XTsKQEAgLTYyLDExICs2MiwxMSBAQCBpbnQgc2VjdXJpdHlfY2Fub25pY2FsaXplX2NvbnRl eHRfcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBjb24sCiAKIGhpZGRlbl9kZWYoc2VjdXJpdHlf Y2Fub25pY2FsaXplX2NvbnRleHRfcmF3KQogCi1pbnQgc2VjdXJpdHlfY2Fub25pY2FsaXpl X2NvbnRleHQoc2VjdXJpdHlfY29udGV4dF90IGNvbiwKK2ludCBzZWN1cml0eV9jYW5vbmlj YWxpemVfY29udGV4dChjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgY29uLAogCQkJCSAgc2Vj dXJpdHlfY29udGV4dF90ICogY2Fub25jb24pCiB7CiAJaW50IHJldDsKLQlzZWN1cml0eV9j b250ZXh0X3QgcmNvbiA9IGNvbjsKKwlzZWN1cml0eV9jb250ZXh0X3QgcmNvbjsKIAlzZWN1 cml0eV9jb250ZXh0X3QgcmNhbm9uY29uOwogCiAJaWYgKHNlbGludXhfdHJhbnNfdG9fcmF3 X2NvbnRleHQoY29uLCAmcmNvbikpCmRpZmYgLS1naXQgYS9saWJzZWxpbnV4L3NyYy9jaGVj a19jb250ZXh0LmMgYi9saWJzZWxpbnV4L3NyYy9jaGVja19jb250ZXh0LmMKaW5kZXggMGU4 ZmI4Ni4uMzNhYjVlMyAxMDA2NDQKLS0tIGEvbGlic2VsaW51eC9zcmMvY2hlY2tfY29udGV4 dC5jCisrKyBiL2xpYnNlbGludXgvc3JjL2NoZWNrX2NvbnRleHQuYwpAQCAtOSw3ICs5LDcg QEAKICNpbmNsdWRlICJwb2xpY3kuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KIAotaW50IHNl Y3VyaXR5X2NoZWNrX2NvbnRleHRfcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBjb24pCitpbnQg c2VjdXJpdHlfY2hlY2tfY29udGV4dF9yYXcoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGNv bikKIHsKIAljaGFyIHBhdGhbUEFUSF9NQVhdOwogCWludCBmZCwgcmV0OwpAQCAtMzMsMTAg KzMzLDEwIEBAIGludCBzZWN1cml0eV9jaGVja19jb250ZXh0X3JhdyhzZWN1cml0eV9jb250 ZXh0X3QgY29uKQogCiBoaWRkZW5fZGVmKHNlY3VyaXR5X2NoZWNrX2NvbnRleHRfcmF3KQog Ci1pbnQgc2VjdXJpdHlfY2hlY2tfY29udGV4dChzZWN1cml0eV9jb250ZXh0X3QgY29uKQor aW50IHNlY3VyaXR5X2NoZWNrX2NvbnRleHQoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGNv bikKIHsKIAlpbnQgcmV0OwotCXNlY3VyaXR5X2NvbnRleHRfdCByY29uID0gY29uOworCXNl Y3VyaXR5X2NvbnRleHRfdCByY29uOwogCiAJaWYgKHNlbGludXhfdHJhbnNfdG9fcmF3X2Nv bnRleHQoY29uLCAmcmNvbikpCiAJCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2xpYnNlbGlu dXgvc3JjL2NvbXB1dGVfYXYuYyBiL2xpYnNlbGludXgvc3JjL2NvbXB1dGVfYXYuYwppbmRl eCBhODIxZDE3Li44NmZmMjc0IDEwMDY0NAotLS0gYS9saWJzZWxpbnV4L3NyYy9jb21wdXRl X2F2LmMKKysrIGIvbGlic2VsaW51eC9zcmMvY29tcHV0ZV9hdi5jCkBAIC0xMCw4ICsxMCw4 IEBACiAjaW5jbHVkZSAicG9saWN5LmgiCiAjaW5jbHVkZSAibWFwcGluZy5oIgogCi1pbnQg c2VjdXJpdHlfY29tcHV0ZV9hdl9mbGFnc19yYXcoc2VjdXJpdHlfY29udGV4dF90IHNjb24s Ci0JCQkJICBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKK2ludCBzZWN1cml0eV9jb21wdXRl X2F2X2ZsYWdzX3Jhdyhjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKKwkJCQkgIGNv bnN0IHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAogCQkJCSAgc2VjdXJpdHlfY2xhc3NfdCB0 Y2xhc3MsCiAJCQkJICBhY2Nlc3NfdmVjdG9yX3QgcmVxdWVzdGVkLAogCQkJCSAgc3RydWN0 IGF2X2RlY2lzaW9uICphdmQpCkBAIC03Miw4ICs3Miw4IEBAIGludCBzZWN1cml0eV9jb21w dXRlX2F2X2ZsYWdzX3JhdyhzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKIAogaGlkZGVuX2Rl ZihzZWN1cml0eV9jb21wdXRlX2F2X2ZsYWdzX3JhdykKIAotaW50IHNlY3VyaXR5X2NvbXB1 dGVfYXZfcmF3KHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAotCQkJICAgIHNlY3VyaXR5X2Nv bnRleHRfdCB0Y29uLAoraW50IHNlY3VyaXR5X2NvbXB1dGVfYXZfcmF3KGNvbnN0IHNlY3Vy aXR5X2NvbnRleHRfdCBzY29uLAorCQkJICAgIGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCB0 Y29uLAogCQkJICAgIHNlY3VyaXR5X2NsYXNzX3QgdGNsYXNzLAogCQkJICAgIGFjY2Vzc192 ZWN0b3JfdCByZXF1ZXN0ZWQsCiAJCQkgICAgc3RydWN0IGF2X2RlY2lzaW9uICphdmQpCkBA IC05OSwxNCArOTksMTQgQEAgaW50IHNlY3VyaXR5X2NvbXB1dGVfYXZfcmF3KHNlY3VyaXR5 X2NvbnRleHRfdCBzY29uLAogCiBoaWRkZW5fZGVmKHNlY3VyaXR5X2NvbXB1dGVfYXZfcmF3 KQogCi1pbnQgc2VjdXJpdHlfY29tcHV0ZV9hdl9mbGFncyhzZWN1cml0eV9jb250ZXh0X3Qg c2NvbiwKLQkJCSAgICAgIHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAoraW50IHNlY3VyaXR5 X2NvbXB1dGVfYXZfZmxhZ3MoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHNjb24sCisJCQkg ICAgICBjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKIAkJCSAgICAgIHNlY3VyaXR5 X2NsYXNzX3QgdGNsYXNzLAogCQkJICAgICAgYWNjZXNzX3ZlY3Rvcl90IHJlcXVlc3RlZCwK IAkJCSAgICAgIHN0cnVjdCBhdl9kZWNpc2lvbiAqYXZkKQogewotCXNlY3VyaXR5X2NvbnRl eHRfdCByc2NvbiA9IHNjb247Ci0Jc2VjdXJpdHlfY29udGV4dF90IHJ0Y29uID0gdGNvbjsK KwlzZWN1cml0eV9jb250ZXh0X3QgcnNjb247CisJc2VjdXJpdHlfY29udGV4dF90IHJ0Y29u OwogCWludCByZXQ7CiAKIAlpZiAoc2VsaW51eF90cmFuc190b19yYXdfY29udGV4dChzY29u LCAmcnNjb24pKQpAQCAtMTI2LDggKzEyNiw4IEBAIGludCBzZWN1cml0eV9jb21wdXRlX2F2 X2ZsYWdzKHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAogCiBoaWRkZW5fZGVmKHNlY3VyaXR5 X2NvbXB1dGVfYXZfZmxhZ3MpCiAKLWludCBzZWN1cml0eV9jb21wdXRlX2F2KHNlY3VyaXR5 X2NvbnRleHRfdCBzY29uLAotCQkJc2VjdXJpdHlfY29udGV4dF90IHRjb24sCitpbnQgc2Vj dXJpdHlfY29tcHV0ZV9hdihjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKKwkJCWNv bnN0IHNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAogCQkJc2VjdXJpdHlfY2xhc3NfdCB0Y2xh c3MsCiAJCQlhY2Nlc3NfdmVjdG9yX3QgcmVxdWVzdGVkLCBzdHJ1Y3QgYXZfZGVjaXNpb24g KmF2ZCkKIHsKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvc3JjL2NvbXB1dGVfY3JlYXRlLmMg Yi9saWJzZWxpbnV4L3NyYy9jb21wdXRlX2NyZWF0ZS5jCmluZGV4IDFjNTZmMGYuLjBiYmVl ZWQgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL2NvbXB1dGVfY3JlYXRlLmMKKysrIGIv bGlic2VsaW51eC9zcmMvY29tcHV0ZV9jcmVhdGUuYwpAQCAtMTAsOCArMTAsOCBAQAogI2lu Y2x1ZGUgInBvbGljeS5oIgogI2luY2x1ZGUgIm1hcHBpbmcuaCIKIAotaW50IHNlY3VyaXR5 X2NvbXB1dGVfY3JlYXRlX3JhdyhzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJCQlzZWN1 cml0eV9jb250ZXh0X3QgdGNvbiwKK2ludCBzZWN1cml0eV9jb21wdXRlX2NyZWF0ZV9yYXco Y29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHNjb24sCisJCQkJY29uc3Qgc2VjdXJpdHlfY29u dGV4dF90IHRjb24sCiAJCQkJc2VjdXJpdHlfY2xhc3NfdCB0Y2xhc3MsCiAJCQkJc2VjdXJp dHlfY29udGV4dF90ICogbmV3Y29uKQogewpAQCAtNjIsMTQgKzYyLDE0IEBAIGludCBzZWN1 cml0eV9jb21wdXRlX2NyZWF0ZV9yYXcoc2VjdXJpdHlfY29udGV4dF90IHNjb24sCiAKIGhp ZGRlbl9kZWYoc2VjdXJpdHlfY29tcHV0ZV9jcmVhdGVfcmF3KQogCi1pbnQgc2VjdXJpdHlf Y29tcHV0ZV9jcmVhdGUoc2VjdXJpdHlfY29udGV4dF90IHNjb24sCi0JCQkgICAgc2VjdXJp dHlfY29udGV4dF90IHRjb24sCitpbnQgc2VjdXJpdHlfY29tcHV0ZV9jcmVhdGUoY29uc3Qg c2VjdXJpdHlfY29udGV4dF90IHNjb24sCisJCQkgICAgY29uc3Qgc2VjdXJpdHlfY29udGV4 dF90IHRjb24sCiAJCQkgICAgc2VjdXJpdHlfY2xhc3NfdCB0Y2xhc3MsCiAJCQkgICAgc2Vj dXJpdHlfY29udGV4dF90ICogbmV3Y29uKQogewogCWludCByZXQ7Ci0Jc2VjdXJpdHlfY29u dGV4dF90IHJzY29uID0gc2NvbjsKLQlzZWN1cml0eV9jb250ZXh0X3QgcnRjb24gPSB0Y29u OworCXNlY3VyaXR5X2NvbnRleHRfdCByc2NvbjsKKwlzZWN1cml0eV9jb250ZXh0X3QgcnRj b247CiAJc2VjdXJpdHlfY29udGV4dF90IHJuZXdjb247CiAKIAlpZiAoc2VsaW51eF90cmFu c190b19yYXdfY29udGV4dChzY29uLCAmcnNjb24pKQpkaWZmIC0tZ2l0IGEvbGlic2VsaW51 eC9zcmMvY29tcHV0ZV9tZW1iZXIuYyBiL2xpYnNlbGludXgvc3JjL2NvbXB1dGVfbWVtYmVy LmMKaW5kZXggZTU0OTVlNC4uZGFkMGE3NyAxMDA2NDQKLS0tIGEvbGlic2VsaW51eC9zcmMv Y29tcHV0ZV9tZW1iZXIuYworKysgYi9saWJzZWxpbnV4L3NyYy9jb21wdXRlX21lbWJlci5j CkBAIC0xMCw4ICsxMCw4IEBACiAjaW5jbHVkZSAicG9saWN5LmgiCiAjaW5jbHVkZSAibWFw cGluZy5oIgogCi1pbnQgc2VjdXJpdHlfY29tcHV0ZV9tZW1iZXJfcmF3KHNlY3VyaXR5X2Nv bnRleHRfdCBzY29uLAotCQkJCXNlY3VyaXR5X2NvbnRleHRfdCB0Y29uLAoraW50IHNlY3Vy aXR5X2NvbXB1dGVfbWVtYmVyX3Jhdyhjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwK KwkJCQljb25zdCBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKIAkJCQlzZWN1cml0eV9jbGFz c190IHRjbGFzcywKIAkJCQlzZWN1cml0eV9jb250ZXh0X3QgKiBuZXdjb24pCiB7CkBAIC02 MiwxNCArNjIsMTQgQEAgaW50IHNlY3VyaXR5X2NvbXB1dGVfbWVtYmVyX3JhdyhzZWN1cml0 eV9jb250ZXh0X3Qgc2NvbiwKIAogaGlkZGVuX2RlZihzZWN1cml0eV9jb21wdXRlX21lbWJl cl9yYXcpCiAKLWludCBzZWN1cml0eV9jb21wdXRlX21lbWJlcihzZWN1cml0eV9jb250ZXh0 X3Qgc2NvbiwKLQkJCSAgICBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKK2ludCBzZWN1cml0 eV9jb21wdXRlX21lbWJlcihjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKKwkJCSAg ICBjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgdGNvbiwKIAkJCSAgICBzZWN1cml0eV9jbGFz c190IHRjbGFzcywKIAkJCSAgICBzZWN1cml0eV9jb250ZXh0X3QgKiBuZXdjb24pCiB7CiAJ aW50IHJldDsKLQlzZWN1cml0eV9jb250ZXh0X3QgcnNjb24gPSBzY29uOwotCXNlY3VyaXR5 X2NvbnRleHRfdCBydGNvbiA9IHRjb247CisJc2VjdXJpdHlfY29udGV4dF90IHJzY29uOwor CXNlY3VyaXR5X2NvbnRleHRfdCBydGNvbjsKIAlzZWN1cml0eV9jb250ZXh0X3Qgcm5ld2Nv bjsKIAogCWlmIChzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250ZXh0KHNjb24sICZyc2Nvbikp CmRpZmYgLS1naXQgYS9saWJzZWxpbnV4L3NyYy9jb21wdXRlX3JlbGFiZWwuYyBiL2xpYnNl bGludXgvc3JjL2NvbXB1dGVfcmVsYWJlbC5jCmluZGV4IGFlOWM2NDguLjY1NmYwMGEgMTAw NjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL2NvbXB1dGVfcmVsYWJlbC5jCisrKyBiL2xpYnNl bGludXgvc3JjL2NvbXB1dGVfcmVsYWJlbC5jCkBAIC0xMCw4ICsxMCw4IEBACiAjaW5jbHVk ZSAicG9saWN5LmgiCiAjaW5jbHVkZSAibWFwcGluZy5oIgogCi1pbnQgc2VjdXJpdHlfY29t cHV0ZV9yZWxhYmVsX3JhdyhzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJCQkgc2VjdXJp dHlfY29udGV4dF90IHRjb24sCitpbnQgc2VjdXJpdHlfY29tcHV0ZV9yZWxhYmVsX3Jhdyhj b25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKKwkJCQkgY29uc3Qgc2VjdXJpdHlfY29u dGV4dF90IHRjb24sCiAJCQkJIHNlY3VyaXR5X2NsYXNzX3QgdGNsYXNzLAogCQkJCSBzZWN1 cml0eV9jb250ZXh0X3QgKiBuZXdjb24pCiB7CkBAIC02MiwxNCArNjIsMTQgQEAgaW50IHNl Y3VyaXR5X2NvbXB1dGVfcmVsYWJlbF9yYXcoc2VjdXJpdHlfY29udGV4dF90IHNjb24sCiAK IGhpZGRlbl9kZWYoc2VjdXJpdHlfY29tcHV0ZV9yZWxhYmVsX3JhdykKIAotaW50IHNlY3Vy aXR5X2NvbXB1dGVfcmVsYWJlbChzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwKLQkJCSAgICAg c2VjdXJpdHlfY29udGV4dF90IHRjb24sCitpbnQgc2VjdXJpdHlfY29tcHV0ZV9yZWxhYmVs KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCBzY29uLAorCQkJICAgICBjb25zdCBzZWN1cml0 eV9jb250ZXh0X3QgdGNvbiwKIAkJCSAgICAgc2VjdXJpdHlfY2xhc3NfdCB0Y2xhc3MsCiAJ CQkgICAgIHNlY3VyaXR5X2NvbnRleHRfdCAqIG5ld2NvbikKIHsKIAlpbnQgcmV0OwotCXNl Y3VyaXR5X2NvbnRleHRfdCByc2NvbiA9IHNjb247Ci0Jc2VjdXJpdHlfY29udGV4dF90IHJ0 Y29uID0gdGNvbjsKKwlzZWN1cml0eV9jb250ZXh0X3QgcnNjb247CisJc2VjdXJpdHlfY29u dGV4dF90IHJ0Y29uOwogCXNlY3VyaXR5X2NvbnRleHRfdCBybmV3Y29uOwogCiAJaWYgKHNl bGludXhfdHJhbnNfdG9fcmF3X2NvbnRleHQoc2NvbiwgJnJzY29uKSkKZGlmZiAtLWdpdCBh L2xpYnNlbGludXgvc3JjL2NvbXB1dGVfdXNlci5jIGIvbGlic2VsaW51eC9zcmMvY29tcHV0 ZV91c2VyLmMKaW5kZXggZmE2ZjY1MC4uM2IzOWRkZCAxMDA2NDQKLS0tIGEvbGlic2VsaW51 eC9zcmMvY29tcHV0ZV91c2VyLmMKKysrIGIvbGlic2VsaW51eC9zcmMvY29tcHV0ZV91c2Vy LmMKQEAgLTksNyArOSw3IEBACiAjaW5jbHVkZSAicG9saWN5LmgiCiAjaW5jbHVkZSA8bGlt aXRzLmg+CiAKLWludCBzZWN1cml0eV9jb21wdXRlX3VzZXJfcmF3KHNlY3VyaXR5X2NvbnRl eHRfdCBzY29uLAoraW50IHNlY3VyaXR5X2NvbXB1dGVfdXNlcl9yYXcoY29uc3Qgc2VjdXJp dHlfY29udGV4dF90IHNjb24sCiAJCQkgICAgICBjb25zdCBjaGFyICp1c2VyLCBzZWN1cml0 eV9jb250ZXh0X3QgKiogY29uKQogewogCWNoYXIgcGF0aFtQQVRIX01BWF07CkBAIC03OSwx MSArNzksMTEgQEAgaW50IHNlY3VyaXR5X2NvbXB1dGVfdXNlcl9yYXcoc2VjdXJpdHlfY29u dGV4dF90IHNjb24sCiAKIGhpZGRlbl9kZWYoc2VjdXJpdHlfY29tcHV0ZV91c2VyX3JhdykK IAotaW50IHNlY3VyaXR5X2NvbXB1dGVfdXNlcihzZWN1cml0eV9jb250ZXh0X3Qgc2NvbiwK K2ludCBzZWN1cml0eV9jb21wdXRlX3VzZXIoY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IHNj b24sCiAJCQkgIGNvbnN0IGNoYXIgKnVzZXIsIHNlY3VyaXR5X2NvbnRleHRfdCAqKiBjb24p CiB7CiAJaW50IHJldDsKLQlzZWN1cml0eV9jb250ZXh0X3QgcnNjb24gPSBzY29uOworCXNl Y3VyaXR5X2NvbnRleHRfdCByc2NvbjsKIAogCWlmIChzZWxpbnV4X3RyYW5zX3RvX3Jhd19j b250ZXh0KHNjb24sICZyc2NvbikpCiAJCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2xpYnNl bGludXgvc3JjL2ZzZXRmaWxlY29uLmMgYi9saWJzZWxpbnV4L3NyYy9mc2V0ZmlsZWNvbi5j CmluZGV4IDZjYWQ0ZDcuLjMwOTEwNWMgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL2Zz ZXRmaWxlY29uLmMKKysrIGIvbGlic2VsaW51eC9zcmMvZnNldGZpbGVjb24uYwpAQCAtNyw3 ICs3LDcgQEAKICNpbmNsdWRlICJzZWxpbnV4X2ludGVybmFsLmgiCiAjaW5jbHVkZSAicG9s aWN5LmgiCiAKLWludCBmc2V0ZmlsZWNvbl9yYXcoaW50IGZkLCBzZWN1cml0eV9jb250ZXh0 X3QgY29udGV4dCkKK2ludCBmc2V0ZmlsZWNvbl9yYXcoaW50IGZkLCBjb25zdCBzZWN1cml0 eV9jb250ZXh0X3QgY29udGV4dCkKIHsKIAlyZXR1cm4gZnNldHhhdHRyKGZkLCBYQVRUUl9O QU1FX1NFTElOVVgsIGNvbnRleHQsIHN0cmxlbihjb250ZXh0KSArIDEsCiAJCQkgMCk7CkBA IC0xNSwxMCArMTUsMTAgQEAgaW50IGZzZXRmaWxlY29uX3JhdyhpbnQgZmQsIHNlY3VyaXR5 X2NvbnRleHRfdCBjb250ZXh0KQogCiBoaWRkZW5fZGVmKGZzZXRmaWxlY29uX3JhdykKIAot aW50IGZzZXRmaWxlY29uKGludCBmZCwgc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpCitp bnQgZnNldGZpbGVjb24oaW50IGZkLCBjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgY29udGV4 dCkKIHsKIAlpbnQgcmV0OwotCXNlY3VyaXR5X2NvbnRleHRfdCByY29udGV4dCA9IGNvbnRl eHQ7CisJc2VjdXJpdHlfY29udGV4dF90IHJjb250ZXh0OwogCiAJaWYgKHNlbGludXhfdHJh bnNfdG9fcmF3X2NvbnRleHQoY29udGV4dCwgJnJjb250ZXh0KSkKIAkJcmV0dXJuIC0xOwpk aWZmIC0tZ2l0IGEvbGlic2VsaW51eC9zcmMvaXNfY3VzdG9taXphYmxlX3R5cGUuYyBiL2xp YnNlbGludXgvc3JjL2lzX2N1c3RvbWl6YWJsZV90eXBlLmMKaW5kZXggNjc4NTQwNS4uYThl MjE4MyAxMDA2NDQKLS0tIGEvbGlic2VsaW51eC9zcmMvaXNfY3VzdG9taXphYmxlX3R5cGUu YworKysgYi9saWJzZWxpbnV4L3NyYy9pc19jdXN0b21pemFibGVfdHlwZS5jCkBAIC02MSw3 ICs2MSw3IEBAIHN0YXRpYyBpbnQgZ2V0X2N1c3RvbWl6YWJsZV90eXBlX2xpc3Qoc2VjdXJp dHlfY29udGV4dF90ICoqIHJldGxpc3QpCiAKIHN0YXRpYyBzZWN1cml0eV9jb250ZXh0X3Qg KmN1c3RvbWl6YWJsZV9saXN0ID0gTlVMTDsKIAotaW50IGlzX2NvbnRleHRfY3VzdG9taXph YmxlKHNlY3VyaXR5X2NvbnRleHRfdCBzY29udGV4dCkKK2ludCBpc19jb250ZXh0X2N1c3Rv bWl6YWJsZShjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qgc2NvbnRleHQpCiB7CiAJaW50IGk7 CiAJY29uc3QgY2hhciAqdHlwZTsKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvc3JjL2xzZXRm aWxlY29uLmMgYi9saWJzZWxpbnV4L3NyYy9sc2V0ZmlsZWNvbi5jCmluZGV4IDg0NGU1Yzcu LjQ2MWUzZjcgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL2xzZXRmaWxlY29uLmMKKysr IGIvbGlic2VsaW51eC9zcmMvbHNldGZpbGVjb24uYwpAQCAtNyw3ICs3LDcgQEAKICNpbmNs dWRlICJzZWxpbnV4X2ludGVybmFsLmgiCiAjaW5jbHVkZSAicG9saWN5LmgiCiAKLWludCBs c2V0ZmlsZWNvbl9yYXcoY29uc3QgY2hhciAqcGF0aCwgc2VjdXJpdHlfY29udGV4dF90IGNv bnRleHQpCitpbnQgbHNldGZpbGVjb25fcmF3KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHNl Y3VyaXR5X2NvbnRleHRfdCBjb250ZXh0KQogewogCXJldHVybiBsc2V0eGF0dHIocGF0aCwg WEFUVFJfTkFNRV9TRUxJTlVYLCBjb250ZXh0LCBzdHJsZW4oY29udGV4dCkgKyAxLAogCQkJ IDApOwpAQCAtMTUsMTAgKzE1LDEwIEBAIGludCBsc2V0ZmlsZWNvbl9yYXcoY29uc3QgY2hh ciAqcGF0aCwgc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpCiAKIGhpZGRlbl9kZWYobHNl dGZpbGVjb25fcmF3KQogCi1pbnQgbHNldGZpbGVjb24oY29uc3QgY2hhciAqcGF0aCwgc2Vj dXJpdHlfY29udGV4dF90IGNvbnRleHQpCitpbnQgbHNldGZpbGVjb24oY29uc3QgY2hhciAq cGF0aCwgY29uc3Qgc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpCiB7CiAJaW50IHJldDsK LQlzZWN1cml0eV9jb250ZXh0X3QgcmNvbnRleHQgPSBjb250ZXh0OworCXNlY3VyaXR5X2Nv bnRleHRfdCByY29udGV4dDsKIAogCWlmIChzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250ZXh0 KGNvbnRleHQsICZyY29udGV4dCkpCiAJCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2xpYnNl bGludXgvc3JjL3Byb2NhdHRyLmMgYi9saWJzZWxpbnV4L3NyYy9wcm9jYXR0ci5jCmluZGV4 IDhmM2Y0MDEuLjgzMzgxZTQgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL3Byb2NhdHRy LmMKKysrIGIvbGlic2VsaW51eC9zcmMvcHJvY2F0dHIuYwpAQCAtMTI2LDExICsxMjYsMTEg QEAgc3RhdGljIGludCBzZXRwcm9jYXR0cmNvbl9yYXcoc2VjdXJpdHlfY29udGV4dF90IGNv bnRleHQsCiAJCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNldHByb2NhdHRyY29uKHNl Y3VyaXR5X2NvbnRleHRfdCBjb250ZXh0LAorc3RhdGljIGludCBzZXRwcm9jYXR0cmNvbihj b25zdCBzZWN1cml0eV9jb250ZXh0X3QgY29udGV4dCwKIAkJCSAgcGlkX3QgcGlkLCBjb25z dCBjaGFyICphdHRyKQogewogCWludCByZXQ7Ci0Jc2VjdXJpdHlfY29udGV4dF90IHJjb250 ZXh0ID0gY29udGV4dDsKKwlzZWN1cml0eV9jb250ZXh0X3QgcmNvbnRleHQ7CiAKIAlpZiAo c2VsaW51eF90cmFuc190b19yYXdfY29udGV4dChjb250ZXh0LCAmcmNvbnRleHQpKQogCQly ZXR1cm4gLTE7CkBAIC0xNTMsMTEgKzE1MywxMSBAQCBzdGF0aWMgaW50IHNldHByb2NhdHRy Y29uKHNlY3VyaXR5X2NvbnRleHRfdCBjb250ZXh0LAogCX0KIAogI2RlZmluZSBzZXRzZWxm YXR0cl9kZWYoZm4sIGF0dHIpIFwKLQlpbnQgc2V0IyNmbiMjX3JhdyhzZWN1cml0eV9jb250 ZXh0X3QgYykgXAorCWludCBzZXQjI2ZuIyNfcmF3KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRf dCBjKSBcCiAJeyBcCiAJCXJldHVybiBzZXRwcm9jYXR0cmNvbl9yYXcoYywgMCwgI2F0dHIp OyBcCiAJfSBcCi0JaW50IHNldCMjZm4oc2VjdXJpdHlfY29udGV4dF90IGMpIFwKKwlpbnQg c2V0IyNmbihjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgYykgXAogCXsgXAogCQlyZXR1cm4g c2V0cHJvY2F0dHJjb24oYywgMCwgI2F0dHIpOyBcCiAJfQpkaWZmIC0tZ2l0IGEvbGlic2Vs aW51eC9zcmMvc2VsaW51eF9jaGVja19zZWN1cmV0dHlfY29udGV4dC5jIGIvbGlic2VsaW51 eC9zcmMvc2VsaW51eF9jaGVja19zZWN1cmV0dHlfY29udGV4dC5jCmluZGV4IGZkYjVhNTku LmU2ZDI1MDEgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL3NlbGludXhfY2hlY2tfc2Vj dXJldHR5X2NvbnRleHQuYworKysgYi9saWJzZWxpbnV4L3NyYy9zZWxpbnV4X2NoZWNrX3Nl Y3VyZXR0eV9jb250ZXh0LmMKQEAgLTYsNyArNiw3IEBACiAjaW5jbHVkZSAic2VsaW51eF9p bnRlcm5hbC5oIgogI2luY2x1ZGUgImNvbnRleHRfaW50ZXJuYWwuaCIKIAotaW50IHNlbGlu dXhfY2hlY2tfc2VjdXJldHR5X2NvbnRleHQoc2VjdXJpdHlfY29udGV4dF90IHR0eV9jb250 ZXh0KQoraW50IHNlbGludXhfY2hlY2tfc2VjdXJldHR5X2NvbnRleHQoY29uc3Qgc2VjdXJp dHlfY29udGV4dF90IHR0eV9jb250ZXh0KQogewogCWNoYXIgKmxpbmUgPSBOVUxMOwogCWNo YXIgKnN0YXJ0LCAqZW5kID0gTlVMTDsKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvc3JjL3Nl dGZpbGVjb24uYyBiL2xpYnNlbGludXgvc3JjL3NldGZpbGVjb24uYwppbmRleCA4YzYzM2Vm Li43NDY1YzZhIDEwMDY0NAotLS0gYS9saWJzZWxpbnV4L3NyYy9zZXRmaWxlY29uLmMKKysr IGIvbGlic2VsaW51eC9zcmMvc2V0ZmlsZWNvbi5jCkBAIC03LDcgKzcsNyBAQAogI2luY2x1 ZGUgInNlbGludXhfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJwb2xpY3kuaCIKIAotaW50IHNl dGZpbGVjb25fcmF3KGNvbnN0IGNoYXIgKnBhdGgsIHNlY3VyaXR5X2NvbnRleHRfdCBjb250 ZXh0KQoraW50IHNldGZpbGVjb25fcmF3KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IHNlY3Vy aXR5X2NvbnRleHRfdCBjb250ZXh0KQogewogCXJldHVybiBzZXR4YXR0cihwYXRoLCBYQVRU Ul9OQU1FX1NFTElOVVgsIGNvbnRleHQsIHN0cmxlbihjb250ZXh0KSArIDEsCiAJCQkwKTsK QEAgLTE1LDEwICsxNSwxMCBAQCBpbnQgc2V0ZmlsZWNvbl9yYXcoY29uc3QgY2hhciAqcGF0 aCwgc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpCiAKIGhpZGRlbl9kZWYoc2V0ZmlsZWNv bl9yYXcpCiAKLWludCBzZXRmaWxlY29uKGNvbnN0IGNoYXIgKnBhdGgsIHNlY3VyaXR5X2Nv bnRleHRfdCBjb250ZXh0KQoraW50IHNldGZpbGVjb24oY29uc3QgY2hhciAqcGF0aCwgY29u c3Qgc2VjdXJpdHlfY29udGV4dF90IGNvbnRleHQpCiB7CiAJaW50IHJldDsKLQlzZWN1cml0 eV9jb250ZXh0X3QgcmNvbnRleHQgPSBjb250ZXh0OworCXNlY3VyaXR5X2NvbnRleHRfdCBy Y29udGV4dDsKIAogCWlmIChzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250ZXh0KGNvbnRleHQs ICZyY29udGV4dCkpCiAJCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2xpYnNlbGludXgvc3Jj L3NldHJhbnNfY2xpZW50LmMgYi9saWJzZWxpbnV4L3NyYy9zZXRyYW5zX2NsaWVudC5jCmlu ZGV4IDJiYmNiZGUuLmVmNTQ0NDIgMTAwNjQ0Ci0tLSBhL2xpYnNlbGludXgvc3JjL3NldHJh bnNfY2xpZW50LmMKKysrIGIvbGlic2VsaW51eC9zcmMvc2V0cmFuc19jbGllbnQuYwpAQCAt MTY1LDcgKzE2NSw3IEBAIHJlY2VpdmVfcmVzcG9uc2UoaW50IGZkLCB1aW50MzJfdCBmdW5j dGlvbiwgY2hhciAqKm91dGRhdGEsIGludDMyX3QgKiByZXRfdmFsKQogCXJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IHJhd190b190cmFuc19jb250ZXh0KGNoYXIgKnJhdywgY2hhciAq KnRyYW5zcCkKK3N0YXRpYyBpbnQgcmF3X3RvX3RyYW5zX2NvbnRleHQoY29uc3QgY2hhciAq cmF3LCBjaGFyICoqdHJhbnNwKQogewogCWludCByZXQ7CiAJaW50MzJfdCByZXRfdmFsOwpA QCAtMTkxLDcgKzE5MSw3IEBAIHN0YXRpYyBpbnQgcmF3X3RvX3RyYW5zX2NvbnRleHQoY2hh ciAqcmF3LCBjaGFyICoqdHJhbnNwKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQg dHJhbnNfdG9fcmF3X2NvbnRleHQoY2hhciAqdHJhbnMsIGNoYXIgKipyYXdwKQorc3RhdGlj IGludCB0cmFuc190b19yYXdfY29udGV4dChjb25zdCBjaGFyICp0cmFucywgY2hhciAqKnJh d3ApCiB7CiAJaW50IHJldDsKIAlpbnQzMl90IHJldF92YWw7CkBAIC0yMTYsNyArMjE2LDcg QEAgc3RhdGljIGludCB0cmFuc190b19yYXdfY29udGV4dChjaGFyICp0cmFucywgY2hhciAq KnJhd3ApCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCByYXdfY29udGV4dF90b19j b2xvcihjaGFyICpyYXcsIGNoYXIgKipjb2xvcnMpCitzdGF0aWMgaW50IHJhd19jb250ZXh0 X3RvX2NvbG9yKGNvbnN0IGNoYXIgKnJhdywgY2hhciAqKmNvbG9ycykKIHsKIAlpbnQgcmV0 OwogCWludDMyX3QgcmV0X3ZhbDsKQEAgLTI0NSw3ICsyNDUsNyBAQCBzdGF0aWMgdm9pZCBp bml0X2NvbnRleHRfdHJhbnNsYXRpb25zKHZvaWQpCiAJbWxzX2VuYWJsZWQgPSBpc19zZWxp bnV4X21sc19lbmFibGVkKCk7CiB9CiAKLWludCBzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250 ZXh0KHNlY3VyaXR5X2NvbnRleHRfdCB0cmFucywKK2ludCBzZWxpbnV4X3RyYW5zX3RvX3Jh d19jb250ZXh0KGNvbnN0IHNlY3VyaXR5X2NvbnRleHRfdCB0cmFucywKIAkJCQkgc2VjdXJp dHlfY29udGV4dF90ICogcmF3cCkKIHsKIAlpZiAoIXRyYW5zKSB7CkBAIC0yODYsNyArMjg2 LDcgQEAgaW50IHNlbGludXhfdHJhbnNfdG9fcmF3X2NvbnRleHQoc2VjdXJpdHlfY29udGV4 dF90IHRyYW5zLAogCiBoaWRkZW5fZGVmKHNlbGludXhfdHJhbnNfdG9fcmF3X2NvbnRleHQp CiAKLWludCBzZWxpbnV4X3Jhd190b190cmFuc19jb250ZXh0KHNlY3VyaXR5X2NvbnRleHRf dCByYXcsCitpbnQgc2VsaW51eF9yYXdfdG9fdHJhbnNfY29udGV4dChjb25zdCBzZWN1cml0 eV9jb250ZXh0X3QgcmF3LAogCQkJCSBzZWN1cml0eV9jb250ZXh0X3QgKiB0cmFuc3ApCiB7 CiAJaWYgKCFyYXcpIHsKQEAgLTMyNyw3ICszMjcsNyBAQCBpbnQgc2VsaW51eF9yYXdfdG9f dHJhbnNfY29udGV4dChzZWN1cml0eV9jb250ZXh0X3QgcmF3LAogCiBoaWRkZW5fZGVmKHNl bGludXhfcmF3X3RvX3RyYW5zX2NvbnRleHQpCiAKLWludCBzZWxpbnV4X3Jhd19jb250ZXh0 X3RvX2NvbG9yKHNlY3VyaXR5X2NvbnRleHRfdCByYXcsIGNoYXIgKip0cmFuc3ApCitpbnQg c2VsaW51eF9yYXdfY29udGV4dF90b19jb2xvcihjb25zdCBzZWN1cml0eV9jb250ZXh0X3Qg cmF3LCBjaGFyICoqdHJhbnNwKQogewogCWlmICghcmF3KSB7CiAJCSp0cmFuc3AgPSBOVUxM OwpAQCAtMzYxLDcgKzM2MSw3IEBAIGludCBzZWxpbnV4X3Jhd19jb250ZXh0X3RvX2NvbG9y KHNlY3VyaXR5X2NvbnRleHRfdCByYXcsIGNoYXIgKip0cmFuc3ApCiBoaWRkZW5fZGVmKHNl bGludXhfcmF3X2NvbnRleHRfdG9fY29sb3IpCiAjZWxzZSAvKkRJU0FCTEVfU0VUUkFOUyov CiAKLWludCBzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250ZXh0KHNlY3VyaXR5X2NvbnRleHRf dCB0cmFucywKK2ludCBzZWxpbnV4X3RyYW5zX3RvX3Jhd19jb250ZXh0KGNvbnN0IHNlY3Vy aXR5X2NvbnRleHRfdCB0cmFucywKIAkJCQkgc2VjdXJpdHlfY29udGV4dF90ICogcmF3cCkK IHsKIAlpZiAoIXRyYW5zKSB7CkBAIC0zNzYsNyArMzc2LDcgQEAgaW50IHNlbGludXhfdHJh bnNfdG9fcmF3X2NvbnRleHQoc2VjdXJpdHlfY29udGV4dF90IHRyYW5zLAogCiBoaWRkZW5f ZGVmKHNlbGludXhfdHJhbnNfdG9fcmF3X2NvbnRleHQpCiAKLWludCBzZWxpbnV4X3Jhd190 b190cmFuc19jb250ZXh0KHNlY3VyaXR5X2NvbnRleHRfdCByYXcsCitpbnQgc2VsaW51eF9y YXdfdG9fdHJhbnNfY29udGV4dChjb25zdCBzZWN1cml0eV9jb250ZXh0X3QgcmF3LAogCQkJ CSBzZWN1cml0eV9jb250ZXh0X3QgKiB0cmFuc3ApCiB7CiAJaWYgKCFyYXcpIHsK --------------040707050309050400030301-- -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message.