Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:24406 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 5848 invoked by uid 1010); 15 Jul 2006 20:52:11 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 5832 invoked from network); 15 Jul 2006 20:52:11 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Jul 2006 20:52:11 -0000 X-PHP-List-Original-Sender: helly@php.net X-Host-Fingerprint: 81.169.182.136 ajaxatwork.net Linux 2.4/2.6 Received: from ([81.169.182.136:37854] helo=strato.aixcept.de) by pb1.pair.com (ecelerity 2.1.1.3 r(11751M)) with ESMTP id C4/61-11992-A6749B44 for ; Sat, 15 Jul 2006 15:52:11 -0400 Received: from baumbart.mbo (dslb-084-063-024-149.pools.arcor-ip.net [84.63.24.149]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by strato.aixcept.de (Postfix) with ESMTP id 040FC35C20A; Sat, 15 Jul 2006 21:52:06 +0200 (CEST) Date: Sat, 15 Jul 2006 21:52:12 +0200 Reply-To: Marcus Boerger X-Priority: 3 (Normal) Message-ID: <12322760.20060715215212@marcus-boerger.de> To: internals@lists.php.net, Andrei Zmievski , Andi Gutmans , Zeev Suraski MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------7F156BABA1CEF3" Subject: Unicode and fetch class From: helly@php.net (Marcus Boerger) ------------7F156BABA1CEF3 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello internals, Andrei asked me whether we could do something about the double lowercasing when calling zend_is_callable_check_func(). The attached patch adds the new fetch flag ZEND_FETCH_CLASS_NO_NORMALIZE which prevent lowercasing. Also zend_u_lookup_class_ex() got a new parameter which allows to specify whether the function needs to lowercase or not. I am quite sure Andrei needs to touch it a bit further but i think we should discuss this step first. Best regards, Marcus ------------7F156BABA1CEF3 Content-Type: text/plain; name="ze2-fetch-class-flags-20060715.diff.txt" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="ze2-fetch-class-flags-20060715.diff.txt" PyBaZW5kL3Rlc3RzL2NhdGNoXzAwNS5waHB0CkluZGV4OiBaZW5kL3plbmRfQVBJLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvWmVuZEVuZ2luZTIvemVuZF9BUEku Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNzgKZGlmZiAtdSAtcCAtZCAtcjEuMzc4IHpl bmRfQVBJLmMKLS0tIFplbmQvemVuZF9BUEkuYwkxMyBKdWwgMjAwNiAyMToyNzo0OCAtMDAw MAkxLjM3OAorKysgWmVuZC96ZW5kX0FQSS5jCTE1IEp1bCAyMDA2IDE5OjQ5OjI4IC0wMDAw CkBAIC0yNTgxLDcgKzI1ODEsNiBAQCBzdGF0aWMgaW50IHplbmRfaXNfY2FsbGFibGVfY2hl Y2tfZnVuYyhpCiAJenN0ciBsY25hbWUsIGxtbmFtZSwgbW5hbWUsIGNvbG9uOwogCXVuc2ln bmVkIGludCBjbGVuLCBtbGVuOwogCXplbmRfZnVuY3Rpb24gKmZwdHI7Ci0JemVuZF9jbGFz c19lbnRyeSAqKnBjZTsKIAlIYXNoVGFibGUgKmZ0YWJsZTsKIAogCSpjZV9wdHIgPSBOVUxM OwpAQCAtMjYwMywxNSArMjYwMiw3IEBAIHN0YXRpYyBpbnQgemVuZF9pc19jYWxsYWJsZV9j aGVja19mdW5jKGkKIAlpZiAoY29sb24udiAhPSBOVUxMKSB7CiAJCWxjbmFtZSA9IHplbmRf dV9zdHJfY2FzZV9mb2xkKFpfVFlQRV9QKGNhbGxhYmxlKSwgWl9VTklWQUxfUChjYWxsYWJs ZSksIGNsZW4sIDAsICZjbGVuKTsKIAkJLyogY2F1dGlvbjogbGNuYW1lIGlzIG5vdCAnXDAn IHRlcm1pbmF0ZWQgKi8KLQkJaWYgKGNsZW4gPT0gc2l6ZW9mKCJzZWxmIikgLSAxICYmCi0J CSAgICBaRU5EX1VfRVFVQUwoWl9UWVBFX1AoY2FsbGFibGUpLCBsY25hbWUsIGNsZW4sICJz ZWxmIiwgc2l6ZW9mKCJzZWxmIiktMSkpIHsKLQkJCSpjZV9wdHIgPSBFRyhzY29wZSk7Ci0J CX0gZWxzZSBpZiAoY2xlbiA9PSBzaXplb2YoInBhcmVudCIpIC0gMSAmJgotCQkgICAgWkVO RF9VX0VRVUFMKFpfVFlQRV9QKGNhbGxhYmxlKSwgbGNuYW1lLCBjbGVuLCAicGFyZW50Iiwg c2l6ZW9mKCJwYXJlbnQiKS0xKSkgewotCQkJKmNlX3B0ciA9IEVHKHNjb3BlKSA/IEVHKHNj b3BlKS0+cGFyZW50IDogTlVMTDsKLQkJfSBlbHNlIGlmICh6ZW5kX3VfbG9va3VwX2NsYXNz KFpfVFlQRV9QKGNhbGxhYmxlKSwgWl9VTklWQUxfUChjYWxsYWJsZSksIGNsZW4sICZwY2Ug VFNSTUxTX0NDKSA9PSBTVUNDRVNTKSB7Ci0JCQkqY2VfcHRyID0gKnBjZTsKLQkJfQorCQkq Y2VfcHRyID0gemVuZF91X2ZldGNoX2NsYXNzKFpfVFlQRV9QKGNhbGxhYmxlKSwgbGNuYW1l LCBjbGVuLCBaRU5EX0ZFVENIX0NMQVNTX0FVVE98WkVORF9GRVRDSF9DTEFTU19OT19OT1JN QUxJWkUgVFNSTUxTX0NDKTsKIAkJZWZyZWUobGNuYW1lLnYpOwogCQlpZiAoISpjZV9wdHIp IHsKIAkJCXJldHVybiAwOwpJbmRleDogWmVuZC96ZW5kX2J1aWx0aW5fZnVuY3Rpb25zLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvWmVuZEVuZ2luZTIvemVuZF9i dWlsdGluX2Z1bmN0aW9ucy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMxOApkaWZmIC11 IC1wIC1kIC1yMS4zMTggemVuZF9idWlsdGluX2Z1bmN0aW9ucy5jCi0tLSBaZW5kL3plbmRf YnVpbHRpbl9mdW5jdGlvbnMuYwkxNSBKdWwgMjAwNiAxOToxNjoxOSAtMDAwMAkxLjMxOAor KysgWmVuZC96ZW5kX2J1aWx0aW5fZnVuY3Rpb25zLmMJMTUgSnVsIDIwMDYgMTk6NDk6Mjkg LTAwMDAKQEAgLTcwMiw3ICs3MDIsNyBAQCBzdGF0aWMgdm9pZCBpc19hX2ltcGwoSU5URVJO QUxfRlVOQ1RJT05fCiAKIAljb252ZXJ0X3RvX3RleHRfZXgoY2xhc3NfbmFtZSk7CiAKLQlp ZiAoemVuZF91X2xvb2t1cF9jbGFzc19leChaX1RZUEVfUFAoY2xhc3NfbmFtZSksIFpfVU5J VkFMX1BQKGNsYXNzX25hbWUpLCBaX1VOSUxFTl9QUChjbGFzc19uYW1lKSwgKGluc3RhbmNl X2NlICE9IE5VTEwpID8gMSA6IDAsICZjZSBUU1JNTFNfQ0MpID09IEZBSUxVUkUpIHsKKwlp ZiAoemVuZF91X2xvb2t1cF9jbGFzc19leChaX1RZUEVfUFAoY2xhc3NfbmFtZSksIFpfVU5J VkFMX1BQKGNsYXNzX25hbWUpLCBaX1VOSUxFTl9QUChjbGFzc19uYW1lKSwgKGluc3RhbmNl X2NlICE9IE5VTEwpID8gMSA6IDAsIDEsICZjZSBUU1JNTFNfQ0MpID09IEZBSUxVUkUpIHsK IAkJcmV0dmFsID0gMDsKIAl9IGVsc2UgewogCQlpZiAob25seV9zdWJjbGFzcykgewpJbmRl eDogWmVuZC96ZW5kX2NvbXBpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3Np dG9yeS9aZW5kRW5naW5lMi96ZW5kX2NvbXBpbGUuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g MS4zNDMKZGlmZiAtdSAtcCAtZCAtcjEuMzQzIHplbmRfY29tcGlsZS5oCi0tLSBaZW5kL3pl bmRfY29tcGlsZS5oCTEzIEp1biAyMDA2IDEyOjU2OjIwIC0wMDAwCTEuMzQzCisrKyBaZW5k L3plbmRfY29tcGlsZS5oCTE1IEp1bCAyMDA2IDE5OjQ5OjMxIC0wMDAwCkBAIC02MTUsNyAr NjE1LDkgQEAgaW50IHplbmRsZXgoem5vZGUgKnplbmRsdmFsIFRTUk1MU19EQyk7CiAjZGVm aW5lIFpFTkRfRkVUQ0hfQ0xBU1NfR0xPQkFMCQk0CiAjZGVmaW5lIFpFTkRfRkVUQ0hfQ0xB U1NfQVVUTwkJNQogI2RlZmluZSBaRU5EX0ZFVENIX0NMQVNTX0lOVEVSRkFDRQk2Ci0jZGVm aW5lIFpFTkRfRkVUQ0hfQ0xBU1NfTk9fQVVUT0xPQUQgMHg4MAorI2RlZmluZSBaRU5EX0ZF VENIX0NMQVNTX0ZMQUdTICAgICAgICAweEYwCisjZGVmaW5lIFpFTkRfRkVUQ0hfQ0xBU1Nf Tk9fTk9STUFMSVpFIDB4MTAKKyNkZWZpbmUgWkVORF9GRVRDSF9DTEFTU19OT19BVVRPTE9B RCAgMHg4MAogCiAvKiB2YXJpYWJsZSBwYXJzaW5nIHR5cGUgKGNvbXBpbGUtdGltZSkgKi8K ICNkZWZpbmUgWkVORF9QQVJTRURfTUVNQkVSCQkJCSgxPDwwKQpJbmRleDogWmVuZC96ZW5k X2V4ZWN1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9aZW5kRW5n aW5lMi96ZW5kX2V4ZWN1dGUuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDAKZGlmZiAt dSAtcCAtZCAtcjEuMTAwIHplbmRfZXhlY3V0ZS5oCi0tLSBaZW5kL3plbmRfZXhlY3V0ZS5o CTMxIE1heSAyMDA2IDEzOjAyOjE1IC0wMDAwCTEuMTAwCisrKyBaZW5kL3plbmRfZXhlY3V0 ZS5oCTE1IEp1bCAyMDA2IDE5OjQ5OjMxIC0wMDAwCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRp YyBpbmxpbmUgdm9pZCBzYWZlX2ZyZWVfenZhbF9wdHJfcmUKIH0KIFpFTkRfQVBJIGludCB6 ZW5kX2xvb2t1cF9jbGFzcyhjaGFyICpuYW1lLCBpbnQgbmFtZV9sZW5ndGgsIHplbmRfY2xh c3NfZW50cnkgKioqY2UgVFNSTUxTX0RDKTsKIFpFTkRfQVBJIGludCB6ZW5kX3VfbG9va3Vw X2NsYXNzKHplbmRfdWNoYXIgdHlwZSwgenN0ciBuYW1lLCBpbnQgbmFtZV9sZW5ndGgsIHpl bmRfY2xhc3NfZW50cnkgKioqY2UgVFNSTUxTX0RDKTsKLVpFTkRfQVBJIGludCB6ZW5kX3Vf bG9va3VwX2NsYXNzX2V4KHplbmRfdWNoYXIgdHlwZSwgenN0ciBuYW1lLCBpbnQgbmFtZV9s ZW5ndGgsIGludCB1c2VfYXV0b2xvYWQsIHplbmRfY2xhc3NfZW50cnkgKioqY2UgVFNSTUxT X0RDKTsKK1pFTkRfQVBJIGludCB6ZW5kX3VfbG9va3VwX2NsYXNzX2V4KHplbmRfdWNoYXIg dHlwZSwgenN0ciBuYW1lLCBpbnQgbmFtZV9sZW5ndGgsIGludCB1c2VfYXV0b2xvYWQsIGlu dCBkb19ub3JtYWxpemUsIHplbmRfY2xhc3NfZW50cnkgKioqY2UgVFNSTUxTX0RDKTsKIFpF TkRfQVBJIGludCB6ZW5kX2V2YWxfc3RyaW5nKGNoYXIgKnN0ciwgenZhbCAqcmV0dmFsX3B0 ciwgY2hhciAqc3RyaW5nX25hbWUgVFNSTUxTX0RDKTsKIFpFTkRfQVBJIGludCB6ZW5kX2V2 YWxfc3RyaW5nX2V4KGNoYXIgKnN0ciwgenZhbCAqcmV0dmFsX3B0ciwgY2hhciAqc3RyaW5n X25hbWUsIGludCBoYW5kbGVfZXhjZXB0aW9ucyBUU1JNTFNfREMpOwogWkVORF9BUEkgaW50 IHplbmRfdV9ldmFsX3N0cmluZyh6ZW5kX3VjaGFyIHR5cGUsIHpzdHIgc3RyLCB6dmFsICpy ZXR2YWxfcHRyLCBjaGFyICpzdHJpbmdfbmFtZSBUU1JNTFNfREMpOwpJbmRleDogWmVuZC96 ZW5kX2V4ZWN1dGVfQVBJLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkv WmVuZEVuZ2luZTIvemVuZF9leGVjdXRlX0FQSS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjM3NQpkaWZmIC11IC1wIC1kIC1yMS4zNzUgemVuZF9leGVjdXRlX0FQSS5jCi0tLSBaZW5k L3plbmRfZXhlY3V0ZV9BUEkuYwkxMiBKdWwgMjAwNiAwNzo1NDoxOCAtMDAwMAkxLjM3NQor KysgWmVuZC96ZW5kX2V4ZWN1dGVfQVBJLmMJMTUgSnVsIDIwMDYgMTk6NDk6MzEgLTAwMDAK QEAgLTEwNjIsNyArMTA2Miw3IEBAIGludCB6ZW5kX2NhbGxfZnVuY3Rpb24oemVuZF9mY2Fs bF9pbmZvICoKIH0KIAogCi1aRU5EX0FQSSBpbnQgemVuZF91X2xvb2t1cF9jbGFzc19leCh6 ZW5kX3VjaGFyIHR5cGUsIHpzdHIgbmFtZSwgaW50IG5hbWVfbGVuZ3RoLCBpbnQgdXNlX2F1 dG9sb2FkLCB6ZW5kX2NsYXNzX2VudHJ5ICoqKmNlIFRTUk1MU19EQykKK1pFTkRfQVBJIGlu dCB6ZW5kX3VfbG9va3VwX2NsYXNzX2V4KHplbmRfdWNoYXIgdHlwZSwgenN0ciBuYW1lLCBp bnQgbmFtZV9sZW5ndGgsIGludCB1c2VfYXV0b2xvYWQsIGludCBkb19ub3JtYWxpemUsIHpl bmRfY2xhc3NfZW50cnkgKioqY2UgVFNSTUxTX0RDKQogewogCXp2YWwgKiphcmdzWzFdOwog CXp2YWwgYXV0b2xvYWRfZnVuY3Rpb247CkBAIC0xMDgwLDEwICsxMDgwLDE2IEBAIFpFTkRf QVBJIGludCB6ZW5kX3VfbG9va3VwX2NsYXNzX2V4KHplbmQKIAkJcmV0dXJuIEZBSUxVUkU7 CiAJfQogCi0JbGNfbmFtZSA9IHplbmRfdV9zdHJfY2FzZV9mb2xkKHR5cGUsIG5hbWUsIG5h bWVfbGVuZ3RoLCAxLCAmbGNfbmFtZV9sZW4pOworCWlmIChkb19ub3JtYWxpemUpIHsKKwkJ bGNfbmFtZSA9IHplbmRfdV9zdHJfY2FzZV9mb2xkKHR5cGUsIG5hbWUsIG5hbWVfbGVuZ3Ro LCAxLCAmbGNfbmFtZV9sZW4pOworCX0gZWxzZSB7CisJCWxjX25hbWUgPSBuYW1lOworCX0K IAogCWlmICh6ZW5kX3VfaGFzaF9maW5kKEVHKGNsYXNzX3RhYmxlKSwgdHlwZSwgbGNfbmFt ZSwgbGNfbmFtZV9sZW4rMSwgKHZvaWQgKiopIGNlKSA9PSBTVUNDRVNTKSB7Ci0JCWVmcmVl KGxjX25hbWUudik7CisJCWlmIChkb19ub3JtYWxpemUpIHsKKwkJCWVmcmVlKGxjX25hbWUu dik7CisJCX0KIAkJcmV0dXJuIFNVQ0NFU1M7CiAJfQogCkBAIC0xMDkxLDcgKzEwOTcsOSBA QCBaRU5EX0FQSSBpbnQgemVuZF91X2xvb2t1cF9jbGFzc19leCh6ZW5kCiAJICogKGRvZXNu J3QgaW1wYWN0IGZ1Y3Rpb25hbGl0eSBvZiBfX2F1dG9sb2FkKCkKIAkqLwogCWlmICghdXNl X2F1dG9sb2FkIHx8IHplbmRfaXNfY29tcGlsaW5nKFRTUk1MU19DKSkgewotCQllZnJlZShs Y19uYW1lLnYpOworCQlpZiAoZG9fbm9ybWFsaXplKSB7CisJCQllZnJlZShsY19uYW1lLnYp OworCQl9CiAJCXJldHVybiBGQUlMVVJFOwogCX0KIApAQCAtMTEwMSw3ICsxMTA5LDkgQEAg WkVORF9BUEkgaW50IHplbmRfdV9sb29rdXBfY2xhc3NfZXgoemVuZAogCX0KIAogCWlmICh6 ZW5kX3VfaGFzaF9hZGQoRUcoaW5fYXV0b2xvYWQpLCB0eXBlLCBsY19uYW1lLCBsY19uYW1l X2xlbisxLCAodm9pZCoqKSZkdW1teSwgc2l6ZW9mKGNoYXIpLCBOVUxMKSA9PSBGQUlMVVJF KSB7Ci0JCWVmcmVlKGxjX25hbWUudik7CisJCWlmIChkb19ub3JtYWxpemUpIHsKKwkJCWVm cmVlKGxjX25hbWUudik7CisJCX0KIAkJcmV0dXJuIEZBSUxVUkU7CiAJfQogCkBAIC0xMTQz LDEyICsxMTUzLDE2IEBAIFpFTkRfQVBJIGludCB6ZW5kX3VfbG9va3VwX2NsYXNzX2V4KHpl bmQKIAogCWlmIChyZXR2YWwgPT0gRkFJTFVSRSkgewogCQlFRyhleGNlcHRpb24pID0gZXhj ZXB0aW9uOwotCQllZnJlZShsY19uYW1lLnYpOworCQlpZiAoZG9fbm9ybWFsaXplKSB7CisJ CQllZnJlZShsY19uYW1lLnYpOworCQl9CiAJCXJldHVybiBGQUlMVVJFOwogCX0KIAogCWlm IChFRyhleGNlcHRpb24pICYmIGV4Y2VwdGlvbikgewotCQllZnJlZShsY19uYW1lLnYpOwor CQlpZiAoZG9fbm9ybWFsaXplKSB7CisJCQllZnJlZShsY19uYW1lLnYpOworCQl9CiAJCXpl bmRfZXJyb3IoRV9FUlJPUiwgIkZ1bmN0aW9uICVzKCVSKSB0aHJldyBhbiBleGNlcHRpb24g b2YgdHlwZSAnJXYnIiwgWkVORF9BVVRPTE9BRF9GVU5DX05BTUUsIHR5cGUsIG5hbWUsIFpf T0JKQ0VfUChFRyhleGNlcHRpb24pKS0+bmFtZSk7CiAJCXJldHVybiBGQUlMVVJFOwogCX0K QEAgLTExNjAsMTMgKzExNzQsMTUgQEAgWkVORF9BUEkgaW50IHplbmRfdV9sb29rdXBfY2xh c3NfZXgoemVuZAogCX0KIAogCXJldHZhbCA9IHplbmRfdV9oYXNoX2ZpbmQoRUcoY2xhc3Nf dGFibGUpLCB0eXBlLCBsY19uYW1lLCBsY19uYW1lX2xlbiArIDEsICh2b2lkICoqKSBjZSk7 Ci0JZWZyZWUobGNfbmFtZS52KTsKKwlpZiAoZG9fbm9ybWFsaXplKSB7CisJCWVmcmVlKGxj X25hbWUudik7CisJfQogCXJldHVybiByZXR2YWw7CiB9CiAKIFpFTkRfQVBJIGludCB6ZW5k X3VfbG9va3VwX2NsYXNzKHplbmRfdWNoYXIgdHlwZSwgenN0ciBuYW1lLCBpbnQgbmFtZV9s ZW5ndGgsIHplbmRfY2xhc3NfZW50cnkgKioqY2UgVFNSTUxTX0RDKQogewotCXJldHVybiB6 ZW5kX3VfbG9va3VwX2NsYXNzX2V4KHR5cGUsIG5hbWUsIG5hbWVfbGVuZ3RoLCAxLCBjZSBU U1JNTFNfQ0MpOworCXJldHVybiB6ZW5kX3VfbG9va3VwX2NsYXNzX2V4KHR5cGUsIG5hbWUs IG5hbWVfbGVuZ3RoLCAxLCAxLCBjZSBUU1JNTFNfQ0MpOwogfQogCiBaRU5EX0FQSSBpbnQg emVuZF9sb29rdXBfY2xhc3MoY2hhciAqbmFtZSwgaW50IG5hbWVfbGVuZ3RoLCB6ZW5kX2Ns YXNzX2VudHJ5ICoqKmNlIFRTUk1MU19EQykKQEAgLTE1NDUsOSArMTU2MSwxMiBAQCB2b2lk IHplbmRfdW5zZXRfdGltZW91dChUU1JNTFNfRCkKIFpFTkRfQVBJIHplbmRfY2xhc3NfZW50 cnkgKnplbmRfdV9mZXRjaF9jbGFzcyh6ZW5kX3VjaGFyIHR5cGUsIHpzdHIgY2xhc3NfbmFt ZSwgdWludCBjbGFzc19uYW1lX2xlbiwgaW50IGZldGNoX3R5cGUgVFNSTUxTX0RDKQogewog CXplbmRfY2xhc3NfZW50cnkgKipwY2U7Ci0JaW50IHVzZV9hdXRvbG9hZCA9IChmZXRjaF90 eXBlICYgWkVORF9GRVRDSF9DTEFTU19OT19BVVRPTE9BRCkgPT0gMDsKKwlpbnQgdXNlX2F1 dG9sb2FkID0gKGZldGNoX3R5cGUgJiBaRU5EX0ZFVENIX0NMQVNTX05PX0FVVE9MT0FEKSAg PyAwIDogMTsKKwlpbnQgZG9fbm9ybWFsaXplID0gKGZldGNoX3R5cGUgJiBaRU5EX0ZFVENI X0NMQVNTX05PX05PUk1BTElaRSkgPyAwIDogMTsKKwl6c3RyIGxjbmFtZTsKKworCWZldGNo X3R5cGUgPSBmZXRjaF90eXBlICYgflpFTkRfRkVUQ0hfQ0xBU1NfRkxBR1M7CiAKLQlmZXRj aF90eXBlID0gZmV0Y2hfdHlwZSAmIH5aRU5EX0ZFVENIX0NMQVNTX05PX0FVVE9MT0FEOwog Y2hlY2tfZmV0Y2hfdHlwZToKIAlzd2l0Y2ggKGZldGNoX3R5cGUpIHsKIAkJY2FzZSBaRU5E X0ZFVENIX0NMQVNTX1NFTEY6CkBAIC0xNTY0LDE1ICsxNTgzLDI0IEBAIGNoZWNrX2ZldGNo X3R5cGU6CiAJCQl9CiAJCQlyZXR1cm4gRUcoc2NvcGUpLT5wYXJlbnQ7CiAJCWNhc2UgWkVO RF9GRVRDSF9DTEFTU19BVVRPOiB7Ci0JCQkJZmV0Y2hfdHlwZSA9IHplbmRfZ2V0X2NsYXNz X2ZldGNoX3R5cGUodHlwZSwgY2xhc3NfbmFtZSwgY2xhc3NfbmFtZV9sZW4pOworCQkJCWlm IChkb19ub3JtYWxpemUpIHsKKwkJCQkJbGNuYW1lID0gemVuZF91X3N0cl9jYXNlX2ZvbGQo dHlwZSwgY2xhc3NfbmFtZSwgY2xhc3NfbmFtZV9sZW4sIDAsICZjbGFzc19uYW1lX2xlbik7 CisJCQkJCWRvX25vcm1hbGl6ZSA9IDA7CisJCQkJfSBlbHNlIHsKKwkJCQkJbGNuYW1lID0g Y2xhc3NfbmFtZTsKKwkJCQl9CisJCQkJZmV0Y2hfdHlwZSA9IHplbmRfZ2V0X2NsYXNzX2Zl dGNoX3R5cGUodHlwZSwgbGNuYW1lLCBjbGFzc19uYW1lX2xlbik7CiAJCQkJaWYgKGZldGNo X3R5cGUhPVpFTkRfRkVUQ0hfQ0xBU1NfREVGQVVMVCkgeworCQkJCQlpZiAoZG9fbm9ybWFs aXplKSB7CisJCQkJCQllZnJlZShsY25hbWUudik7CisJCQkJCX0KIAkJCQkJZ290byBjaGVj a19mZXRjaF90eXBlOwogCQkJCX0KIAkJCX0KIAkJCWJyZWFrOwogCX0KIAotCWlmICh6ZW5k X3VfbG9va3VwX2NsYXNzX2V4KHR5cGUsIGNsYXNzX25hbWUsIGNsYXNzX25hbWVfbGVuLCB1 c2VfYXV0b2xvYWQsICZwY2UgVFNSTUxTX0NDKT09RkFJTFVSRSkgeworCWlmICh6ZW5kX3Vf bG9va3VwX2NsYXNzX2V4KHR5cGUsIGNsYXNzX25hbWUsIGNsYXNzX25hbWVfbGVuLCB1c2Vf YXV0b2xvYWQsIGRvX25vcm1hbGl6ZSwgJnBjZSBUU1JNTFNfQ0MpPT1GQUlMVVJFKSB7CiAJ CWlmICh1c2VfYXV0b2xvYWQpIHsKIAkJCWlmIChmZXRjaF90eXBlID09IFpFTkRfRkVUQ0hf Q0xBU1NfSU5URVJGQUNFKSB7CiAJCQkJemVuZF9lcnJvcihFX0VSUk9SLCAiSW50ZXJmYWNl ICclUicgbm90IGZvdW5kIiwgdHlwZSwgY2xhc3NfbmFtZSk7CkluZGV4OiBleHQvcmVmbGVj dGlvbi9waHBfcmVmbGVjdGlvbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9yZXBvc2l0 b3J5L3BocC1zcmMvZXh0L3JlZmxlY3Rpb24vcGhwX3JlZmxlY3Rpb24uYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4yNDMKZGlmZiAtdSAtcCAtZCAtcjEuMjQzIHBocF9yZWZsZWN0aW9u LmMKLS0tIGV4dC9yZWZsZWN0aW9uL3BocF9yZWZsZWN0aW9uLmMJMTMgSnVsIDIwMDYgMTI6 MzQ6MzAgLTAwMDAJMS4yNDMKKysrIGV4dC9yZWZsZWN0aW9uL3BocF9yZWZsZWN0aW9uLmMJ MTUgSnVsIDIwMDYgMTk6NDk6MzkgLTAwMDAKQEAgLTE5NzIsNyArMTk3Miw3IEBAIFpFTkRf TUVUSE9EKHJlZmxlY3Rpb25fcGFyYW1ldGVyLCBnZXRDbGEKIAlHRVRfUkVGTEVDVElPTl9P QkpFQ1RfUFRSKHBhcmFtKTsKIAogCWlmIChwYXJhbS0+YXJnX2luZm8tPmNsYXNzX25hbWUu dikgewotCQlpZiAoemVuZF91X2xvb2t1cF9jbGFzc19leChVRyh1bmljb2RlKT9JU19VTklD T0RFOklTX1NUUklORywgcGFyYW0tPmFyZ19pbmZvLT5jbGFzc19uYW1lLCBwYXJhbS0+YXJn X2luZm8tPmNsYXNzX25hbWVfbGVuLCAxLCAmcGNlIFRTUk1MU19DQykgPT0gRkFJTFVSRSkg eworCQlpZiAoemVuZF91X2xvb2t1cF9jbGFzc19leChVRyh1bmljb2RlKT9JU19VTklDT0RF OklTX1NUUklORywgcGFyYW0tPmFyZ19pbmZvLT5jbGFzc19uYW1lLCBwYXJhbS0+YXJnX2lu Zm8tPmNsYXNzX25hbWVfbGVuLCAxLCAxLCAmcGNlIFRTUk1MU19DQykgPT0gRkFJTFVSRSkg ewogCQkJemVuZF90aHJvd19leGNlcHRpb25fZXgocmVmbGVjdGlvbl9leGNlcHRpb25fcHRy LCAwIFRTUk1MU19DQywgCiAJCQkJIkNsYXNzICV2IGRvZXMgbm90IGV4aXN0IiwgcGFyYW0t PmFyZ19pbmZvLT5jbGFzc19uYW1lKTsKIAkJCXJldHVybjsK ------------7F156BABA1CEF3--