From owner-svn-src-all@freebsd.org Wed Mar 9 09:16:54 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9E450AC98EA; Wed, 9 Mar 2016 09:16:54 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 DV Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 731E4C81; Wed, 9 Mar 2016 09:16:54 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from Xins-MBP.home.us.delphij.net (unknown [IPv6:2601:646:8f00:8a91:f04c:6de3:ff1:793]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 92DE9B9E2; Wed, 9 Mar 2016 01:16:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1457515014; x=1457529414; bh=0WasP9OBxJCh2oMHMygZEwywA6HphPIeay2A7UgZq1U=; h=Subject:To:References:Cc:From:Date:In-Reply-To; b=TMl1eL+gHIiB2+xC74qoCIT4U8wFVtbtJtro/Vp7BwORXMiYDYg/RM4EE4nlxpTZ6 LBDUAhoMUzxJJJy2gkYpfWLSM9RQoFO5PZiQZtMBcZDa/6o33JHAVRNyL3HH7/YdK/ vn4pjLpYrx0FplpKVquxN0MH+sFeQsGysfYPY11A= Subject: Re: svn commit: r296465 - in releng/9.3: . crypto/openssl crypto/openssl/apps crypto/openssl/bugs crypto/openssl/crypto crypto/openssl/crypto/aes crypto/openssl/crypto/asn1 crypto/openssl/crypto/bf cry... To: Antoine Brodin , Xin LI References: <201603071622.u27GMC4a082792@repo.freebsd.org> <9B6D673B7B15CCDC424E97A8@atuin.in.mat.cc> <56DEFD08.6050100@FreeBSD.org> <63FB9E5BBBF224CA12839457@ogg.in.absolight.net> <56DEFDF5.2040500@FreeBSD.org> <1E2DCDEE8775312979CE7D0B@ogg.in.absolight.net> <56DF0234.2090307@FreeBSD.org> <56DF025B.1090706@FreeBSD.org> <56DF0550.6000604@FreeBSD.org> Cc: Mathieu Arnold , Jung-Uk Kim , Bryan Drewery , Xin LI , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-releng@freebsd.org From: Xin Li Message-ID: <56DFEA05.6060501@delphij.net> Date: Wed, 9 Mar 2016 01:16:53 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="774Dh2Jq2oobcRMhc89n9LSoJJVmQ5OiC" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Mar 2016 09:16:54 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --774Dh2Jq2oobcRMhc89n9LSoJJVmQ5OiC Content-Type: multipart/mixed; boundary="SeCef0iwHIoNH1LukmLLTks6deFApNAGo" From: Xin Li To: Antoine Brodin , Xin LI Cc: Mathieu Arnold , Jung-Uk Kim , Bryan Drewery , Xin LI , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , svn-src-releng@freebsd.org Message-ID: <56DFEA05.6060501@delphij.net> Subject: Re: svn commit: r296465 - in releng/9.3: . crypto/openssl crypto/openssl/apps crypto/openssl/bugs crypto/openssl/crypto crypto/openssl/crypto/aes crypto/openssl/crypto/asn1 crypto/openssl/crypto/bf cry... References: <201603071622.u27GMC4a082792@repo.freebsd.org> <9B6D673B7B15CCDC424E97A8@atuin.in.mat.cc> <56DEFD08.6050100@FreeBSD.org> <63FB9E5BBBF224CA12839457@ogg.in.absolight.net> <56DEFDF5.2040500@FreeBSD.org> <1E2DCDEE8775312979CE7D0B@ogg.in.absolight.net> <56DF0234.2090307@FreeBSD.org> <56DF025B.1090706@FreeBSD.org> <56DF0550.6000604@FreeBSD.org> In-Reply-To: --SeCef0iwHIoNH1LukmLLTks6deFApNAGo Content-Type: multipart/mixed; boundary="------------050501080008040300060008" This is a multi-part message in MIME format. --------------050501080008040300060008 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable FYI -- I can confirm that libcrypto is broken and have a reliable way to trigger it. So far I was able to narrow down this to this change and here is a temporary workaround (which will reintroduce CVE-2016-0702). Cheers, --------------050501080008040300060008 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="bn-revert.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bn-revert.diff" SW5kZXg6IGNyeXB0by9vcGVuc3NsL2NyeXB0by9ibi9ibi5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGNyeXB0by9vcGVuc3NsL2NyeXB0by9ibi9ibi5oCShyZXZpc2lvbiAyOTY1NTYpCisrKyBj cnlwdG8vb3BlbnNzbC9jcnlwdG8vYm4vYm4uaAkod29ya2luZyBjb3B5KQpAQCAtNjksMTMg KzY5LDEzIEBACiAgKgogICovCiAKLSNpZm5kZWYgSEVBREVSX0JOX0gNCi0jIGRlZmluZSBI RUFERVJfQk5fSA0KLQ0KLSMgaW5jbHVkZSA8bGltaXRzLmg+DQotIyBpbmNsdWRlIDxvcGVu c3NsL2Vfb3MyLmg+DQotIyBpZm5kZWYgT1BFTlNTTF9OT19GUF9BUEkNCi0jICBpbmNsdWRl IDxzdGRpby5oPiAgICAgICAgICAgIC8qIEZJTEUgKi8NCisjaWZuZGVmIEhFQURFUl9CTl9I CisjIGRlZmluZSBIRUFERVJfQk5fSAorCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorIyBpbmNs dWRlIDxvcGVuc3NsL2Vfb3MyLmg+CisjIGlmbmRlZiBPUEVOU1NMX05PX0ZQX0FQSQorIyAg aW5jbHVkZSA8c3RkaW8uaD4gICAgICAgICAgICAvKiBGSUxFICovCiAjIGVuZGlmCiAjIGlu Y2x1ZGUgPG9wZW5zc2wvb3NzbF90eXAuaD4KIApAQCAtNzAyLDIzICs3MDIsMjMgQEAgY29u c3QgQklHTlVNICpCTl9nZXQwX25pc3RfcHJpbWVfMjI0KHZvaWQpOwogY29uc3QgQklHTlVN ICpCTl9nZXQwX25pc3RfcHJpbWVfMjU2KHZvaWQpOwogY29uc3QgQklHTlVNICpCTl9nZXQw X25pc3RfcHJpbWVfMzg0KHZvaWQpOwogY29uc3QgQklHTlVNICpCTl9nZXQwX25pc3RfcHJp bWVfNTIxKHZvaWQpOwotDQotLyogbGlicmFyeSBpbnRlcm5hbCBmdW5jdGlvbnMgKi8NCi0N Ci0jIGRlZmluZSBibl9leHBhbmQoYSxiaXRzKSBcDQotICAgICggXA0KLSAgICAgICAgYml0 cyA+IChJTlRfTUFYIC0gQk5fQklUUzIgKyAxKSA/IFwNCi0gICAgICAgICAgICBOVUxMIFwN Ci0gICAgICAgIDogXA0KLSAgICAgICAgICAgICgoKGJpdHMrQk5fQklUUzItMSkvQk5fQklU UzIpIDw9IChhKS0+ZG1heCkgPyBcDQotICAgICAgICAgICAgICAgIChhKSBcDQotICAgICAg ICAgICAgOiBcDQotICAgICAgICAgICAgICAgIGJuX2V4cGFuZDIoKGEpLChiaXRzK0JOX0JJ VFMyLTEpL0JOX0JJVFMyKSBcDQotICAgICkNCi0NCi0jIGRlZmluZSBibl93ZXhwYW5kKGEs d29yZHMpICgoKHdvcmRzKSA8PSAoYSktPmRtYXgpPyhhKTpibl9leHBhbmQyKChhKSwod29y ZHMpKSkNCi1CSUdOVU0gKmJuX2V4cGFuZDIoQklHTlVNICphLCBpbnQgd29yZHMpOw0KLSMg aWZuZGVmIE9QRU5TU0xfTk9fREVQUkVDQVRFRA0KKworLyogbGlicmFyeSBpbnRlcm5hbCBm dW5jdGlvbnMgKi8KKworIyBkZWZpbmUgYm5fZXhwYW5kKGEsYml0cykgXAorICAgICggXAor ICAgICAgICBiaXRzID4gKElOVF9NQVggLSBCTl9CSVRTMiArIDEpID8gXAorICAgICAgICAg ICAgTlVMTCBcCisgICAgICAgIDogXAorICAgICAgICAgICAgKCgoYml0cytCTl9CSVRTMi0x KS9CTl9CSVRTMikgPD0gKGEpLT5kbWF4KSA/IFwKKyAgICAgICAgICAgICAgICAoYSkgXAor ICAgICAgICAgICAgOiBcCisgICAgICAgICAgICAgICAgYm5fZXhwYW5kMigoYSksKGJpdHMr Qk5fQklUUzItMSkvQk5fQklUUzIpIFwKKyAgICApCisKKyMgZGVmaW5lIGJuX3dleHBhbmQo YSx3b3JkcykgKCgod29yZHMpIDw9IChhKS0+ZG1heCk/KGEpOmJuX2V4cGFuZDIoKGEpLCh3 b3JkcykpKQorQklHTlVNICpibl9leHBhbmQyKEJJR05VTSAqYSwgaW50IHdvcmRzKTsKKyMg aWZuZGVmIE9QRU5TU0xfTk9fREVQUkVDQVRFRAogQklHTlVNICpibl9kdXBfZXhwYW5kKGNv bnN0IEJJR05VTSAqYSwgaW50IHdvcmRzKTsgLyogdW51c2VkICovCiAjIGVuZGlmCiAKSW5k ZXg6IGNyeXB0by9vcGVuc3NsL2NyeXB0by9ibi9ibl9leHAuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBjcnlwdG8vb3BlbnNzbC9jcnlwdG8vYm4vYm5fZXhwLmMJKHJldmlzaW9uIDI5NjU1NikK KysrIGNyeXB0by9vcGVuc3NsL2NyeXB0by9ibi9ibl9leHAuYwkod29ya2luZyBjb3B5KQpA QCAtMTA3LDEzICsxMDcsMTIgQEAKICAqIChlYXlAY3J5cHRzb2Z0LmNvbSkuICBUaGlzIHBy b2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgd3JpdHRlbiBieSBUaW0KICAqIEh1ZHNvbiAodGpo QGNyeXB0c29mdC5jb20pLgogICoKLSAqLw0KLQ0KLSNpbmNsdWRlICJjcnlwdGxpYi5oIg0K LSNpbmNsdWRlICJjb25zdGFudF90aW1lX2xvY2wuaCINCi0jaW5jbHVkZSAiYm5fbGNsLmgi DQotDQotLyogbWF4aW11bSBwcmVjb21wdXRhdGlvbiB0YWJsZSBzaXplIGZvciAqdmFyaWFi bGUqIHNsaWRpbmcgd2luZG93cyAqLw0KKyAqLworCisjaW5jbHVkZSAiY3J5cHRsaWIuaCIK KyNpbmNsdWRlICJibl9sY2wuaCIKKworLyogbWF4aW11bSBwcmVjb21wdXRhdGlvbiB0YWJs ZSBzaXplIGZvciAqdmFyaWFibGUqIHNsaWRpbmcgd2luZG93cyAqLwogI2RlZmluZSBUQUJM RV9TSVpFICAgICAgMzIKIAogLyogdGhpcyBvbmUgd29ya3MgLSBzaW1wbGUgYnV0IHdvcmtz ICovCkBAIC01MjEsNzkgKzUyMCw0MSBAQCBpbnQgQk5fbW9kX2V4cF9tb250KEJJR05VTSAq cnIsIGNvbnN0IEJJR05VTSAqYSwgYwogICogcGF0dGVybiBhcyBmYXIgYXMgY2FjaGUgbGlu ZXMgYXJlIGNvbmNlcm5lZC4gIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZQogICogdXNl ZCB0byB0cmFuc2ZlciBhIEJJR05VTSBmcm9tL3RvIHRoYXQgdGFibGUuCiAgKi8KLQ0KLXN0 YXRpYyBpbnQgTU9EX0VYUF9DVElNRV9DT1BZX1RPX1BSRUJVRihCSUdOVU0gKmIsIGludCB0 b3AsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGNoYXIgKmJ1ZiwgaW50IGlkeCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHdpbmRvdykNCi17DQotICAgIGludCBpLCBqOw0KLSAgICBpbnQgd2lk dGggPSAxIDw8IHdpbmRvdzsNCi0gICAgQk5fVUxPTkcgKnRhYmxlID0gKEJOX1VMT05HICop YnVmOw0KLQ0KLSAgICBpZiAoYm5fd2V4cGFuZChiLCB0b3ApID09IE5VTEwpDQotICAgICAg ICByZXR1cm4gMDsNCisKK3N0YXRpYyBpbnQgTU9EX0VYUF9DVElNRV9DT1BZX1RPX1BSRUJV RihCSUdOVU0gKmIsIGludCB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgaWR4LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCkKK3sKKyAgICBzaXplX3QgaSwg ajsKKworICAgIGlmIChibl93ZXhwYW5kKGIsIHRvcCkgPT0gTlVMTCkKKyAgICAgICAgcmV0 dXJuIDA7CiAgICAgd2hpbGUgKGItPnRvcCA8IHRvcCkgewotICAgICAgICBiLT5kW2ItPnRv cCsrXSA9IDA7DQotICAgIH0NCi0NCi0gICAgZm9yIChpID0gMCwgaiA9IGlkeDsgaSA8IHRv cDsgaSsrLCBqICs9IHdpZHRoKSB7DQotICAgICAgICB0YWJsZVtqXSA9IGItPmRbaV07DQot ICAgIH0NCi0NCi0gICAgYm5fY29ycmVjdF90b3AoYik7DQorICAgICAgICBiLT5kW2ItPnRv cCsrXSA9IDA7CisgICAgfQorCisgICAgZm9yIChpID0gMCwgaiA9IGlkeDsgaSA8IHRvcCAq IHNpemVvZiBiLT5kWzBdOyBpKyssIGogKz0gd2lkdGgpIHsKKyAgICAgICAgYnVmW2pdID0g KCh1bnNpZ25lZCBjaGFyICopYi0+ZClbaV07CisgICAgfQorCisgICAgYm5fY29ycmVjdF90 b3AoYik7CiAgICAgcmV0dXJuIDE7CiB9Ci0NCi1zdGF0aWMgaW50IE1PRF9FWFBfQ1RJTUVf Q09QWV9GUk9NX1BSRUJVRihCSUdOVU0gKmIsIGludCB0b3AsDQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgaWR4 LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aW5k b3cpDQotew0KLSAgICBpbnQgaSwgajsNCi0gICAgaW50IHdpZHRoID0gMSA8PCB3aW5kb3c7 DQotICAgIHZvbGF0aWxlIEJOX1VMT05HICp0YWJsZSA9ICh2b2xhdGlsZSBCTl9VTE9ORyAq KWJ1ZjsNCi0NCi0gICAgaWYgKGJuX3dleHBhbmQoYiwgdG9wKSA9PSBOVUxMKQ0KLSAgICAg ICAgcmV0dXJuIDA7DQotDQotICAgIGlmICh3aW5kb3cgPD0gMykgew0KLSAgICAgICAgZm9y IChpID0gMDsgaSA8IHRvcDsgaSsrLCB0YWJsZSArPSB3aWR0aCkgew0KLSAgICAgICAgICAg IEJOX1VMT05HIGFjYyA9IDA7DQotDQotICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHdp ZHRoOyBqKyspIHsNCi0gICAgICAgICAgICAgICAgYWNjIHw9IHRhYmxlW2pdICYNCi0gICAg ICAgICAgICAgICAgICAgICAgICgoQk5fVUxPTkcpMCAtIChjb25zdGFudF90aW1lX2VxX2lu dChqLGlkeCkmMSkpOw0KLSAgICAgICAgICAgIH0NCi0NCi0gICAgICAgICAgICBiLT5kW2ld ID0gYWNjOw0KLSAgICAgICAgfQ0KLSAgICB9IGVsc2Ugew0KLSAgICAgICAgaW50IHhzdHJp ZGUgPSAxIDw8ICh3aW5kb3cgLSAyKTsNCi0gICAgICAgIEJOX1VMT05HIHkwLCB5MSwgeTIs IHkzOw0KLQ0KLSAgICAgICAgaSA9IGlkeCA+PiAod2luZG93IC0gMik7ICAgICAgICAvKiBl cXVpdmFsZW50IG9mIGlkeCAvIHhzdHJpZGUgKi8NCi0gICAgICAgIGlkeCAmPSB4c3RyaWRl IC0gMTsgICAgICAgICAgICAgLyogZXF1aXZhbGVudCBvZiBpZHggJSB4c3RyaWRlICovDQot DQotICAgICAgICB5MCA9IChCTl9VTE9ORykwIC0gKGNvbnN0YW50X3RpbWVfZXFfaW50KGks MCkmMSk7DQotICAgICAgICB5MSA9IChCTl9VTE9ORykwIC0gKGNvbnN0YW50X3RpbWVfZXFf aW50KGksMSkmMSk7DQotICAgICAgICB5MiA9IChCTl9VTE9ORykwIC0gKGNvbnN0YW50X3Rp bWVfZXFfaW50KGksMikmMSk7DQotICAgICAgICB5MyA9IChCTl9VTE9ORykwIC0gKGNvbnN0 YW50X3RpbWVfZXFfaW50KGksMykmMSk7DQotDQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwg dG9wOyBpKyssIHRhYmxlICs9IHdpZHRoKSB7DQotICAgICAgICAgICAgQk5fVUxPTkcgYWNj ID0gMDsNCi0NCi0gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgeHN0cmlkZTsgaisrKSB7 DQotICAgICAgICAgICAgICAgIGFjYyB8PSAoICh0YWJsZVtqICsgMCAqIHhzdHJpZGVdICYg eTApIHwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHRhYmxlW2ogKyAxICogeHN0cmlk ZV0gJiB5MSkgfA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAodGFibGVbaiArIDIgKiB4 c3RyaWRlXSAmIHkyKSB8DQotICAgICAgICAgICAgICAgICAgICAgICAgICh0YWJsZVtqICsg MyAqIHhzdHJpZGVdICYgeTMpICkNCi0gICAgICAgICAgICAgICAgICAgICAgICYgKChCTl9V TE9ORykwIC0gKGNvbnN0YW50X3RpbWVfZXFfaW50KGosaWR4KSYxKSk7DQotICAgICAgICAg ICAgfQ0KLQ0KLSAgICAgICAgICAgIGItPmRbaV0gPSBhY2M7DQotICAgICAgICB9DQotICAg IH0NCi0NCi0gICAgYi0+dG9wID0gdG9wOw0KKworc3RhdGljIGludCBNT0RfRVhQX0NUSU1F X0NPUFlfRlJPTV9QUkVCVUYoQklHTlVNICpiLCBpbnQgdG9wLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgaWR4 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRo KQoreworICAgIHNpemVfdCBpLCBqOworCisgICAgaWYgKGJuX3dleHBhbmQoYiwgdG9wKSA9 PSBOVUxMKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAoaSA9IDAsIGogPSBpZHg7 IGkgPCB0b3AgKiBzaXplb2YgYi0+ZFswXTsgaSsrLCBqICs9IHdpZHRoKSB7CisgICAgICAg ICgodW5zaWduZWQgY2hhciAqKWItPmQpW2ldID0gYnVmW2pdOworICAgIH0KKworICAgIGIt PnRvcCA9IHRvcDsKICAgICBibl9jb3JyZWN0X3RvcChiKTsKICAgICByZXR1cm4gMTsKIH0K QEAgLTY4NCwxMyArNjQ1LDEzIEBAIGludCBCTl9tb2RfZXhwX21vbnRfY29uc3R0aW1lKEJJ R05VTSAqcnIsIGNvbnN0IEJJCiAgICAgLyoKICAgICAgKiBJbml0aWFsaXplIHRoZSBpbnRl cm1lZGlhdGUgcmVzdWx0LiBEbyB0aGlzIGVhcmx5IHRvIHNhdmUgZG91YmxlCiAgICAgICog Y29udmVyc2lvbiwgb25jZSBlYWNoIGZvciBhXjAgYW5kIGludGVybWVkaWF0ZSByZXN1bHQu Ci0gICAgICovDQotICAgIGlmICghQk5fdG9fbW9udGdvbWVyeShyLCBCTl92YWx1ZV9vbmUo KSwgbW9udCwgY3R4KSkNCi0gICAgICAgIGdvdG8gZXJyOw0KLSAgICBpZiAoIU1PRF9FWFBf Q1RJTUVfQ09QWV9UT19QUkVCVUYociwgdG9wLCBwb3dlcmJ1ZiwgMCwgd2luZG93KSkNCi0g ICAgICAgIGdvdG8gZXJyOw0KLQ0KLSAgICAvKiBJbml0aWFsaXplIGNvbXB1dGVUZW1wIGFz IGFeMSB3aXRoIG1vbnRnb21lcnkgcHJlY2FsY3MgKi8NCisgICAgICovCisgICAgaWYgKCFC Tl90b19tb250Z29tZXJ5KHIsIEJOX3ZhbHVlX29uZSgpLCBtb250LCBjdHgpKQorICAgICAg ICBnb3RvIGVycjsKKyAgICBpZiAoIU1PRF9FWFBfQ1RJTUVfQ09QWV9UT19QUkVCVUYociwg dG9wLCBwb3dlcmJ1ZiwgMCwgbnVtUG93ZXJzKSkKKyAgICAgICAgZ290byBlcnI7CisKKyAg ICAvKiBJbml0aWFsaXplIGNvbXB1dGVUZW1wIGFzIGFeMSB3aXRoIG1vbnRnb21lcnkgcHJl Y2FsY3MgKi8KICAgICBjb21wdXRlVGVtcCA9IEJOX0NUWF9nZXQoY3R4KTsKICAgICBhbSA9 IEJOX0NUWF9nZXQoY3R4KTsKICAgICBpZiAoY29tcHV0ZVRlbXAgPT0gTlVMTCB8fCBhbSA9 PSBOVUxMKQpAQCAtNzAzLDEzICs2NjQsMTMgQEAgaW50IEJOX21vZF9leHBfbW9udF9jb25z dHRpbWUoQklHTlVNICpyciwgY29uc3QgQkkKICAgICB9IGVsc2UKICAgICAgICAgYWEgPSBh OwogICAgIGlmICghQk5fdG9fbW9udGdvbWVyeShhbSwgYWEsIG1vbnQsIGN0eCkpCi0gICAg ICAgIGdvdG8gZXJyOw0KLSAgICBpZiAoIUJOX2NvcHkoY29tcHV0ZVRlbXAsIGFtKSkNCi0g ICAgICAgIGdvdG8gZXJyOw0KLSAgICBpZiAoIU1PRF9FWFBfQ1RJTUVfQ09QWV9UT19QUkVC VUYoYW0sIHRvcCwgcG93ZXJidWYsIDEsIHdpbmRvdykpDQotICAgICAgICBnb3RvIGVycjsN Ci0NCi0gICAgLyoNCisgICAgICAgIGdvdG8gZXJyOworICAgIGlmICghQk5fY29weShjb21w dXRlVGVtcCwgYW0pKQorICAgICAgICBnb3RvIGVycjsKKyAgICBpZiAoIU1PRF9FWFBfQ1RJ TUVfQ09QWV9UT19QUkVCVUYoYW0sIHRvcCwgcG93ZXJidWYsIDEsIG51bVBvd2VycykpCisg ICAgICAgIGdvdG8gZXJyOworCisgICAgLyoKICAgICAgKiBJZiB0aGUgd2luZG93IHNpemUg aXMgZ3JlYXRlciB0aGFuIDEsIHRoZW4gY2FsY3VsYXRlCiAgICAgICogdmFsW2k9Mi4uMl53 aW5zaXplLTFdLiBQb3dlcnMgYXJlIGNvbXB1dGVkIGFzIGEqYV4oaS0xKSAoZXZlbiBwb3dl cnMKICAgICAgKiBjb3VsZCBpbnN0ZWFkIGJlIGNvbXB1dGVkIGFzIChhXihpLzIpKV4yIHRv IHVzZSB0aGUgc2xpZ2h0IHBlcmZvcm1hbmNlCkBAIC03MTgsMTQgKzY3OSwxNCBAQCBpbnQg Qk5fbW9kX2V4cF9tb250X2NvbnN0dGltZShCSUdOVU0gKnJyLCBjb25zdCBCSQogICAgIGlm ICh3aW5kb3cgPiAxKSB7CiAgICAgICAgIGZvciAoaSA9IDI7IGkgPCBudW1Qb3dlcnM7IGkr KykgewogICAgICAgICAgICAgLyogQ2FsY3VsYXRlIGFeaSA9IGFeKGktMSkgKiBhICovCi0g ICAgICAgICAgICBpZiAoIUJOX21vZF9tdWxfbW9udGdvbWVyeQ0KLSAgICAgICAgICAgICAg ICAoY29tcHV0ZVRlbXAsIGFtLCBjb21wdXRlVGVtcCwgbW9udCwgY3R4KSkNCi0gICAgICAg ICAgICAgICAgZ290byBlcnI7DQotICAgICAgICAgICAgaWYgKCFNT0RfRVhQX0NUSU1FX0NP UFlfVE9fUFJFQlVGKGNvbXB1dGVUZW1wLCB0b3AsIHBvd2VyYnVmLCBpLA0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cpKQ0KLSAgICAg ICAgICAgICAgICBnb3RvIGVycjsNCi0gICAgICAgIH0NCi0gICAgfQ0KKyAgICAgICAgICAg IGlmICghQk5fbW9kX211bF9tb250Z29tZXJ5CisgICAgICAgICAgICAgICAgKGNvbXB1dGVU ZW1wLCBhbSwgY29tcHV0ZVRlbXAsIG1vbnQsIGN0eCkpCisgICAgICAgICAgICAgICAgZ290 byBlcnI7CisgICAgICAgICAgICBpZiAoIU1PRF9FWFBfQ1RJTUVfQ09QWV9UT19QUkVCVUYK KyAgICAgICAgICAgICAgICAoY29tcHV0ZVRlbXAsIHRvcCwgcG93ZXJidWYsIGksIG51bVBv d2VycykpCisgICAgICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIH0KKyAgICB9CiAK ICAgICAvKgogICAgICAqIEFkanVzdCB0aGUgbnVtYmVyIG9mIGJpdHMgdXAgdG8gYSBtdWx0 aXBsZSBvZiB0aGUgd2luZG93IHNpemUuIElmIHRoZQpJbmRleDogY3J5cHRvL29wZW5zc2wv Y3J5cHRvL2JuL2JuX3ByaW50LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3J5cHRvL29wZW5zc2wv Y3J5cHRvL2JuL2JuX3ByaW50LmMJKHJldmlzaW9uIDI5NjU1NikKKysrIGNyeXB0by9vcGVu c3NsL2NyeXB0by9ibi9ibl9wcmludC5jCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNCArNTUs MTQgQEAKICAqIGNvcGllZCBhbmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxp Y2VuY2UKICAqIFtpbmNsdWRpbmcgdGhlIEdOVSBQdWJsaWMgTGljZW5jZS5dCiAgKi8KLQ0K LSNpbmNsdWRlIDxzdGRpby5oPg0KLSNpbmNsdWRlIDxjdHlwZS5oPg0KLSNpbmNsdWRlIDxs aW1pdHMuaD4NCi0jaW5jbHVkZSAiY3J5cHRsaWIuaCINCi0jaW5jbHVkZSA8b3BlbnNzbC9i dWZmZXIuaD4NCi0jaW5jbHVkZSAiYm5fbGNsLmgiDQogCisjaW5jbHVkZSA8c3RkaW8uaD4K KyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgImNy eXB0bGliLmgiCisjaW5jbHVkZSA8b3BlbnNzbC9idWZmZXIuaD4KKyNpbmNsdWRlICJibl9s Y2wuaCIKKwogc3RhdGljIGNvbnN0IGNoYXIgSGV4W10gPSAiMDEyMzQ1Njc4OUFCQ0RFRiI7 CiAKIC8qIE11c3QgJ09QRU5TU0xfZnJlZScgdGhlIHJldHVybmVkIGRhdGEgKi8KQEAgLTE4 NywxOSArMTg3LDE5IEBAIGludCBCTl9oZXgyYm4oQklHTlVNICoqYm4sIGNvbnN0IGNoYXIg KmEpCiAKICAgICBpZiAoKmEgPT0gJy0nKSB7CiAgICAgICAgIG5lZyA9IDE7Ci0gICAgICAg IGErKzsNCi0gICAgfQ0KLQ0KLSAgICBmb3IgKGkgPSAwOyBpIDw9IChJTlRfTUFYLzQpICYm IGlzeGRpZ2l0KCh1bnNpZ25lZCBjaGFyKWFbaV0pOyBpKyspDQotICAgICAgICBjb250aW51 ZTsNCi0NCi0gICAgaWYgKGkgPiBJTlRfTUFYLzQpDQotICAgICAgICBnb3RvIGVycjsNCi0N Ci0gICAgbnVtID0gaSArIG5lZzsNCi0gICAgaWYgKGJuID09IE5VTEwpDQotICAgICAgICBy ZXR1cm4gKG51bSk7DQorICAgICAgICBhKys7CisgICAgfQogCisgICAgZm9yIChpID0gMDsg aSA8PSAoSU5UX01BWC80KSAmJiBpc3hkaWdpdCgodW5zaWduZWQgY2hhcilhW2ldKTsgaSsr KQorICAgICAgICBjb250aW51ZTsKKworICAgIGlmIChpID4gSU5UX01BWC80KQorICAgICAg ICBnb3RvIGVycjsKKworICAgIG51bSA9IGkgKyBuZWc7CisgICAgaWYgKGJuID09IE5VTEwp CisgICAgICAgIHJldHVybiAobnVtKTsKKwogICAgIC8qIGEgaXMgdGhlIHN0YXJ0IG9mIHRo ZSBoZXggZGlnaXRzLCBhbmQgaXQgaXMgJ2knIGxvbmcgKi8KICAgICBpZiAoKmJuID09IE5V TEwpIHsKICAgICAgICAgaWYgKChyZXQgPSBCTl9uZXcoKSkgPT0gTlVMTCkKQEAgLTIwNiwx MyArMjA2LDEzIEBAIGludCBCTl9oZXgyYm4oQklHTlVNICoqYm4sIGNvbnN0IGNoYXIgKmEp CiAgICAgICAgICAgICByZXR1cm4gKDApOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJldCA9 ICpibjsKLSAgICAgICAgQk5femVybyhyZXQpOw0KLSAgICB9DQotDQotICAgIC8qIGkgaXMg dGhlIG51bWJlciBvZiBoZXggZGlnaXRzICovDQotICAgIGlmIChibl9leHBhbmQocmV0LCBp ICogNCkgPT0gTlVMTCkNCi0gICAgICAgIGdvdG8gZXJyOw0KLQ0KKyAgICAgICAgQk5femVy byhyZXQpOworICAgIH0KKworICAgIC8qIGkgaXMgdGhlIG51bWJlciBvZiBoZXggZGlnaXRz ICovCisgICAgaWYgKGJuX2V4cGFuZChyZXQsIGkgKiA0KSA9PSBOVUxMKQorICAgICAgICBn b3RvIGVycjsKKwogICAgIGogPSBpOyAgICAgICAgICAgICAgICAgICAgICAvKiBsZWFzdCBz aWduaWZpY2FudCAnaGV4JyAqLwogICAgIG0gPSAwOwogICAgIGggPSAwOwpAQCAtMjYyLDE5 ICsyNjIsMTkgQEAgaW50IEJOX2RlYzJibihCSUdOVU0gKipibiwgY29uc3QgY2hhciAqYSkK ICAgICAgICAgcmV0dXJuICgwKTsKICAgICBpZiAoKmEgPT0gJy0nKSB7CiAgICAgICAgIG5l ZyA9IDE7Ci0gICAgICAgIGErKzsNCi0gICAgfQ0KLQ0KLSAgICBmb3IgKGkgPSAwOyBpIDw9 IChJTlRfTUFYLzQpICYmIGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpYVtpXSk7IGkrKykNCi0g ICAgICAgIGNvbnRpbnVlOw0KLQ0KLSAgICBpZiAoaSA+IElOVF9NQVgvNCkNCi0gICAgICAg IGdvdG8gZXJyOw0KLQ0KLSAgICBudW0gPSBpICsgbmVnOw0KLSAgICBpZiAoYm4gPT0gTlVM TCkNCi0gICAgICAgIHJldHVybiAobnVtKTsNCisgICAgICAgIGErKzsKKyAgICB9CiAKKyAg ICBmb3IgKGkgPSAwOyBpIDw9IChJTlRfTUFYLzQpICYmIGlzZGlnaXQoKHVuc2lnbmVkIGNo YXIpYVtpXSk7IGkrKykKKyAgICAgICAgY29udGludWU7CisKKyAgICBpZiAoaSA+IElOVF9N QVgvNCkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICBudW0gPSBpICsgbmVnOworICAgIGlm IChibiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKG51bSk7CisKICAgICAvKgogICAgICAq IGEgaXMgdGhlIHN0YXJ0IG9mIHRoZSBkaWdpdHMsIGFuZCBpdCBpcyAnaScgbG9uZy4gV2Ug Y2hvcCBpdCBpbnRvCiAgICAgICogQk5fREVDX05VTSBkaWdpdHMgYXQgYSB0aW1lCkBAIC0y ODQsMTMgKzI4NCwxMyBAQCBpbnQgQk5fZGVjMmJuKEJJR05VTSAqKmJuLCBjb25zdCBjaGFy ICphKQogICAgICAgICAgICAgcmV0dXJuICgwKTsKICAgICB9IGVsc2UgewogICAgICAgICBy ZXQgPSAqYm47Ci0gICAgICAgIEJOX3plcm8ocmV0KTsNCi0gICAgfQ0KLQ0KLSAgICAvKiBp IGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzLCBhIGJpdCBvZiBhbiBvdmVyIGV4cGFuZCAqLw0K LSAgICBpZiAoYm5fZXhwYW5kKHJldCwgaSAqIDQpID09IE5VTEwpDQotICAgICAgICBnb3Rv IGVycjsNCi0NCisgICAgICAgIEJOX3plcm8ocmV0KTsKKyAgICB9CisKKyAgICAvKiBpIGlz IHRoZSBudW1iZXIgb2YgZGlnaXRzLCBhIGJpdCBvZiBhbiBvdmVyIGV4cGFuZCAqLworICAg IGlmIChibl9leHBhbmQocmV0LCBpICogNCkgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnI7 CisKICAgICBqID0gQk5fREVDX05VTSAtIChpICUgQk5fREVDX05VTSk7CiAgICAgaWYgKGog PT0gQk5fREVDX05VTSkKICAgICAgICAgaiA9IDA7Cg== --------------050501080008040300060008-- --SeCef0iwHIoNH1LukmLLTks6deFApNAGo-- --774Dh2Jq2oobcRMhc89n9LSoJJVmQ5OiC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJW3+oFAAoJEJW2GBstM+nsXqcP/0dxSTMAkTAP1ZqnUc0HFKBV DebJ0/7ZVQ7+TV1PzmZ/zheW9Yhf1Cq2rTwn42zUkswM7KJU6WQIYQ0b5v+ZTOvT kezZIbK1VGu2iuU6x5Gm+2wh51lzGF+XKyzOWW+o/PGzp+/YFLrB5NOIGI7srK4l RckUHEHgSMsQxPLHPUi+r2SuPz0U5p6T0xxa0H6jI+pM4ZjsxX7BtdIpI1hSPlEY Nl035OcnOmMBHwQOQXuZ8yu0Rh1eFBr7LKPU5GgAoGxUzjZZn4yNctSihspMagux Iy3LbglS1jH8tYC0tnthA45OnxNp2EIiOmYetwgLhE1GRMaecHMwwLq+pKTQdlpN FA+rWJ/LX1u6+X6ioMbfJzWfDBhRY+oN3vJwOm01tzyf+596iZG7hfmXVsfeKWx6 mqMmpLZJi3Gfd/SblqVt/IpmkNhLTOkkKvhY3GOtJkDYaDoTXaX7kMkf3OJdKuF1 D5xPX5dEMe5/kkvLb1T34bj1V1wROg4+hlAjfHknW58u9JY80SD6cTGtGpRRQjEa 6uzz2XS4/xyTDuKhKLL5pkR8t7QiGhVYM6LjsRZu7zzFdYnJ90bO4nHZnHmnR/1u UwQh9+Qah1S1X0CngLy5zdpTsU/JZLoiRD56J+iKLun1BSpkVirJmoRC4RgVdH6v uxzwh7zeZ1D25ZLW3jKu =Is7P -----END PGP SIGNATURE----- --774Dh2Jq2oobcRMhc89n9LSoJJVmQ5OiC--