com php/gtk-src: Finish fixing segfaults and do the support for custom signals and properties: ext/gtk+/gdk.overrides main/php_gtk .h main/phpg_closure.c main/phpg_gobject.c main /phpg_support.c
[email protected] (Elizabeth Marie Smith) Wed, 18 Jul 2012 02:57:37 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
--7194303ed6d323fcfd0dfaa0523b4e17aeca1d67 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Commit: 7d73feb32c54325a3c249756999b3e56942de5f6=0AAuthor: Elizabeth = M Smith <[email protected]> Tue, 17 Jul 2012 22:57:37 -0400= =0AParents: f5c24b08990e369a198854ba4c2965faf3572ac9=0ABranches: master= =0A=0ALink: http://git.php.net/?p=3Dphp/gtk-src.git;a=3Dcommitdiff;h= =3D7d73feb32c54325a3c249756999b3e56942de5f6=0A=0ALog:=0AFinish fixing segfa= ults and do the support for custom=0Asignals and properties=0A=0APHP 5.4 su= pport is now complete - still working on removing=0Aall the rest of the TSR= MLS_FETCH calls (why so many...)=0A=0AChanged paths:=0A M ext/gtk+/gdk.ov= errides=0A M main/php_gtk.h=0A M main/phpg_closure.c=0A M main/phpg_g= object.c=0A M main/phpg_support.c=0A=0A --7194303ed6d323fcfd0dfaa0523b4e17aeca1d67 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="diff_7d73feb32c54325a3c249756999b3e56942de5f6.txt" ZGlmZiAtLWdpdCBhL2V4dC9ndGsrL2dkay5vdmVycmlkZXMgYi9leHQvZ3RrKy9nZGsub3ZlcnJp ZGVzCmluZGV4IGI0YWE4MjMuLjI3YzY0YzMgMTAwNjQ0Ci0tLSBhL2V4dC9ndGsrL2dkay5vdmVy cmlkZXMKKysrIGIvZXh0L2d0aysvZ2RrLm92ZXJyaWRlcwpAQCAtMzE5LDYgKzMxOSwxMSBAQCBI YXNoVGFibGUqIHBocGdfZ2RrY29sb3JfZ2V0X3Byb3BlcnRpZXNfaGFuZGxlcih6dmFsICpvYmpl Y3QgVFNSTUxTX0RDKQogewogICAgIHBocGdfaGVhZF90ICpwb2ggPSBOVUxMOwogICAgIHBvaCA9 IChwaHBnX2hlYWRfdCAqKSB6ZW5kX29iamVjdF9zdG9yZV9nZXRfb2JqZWN0KG9iamVjdCBUU1JN TFNfQ0MpOworI2lmIFBIUF9WRVJTSU9OX0lEID4gNTAzOTkKKwlpZiAoIXBvaC0+em9iai5wcm9w ZXJ0aWVzKSB7CisJCXJlYnVpbGRfb2JqZWN0X3Byb3BlcnRpZXMoJnBvaC0+em9iaik7CisJfQor I2VuZGlmCiAgICAgcGhwZ19nZXRfcHJvcGVydGllc19oZWxwZXIob2JqZWN0LCBwb2gtPnpvYmou cHJvcGVydGllcyBUU1JNTFNfQ0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RS UyhyZWQpLCBTVFJTKGdyZWVuKSwgU1RSUyhibHVlKSwgU1RSUyhwaXhlbCksIE5VTEwpOwogCkBA IC03ODksNyArNzk0LDcgQEAgUEhQX01FVEhPRAogCiAlJQogb3ZlcnJpZGUtaGFuZGxlciBHZGtF dmVudCByZWFkX3Byb3BlcnR5Ci1zdGF0aWMgenZhbCogcGhwZ19nZGtldmVudF9yZWFkX3Byb3Bl cnR5X2hhbmRsZXIoenZhbCAqb2JqZWN0LCB6dmFsICptZW1iZXIsIGludCB0eXBlIFRTUk1MU19E QykKK3N0YXRpYyB6dmFsKiBwaHBnX2dka2V2ZW50X3JlYWRfcHJvcGVydHlfaGFuZGxlcih6dmFs ICpvYmplY3QsIHp2YWwgKm1lbWJlciwgaW50IHR5cGUgUEhQR1RLX1BST1BFUlRZX0VORCkKIHsK ICAgICB6dmFsIHRtcF9tZW1iZXI7CiAgICAgenZhbCAqcmVzdWx0ID0gTlVMTDsKQEAgLTExODcs NiArMTE5MiwxMiBAQCBIYXNoVGFibGUqIHBocGdfZ2RrZXZlbnRfZ2V0X3Byb3BlcnRpZXNfaGFu ZGxlcih6dmFsICpvYmplY3QgVFNSTUxTX0RDKQogCiAgICAgcG9oID0gKHBocGdfaGVhZF90ICop IHplbmRfb2JqZWN0X3N0b3JlX2dldF9vYmplY3Qob2JqZWN0IFRTUk1MU19DQyk7CiAKKyNpZiBQ SFBfVkVSU0lPTl9JRCA+IDUwMzk5CisJaWYgKCFwb2gtPnpvYmoucHJvcGVydGllcykgeworCQly ZWJ1aWxkX29iamVjdF9wcm9wZXJ0aWVzKCZwb2gtPnpvYmopOworCX0KKyNlbmRpZgorCiAgICAg c3dpdGNoIChldmVudC0+dHlwZSkgewogCiAgICAgICAgIGNhc2UgR0RLX05PVEhJTkc6CkBAIC0x MjEwLDYgKzEyMjEsNyBAQCBIYXNoVGFibGUqIHBocGdfZ2RrZXZlbnRfZ2V0X3Byb3BlcnRpZXNf aGFuZGxlcih6dmFsICpvYmplY3QgVFNSTUxTX0RDKQogICAgICAgICBjYXNlIEdES18yQlVUVE9O X1BSRVNTOgogICAgICAgICBjYXNlIEdES18zQlVUVE9OX1BSRVNTOgogICAgICAgICBjYXNlIEdE S19CVVRUT05fUkVMRUFTRToKKwogICAgICAgICAgICAgcGhwZ19nZXRfcHJvcGVydGllc19oZWxw ZXIob2JqZWN0LCBwb2gtPnpvYmoucHJvcGVydGllcyBUU1JNTFNfQ0MsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTVFJTKHRpbWUpLCBTVFJTKHgpLCBTVFJTKHkpLCBT VFJTKGF4ZXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RSUyhz dGF0ZSksIFNUUlMoYnV0dG9uKSwgU1RSUyhkZXZpY2UpLApkaWZmIC0tZ2l0IGEvbWFpbi9waHBf Z3RrLmggYi9tYWluL3BocF9ndGsuaAppbmRleCA0ZGUwMTcyLi4wZTMxZTJlIDEwMDY0NAotLS0g YS9tYWluL3BocF9ndGsuaAorKysgYi9tYWluL3BocF9ndGsuaApAQCAtNzAsNiArNzAsMTMgQEAK ICMgZGVmaW5lIFBIUEdUS19aRU5EX0lTX0NBTExBQkxFCiAjZW5kaWYKIAorLyogcmVhZF9wcm9w ZXJ0eSwgd3JpdGVfcHJvcGVydHkgYW5kIGdldF9wcm9wZXJ0eV9wdHJfcHRyIGFsbCBoYXZlIGxp dGVyYWwgYXQgdGhlIGVuZCBub3cgKi8KKyNpZiBQSFBfVkVSU0lPTl9JRCA8IDUwMzk5CisjIGRl ZmluZSBQSFBHVEtfUFJPUEVSVFlfRU5EIFRTUk1MU19EQworI2Vsc2UKKyMgZGVmaW5lIFBIUEdU S19QUk9QRVJUWV9FTkQgLCBjb25zdCB6ZW5kX2xpdGVyYWwgKmtleSBUU1JNTFNfREMKKyNlbmRp ZgorCiAjaWYgSEFWRV9QSFBfR1RLCiAKICNpbmNsdWRlICJ6ZW5kX29iamVjdHNfQVBJLmgiCkBA IC0yOTMsOSArMzAwLDkgQEAgZXh0ZXJuIFBIUF9HVEtfQVBJIHplbmRfb2JqZWN0X2hhbmRsZXJz IHBocGdfZ29iamVjdF9oYW5kbGVyczsKIGludCBwaHBfZ3RrX3N0YXJ0dXBfYWxsX2V4dGVuc2lv bnMoaW50IG1vZHVsZV9udW1iZXIpOwogaW50IHBocF9ndGtfc3RhcnR1cF9leHRlbnNpb25zKHBo cF9ndGtfZXh0X2VudHJ5ICoqZXh0LCBpbnQgZXh0X2NvdW50LCBpbnQgbW9kdWxlX251bWJlcik7 CiAKLXp2YWwgKnBocGdfcmVhZF9wcm9wZXJ0eSh6dmFsICpvYmplY3QsIHp2YWwgKm1lbWJlciwg aW50IHR5cGUgVFNSTUxTX0RDKTsKLXZvaWQgcGhwZ193cml0ZV9wcm9wZXJ0eSh6dmFsICpvYmpl Y3QsIHp2YWwgKm1lbWJlciwgenZhbCAqdmFsdWUgVFNSTUxTX0RDKTsKLXp2YWwgKipwaHBnX2dl dF9wcm9wZXJ0eV9wdHJfcHRyKHp2YWwgKm9iamVjdCwgenZhbCAqbWVtYmVyIFRTUk1MU19EQyk7 Cit6dmFsICpwaHBnX3JlYWRfcHJvcGVydHkoenZhbCAqb2JqZWN0LCB6dmFsICptZW1iZXIsIGlu dCB0eXBlIFBIUEdUS19QUk9QRVJUWV9FTkQpOwordm9pZCBwaHBnX3dyaXRlX3Byb3BlcnR5KHp2 YWwgKm9iamVjdCwgenZhbCAqbWVtYmVyLCB6dmFsICp2YWx1ZSBQSFBHVEtfUFJPUEVSVFlfRU5E KTsKK3p2YWwgKipwaHBnX2dldF9wcm9wZXJ0eV9wdHJfcHRyKHp2YWwgKm9iamVjdCwgenZhbCAq bWVtYmVyIFBIUEdUS19QUk9QRVJUWV9FTkQpOwogSGFzaFRhYmxlKiBwaHBnX2dldF9wcm9wZXJ0 aWVzKHp2YWwgKm9iamVjdCBUU1JNTFNfREMpOwogUEhQX0dUS19BUEkgdm9pZCBwaHBnX2dldF9w cm9wZXJ0aWVzX2hlbHBlcih6dmFsICpvYmplY3QsIEhhc2hUYWJsZSAqaHQgVFNSTUxTX0RDLCAu Li4pOwogCkBAIC01NTIsNyArNTU5LDcgQEAgc3RhdGljIGlubGluZSBwaHBnX3BhcmFtc3BlY190 KiBwaHBnX2dwYXJhbXNwZWNfZ2V0KHp2YWwgKnpvYmogVFNSTUxTX0RDKQogLyogQ2xvc3VyZXMg Ki8KIFBIUF9HVEtfQVBJIEdDbG9zdXJlKiBwaHBnX2Nsb3N1cmVfbmV3KHp2YWwgKmNhbGxiYWNr LCB6dmFsICp1c2VyX2FyZ3MsIGludCBjb25uZWN0X3R5cGUsIHp2YWwgKnJlcGxhY2Vfb2JqZWN0 IFRTUk1MU19EQyk7CiBQSFBfR1RLX0FQSSB2b2lkIHBocGdfd2F0Y2hfY2xvc3VyZSh6dmFsICpv YmosIEdDbG9zdXJlICpjbG9zdXJlIFRTUk1MU19EQyk7Ci1QSFBfR1RLX0FQSSBHQ2xvc3VyZSog cGhwZ19nZXRfc2lnbmFsX2NsYXNzX2Nsb3N1cmUoKTsKK1BIUF9HVEtfQVBJIEdDbG9zdXJlKiBw aHBnX2dldF9zaWduYWxfY2xhc3NfY2xvc3VyZShUU1JNTFNfRCk7CiAKIFBIUF9HVEtfQVBJIGV4 dGVybiBQSFBfR1RLX0VYUE9SVF9DRShndHlwZV9jZSk7CiBQSFBfR1RLX0FQSSBleHRlcm4gUEhQ X0dUS19FWFBPUlRfQ0UoZ29iamVjdF9jZSk7CmRpZmYgLS1naXQgYS9tYWluL3BocGdfY2xvc3Vy ZS5jIGIvbWFpbi9waHBnX2Nsb3N1cmUuYwppbmRleCBmMTZhZDhjLi4yMTkxMjVhIDEwMDY0NAot LS0gYS9tYWluL3BocGdfY2xvc3VyZS5jCisrKyBiL21haW4vcGhwZ19jbG9zdXJlLmMKQEAgLTIy Nyw4ICsyMjcsNyBAQCBzdGF0aWMgdm9pZCBwaHBnX3NpZ25hbF9jbGFzc19jbG9zdXJlX21hcnNo YWwoR0Nsb3N1cmUgICAgICpjbG9zdXJlLAogCXBocGdfZ2JveGVkX3QgKmJveGVkX2l0ZW07CiAJ aW50IGksIGs7CiAjaWZkZWYgWlRTCi0JcGhwZ19jbG9zdXJlX3QgKnBocGdfY2xvc3VyZSA9IChw aHBnX2Nsb3N1cmVfdCAqKWNsb3N1cmU7Ci0JVFNSTUxTX0QgPSBwaHBnX2Nsb3N1cmUtPlRTUk1M U19DOworCVRTUk1MU19EID0gY2xvc3VyZS0+ZGF0YTsKICNlbmRpZjsKIAogCXBocGdfcmV0dXJu X2lmX2ZhaWwoaW52b2NhdGlvbl9oaW50ICE9IE5VTEwpOwpAQCAtMjYwLDcgKzI1OSw3IEBAIHN0 YXRpYyB2b2lkIHBocGdfc2lnbmFsX2NsYXNzX2Nsb3N1cmVfbWFyc2hhbChHQ2xvc3VyZSAgICAg KmNsb3N1cmUsCiAJCQkmJiAoZnVuYyA9IFpfT0JKX0hUX1AocGhwX29iamVjdCktPmdldF9tZXRo b2QoJnBocF9vYmplY3QsIG1ldGhvZF9uYW1lLCBtZXRob2RfbmFtZV9sZW4gVFNSTUxTX0NDKSkg IT0gTlVMTCkgewogCQkjZWxzZQogCQkJJiYgKGZ1bmMgPSBaX09CSl9IVF9QKHBocF9vYmplY3Qp LT5nZXRfbWV0aG9kKCZwaHBfb2JqZWN0LCBtZXRob2RfbmFtZSwgbWV0aG9kX25hbWVfbGVuLCBO VUxMIFRTUk1MU19DQykpICE9IE5VTEwpIHsKLQkJI2VuZGlmCQkJCisJCSNlbmRpZgogCQkJaWYg KGZ1bmMtPnR5cGUgPT0gWkVORF9JTlRFUk5BTF9GVU5DVElPTgogCQkJCSYmICgoemVuZF9pbnRl cm5hbF9mdW5jdGlvbiopZnVuYyktPmhhbmRsZXIgPT0gemVuZF9zdGRfY2FsbF91c2VyX2NhbGwK IAkJCSAgICkgewpAQCAtMzI0LDE4ICszMjMsMjIgQEAgZXJyX2NsYXNzX2Nsb3N1cmVfbWFyc2hh bDoKIH0KIAogCi1QSFBfR1RLX0FQSSBHQ2xvc3VyZSogcGhwZ19nZXRfc2lnbmFsX2NsYXNzX2Ns b3N1cmUoKQorUEhQX0dUS19BUEkgR0Nsb3N1cmUqIHBocGdfZ2V0X3NpZ25hbF9jbGFzc19jbG9z dXJlKFRTUk1MU19EKQogewogCXN0YXRpYyBHQ2xvc3VyZSAqY2xvc3VyZSA9IE5VTEw7Ci0JCisK IAlpZiAoY2xvc3VyZSA9PSBOVUxMKSB7CisjaWZkZWYgWlRTCisJCWNsb3N1cmUgPSBnX2Nsb3N1 cmVfbmV3X3NpbXBsZShzaXplb2YoR0Nsb3N1cmUpICsgc2l6ZW9mKFRTUk1MU19DKSwgVFNSTUxT X0MpOworI2Vsc2UKIAkJY2xvc3VyZSA9IGdfY2xvc3VyZV9uZXdfc2ltcGxlKHNpemVvZihHQ2xv c3VyZSksIE5VTEwpOworI2VuZGlmCiAJCWdfY2xvc3VyZV9zZXRfbWFyc2hhbChjbG9zdXJlLCBw aHBnX3NpZ25hbF9jbGFzc19jbG9zdXJlX21hcnNoYWwpOwotCQorCiAJCWdfY2xvc3VyZV9yZWYo Y2xvc3VyZSk7CiAJCWdfY2xvc3VyZV9zaW5rKGNsb3N1cmUpOwogCX0KLQkKKwogCXJldHVybiBj bG9zdXJlOwogfQogCmRpZmYgLS1naXQgYS9tYWluL3BocGdfZ29iamVjdC5jIGIvbWFpbi9waHBn X2dvYmplY3QuYwppbmRleCA0MzdmNTBlLi40MzlhMDYxIDEwMDY0NAotLS0gYS9tYWluL3BocGdf Z29iamVjdC5jCisrKyBiL21haW4vcGhwZ19nb2JqZWN0LmMKQEAgLTEyMzcsMjMgKzEyMzcsMjEg QEAgc3RhdGljIGludCBwaHBnX3JlZ2lzdGVyX3Byb3BlcnRpZXMoR1R5cGUgdHlwZSwgenZhbCAq cHJvcGVydGllcykKICAgICByZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgaW50IHBocGdfb3Zl cnJpZGVfc2lnbmFsKEdUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNpZ25hbF9uYW1lKQorc3RhdGlj IGludCBwaHBnX292ZXJyaWRlX3NpZ25hbChHVHlwZSB0eXBlLCBjb25zdCBjaGFyICpzaWduYWxf bmFtZSBUU1JNTFNfREMpCiB7CiAgICAgZ3VpbnQgc2lnbmFsX2lkOwogCi0JVFNSTUxTX0ZFVENI KCk7Ci0KICAgICBzaWduYWxfaWQgPSBnX3NpZ25hbF9sb29rdXAoc2lnbmFsX25hbWUsIHR5cGUp OwogICAgIGlmICghc2lnbmFsX2lkKSB7CiAgICAgICAgIHBocF9lcnJvcl9kb2NyZWYoTlVMTCBU U1JNTFNfQ0MsIEVfV0FSTklORywgImNvdWxkIG5vdCBmaW5kIHNpZ25hbCAnJXMnIiwgc2lnbmFs X25hbWUpOwogICAgICAgICByZXR1cm4gRkFJTFVSRTsKICAgICB9CiAKLSAgICBnX3NpZ25hbF9v dmVycmlkZV9jbGFzc19jbG9zdXJlKHNpZ25hbF9pZCwgdHlwZSwgcGhwZ19nZXRfc2lnbmFsX2Ns YXNzX2Nsb3N1cmUoKSk7CisgICAgZ19zaWduYWxfb3ZlcnJpZGVfY2xhc3NfY2xvc3VyZShzaWdu YWxfaWQsIHR5cGUsIHBocGdfZ2V0X3NpZ25hbF9jbGFzc19jbG9zdXJlKFRTUk1MU19DKSk7CiAg ICAgcmV0dXJuIFNVQ0NFU1M7CiB9CiAKLXN0YXRpYyBpbnQgcGhwZ19jcmVhdGVfc2lnbmFsKEdU eXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNpZ25hbF9uYW1lLCB6dmFsICpkYXRhKQorc3RhdGljIGlu dCBwaHBnX2NyZWF0ZV9zaWduYWwoR1R5cGUgdHlwZSwgY29uc3QgY2hhciAqc2lnbmFsX25hbWUs IHp2YWwgKmRhdGEgVFNSTUxTX0RDKQogewogICAgIGxvbmcgc2lnbmFsX2ZsYWdzOwogICAgIHp2 YWwgKnBocF9yZXR1cm5fdHlwZTsKQEAgLTEyNjMsOCArMTI2MSw2IEBAIHN0YXRpYyBpbnQgcGhw Z19jcmVhdGVfc2lnbmFsKEdUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNpZ25hbF9uYW1lLCB6dmFs ICpkYXRhKQogICAgIGd1aW50IG5fcGFyYW1zLCBpLCBzaWduYWxfaWQ7CiAgICAgenZhbCAqKml0 ZW07CiAKLQlUU1JNTFNfRkVUQ0goKTsKLQogICAgIGlmICghcGhwX2d0a19wYXJzZV9hcmdzX2hh c2goZGF0YSwgImxWYSIsICZzaWduYWxfZmxhZ3MsICZwaHBfcmV0dXJuX3R5cGUsICZwaHBfcGFy YW1fdHlwZXMpKSB7CiAgICAgICAgIHBocF9lcnJvcl9kb2NyZWYoTlVMTCBUU1JNTFNfQ0MsIEVf V0FSTklORywgImluY29ycmVjdCBmb3JtYXQgZm9yICclcycgc2lnbmFsIHNwZWMiLCBzaWduYWxf bmFtZSk7CiAgICAgICAgIHJldHVybiBGQUlMVVJFOwpAQCAtMTI4OSw3ICsxMjg1LDcgQEAgc3Rh dGljIGludCBwaHBnX2NyZWF0ZV9zaWduYWwoR1R5cGUgdHlwZSwgY29uc3QgY2hhciAqc2lnbmFs X25hbWUsIHp2YWwgKmRhdGEpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBzaWduYWxfaWQgPSBn X3NpZ25hbF9uZXd2KHNpZ25hbF9uYW1lLCB0eXBlLCBzaWduYWxfZmxhZ3MsIHBocGdfZ2V0X3Np Z25hbF9jbGFzc19jbG9zdXJlKCksIAorICAgIHNpZ25hbF9pZCA9IGdfc2lnbmFsX25ld3Yoc2ln bmFsX25hbWUsIHR5cGUsIHNpZ25hbF9mbGFncywgcGhwZ19nZXRfc2lnbmFsX2NsYXNzX2Nsb3N1 cmUoVFNSTUxTX0MpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHU2lnbmFsQWNj dW11bGF0b3IpMCwgTlVMTCwgKEdTaWduYWxDTWFyc2hhbGxlcikwLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuX3R5cGUsIG5fcGFyYW1zLCBwYXJhbV90eXBlcyk7CiAgICAg ZWZyZWUocGFyYW1fdHlwZXMpOwpAQCAtMTMwMiw3ICsxMjk4LDcgQEAgc3RhdGljIGludCBwaHBn X2NyZWF0ZV9zaWduYWwoR1R5cGUgdHlwZSwgY29uc3QgY2hhciAqc2lnbmFsX25hbWUsIHp2YWwg KmRhdGEpCiAgICAgcmV0dXJuIFNVQ0NFU1M7CiB9CiAKLXN0YXRpYyBpbnQgcGhwZ19yZWdpc3Rl cl9zaWduYWxzKEdUeXBlIHR5cGUsIHp2YWwgKnNpZ25hbHMpCitzdGF0aWMgaW50IHBocGdfcmVn aXN0ZXJfc2lnbmFscyhHVHlwZSB0eXBlLCB6dmFsICpzaWduYWxzIFRTUk1MU19EQykKIHsKICAg ICBHT2JqZWN0Q2xhc3MgKm9jbGFzczsKICAgICB6dmFsICoqZGF0YTsKQEAgLTEzMTEsOCArMTMw Nyw2IEBAIHN0YXRpYyBpbnQgcGhwZ19yZWdpc3Rlcl9zaWduYWxzKEdUeXBlIHR5cGUsIHp2YWwg KnNpZ25hbHMpCiAgICAgdWxvbmcgbnVtX2tleTsKICAgICBpbnQgcmV0dmFsID0gU1VDQ0VTUzsK IAotCVRTUk1MU19GRVRDSCgpOwotCiAgICAgb2NsYXNzID0gZ190eXBlX2NsYXNzX3JlZih0eXBl KTsKICAgICBpZiAoIW9jbGFzcykgewogICAgICAgICBwaHBfZXJyb3JfZG9jcmVmKE5VTEwgVFNS TUxTX0NDLCBFX1dBUk5JTkcsICJjb3V1bGQgbm90IGdldCBhIHJlZmVyZW5jZSB0byB0eXBlIGNs YXNzIik7CkBAIC0xMzMxLDkgKzEzMjUsOSBAQCBzdGF0aWMgaW50IHBocGdfcmVnaXN0ZXJfc2ln bmFscyhHVHlwZSB0eXBlLCB6dmFsICpzaWduYWxzKQogICAgICAgICBpZiAoWl9UWVBFX1BQKGRh dGEpID09IElTX05VTEwgfHwKICAgICAgICAgICAgIChaX1RZUEVfUFAoZGF0YSkgPT0gSVNfU1RS SU5HICYmCiAgICAgICAgICAgICAgIXN0cmNtcChaX1NUUlZBTF9QUChkYXRhKSwgIm92ZXJyaWRl IikpKSB7Ci0gICAgICAgICAgICByZXR2YWwgPSBwaHBnX292ZXJyaWRlX3NpZ25hbCh0eXBlLCBz dHJfa2V5KTsKKyAgICAgICAgICAgIHJldHZhbCA9IHBocGdfb3ZlcnJpZGVfc2lnbmFsKHR5cGUs IHN0cl9rZXkgVFNSTUxTX0NDKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHZh bCA9IHBocGdfY3JlYXRlX3NpZ25hbCh0eXBlLCBzdHJfa2V5LCAqZGF0YSk7CisgICAgICAgICAg ICByZXR2YWwgPSBwaHBnX2NyZWF0ZV9zaWduYWwodHlwZSwgc3RyX2tleSwgKmRhdGEgVFNSTUxT X0NDKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXR2YWwgPT0gRkFJTFVSRSkgewpAQCAt MTM0NywxMTQgKzEzNDEsMTczIEBAIHN0YXRpYyBpbnQgcGhwZ19yZWdpc3Rlcl9zaWduYWxzKEdU eXBlIHR5cGUsIHp2YWwgKnNpZ25hbHMpCiAKIHN0YXRpYyBQSFBfTUVUSE9EKEdPYmplY3QsIHJl Z2lzdGVyX3R5cGUpCiB7Ci0gICAgemVuZF9jbGFzc19lbnRyeSAqY2xhc3MgPSBnb2JqZWN0X2Nl OwotICAgIEdUeXBlIHBhcmVudF90eXBlLCBuZXdfdHlwZTsKLSAgICBHVHlwZVF1ZXJ5IHF1ZXJ5 OwotICAgIGdjaGFyICp0eXBlX25hbWU7Ci0gICAgenZhbCAqKnByb3BfZGVjbHMsICoqc2lnbmFs X2RlY2xzOwotICAgIGdjaGFyICoqc3BsaXRfbmFtZTsKLSAgICBpbnQgZnJlZV9uYW1lID0gMDsK LQotICAgIEdUeXBlSW5mbyB0eXBlX2luZm8gPSB7Ci0gICAgICAgIDAsICAgIC8qIGNsYXNzX3Np emUgKi8KLQotICAgICAgICAoR0Jhc2VJbml0RnVuYykgTlVMTCwKLSAgICAgICAgKEdCYXNlRmlu YWxpemVGdW5jKSBOVUxMLAotCi0gICAgICAgIChHQ2xhc3NJbml0RnVuYykgcGhwZ19vYmplY3Rf Y2xhc3NfaW5pdCwKLSAgICAgICAgKEdDbGFzc0ZpbmFsaXplRnVuYykgTlVMTCwKLSAgICAgICAg TlVMTCwgLyogY2xhc3NfZGF0YSAqLwotCi0gICAgICAgIDAsICAgIC8qIGluc3RhbmNlX3NpemUg Ki8KLSAgICAgICAgMCwgICAgLyogbl9wcmVhbGxvY3MgKi8KLSAgICAgICAgKEdJbnN0YW5jZUlu aXRGdW5jKSBOVUxMCi0gICAgfTsKLQotICAgIGlmICghcGhwX2d0a19wYXJzZV9hcmdzKFpFTkRf TlVNX0FSR1MoKSwgIkMiLCAmY2xhc3MpKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisJemVu ZF9jbGFzc19lbnRyeSAqY2UgPSBnb2JqZWN0X2NlOworCUdUeXBlIHBhcmVudF90eXBlLCBuZXdf dHlwZTsKKwlHVHlwZVF1ZXJ5IHF1ZXJ5OworCWdjaGFyICp0eXBlX25hbWU7CisJZ2NoYXIgKipz cGxpdF9uYW1lOworCWludCBmcmVlX25hbWUgPSAwOwogCi0gICAgcGFyZW50X3R5cGUgPSBwaHBn X2d0eXBlX2Zyb21fY2xhc3MoY2xhc3MgVFNSTUxTX0NDKTsKLSAgICBpZiAoIXBhcmVudF90eXBl KSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisjaWYgUEhQX1ZFUlNJT05fSUQgPCA1MDM5OQor CXp2YWwgKipwcm9wX2RlY2xzLCAqKnNpZ25hbF9kZWNsczsKKyNlbHNlCisJenZhbCAqcHJvcGVy dHkgPSBOVUxMOworCXplbmRfcHJvcGVydHlfaW5mbyAqcHJvcGVydHlfaW5mb19wdHI7CisJdWxv bmcgaF9zaWduYWxzID0gemVuZF9nZXRfaGFzaF92YWx1ZSgiX19nc2lnbmFscyIsIHNpemVvZigi X19nc2lnbmFscyIpKTsKKwl1bG9uZyBoX3Byb3BlcnRpZXMgPSB6ZW5kX2dldF9oYXNoX3ZhbHVl KCJfX2dwcm9wZXJ0aWVzIiwgc2l6ZW9mKCJfX2dwcm9wZXJ0aWVzIikpOworI2VuZGlmCiAKLSAg ICB0eXBlX25hbWUgPSBjbGFzcy0+bmFtZTsKLQkvKiBJZiB0aGlzIGlzIGEgbmFtZXNwYWNlZCBj bGFzcyB3ZSB3aWxsIGhhdmUgaXNzdWVzLCBzaW5jZSBcIGlzIG5vdCBhbGxvd2VkLCBzbyBjb3B5 IGFuZCByZXBsYWNlIFwgd2l0aCBfICovCQotICAgIGlmICgoc3BsaXRfbmFtZSA9IGdfc3Ryc3Bs aXQoY2xhc3MtPm5hbWUsICJcXCIsIDApKSkgewotICAgICAgICBmcmVlX25hbWUgPSAxOwotICAg ICAgICB0eXBlX25hbWUgPSBnX3N0cmpvaW52KCJfXyIsIHNwbGl0X25hbWUpOwotICAgICAgICBn X3N0cmZyZWV2KHNwbGl0X25hbWUpOwkJCi0gICAgfQorCUdUeXBlSW5mbyB0eXBlX2luZm8gPSB7 CisJCTAsICAgIC8qIGNsYXNzX3NpemUgKi8KIAotICAgIGlmIChnX3R5cGVfZnJvbV9uYW1lKHR5 cGVfbmFtZSkgIT0gMCkgewotICAgICAgICBwaHBfZXJyb3JfZG9jcmVmKE5VTEwgVFNSTUxTX0ND LCBFX1dBUk5JTkcsICJ0eXBlICclcycgYWxyZWFkeSBleGlzdHM/IiwgdHlwZV9uYW1lKTsKLSAg ICAgICAgCi0gICAgICAgIGlmIChmcmVlX25hbWUpIHsKLSAgICAgICAgICAgIGdfZnJlZSh0eXBl X25hbWUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisJCShHQmFzZUluaXRG dW5jKSBOVUxMLAorCQkoR0Jhc2VGaW5hbGl6ZUZ1bmMpIE5VTEwsCiAKLSAgICB0eXBlX2luZm8u Y2xhc3NfZGF0YSA9IGNsYXNzOwotICAgIGdfdHlwZV9xdWVyeShwYXJlbnRfdHlwZSwgJnF1ZXJ5 KTsKLSAgICB0eXBlX2luZm8uY2xhc3Nfc2l6ZSA9IHF1ZXJ5LmNsYXNzX3NpemU7Ci0gICAgdHlw ZV9pbmZvLmluc3RhbmNlX3NpemUgPSBxdWVyeS5pbnN0YW5jZV9zaXplOworCQkoR0NsYXNzSW5p dEZ1bmMpIHBocGdfb2JqZWN0X2NsYXNzX2luaXQsCisJCShHQ2xhc3NGaW5hbGl6ZUZ1bmMpIE5V TEwsCisJCU5VTEwsIC8qIGNsYXNzX2RhdGEgKi8KIAotICAgIG5ld190eXBlID0gZ190eXBlX3Jl Z2lzdGVyX3N0YXRpYyhwYXJlbnRfdHlwZSwgdHlwZV9uYW1lLCAmdHlwZV9pbmZvLCAwKTsKLSAg ICBpZiAobmV3X3R5cGUgPT0gMCkgewotICAgICAgICBwaHBfZXJyb3JfZG9jcmVmKE5VTEwgVFNS TUxTX0NDLCBFX1dBUk5JTkcsICJjb3VsZCBub3QgY3JlYXRlIG5ldyBHVHlwZSIpOwotICAgICAg ICAKLSAgICAgICAgaWYgKGZyZWVfbmFtZSkgewotICAgICAgICAgICAgZ19mcmVlKHR5cGVfbmFt ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KKwkJMCwgICAgLyogaW5zdGFu Y2Vfc2l6ZSAqLworCQkwLCAgICAvKiBuX3ByZWFsbG9jcyAqLworCQkoR0luc3RhbmNlSW5pdEZ1 bmMpIE5VTEwKKwl9OworCisJaWYgKCFwaHBfZ3RrX3BhcnNlX2FyZ3MoWkVORF9OVU1fQVJHUygp LCAiQyIsICZjZSkpIHsKKwkJcmV0dXJuOworCX0KKworCXBhcmVudF90eXBlID0gcGhwZ19ndHlw ZV9mcm9tX2NsYXNzKGNlIFRTUk1MU19DQyk7CisJaWYgKCFwYXJlbnRfdHlwZSkgeworCQlyZXR1 cm47CisJfQorCisJdHlwZV9uYW1lID0gY2UtPm5hbWU7CisKKwkvKiBJZiB0aGlzIGlzIGEgbmFt ZXNwYWNlZCBjbGFzcyB3ZSB3aWxsIGhhdmUgaXNzdWVzCisJc2luY2UgXCBpcyBub3QgYWxsb3dl ZCwgc28gY29weSBhbmQgcmVwbGFjZSBcIHdpdGggXyAqLworCWlmICgoc3BsaXRfbmFtZSA9IGdf c3Ryc3BsaXQoY2UtPm5hbWUsICJcXCIsIDApKSkgeworCQlmcmVlX25hbWUgPSAxOworCQl0eXBl X25hbWUgPSBnX3N0cmpvaW52KCJfXyIsIHNwbGl0X25hbWUpOworCQlnX3N0cmZyZWV2KHNwbGl0 X25hbWUpOworCX0KKworCWlmIChnX3R5cGVfZnJvbV9uYW1lKHR5cGVfbmFtZSkgIT0gMCkgewor CQlwaHBfZXJyb3JfZG9jcmVmKE5VTEwgVFNSTUxTX0NDLCBFX1dBUk5JTkcsICJ0eXBlICclcycg YWxyZWFkeSBleGlzdHM/IiwgdHlwZV9uYW1lKTsKKwkJCisJCWlmIChmcmVlX25hbWUpIHsKKwkJ CWdfZnJlZSh0eXBlX25hbWUpOworCQl9CisJCXJldHVybjsKKwl9CisKKwl0eXBlX2luZm8uY2xh c3NfZGF0YSA9IGNlOworCWdfdHlwZV9xdWVyeShwYXJlbnRfdHlwZSwgJnF1ZXJ5KTsKKwl0eXBl X2luZm8uY2xhc3Nfc2l6ZSA9IHF1ZXJ5LmNsYXNzX3NpemU7CisJdHlwZV9pbmZvLmluc3RhbmNl X3NpemUgPSBxdWVyeS5pbnN0YW5jZV9zaXplOworCisJbmV3X3R5cGUgPSBnX3R5cGVfcmVnaXN0 ZXJfc3RhdGljKHBhcmVudF90eXBlLCB0eXBlX25hbWUsICZ0eXBlX2luZm8sIDApOworCWlmIChu ZXdfdHlwZSA9PSAwKSB7CisJCXBocF9lcnJvcl9kb2NyZWYoTlVMTCBUU1JNTFNfQ0MsIEVfV0FS TklORywgImNvdWxkIG5vdCBjcmVhdGUgbmV3IEdUeXBlIik7CisJCQorCQlpZiAoZnJlZV9uYW1l KSB7CisJCQlnX2ZyZWUodHlwZV9uYW1lKTsKKwkJfQorCQlyZXR1cm47CisJfQogCiAJaWYgKCFw aHBnX2NsYXNzX2tleSkgewogCQlwaHBnX2NsYXNzX2tleSA9IGdfcXVhcmtfZnJvbV9zdGF0aWNf c3RyaW5nKHBocGdfY2xhc3NfaWQpOwogCX0KIAotICAgIGdfdHlwZV9zZXRfcWRhdGEobmV3X3R5 cGUsIHBocGdfY2xhc3Nfa2V5LCBjbGFzcyk7Ci0gICAgemVuZF9kZWNsYXJlX2NsYXNzX2NvbnN0 YW50X2xvbmcoY2xhc3MsICJndHlwZSIsIHNpemVvZigiZ3R5cGUiKS0xLCBuZXdfdHlwZSBUU1JN TFNfQ0MpOworCWdfdHlwZV9zZXRfcWRhdGEobmV3X3R5cGUsIHBocGdfY2xhc3Nfa2V5LCBjZSk7 CisJemVuZF9kZWNsYXJlX2NsYXNzX2NvbnN0YW50X2xvbmcoY2UsICJndHlwZSIsIHNpemVvZigi Z3R5cGUiKS0xLCBuZXdfdHlwZSBUU1JNTFNfQ0MpOworCisJemVuZF91cGRhdGVfY2xhc3NfY29u c3RhbnRzKGNlIFRTUk1MU19DQyk7CiAKLSAgICB6ZW5kX3VwZGF0ZV9jbGFzc19jb25zdGFudHMo Y2xhc3MgVFNSTUxTX0NDKTsKICNpZiBQSFBfVkVSU0lPTl9JRCA8IDUwMzk5Ci0gICAgLyogcmVn aXN0ZXIgcHJvcGVydGllcyAqLwotICAgIGlmICh6ZW5kX2hhc2hfZmluZCgmY2xhc3MtPmRlZmF1 bHRfcHJvcGVydGllcywgIl9fZ3Byb3BlcnRpZXMiLCBzaXplb2YoIl9fZ3Byb3BlcnRpZXMiKSwg KHZvaWQqKikmcHJvcF9kZWNscykgPT0gU1VDQ0VTUykgewotICAgICAgICBpZiAoWl9UWVBFX1BQ KHByb3BfZGVjbHMpICE9IElTX0FSUkFZKSB7Ci0gICAgICAgICAgICBwaHBfZXJyb3JfZG9jcmVm KE5VTEwgVFNSTUxTX0NDLCBFX1dBUk5JTkcsICJfX2dwcm9wZXJ0aWVzIHZhcmlhYmxlIGhhcyB0 byBiZSBhbiBhcnJheSIpOwotICAgICAgICAgICAgaWYgKGZyZWVfbmFtZSkgewotICAgICAgICAg ICAgICAgIGdfZnJlZSh0eXBlX25hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0 dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwaHBnX3JlZ2lzdGVyX3Byb3BlcnRpZXMobmV3 X3R5cGUsICpwcm9wX2RlY2xzKSA9PSBGQUlMVVJFKSB7Ci0gICAgICAgICAgICBpZiAoZnJlZV9u YW1lKSB7Ci0gICAgICAgICAgICAgICAgZ19mcmVlKHR5cGVfbmFtZSk7Ci0gICAgICAgICAgICB9 Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgemVuZF9oYXNoX2RlbCgm Y2xhc3MtPmRlZmF1bHRfcHJvcGVydGllcywgIl9fZ3Byb3BlcnRpZXMiLCBzaXplb2YoIl9fZ3By b3BlcnRpZXMiKSk7Ci0gICAgfQorCS8qIHJlZ2lzdGVyIHByb3BlcnRpZXMgKi8KKwlpZiAoemVu ZF9oYXNoX2ZpbmQoJmNlLT5kZWZhdWx0X3Byb3BlcnRpZXMsICJfX2dwcm9wZXJ0aWVzIiwgc2l6 ZW9mKCJfX2dwcm9wZXJ0aWVzIiksICh2b2lkKiopJnByb3BfZGVjbHMpID09IFNVQ0NFU1MpIHsK KwkJaWYgKFpfVFlQRV9QUChwcm9wX2RlY2xzKSAhPSBJU19BUlJBWSkgeworCQkJcGhwX2Vycm9y X2RvY3JlZihOVUxMIFRTUk1MU19DQywgRV9XQVJOSU5HLCAiX19ncHJvcGVydGllcyB2YXJpYWJs ZSBoYXMgdG8gYmUgYW4gYXJyYXkiKTsKKwkJCWlmIChmcmVlX25hbWUpIHsKKwkJCQlnX2ZyZWUo dHlwZV9uYW1lKTsKKwkJCX0KKwkJCXJldHVybjsKKwkJfQorCQlpZiAocGhwZ19yZWdpc3Rlcl9w cm9wZXJ0aWVzKG5ld190eXBlLCAqcHJvcF9kZWNscykgPT0gRkFJTFVSRSkgeworCQkJaWYgKGZy ZWVfbmFtZSkgeworCQkJCWdfZnJlZSh0eXBlX25hbWUpOworCQkJfQorCQkJcmV0dXJuOworCQl9 CisJCXplbmRfaGFzaF9kZWwoJmNlLT5kZWZhdWx0X3Byb3BlcnRpZXMsICJfX2dwcm9wZXJ0aWVz Iiwgc2l6ZW9mKCJfX2dwcm9wZXJ0aWVzIikpOworCX0KIAotICAgIC8qIHJlZ2lzdGVyIHNpZ25h bHMgKi8KLSAgICBpZiAoemVuZF9oYXNoX2ZpbmQoJmNsYXNzLT5kZWZhdWx0X3Byb3BlcnRpZXMs ICJfX2dzaWduYWxzIiwgc2l6ZW9mKCJfX2dzaWduYWxzIiksICh2b2lkKiopJnNpZ25hbF9kZWNs cykgPT0gU1VDQ0VTUykgewotICAgICAgICBpZiAoWl9UWVBFX1BQKHNpZ25hbF9kZWNscykgIT0g SVNfQVJSQVkpIHsKLSAgICAgICAgICAgIHBocF9lcnJvcl9kb2NyZWYoTlVMTCBUU1JNTFNfQ0Ms IEVfV0FSTklORywgIl9fZ3NpZ25hbHMgdmFyaWFibGUgaGFzIHRvIGJlIGFuIGFycmF5Iik7Ci0g ICAgICAgICAgICBpZiAoZnJlZV9uYW1lKSB7Ci0gICAgICAgICAgICAgICAgZ19mcmVlKHR5cGVf bmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg ICAgICAgaWYgKHBocGdfcmVnaXN0ZXJfc2lnbmFscyhuZXdfdHlwZSwgKnNpZ25hbF9kZWNscykg PT0gRkFJTFVSRSkgewotICAgICAgICAgICAgaWYgKGZyZWVfbmFtZSkgewotICAgICAgICAgICAg ICAgIGdfZnJlZSh0eXBlX25hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJu OwotICAgICAgICB9Ci0gICAgICAgIHplbmRfaGFzaF9kZWwoJmNsYXNzLT5kZWZhdWx0X3Byb3Bl cnRpZXMsICJfX2dzaWduYWxzIiwgc2l6ZW9mKCJfX2dzaWduYWxzIikpOwotICAgIH0KKwkvKiBy ZWdpc3RlciBzaWduYWxzICovCisJaWYgKHplbmRfaGFzaF9maW5kKCZjZS0+ZGVmYXVsdF9wcm9w ZXJ0aWVzLCAiX19nc2lnbmFscyIsIHNpemVvZigiX19nc2lnbmFscyIpLCAodm9pZCoqKSZzaWdu YWxfZGVjbHMpID09IFNVQ0NFU1MpIHsKKwkJaWYgKFpfVFlQRV9QUChzaWduYWxfZGVjbHMpICE9 IElTX0FSUkFZKSB7CisJCQlwaHBfZXJyb3JfZG9jcmVmKE5VTEwgVFNSTUxTX0NDLCBFX1dBUk5J TkcsICJfX2dzaWduYWxzIHZhcmlhYmxlIGhhcyB0byBiZSBhbiBhcnJheSIpOworCQkJaWYgKGZy ZWVfbmFtZSkgeworCQkJCWdfZnJlZSh0eXBlX25hbWUpOworCQkJfQorCQkJcmV0dXJuOworCQl9 CisJCWlmIChwaHBnX3JlZ2lzdGVyX3NpZ25hbHMobmV3X3R5cGUsICpzaWduYWxfZGVjbHMgVFNS TUxTX0NDKSA9PSBGQUlMVVJFKSB7CisJCQlpZiAoZnJlZV9uYW1lKSB7CisJCQkJZ19mcmVlKHR5 cGVfbmFtZSk7CisJCQl9CisJCQlyZXR1cm47CisJCX0KKwkJemVuZF9oYXNoX2RlbCgmY2UtPmRl ZmF1bHRfcHJvcGVydGllcywgIl9fZ3NpZ25hbHMiLCBzaXplb2YoIl9fZ3NpZ25hbHMiKSk7CisJ fQorI2Vsc2UKKy8qIFRoaXMgaXMgaG9ycmlibHkgcGFpbmZ1bCBpbiA1LjQgKi8KKworCWlmICh6 ZW5kX2hhc2hfcXVpY2tfZmluZCgmY2UtPnByb3BlcnRpZXNfaW5mbywgIl9fZ3Byb3BlcnRpZXMi LCBzaXplb2YoIl9fZ3Byb3BlcnRpZXMiKSwKKwkJCQkJCQkgaF9wcm9wZXJ0aWVzLCAodm9pZCoq KSZwcm9wZXJ0eV9pbmZvX3B0cikgPT0gU1VDQ0VTUyAmJgorCQkocHJvcGVydHlfaW5mb19wdHIt PmZsYWdzICYgWkVORF9BQ0NfU1RBVElDKSA9PSAwKSB7CisKKwkJCXByb3BlcnR5ID0gY2UtPmRl ZmF1bHRfcHJvcGVydGllc190YWJsZVtwcm9wZXJ0eV9pbmZvX3B0ci0+b2Zmc2V0XTsKKwkJCWlm IChaX1RZUEVfUChwcm9wZXJ0eSkgIT0gSVNfQVJSQVkpIHsKKwkJCQlwaHBfZXJyb3JfZG9jcmVm KE5VTEwgVFNSTUxTX0NDLCBFX1dBUk5JTkcsICJfX2dwcm9wZXJ0aWVzIHZhcmlhYmxlIGhhcyB0 byBiZSBhbiBhcnJheSIpOworCQkJCWlmIChmcmVlX25hbWUpIHsKKwkJCQkJZ19mcmVlKHR5cGVf bmFtZSk7CisJCQkJfQorCQkJCXJldHVybjsKKwkJCX0KKwkJCWlmIChwaHBnX3JlZ2lzdGVyX3By b3BlcnRpZXMobmV3X3R5cGUsIHByb3BlcnR5KSA9PSBGQUlMVVJFKSB7CisJCQkJaWYgKGZyZWVf bmFtZSkgeworCQkJCQlnX2ZyZWUodHlwZV9uYW1lKTsKKwkJCQl9CisJCQkJcmV0dXJuOworCQkJ fQorCisJCQl6ZW5kX2hhc2hfcXVpY2tfZGVsKCZjZS0+cHJvcGVydGllc19pbmZvLCAiX19ncHJv cGVydGllcyIsCisJCQkJCQkJCXNpemVvZigiX19ncHJvcGVydGllcyIpLCBoX3Byb3BlcnRpZXMp OworICAgIH0KKworCWlmICh6ZW5kX2hhc2hfcXVpY2tfZmluZCgmY2UtPnByb3BlcnRpZXNfaW5m bywgIl9fZ3NpZ25hbHMiLCBzaXplb2YoIl9fZ3NpZ25hbHMiKSwKKwkJCQkJCQkgaF9zaWduYWxz LCAodm9pZCoqKSZwcm9wZXJ0eV9pbmZvX3B0cikgPT0gU1VDQ0VTUyAmJgorCQkocHJvcGVydHlf aW5mb19wdHItPmZsYWdzICYgWkVORF9BQ0NfU1RBVElDKSA9PSAwKSB7CisKKwkJCXByb3BlcnR5 ID0gY2UtPmRlZmF1bHRfcHJvcGVydGllc190YWJsZVtwcm9wZXJ0eV9pbmZvX3B0ci0+b2Zmc2V0 XTsKKwkJCWlmIChaX1RZUEVfUChwcm9wZXJ0eSkgIT0gSVNfQVJSQVkpIHsKKwkJCQlwaHBfZXJy b3JfZG9jcmVmKE5VTEwgVFNSTUxTX0NDLCBFX1dBUk5JTkcsICJfX2dzaWduYWxzIHZhcmlhYmxl IGhhcyB0byBiZSBhbiBhcnJheSIpOworCQkJCWlmIChmcmVlX25hbWUpIHsKKwkJCQkJZ19mcmVl KHR5cGVfbmFtZSk7CisJCQkJfQorCQkJCXJldHVybjsKKwkJCX0KKwkJCWlmIChwaHBnX3JlZ2lz dGVyX3NpZ25hbHMobmV3X3R5cGUsIHByb3BlcnR5IFRTUk1MU19DQykgPT0gRkFJTFVSRSkgewor CQkJCWlmIChmcmVlX25hbWUpIHsKKwkJCQkJZ19mcmVlKHR5cGVfbmFtZSk7CisJCQkJfQorCQkJ CXJldHVybjsKKwkJCX0KKworCQkJemVuZF9oYXNoX3F1aWNrX2RlbCgmY2UtPnByb3BlcnRpZXNf aW5mbywgIl9fZ3NpZ25hbHMiLAorCQkJCQkJCQlzaXplb2YoIl9fZ3NpZ25hbHMiKSwgaF9zaWdu YWxzKTsKKwl9CiAjZW5kaWYKICAgICBpZiAoZnJlZV9uYW1lKSB7CiAgICAgICAgIGdfZnJlZSh0 eXBlX25hbWUpOwpkaWZmIC0tZ2l0IGEvbWFpbi9waHBnX3N1cHBvcnQuYyBiL21haW4vcGhwZ19z dXBwb3J0LmMKaW5kZXggNjk1OTAyZS4uZGIxZTk0ZCAxMDA2NDQKLS0tIGEvbWFpbi9waHBnX3N1 cHBvcnQuYworKysgYi9tYWluL3BocGdfc3VwcG9ydC5jCkBAIC0yNyw3ICsyNyw3IEBACiAgKi8K IAogLyoge3t7IHBocGdfcmVhZF9wcm9wZXJ0eSgpICovCi16dmFsKiBwaHBnX3JlYWRfcHJvcGVy dHkoenZhbCAqb2JqZWN0LCB6dmFsICptZW1iZXIsIGludCB0eXBlIFRTUk1MU19EQykKK3p2YWwq IHBocGdfcmVhZF9wcm9wZXJ0eSh6dmFsICpvYmplY3QsIHp2YWwgKm1lbWJlciwgaW50IHR5cGUg UEhQR1RLX1BST1BFUlRZX0VORCkKIHsKIAlwaHBnX2hlYWRfdCAqcG9oID0gTlVMTDsKIAl6dmFs IHRtcF9tZW1iZXI7CkBAIC03OSw3ICs3OSw3IEBAIHp2YWwqIHBocGdfcmVhZF9wcm9wZXJ0eSh6 dmFsICpvYmplY3QsIHp2YWwgKm1lbWJlciwgaW50IHR5cGUgVFNSTUxTX0RDKQogLyogfX19ICov CiAKIC8qIHt7eyBwaHBnX3dyaXRlX3Byb3BlcnR5KCkgKi8KLXZvaWQgcGhwZ193cml0ZV9wcm9w ZXJ0eSh6dmFsICpvYmplY3QsIHp2YWwgKm1lbWJlciwgenZhbCAqdmFsdWUgVFNSTUxTX0RDKQor dm9pZCBwaHBnX3dyaXRlX3Byb3BlcnR5KHp2YWwgKm9iamVjdCwgenZhbCAqbWVtYmVyLCB6dmFs ICp2YWx1ZSBQSFBHVEtfUFJPUEVSVFlfRU5EKQogewogCXBocGdfaGVhZF90ICpwb2ggPSBOVUxM OwogCXp2YWwgdG1wX21lbWJlcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIHBocGdfd3JpdGVf cHJvcGVydHkoenZhbCAqb2JqZWN0LCB6dmFsICptZW1iZXIsIHp2YWwgKnZhbHVlIFRTUk1MU19E QykKIC8qIH19fSAqLwogCiAvKiB7e3sgcGhwZ19nZXRfcHJvcGVydHlfcHRyX3B0cigpICovCi16 dmFsICoqcGhwZ19nZXRfcHJvcGVydHlfcHRyX3B0cih6dmFsICpvYmplY3QsIHp2YWwgKm1lbWJl ciBUU1JNTFNfREMpCit6dmFsICoqcGhwZ19nZXRfcHJvcGVydHlfcHRyX3B0cih6dmFsICpvYmpl Y3QsIHp2YWwgKm1lbWJlciBQSFBHVEtfUFJPUEVSVFlfRU5EKQogewogICAgIHBocGdfaGVhZF90 ICpwb2ggPSBOVUxMOwogICAgIHp2YWwgdG1wX21lbWJlcjsKQEAgLTI0OCw3ICsyNDgsOCBAQCBQ SFBfR1RLX0FQSSB2b2lkIHBocGdfZ2V0X3Byb3BlcnRpZXNfaGVscGVyKHp2YWwgKm9iamVjdCwg SGFzaFRhYmxlICpodCBUU1JNTFNfRAogI2VuZGlmCiAgICAgd2hpbGUgKChwcm9wID0gdmFfYXJn KHZhLCBjaGFyICopKSAhPSBOVUxMKSB7CiAgICAgICAgIHByb3BfbGVuID0gdmFfYXJnKHZhLCBp bnQpOwotICAgICAgICByZXN1bHQgPSB6ZW5kX3JlYWRfcHJvcGVydHkoY2UsIG9iamVjdCwgcHJv cCwgcHJvcF9sZW4sIDEgVFNSTUxTX0NDKTsKKwkJcmVzdWx0ID0gemVuZF9yZWFkX3Byb3BlcnR5 KGNlLCBvYmplY3QsIHByb3AsIHByb3BfbGVuLCAxIFRTUk1MU19DQyk7CisKICAgICAgICAgLyoK ICAgICAgICAgICogemVuZF9yZWFkX3Byb3BlcnR5IHdpbGwgcmV0dXJuIGEgdGVtcG9yYXJ5IHp2 YWwsIHNvIHdlIG5lZWQgdG8KICAgICAgICAgICogaW5pdGlhbGl6ZSBpdCBpbiBvcmRlciB0byBr ZWVwIGl0IGFyb3VuZC4= --7194303ed6d323fcfd0dfaa0523b4e17aeca1d67--