Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hvr3U-0001Ul-2y for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Aug 2019 22:38:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hvr3S-0001nk-Ng for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Aug 2019 22:38:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hvr3S-0001nd-A3 for pgsql-hackers@lists.postgresql.org; Thu, 08 Aug 2019 22:38:42 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hvr3L-0006DY-ER for pgsql-hackers@postgresql.org; Thu, 08 Aug 2019 22:38:41 +0000 Received: by mail-pf1-x431.google.com with SMTP id r7so44906764pfl.3 for ; Thu, 08 Aug 2019 15:38:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:date:mime-version; bh=1pl0Nu0HnouFCywSRfZ5xL8HFkNfYhYa7o8BlQqqWGc=; b=wSxF3gIIfd0+TsEu3G+GdWio2EHOL4vpshxKI+l2w6Sh+czTHxtZ4wISD5CvXLk8tI /DrZ7quLWJN+ftt+nUFGBGSKsgVLpQT5ydWM7nlIAw9t5HWTQ4dTzz/6d33Aj7web10y 2tQASmraHq07Jfxa/OQRWG2rWdeIhW0iM4Whp1bjCKhWlFxfm0c5AxvbsiRcSBZAcbcv YQLWnQgXGqbaIjVppOG67bIuRWtSQ5oyVIl8drcrArZYaJKDEeMH2yJifRXmKR26kYt6 8KiFXavTdITYo4EVmWrTZlzac3WvDeT/0wsG5BG5vbZmODim8yiXuaUASEI4hm2GihxY EP2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:date:mime-version; bh=1pl0Nu0HnouFCywSRfZ5xL8HFkNfYhYa7o8BlQqqWGc=; b=Cge3SkpEGaKXr2nsygZ8RuRxndk9XuXRzmyz4KaX+u2NTTxaRCPBN+FEYKuFmL/fQm qxsFlkw5R3Bk9kUUdl1Nc2rZV1rZ+kDYWjBfJl3UPi+N9d58dEVwc5paLH2pZwQZp5pn GPbeM51JslBClRPeCfxjlwrpjf60s5x8jgll64lpEiSB5weMIbyVi11mrhwCRSMzDUDl Qe+DMSb3jhPlSKsf8NaRpNHG+BIB9mTxZtPamxd367ieR4Wbudu4b7DHOJf8nxHd0fVR G7lStQ8Z0mLpeGg6zTiXPHyStHNRu8hGeHnBS5LksIffJ30U/oW+VcbmufWPVSFNPZca TXPg== X-Gm-Message-State: APjAAAUEZy5scL7bC3RuYQT5mlILnQRuMpSE8XuASJU51UCAqMTvC87m kz8YuA+Uu0/MybA4HZAWzGZHQ9nZaPE= X-Google-Smtp-Source: APXvYqxoffIBACMh8IE/JxvVNgkLFYv3H5gxnubcoKPQqOUQgYzP11/c6dYCfuVWXGW3ExVot6+K8Q== X-Received: by 2002:a63:3ec7:: with SMTP id l190mr15122605pga.334.1565303910072; Thu, 08 Aug 2019 15:38:30 -0700 (PDT) Received: from jdavis ([2600:1010:b06a:5788:f8ed:1038:616a:715e]) by smtp.gmail.com with ESMTPSA id o14sm3271331pjp.19.2019.08.08.15.38.23 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 08 Aug 2019 15:38:29 -0700 (PDT) Message-ID: <227015d8417f2b4fef03f8966dbfa5cbcc4f44da.camel@j-davis.com> Subject: Add "password_protocol" connection parameter to libpq From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Thu, 08 Aug 2019 15:38:20 -0700 Content-Type: multipart/mixed; boundary="=-fOQ9AGNnAX3apc3uYV4L" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=-fOQ9AGNnAX3apc3uYV4L Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Libpq doesn't have a way to control which password protocols are used. For example, the client might expect the server to be using SCRAM, but it actually ends up using plain password authentication instead. This patch adds: password_protocol = {plaintext|md5|scram-sha-256|scram-sha-256-plus} as a connection parameter. Libpq will then reject any authentication request from the server that is less secure than this setting. Setting it to "plaintext" (default) will answer to any kind of authentication request. I'm not 100% happy with the name "password_protocol", but other names I could think of seemed likely to cause confusion. Regards, Jeff Davis --=-fOQ9AGNnAX3apc3uYV4L Content-Disposition: attachment; filename*0=0001-Add-password_protocol-connection-parameter-to-libpq.patc; filename*1=h Content-Type: text/x-patch; name="0001-Add-password_protocol-connection-parameter-to-libpq.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5ZDgyY2JhZDRlMWJmMWMzZTE1OWRmNmU3Yzg5NzJjOGZhMjMxM2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZGF2aXNAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IFdlZCwgNyBBdWcgMjAxOSAyMDoxNzo0NCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCAi cGFzc3dvcmRfcHJvdG9jb2wiIGNvbm5lY3Rpb24gcGFyYW1ldGVyIHRvIGxpYnBxLgoKU2V0cyB0 aGUgbGVhc3Qtc2VjdXJlIHBhc3N3b3JkIHByb3RvY29sIGFsbG93YWJsZSB3aGVuIHVzaW5nIHBh c3N3b3JkCmF1dGhlbnRpY2F0aW9uLiBPcHRpb25zIGFyZTogInBsYWludGV4dCIsICJtZDUiLCAi c2NyYW0tc2hhLTI1NiIsIG9yCiJzY3JhbS1zaGEtMjU2LXBsdXMiLgoKV2l0aG91dCBzZXR0aW5n IHRoaXMgb3B0aW9uLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHNlcnZlciB3aWxsIHVzZSBhCmxl c3Mtc2VjdXJlIGF1dGhlbnRpY2F0aW9uIG1ldGhvZCB0aGFuIHRoZSBjbGllbnQgZXhwZWN0cy4K LS0tCiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgfCAzNCArKysrKysrKysrKysr KysrKysrKysrKysrCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMgICAgfCAyOCArKysr KysrKysrKysrKysrKysrKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyB8IDQy ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xp YnBxLWludC5oICB8ICAyICsrCiA0IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCBlNzI5NWFiZGEyOC4uYjMzN2E3ODE1NjAgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJwcS5z Z21sCkBAIC0xMTE4LDYgKzExMTgsNDAgQEAgcG9zdGdyZXNxbDovLyUyRnZhciUyRmxpYiUyRnBv c3RncmVzcWwvZGJuYW1lCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1jb25uZWN0LXBhc3N3b3JkLXByb3RvY29s IiB4cmVmbGFiZWw9InBhc3N3b3JkX3Byb3RvY29sIj4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPnBh c3N3b3JkX3Byb3RvY29sPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFNwZWNpZmllcyB0aGUgbGVhc3Qtc2VjdXJlIHBhc3N3b3JkIHByb3Rv Y29sIGFsbG93YWJsZSB3aGVuCisgICAgICAgYXV0aGVudGljYXRpbmcgd2l0aCBhIHBhc3N3b3Jk OgorICAgICAgIDxsaXRlcmFsPnBsYWludGV4dDwvbGl0ZXJhbD4sIDxsaXRlcmFsPm1kNTwvbGl0 ZXJhbD4sCisgICAgICAgPGxpdGVyYWw+c2NyYW0tc2hhLTI1NjwvbGl0ZXJhbD4sIG9yCisgICAg ICAgPGxpdGVyYWw+c2NyYW0tc2hhLTI1Ni1wbHVzPC9saXRlcmFsPi4gVGhlIGRlZmF1bHQKKyAg ICAgICBpcyA8bGl0ZXJhbD5wbGFpbnRleHQ8L2xpdGVyYWw+LCBtZWFuaW5nIHRoYXQgYW55IHBh c3N3b3JkIHByb3RvY29sIGlzCisgICAgICAgYWNjZXB0YWJsZS4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nIGlzIHVucmVsYXRlZCB0 byB0aGUgdXNlIG9mIFNTTC4gVXNlIG9mIHRoZQorICAgICAgICA8bGl0ZXJhbD5wbGFpbnRleHQ8 L2xpdGVyYWw+IHBhc3N3b3JkIHByb3RvY29sIG92ZXIgU1NMIHdpbGwgYmUKKyAgICAgICAgZW5j cnlwdGVkIG92ZXIgdGhlIG5ldHdvcmssIGJ1dCB0aGUgc2VydmVyIHdpbGwgaGF2ZSBhY2Nlc3Mg dG8gdGhlCisgICAgICAgIHBsYWludGV4dCBwYXNzd29yZC4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBUaGUgPGxpdGVyYWw+c2NyYW0tc2hhLTI1Ni1wbHVzPC9saXRlcmFs PiBwYXNzd29yZCBwcm90b2NvbCB1c2VzCisgICAgICAgIGNoYW5uZWwgYmluZGluZywgc3VwcG9y dGVkIHdoZW4gY29tbXVuaWNhdGluZworICAgICAgICB3aXRoIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4gMTEuMCBvciBsYXRlcgorICAgICAgICBzZXJ2ZXJzLiBDaGFubmVs IGJpbmRpbmcgYWRkaXRpb25hbGx5IHJlcXVpcmVzIGFuIFNTTCBjb25uZWN0aW9uLgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8bGl0ZXJhbD5wbGFpbnRleHQ8L2xp dGVyYWw+IHBhc3N3b3JkIHByb3RvY29sIG11c3QgYmUgdXNlZCB3aGVuCisgICAgICAgIHRoZSBz ZXJ2ZXIgaXMgdXNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgYXV0aGVudGljYXRpb24KKyAgICAg ICAgbWV0aG9kczogPGxpdGVyYWw+cGFzc3dvcmQ8L2xpdGVyYWw+LAorICAgICAgICA8bGl0ZXJh bD5sZGFwPC9saXRlcmFsPiwgPGxpdGVyYWw+cmFkaXVzPC9saXRlcmFsPiwKKyAgICAgICAgPGxp dGVyYWw+cGFtPC9saXRlcmFsPiwgb3IgPGxpdGVyYWw+YnNkPC9saXRlcmFsPi4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNvbm5lY3QtY29ubmVjdC10aW1lb3V0IiB4cmVmbGFiZWw9 ImNvbm5lY3RfdGltZW91dCI+CiAgICAgICA8dGVybT48bGl0ZXJhbD5jb25uZWN0X3RpbWVvdXQ8 L2xpdGVyYWw+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtYXV0aC5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5jCmlu ZGV4IGFiMjI3NDIxYjNiLi5mOWIyM2I0NTdjYSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtYXV0aC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYwpAQCAt NDkzLDYgKzQ5MywxNiBAQCBwZ19TQVNMX2luaXQoUEdjb25uICpjb25uLCBpbnQgcGF5bG9hZGxl bikKIAkJCXNlbGVjdGVkX21lY2hhbmlzbSA9IFNDUkFNX1NIQV8yNTZfTkFNRTsKIAl9CiAKKwlp ZiAoc2VsZWN0ZWRfbWVjaGFuaXNtICYmCisJCXN0cmNtcChzZWxlY3RlZF9tZWNoYW5pc20sIFND UkFNX1NIQV8yNTZfTkFNRSkgPT0gMCAmJgorCQlzdHJjbXAoY29ubi0+cGFzc3dvcmRfcHJvdG9j b2wsICJzY3JhbS1zaGEtMjU2LXBsdXMiKSA9PSAwKQorCXsKKwkJcHJpbnRmUFFFeHBCdWZmZXIo JmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgKKwkJCQkJCQkgICJz ZXJ2ZXIgZG9lc24ndCBzdXBwb3J0IFNDUkFNX1NIQV8yNTZfUExVUywgYnV0IGl0IGlzIHJlcXVp cmVkXG4iKSk7CisJCWdvdG8gZXJyb3I7CisJfQorCiAJaWYgKCFzZWxlY3RlZF9tZWNoYW5pc20p CiAJewogCQlwcmludGZQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLApAQCAtOTE0LDEx ICs5MjQsMjcgQEAgcGdfZmVfc2VuZGF1dGgoQXV0aFJlcXVlc3QgYXJlcSwgaW50IHBheWxvYWRs ZW4sIFBHY29ubiAqY29ubikKIAkJCQkJCQkgIGxpYnBxX2dldHRleHQoIkNyeXB0IGF1dGhlbnRp Y2F0aW9uIG5vdCBzdXBwb3J0ZWRcbiIpKTsKIAkJCXJldHVybiBTVEFUVVNfRVJST1I7CiAKLQkJ Y2FzZSBBVVRIX1JFUV9NRDU6CiAJCWNhc2UgQVVUSF9SRVFfUEFTU1dPUkQ6CisJCQkJaWYgKGNv bm4tPnBhc3N3b3JkX3Byb3RvY29sWzBdID09ICdtJykKKwkJCQl7CisJCQkJCXByaW50ZlBRRXhw QnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgICJzZXJ2ZXIgbm90IGNvbmZp Z3VyZWQgZm9yIE1ENSwgYnV0IGl0IHdhcyByZXF1aXJlZFxuIik7CisJCQkJCXJldHVybiBTVEFU VVNfRVJST1I7CisJCQkJfQorCQkJCS8qIEZBTEwgVEhST1VHSCAqLworCisJCWNhc2UgQVVUSF9S RVFfTUQ1OgogCQkJewogCQkJCWNoYXIJICAgKnBhc3N3b3JkOwogCisJCQkJaWYgKGNvbm4tPnBh c3N3b3JkX3Byb3RvY29sWzBdID09ICdzJykKKwkJCQl7CisJCQkJCXByaW50ZlBRRXhwQnVmZmVy KCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkgICJzZXJ2ZXIgbm90IGNvbmZpZ3VyZWQg Zm9yICVzLCBidXQgaXQgd2FzIHJlcXVpcmVkXG4iLAorCQkJCQkJCQkJICBTQ1JBTV9TSEFfMjU2 X05BTUUpOworCQkJCQlyZXR1cm4gU1RBVFVTX0VSUk9SOworCQkJCX0KKwogCQkJCWNvbm4tPnBh c3N3b3JkX25lZWRlZCA9IHRydWU7CiAJCQkJcGFzc3dvcmQgPSBjb25uLT5jb25uaG9zdFtjb25u LT53aGljaGhvc3RdLnBhc3N3b3JkOwogCQkJCWlmIChwYXNzd29yZCA9PSBOVUxMKQpkaWZmIC0t Z2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtY29ubmVjdC5jCmluZGV4IGQyNjJiNTcwMjFkLi5iNDJmMDhlYmJkZCAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwpAQCAtMTIzLDYgKzEyMyw3IEBAIHN0YXRpYyBpbnQJbGRh cFNlcnZpY2VMb29rdXAoY29uc3QgY2hhciAqcHVybCwgUFFjb25uaW5mb09wdGlvbiAqb3B0aW9u cywKICNkZWZpbmUgRGVmYXVsdFR0eQkJIiIKICNkZWZpbmUgRGVmYXVsdE9wdGlvbgkiIgogI2Rl ZmluZSBEZWZhdWx0QXV0aHR5cGUJCSAgIiIKKyNkZWZpbmUgRGVmYXVsdFBhc3N3b3JkUHJvdG9j b2wgInBsYWludGV4dCIKICNkZWZpbmUgRGVmYXVsdFRhcmdldFNlc3Npb25BdHRycwkiYW55Igog I2lmZGVmIFVTRV9TU0wKICNkZWZpbmUgRGVmYXVsdFNTTE1vZGUgInByZWZlciIKQEAgLTIxMCw2 ICsyMTEsMTAgQEAgc3RhdGljIGNvbnN0IGludGVybmFsUFFjb25uaW5mb09wdGlvbiBQUWNvbm5p bmZvT3B0aW9uc1tdID0gewogCQkiRGF0YWJhc2UtUGFzc3dvcmQtRmlsZSIsICIiLCA2NCwKIAlv ZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgcGdwYXNzZmlsZSl9LAogCisJeyJwYXNzd29yZF9wcm90 b2NvbCIsICJQR1BBU1NXT1JEUFJPVE9DT0wiLCBEZWZhdWx0UGFzc3dvcmRQcm90b2NvbCwgTlVM TCwKKwkJIlBhc3N3b3JkLVByb3RvY29sIiwgIiIsIDE4LAkvKiBzaXplb2YoInNjcmFtLXNoYS0y NTYtcGx1cyIpID09IDE4ICovCisJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIHBhc3N3b3JkX3By b3RvY29sKX0sCisKIAl7ImNvbm5lY3RfdGltZW91dCIsICJQR0NPTk5FQ1RfVElNRU9VVCIsIE5V TEwsIE5VTEwsCiAJCSJDb25uZWN0LXRpbWVvdXQiLCAiIiwgMTAsCS8qIHN0cmxlbihJTlQzMl9N QVgpID09IDEwICovCiAJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIGNvbm5lY3RfdGltZW91dCl9 LApAQCAtMTE5Niw2ICsxMjAxLDMwIEBAIGNvbm5lY3RPcHRpb25zMihQR2Nvbm4gKmNvbm4pCiAJ CX0KIAl9CiAKKwkvKgorCSAqIHZhbGlkYXRlIHBhc3N3b3JkbW9kZSBvcHRpb24KKwkgKi8KKwlp ZiAoY29ubi0+cGFzc3dvcmRfcHJvdG9jb2wpCisJeworCQlpZiAoc3RyY21wKGNvbm4tPnBhc3N3 b3JkX3Byb3RvY29sLCAicGxhaW50ZXh0IikgIT0gMCAmJgorCQkJc3RyY21wKGNvbm4tPnBhc3N3 b3JkX3Byb3RvY29sLCAibWQ1IikgIT0gMCAmJgorCQkJc3RyY21wKGNvbm4tPnBhc3N3b3JkX3By b3RvY29sLCAic2NyYW0tc2hhLTI1NiIpICE9IDAgJiYKKwkJCXN0cmNtcChjb25uLT5wYXNzd29y ZF9wcm90b2NvbCwgInNjcmFtLXNoYS0yNTYtcGx1cyIpICE9IDApCisJCXsKKwkJCWNvbm4tPnN0 YXR1cyA9IENPTk5FQ1RJT05fQkFEOworCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9y TWVzc2FnZSwKKwkJCQkJCQkgIGxpYnBxX2dldHRleHQoImludmFsaWQgcGFzc3dvcmRfcHJvdG9j b2wgdmFsdWU6IFwiJXNcIlxuIiksCisJCQkJCQkJICBjb25uLT5wYXNzd29yZF9wcm90b2NvbCk7 CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJY29ubi0+cGFzc3dvcmRf cHJvdG9jb2wgPSBzdHJkdXAoRGVmYXVsdFBhc3N3b3JkUHJvdG9jb2wpOworCQlpZiAoIWNvbm4t PnBhc3N3b3JkX3Byb3RvY29sKQorCQkJZ290byBvb21fZXJyb3I7CisJfQorCiAJLyoKIAkgKiB2 YWxpZGF0ZSBzc2xtb2RlIG9wdGlvbgogCSAqLwpAQCAtMTIxNSw2ICsxMjQ0LDE5IEBAIGNvbm5l Y3RPcHRpb25zMihQR2Nvbm4gKmNvbm4pCiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAorCQkvKiBz Y3JhbS1zaGEtMjU2LXBsdXMgb25seSB3b3JrcyBvdmVyIFNTTCAqLworCQlpZiAoc3RyY21wKGNv bm4tPnBhc3N3b3JkX3Byb3RvY29sLCAic2NyYW0tc2hhLTI1Ni1wbHVzIikgPT0gMCAmJgorCQkJ KGNvbm4tPnNzbG1vZGVbMF0gPT0gJ2QnIHx8CisJCQkgY29ubi0+c3NsbW9kZVswXSA9PSAnYScg fHwKKwkJCSBjb25uLT5zc2xtb2RlWzBdID09ICdwJykpCisJCXsKKwkJCQljb25uLT5zdGF0dXMg PSBDT05ORUNUSU9OX0JBRDsKKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLAorCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoInNzbG1vZGUgdmFsdWUgXCIlc1wiIGludmFs aWQgd2hlbiBwYXNzd29yZCBtb2RlIGlzIHNjcmFtLXNoYS0yNTYtcGx1c1xuIiksCisJCQkJCQkJ CSAgY29ubi0+c3NsbW9kZSk7CisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisKICNpZm5kZWYgVVNF X1NTTAogCQlzd2l0Y2ggKGNvbm4tPnNzbG1vZGVbMF0pCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEt aW50LmgKaW5kZXggZDM3YmIzY2U0MDQuLjAwNWZmMWU2NzZjIDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJw cS1pbnQuaApAQCAtMzQ3LDYgKzM0Nyw4IEBAIHN0cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqcGd1 c2VyOwkJCS8qIFBvc3RncmVzIHVzZXJuYW1lIGFuZCBwYXNzd29yZCwgaWYgYW55ICovCiAJY2hh cgkgICAqcGdwYXNzOwogCWNoYXIJICAgKnBncGFzc2ZpbGU7CQkvKiBwYXRoIHRvIGEgZmlsZSBj b250YWluaW5nIHBhc3N3b3JkKHMpICovCisJY2hhcgkgICAqcGFzc3dvcmRfcHJvdG9jb2w7CS8q IHBhc3N3b3JkIG1vZGUgKHBsYWludGV4dCwgbWQ1LAorCQkJCQkJCQkJICAgc2NyYW0tc2hhLTI1 Niwgc2NyYW0tc2hhLTI1Ni1wbHVzKSAqLwogCWNoYXIJICAgKmtlZXBhbGl2ZXM7CQkvKiB1c2Ug VENQIGtlZXBhbGl2ZXM/ICovCiAJY2hhcgkgICAqa2VlcGFsaXZlc19pZGxlOwkvKiB0aW1lIGJl dHdlZW4gVENQIGtlZXBhbGl2ZXMgKi8KIAljaGFyCSAgICprZWVwYWxpdmVzX2ludGVydmFsOwkv KiB0aW1lIGJldHdlZW4gVENQIGtlZXBhbGl2ZQotLSAKMi4xNy4xCgo= --=-fOQ9AGNnAX3apc3uYV4L--