Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qF27k-0000Hb-6s for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jun 2023 00:36:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1qF27j-0003QF-0e for pgsql-hackers@arkaria.postgresql.org; Fri, 30 Jun 2023 00:36:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qF27i-0003Q5-FX for pgsql-hackers@lists.postgresql.org; Fri, 30 Jun 2023 00:36:30 +0000 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qF27a-001GOm-NV for pgsql-hackers@postgresql.org; Fri, 30 Jun 2023 00:36:29 +0000 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-668711086f4so820783b3a.1 for ; Thu, 29 Jun 2023 17:36:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1688085380; x=1690677380; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=/0PWKgbbVuPXG4egKJ8doehTzsFRuQFCL1DdX1MAOMg=; b=BRYyPFZqOrNW8DXZxQfQNScmOijlNB/WBSGF4GHuRIk8qHB1+h2c8HVMotfj8irDLz KRyzmTbua+AB2a2TCC0oTcCjyKTdwWyzghjtbChJOegf0c+yN+8QX1UEvEdysu9LfgTx rqK+peFCIDZTKuKWoju2pqOAAiJ01dV3uV+t6lVBlme2Ojt2g89hvj5MF25DtiVocE2B WqSKsFhICwbc9kQZPhAboyGCF1jUHX8dAgL1a0ivbfepZarzyg7uaqBP9AuBEUO72sun lc+CGEWr3opuIGZveU0iT3EYEQchY5WFfYWpU2xLS2dBBMXQqrXcvWz21J8OF53Puzfz xYoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688085380; x=1690677380; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/0PWKgbbVuPXG4egKJ8doehTzsFRuQFCL1DdX1MAOMg=; b=UM6OKa5FE/BVMYeo6PNDVKfEuONCGYSu33utPO68u29xiWC49ecxCl2o1I1VeNkCoF cT6zgsy1vtAzzcdIorlXJtnx9t/R+0VukN4WknsksoD3DVnR8A3Ma0g68G/QwgBVNQzs C9lUm/lSAWvyrEsPtlFsG2D3GgkDw2ZxvekGm+HOb2UgZhcrGFySMuQMF3QJApPdx+sq k+ie9mFbV57rwqYEd5kpbpJh8Qipt6sX5qEtxrqWk58Rm9QTg4Ahp3HR70l6OQ/Yr4fY z7mZo8w5n/+kG0bPF1vLXWe4FmNQDViS3mD42n7Bsau2tRNcNayD3T9uAKr47cKKiQJM ZtYA== X-Gm-Message-State: AC+VfDxmACpfUO84Ockiu1d172+zjLDUQNbH9eu5zyF7FN2oPeudVmXr +5rFEBEqCPy3gxn+Wf8qY/NVzQ== X-Google-Smtp-Source: ACHHUZ4PJVnDZIn6Yh0Hb9at8uWbzLcDmyBeW9BlFAF68LLiIyvLwYhl8Hzi/UjUS56Sy4GlTmMUMA== X-Received: by 2002:a05:6a00:3494:b0:666:6c01:2e9e with SMTP id cp20-20020a056a00349400b006666c012e9emr6991841pfb.15.1688085380474; Thu, 29 Jun 2023 17:36:20 -0700 (PDT) Received: from jeff-laptop.lan (c-73-170-46-202.hsd1.ca.comcast.net. [73.170.46.202]) by smtp.gmail.com with ESMTPSA id b15-20020aa7810f000000b0065da94fe921sm2685854pfi.50.2023.06.29.17.36.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Jun 2023 17:36:19 -0700 (PDT) Message-ID: <43bbc9f7318057f51552d5986830908cb018dadf.camel@j-davis.com> Subject: Re: pgsql: Fix search_path to a safe value during maintenance operations. From: Jeff Davis To: Robert Haas Cc: Tom Lane , Noah Misch , "pgsql-hackers@postgresql.org" , Nathan Bossart Date: Thu, 29 Jun 2023 17:36:17 -0700 In-Reply-To: References: <89a415b86d5421941e4281ba5bf6288934078624.camel@j-davis.com> <573014.1686375211@sss.pgh.pa.us> <20230612170510.GA201972@gust.leadboat.com> <20230613182920.GA259321@gust.leadboat.com> <1799839.1686687804@sss.pgh.pa.us> <4df537f5a0d8c0ceac3eec3809d1144880b8e76d.camel@j-davis.com> <578fb4be80247570e6a05924908765a0b345971e.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-q+0F73QPEicn+qFIBsNl" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-q+0F73QPEicn+qFIBsNl Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, 2023-06-29 at 11:19 -0400, Robert Haas wrote: > Yeah. I mean, as things stand, it seems like giving someone the > MAINTAIN privilege will be sufficient to allow them to escalate to > the > table owner if there are any expression indexes involved. That seems > like a real problem. We shouldn't ship a new feature with a built-in > security hole like that. Let's take David's suggestion[1] then, and only restrict the search path for those without owner privileges on the object. That would mean no behavior change unless using the MAINTAIN privilege, which is new, so no breakage. And if someone is using the MAINTAIN privilege, they wouldn't be able to abuse the search_path, so it would close the hole. Patch attached (created a bit quickly, but seems to work). Regards, Jeff Davis [1] https://postgr.es/m/CAKFQuwaVJkM9u%2BqpOaom2UkPE1sz0BASF-E5amxWPxncUhm4Hw%4= 0mail.gmail.com --=-q+0F73QPEicn+qFIBsNl Content-Disposition: attachment; filename*0=0001-Restrict-search_path-for-non-owners-performing-maint.pat; filename*1=ch Content-Type: text/x-patch; name="0001-Restrict-search_path-for-non-owners-performing-maint.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2NzM4NzM0OWQyZDg0Y2RjMmQ3YjZkN2FiNWQ1ODI0ZTVjY2M4OWJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDI5IEp1biAyMDIzIDE2OjAzOjUzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gUmVzdHJpY3Qg c2VhcmNoX3BhdGggZm9yIG5vbi1vd25lcnMgcGVyZm9ybWluZyBtYWludGVuYW5jZS4KCldoZW4g bm9uLW93bmVycyBleGVjdXRlIG1haW50ZW5hbmNlIG9wZXJhdGlvbnMgKEFOQUxZWkUsIENMVVNU RVIsClJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcsIFJFSU5ERVgsIG9yIFZBQ1VVTSksIHNldCBz ZWFyY2hfcGF0aCB0bwoncGdfY2F0YWxvZywgcGdfdGVtcCcuCgpGdW5jdGlvbnMgdGhhdCBhcmUg dXNlZCBmb3IgZnVuY3Rpb25hbCBpbmRleGVzLCBpbiBpbmRleCBleHByZXNzaW9ucywKb3IgaW4g bWF0ZXJpYWxpemVkIHZpZXdzIGFuZCBkZXBlbmQgb24gYSBkaWZmZXJlbnQgc2VhcmNoIHBhdGgg c2hvdWxkCmJlIGRlY2xhcmVkIHdpdGggQ1JFQVRFIEZVTkNUSU9OIC4uLiBTRVQgc2VhcmNoX3Bh dGg9Jy4uLicuCgpUaGlzIGNoYW5nZSBhZGRyZXNzZXMgYSBzZWN1cml0eSByaXNrIGludHJvZHVj ZWQgaW4gY29tbWl0IDYwNjg0ZGQ4MzQsCndoZXJlIGEgcm9sZSB3aXRoIE1BSU5UQUlOIHByaXZp bGVnZXMgb24gYSB0YWJsZSBtYXkgYmUgYWJsZSB0bwplc2NhbGF0ZSBwcml2aWxlZ2VzIHRvIHRo ZSB0YWJsZSBvd25lci4gVGhhdCBjb21taXQgaXMgbm90IHlldCBwYXJ0IG9mCmFueSByZWxlYXNl LCBzbyBubyBuZWVkIHRvIGJhY2twYXRjaC4KCkEgcHJldmlvdXMgZml4IDA1ZTE3MzczNTEgd2Fz IGRlZW1lZCB0b28gbGFyZ2UgYSBjaGFuZ2UuIFRoaXMgaXMgYQpuYXJyb3dlciBmaXggdGhhdCBv bmx5IGFmZmVjdHMgbm9uLW93bmVycywgd2hpY2ggcHJldmlvdXNseSBjb3VsZCBub3QKZXhlY3V0 ZSBtYWludGVuYW5jZSBjb21tYW5kcy4gUGVyIHN1Z2dlc3Rpb24gZnJvbSBEYXZpZCBHLiBKb2hu c3Rvbi4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FLRlF1d2FWSmtNOXUlMkJx cE9hb20yVWtQRTFzejBCQVNGLUU1YW14V1B4bmNVaG00SHclNDBtYWlsLmdtYWlsLmNvbQpEaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2U0NDMyNzE3OWU1YzkwMTVjOGRkYTY3MzUxYzA0 ZGE1NTIwNjYwMTcuY2FtZWwlNDBqLWRhdmlzLmNvbQotLS0KIGNvbnRyaWIvYW1jaGVjay92ZXJp ZnlfbmJ0cmVlLmMgICAgICB8ICAyICsrCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMg ICAgICAgfCAgMiArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAgIHwgIDUg KysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYyAgICAgICB8ICAyICsrCiBzcmMv YmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgICAgICAgfCAgMyArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2luZGV4Y21kcy5jICAgICB8ICA0ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21h dHZpZXcuYyAgICAgICB8ICAyICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyAgICAg ICAgfCAgMiArKwogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC91c2VyY29udGV4dC5jIHwgMTcgKysr KysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL3V0aWxzL2d1Yy5oICAgICAgICAgICAgICB8ICA2 ICsrKysrKwogc3JjL2luY2x1ZGUvdXRpbHMvdXNlcmNvbnRleHQuaCAgICAgIHwgIDEgKwogMTEg ZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9jb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jIGIvY29udHJpYi9hbWNoZWNrL3Zl cmlmeV9uYnRyZWUuYwppbmRleCA5NGE5NzU5MzIyLi4xYTc3MDM1ZTI1IDEwMDY0NAotLS0gYS9j b250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jCisrKyBiL2NvbnRyaWIvYW1jaGVjay92ZXJp ZnlfbmJ0cmVlLmMKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNp bmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNp bmNsdWRlICJ1dGlscy91c2VyY29udGV4dC5oIgogCiAKIFBHX01PRFVMRV9NQUdJQzsKQEAgLTI4 MSw2ICsyODIsNyBAQCBidF9pbmRleF9jaGVja19pbnRlcm5hbChPaWQgaW5kcmVsaWQsIGJvb2wg cGFyZW50Y2hlY2ssIGJvb2wgaGVhcGFsbGluZGV4ZWQsCiAJCVNldFVzZXJJZEFuZFNlY0NvbnRl eHQoaGVhcHJlbC0+cmRfcmVsLT5yZWxvd25lciwKIAkJCQkJCQkgICBzYXZlX3NlY19jb250ZXh0 IHwgU0VDVVJJVFlfUkVTVFJJQ1RFRF9PUEVSQVRJT04pOwogCQlzYXZlX25lc3RsZXZlbCA9IE5l d0dVQ05lc3RMZXZlbCgpOworCQlSZXN0cmljdFNlYXJjaFBhdGgoc2F2ZV91c2VyaWQsIGhlYXBy ZWwtPnJkX3JlbC0+cmVsb3duZXIpOwogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5j CmluZGV4IDNjNmE5NTZlYWEuLjllMDRmZDZlY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAg LTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJ1dGlscy9pbmRleF9zZWxmdW5jcy5oIgogI2luY2x1 ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAi dXRpbHMvdXNlcmNvbnRleHQuaCIKIAogCiAvKgpAQCAtMTA2Niw2ICsxMDY3LDcgQEAgYnJpbl9z dW1tYXJpemVfcmFuZ2UoUEdfRlVOQ1RJT05fQVJHUykKIAkJU2V0VXNlcklkQW5kU2VjQ29udGV4 dChoZWFwUmVsLT5yZF9yZWwtPnJlbG93bmVyLAogCQkJCQkJCSAgIHNhdmVfc2VjX2NvbnRleHQg fCBTRUNVUklUWV9SRVNUUklDVEVEX09QRVJBVElPTik7CiAJCXNhdmVfbmVzdGxldmVsID0gTmV3 R1VDTmVzdExldmVsKCk7CisJCVJlc3RyaWN0U2VhcmNoUGF0aChzYXZlX3VzZXJpZCwgaGVhcFJl bC0+cmRfcmVsLT5yZWxvd25lcik7CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXgg MzUyZTQzZDBlNi4uOTEyM2U3ZTdiNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9p bmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtODQsNiArODQsNyBA QAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3R1cGxlc29ydC5oIgorI2luY2x1ZGUgInV0aWxzL3VzZXJjb250 ZXh0LmgiCiAKIC8qIFBvdGVudGlhbGx5IHNldCBieSBwZ191cGdyYWRlX3N1cHBvcnQgZnVuY3Rp b25zICovCiBPaWQJCQliaW5hcnlfdXBncmFkZV9uZXh0X2luZGV4X3BnX2NsYXNzX29pZCA9IElu dmFsaWRPaWQ7CkBAIC0xNDc1LDYgKzE0NzYsNyBAQCBpbmRleF9jb25jdXJyZW50bHlfYnVpbGQo T2lkIGhlYXBSZWxhdGlvbklkLAogCVNldFVzZXJJZEFuZFNlY0NvbnRleHQoaGVhcFJlbC0+cmRf cmVsLT5yZWxvd25lciwKIAkJCQkJCSAgIHNhdmVfc2VjX2NvbnRleHQgfCBTRUNVUklUWV9SRVNU UklDVEVEX09QRVJBVElPTik7CiAJc2F2ZV9uZXN0bGV2ZWwgPSBOZXdHVUNOZXN0TGV2ZWwoKTsK KwlSZXN0cmljdFNlYXJjaFBhdGgoc2F2ZV91c2VyaWQsIGhlYXBSZWwtPnJkX3JlbC0+cmVsb3du ZXIpOwogCiAJaW5kZXhSZWxhdGlvbiA9IGluZGV4X29wZW4oaW5kZXhSZWxhdGlvbklkLCBSb3dF eGNsdXNpdmVMb2NrKTsKIApAQCAtMzAwNiw2ICszMDA4LDcgQEAgaW5kZXhfYnVpbGQoUmVsYXRp b24gaGVhcFJlbGF0aW9uLAogCVNldFVzZXJJZEFuZFNlY0NvbnRleHQoaGVhcFJlbGF0aW9uLT5y ZF9yZWwtPnJlbG93bmVyLAogCQkJCQkJICAgc2F2ZV9zZWNfY29udGV4dCB8IFNFQ1VSSVRZX1JF U1RSSUNURURfT1BFUkFUSU9OKTsKIAlzYXZlX25lc3RsZXZlbCA9IE5ld0dVQ05lc3RMZXZlbCgp OworCVJlc3RyaWN0U2VhcmNoUGF0aChzYXZlX3VzZXJpZCwgaGVhcFJlbGF0aW9uLT5yZF9yZWwt PnJlbG93bmVyKTsKIAogCS8qIFNldCB1cCBpbml0aWFsIHByb2dyZXNzIHJlcG9ydCBzdGF0dXMg Ki8KIAl7CkBAIC0zMzQxLDYgKzMzNDQsNyBAQCB2YWxpZGF0ZV9pbmRleChPaWQgaGVhcElkLCBP aWQgaW5kZXhJZCwgU25hcHNob3Qgc25hcHNob3QpCiAJU2V0VXNlcklkQW5kU2VjQ29udGV4dCho ZWFwUmVsYXRpb24tPnJkX3JlbC0+cmVsb3duZXIsCiAJCQkJCQkgICBzYXZlX3NlY19jb250ZXh0 IHwgU0VDVVJJVFlfUkVTVFJJQ1RFRF9PUEVSQVRJT04pOwogCXNhdmVfbmVzdGxldmVsID0gTmV3 R1VDTmVzdExldmVsKCk7CisJUmVzdHJpY3RTZWFyY2hQYXRoKHNhdmVfdXNlcmlkLCBoZWFwUmVs YXRpb24tPnJkX3JlbC0+cmVsb3duZXIpOwogCiAJaW5kZXhSZWxhdGlvbiA9IGluZGV4X29wZW4o aW5kZXhJZCwgUm93RXhjbHVzaXZlTG9jayk7CiAKQEAgLTM2MDEsNiArMzYwNSw3IEBAIHJlaW5k ZXhfaW5kZXgoT2lkIGluZGV4SWQsIGJvb2wgc2tpcF9jb25zdHJhaW50X2NoZWNrcywgY2hhciBw ZXJzaXN0ZW5jZSwKIAlTZXRVc2VySWRBbmRTZWNDb250ZXh0KGhlYXBSZWxhdGlvbi0+cmRfcmVs LT5yZWxvd25lciwKIAkJCQkJCSAgIHNhdmVfc2VjX2NvbnRleHQgfCBTRUNVUklUWV9SRVNUUklD VEVEX09QRVJBVElPTik7CiAJc2F2ZV9uZXN0bGV2ZWwgPSBOZXdHVUNOZXN0TGV2ZWwoKTsKKwlS ZXN0cmljdFNlYXJjaFBhdGgoc2F2ZV91c2VyaWQsIGhlYXBSZWxhdGlvbi0+cmRfcmVsLT5yZWxv d25lcik7CiAKIAlpZiAocHJvZ3Jlc3MpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCmluZGV4IGZj OWEzNzFmOWIuLmNiZTgzNTBhN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fu YWx5emUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKQEAgLTY3LDYgKzY3 LDcgQEAKICNpbmNsdWRlICJ1dGlscy9zcGNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvdXNl cmNvbnRleHQuaCIKIAogCiAvKiBQZXItaW5kZXggZGF0YSBmb3IgQU5BTFlaRSAqLwpAQCAtMzQ4 LDYgKzM0OSw3IEBAIGRvX2FuYWx5emVfcmVsKFJlbGF0aW9uIG9uZXJlbCwgVmFjdXVtUGFyYW1z ICpwYXJhbXMsCiAJU2V0VXNlcklkQW5kU2VjQ29udGV4dChvbmVyZWwtPnJkX3JlbC0+cmVsb3du ZXIsCiAJCQkJCQkgICBzYXZlX3NlY19jb250ZXh0IHwgU0VDVVJJVFlfUkVTVFJJQ1RFRF9PUEVS QVRJT04pOwogCXNhdmVfbmVzdGxldmVsID0gTmV3R1VDTmVzdExldmVsKCk7CisJUmVzdHJpY3RT ZWFyY2hQYXRoKHNhdmVfdXNlcmlkLCBvbmVyZWwtPnJkX3JlbC0+cmVsb3duZXIpOwogCiAJLyog bWVhc3VyZSBlbGFwc2VkIHRpbWUgaWZmIGF1dG92YWN1dW0gbG9nZ2luZyByZXF1aXJlcyBpdCAq LwogCWlmIChJc0F1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYgcGFyYW1zLT5sb2dfbWluX2R1 cmF0aW9uID49IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMKaW5kZXggMDNiMjRhYjkwZi4uZWZlZDY0 MDFhZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYwpAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUg InV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3R1cGxlc29ydC5oIgorI2luY2x1ZGUgInV0aWxzL3VzZXJjb250ZXh0LmgiCiAKIC8q CiAgKiBUaGlzIHN0cnVjdCBpcyB1c2VkIHRvIHBhc3MgYXJvdW5kIHRoZSBpbmZvcm1hdGlvbiBv biB0YWJsZXMgdG8gYmUKQEAgLTM1NSw3ICszNTYsNyBAQCBjbHVzdGVyX3JlbChPaWQgdGFibGVP aWQsIE9pZCBpbmRleE9pZCwgQ2x1c3RlclBhcmFtcyAqcGFyYW1zKQogCVNldFVzZXJJZEFuZFNl Y0NvbnRleHQoT2xkSGVhcC0+cmRfcmVsLT5yZWxvd25lciwKIAkJCQkJCSAgIHNhdmVfc2VjX2Nv bnRleHQgfCBTRUNVUklUWV9SRVNUUklDVEVEX09QRVJBVElPTik7CiAJc2F2ZV9uZXN0bGV2ZWwg PSBOZXdHVUNOZXN0TGV2ZWwoKTsKLQorCVJlc3RyaWN0U2VhcmNoUGF0aChzYXZlX3VzZXJpZCwg T2xkSGVhcC0+cmRfcmVsLT5yZWxvd25lcik7CiAJLyoKIAkgKiBTaW5jZSB3ZSBtYXkgb3BlbiBh IG5ldyB0cmFuc2FjdGlvbiBmb3IgZWFjaCByZWxhdGlvbiwgd2UgaGF2ZSB0byBjaGVjawogCSAq IHRoYXQgdGhlIHJlbGF0aW9uIHN0aWxsIGlzIHdoYXQgd2UgdGhpbmsgaXQgaXMuCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jCmluZGV4IDliYzk3ZTFmYzIuLmY0ZGVhZDBmNDggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jCkBAIC02OSw3ICs2OSw3IEBACiAjaW5jbHVkZSAidXRpbHMvcmVncHJv Yy5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNo ZS5oIgotCisjaW5jbHVkZSAidXRpbHMvdXNlcmNvbnRleHQuaCIKIAogLyogbm9uLWV4cG9ydCBm dW5jdGlvbiBwcm90b3R5cGVzICovCiBzdGF0aWMgYm9vbCBDb21wYXJlT3BjbGFzc09wdGlvbnMo RGF0dW0gKm9wdHMxLCBEYXR1bSAqb3B0czIsIGludCBuYXR0cyk7CkBAIC0xMzAwLDYgKzEzMDAs NyBAQCBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJCQlTZXRVc2VySWRBbmRTZWNDb250 ZXh0KGNoaWxkcmVsLT5yZF9yZWwtPnJlbG93bmVyLAogCQkJCQkJCQkJICAgY2hpbGRfc2F2ZV9z ZWNfY29udGV4dCB8IFNFQ1VSSVRZX1JFU1RSSUNURURfT1BFUkFUSU9OKTsKIAkJCQljaGlsZF9z YXZlX25lc3RsZXZlbCA9IE5ld0dVQ05lc3RMZXZlbCgpOworCQkJCVJlc3RyaWN0U2VhcmNoUGF0 aChjaGlsZF9zYXZlX3VzZXJpZCwgY2hpbGRyZWwtPnJkX3JlbC0+cmVsb3duZXIpOwogCiAJCQkJ LyoKIAkJCQkgKiBEb24ndCB0cnkgdG8gY3JlYXRlIGluZGV4ZXMgb24gZm9yZWlnbiB0YWJsZXMs IHRob3VnaC4gU2tpcApAQCAtMzc1MCw2ICszNzUxLDcgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3Vy cmVudGx5KE9pZCByZWxhdGlvbk9pZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zKQogCQlTZXRVc2Vy SWRBbmRTZWNDb250ZXh0KGhlYXBSZWwtPnJkX3JlbC0+cmVsb3duZXIsCiAJCQkJCQkJICAgc2F2 ZV9zZWNfY29udGV4dCB8IFNFQ1VSSVRZX1JFU1RSSUNURURfT1BFUkFUSU9OKTsKIAkJc2F2ZV9u ZXN0bGV2ZWwgPSBOZXdHVUNOZXN0TGV2ZWwoKTsKKwkJUmVzdHJpY3RTZWFyY2hQYXRoKHNhdmVf dXNlcmlkLCBoZWFwUmVsLT5yZF9yZWwtPnJlbG93bmVyKTsKIAogCQkvKiBkZXRlcm1pbmUgc2Fm ZXR5IG9mIHRoaXMgaW5kZXggZm9yIHNldF9pbmRleHNhZmVfcHJvY2ZsYWdzICovCiAJCWlkeC0+ c2FmZSA9IChpbmRleFJlbC0+cmRfaW5kZXhwcnMgPT0gTklMICYmCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9tYXR2aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tYXR2aWV3 LmMKaW5kZXggZjlhM2JkZmMzYS4uOTIwNzAzNDQyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvbWF0dmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21hdHZpZXcuYwpA QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxz L3VzZXJjb250ZXh0LmgiCiAKIAogdHlwZWRlZiBzdHJ1Y3QKQEAgLTE3OSw2ICsxODAsNyBAQCBF eGVjUmVmcmVzaE1hdFZpZXcoUmVmcmVzaE1hdFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZywKIAlTZXRVc2VySWRBbmRTZWNDb250ZXh0KHJlbG93bmVyLAogCQkJCQkJICAg c2F2ZV9zZWNfY29udGV4dCB8IFNFQ1VSSVRZX1JFU1RSSUNURURfT1BFUkFUSU9OKTsKIAlzYXZl X25lc3RsZXZlbCA9IE5ld0dVQ05lc3RMZXZlbCgpOworCVJlc3RyaWN0U2VhcmNoUGF0aChzYXZl X3VzZXJpZCwgcmVsb3duZXIpOwogCiAJLyogTWFrZSBzdXJlIGl0IGlzIGEgbWF0ZXJpYWxpemVk IHZpZXcuICovCiAJaWYgKG1hdHZpZXdSZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX01B VFZJRVcpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4IDdmZTZhNTRjMDYuLjU4Y2FhNzYxYWMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhY3V1bS5jCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAidXRpbHMvcGdf cnVzYWdlLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1ZGUgInV0aWxzL3N5 c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvdXNlcmNvbnRleHQuaCIKIAogCiAvKgpAQCAtMjE3 MSw2ICsyMTcyLDcgQEAgdmFjdXVtX3JlbChPaWQgcmVsaWQsIFJhbmdlVmFyICpyZWxhdGlvbiwg VmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJU2V0VXNlcklkQW5kU2VjQ29udGV4dChyZWwtPnJkX3Jl bC0+cmVsb3duZXIsCiAJCQkJCQkgICBzYXZlX3NlY19jb250ZXh0IHwgU0VDVVJJVFlfUkVTVFJJ Q1RFRF9PUEVSQVRJT04pOwogCXNhdmVfbmVzdGxldmVsID0gTmV3R1VDTmVzdExldmVsKCk7CisJ UmVzdHJpY3RTZWFyY2hQYXRoKHNhdmVfdXNlcmlkLCByZWwtPnJkX3JlbC0+cmVsb3duZXIpOwog CiAJLyoKIAkgKiBJZiBQUk9DRVNTX01BSU4gaXMgc2V0ICh0aGUgZGVmYXVsdCksIGl0J3MgdGlt ZSB0byB2YWN1dW0gdGhlIG1haW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQv dXNlcmNvbnRleHQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvdXNlcmNvbnRleHQuYwppbmRl eCBkZDlhMGRkNmE4Li5iNjI0MjBiNTZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9p bml0L3VzZXJjb250ZXh0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC91c2VyY29udGV4 dC5jCkBAIC05MCwzICs5MCwyMCBAQCBSZXN0b3JlVXNlckNvbnRleHQoVXNlckNvbnRleHQgKmNv bnRleHQpCiAJCUF0RU9YYWN0X0dVQyhmYWxzZSwgY29udGV4dC0+c2F2ZV9uZXN0bGV2ZWwpOwog CVNldFVzZXJJZEFuZFNlY0NvbnRleHQoY29udGV4dC0+c2F2ZV91c2VyaWQsIGNvbnRleHQtPnNh dmVfc2VjX2NvbnRleHQpOwogfQorCisvKgorICogV2hlbiBwb3RlbnRpYWxseSBleGVjdXRpbmcg Y29kZSBvbiBhbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gb3duZXIsIGlmCisgKiB1c2VyaWQgZG9l cyBub3QgaGF2ZSBvd25lciBwcml2aWxlZ2VzLCBzZXQgYSByZXN0cmljdGVkIHNhZmUgc2VhcmNo X3BhdGguCisgKgorICogTm90ZTogdGhlIGNhbGxlciBpcyBleHBlY3RlZCB0byBzYXZlIGFuZCBy ZXN0b3JlIHRoZSBHVUMgbmVzdCBsZXZlbCBhcworICogbmVjZXNzYXJ5LgorICovCit2b2lkCitS ZXN0cmljdFNlYXJjaFBhdGgoT2lkIHVzZXJpZCwgT2lkIG93bmVyKQoreworCWlmIChoYXNfcHJp dnNfb2Zfcm9sZSh1c2VyaWQsIG93bmVyKSkKKwkJcmV0dXJuOworCisJU2V0Q29uZmlnT3B0aW9u KCJzZWFyY2hfcGF0aCIsIEdVQ19TQUZFX1NFQVJDSF9QQVRILCBQR0NfVVNFUlNFVCwKKwkJCQkJ UEdDX1NfU0VTU0lPTik7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9ndWMuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL2d1Yy5oCmluZGV4IGQ1MjUzYzdlZDIuLmVkZDgyYTU1MWIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Yy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L2d1Yy5oCkBAIC0yMDEsNiArMjAxLDEyIEBAIHR5cGVkZWYgZW51bQogCiAjZGVmaW5lIEdVQ19R VUFMSUZJRVJfU0VQQVJBVE9SICcuJwogCisvKgorICogU2FmZSBzZWFyY2ggcGF0aCB3aGVuIGV4 ZWN1dGluZyBjb2RlIGFzIHRoZSB0YWJsZSBvd25lciwgc3VjaCBhcyBkdXJpbmcKKyAqIG1haW50 ZW5hbmNlIG9wZXJhdGlvbnMuCisgKi8KKyNkZWZpbmUgR1VDX1NBRkVfU0VBUkNIX1BBVEggInBn X2NhdGFsb2csIHBnX3RlbXAiCisKIC8qCiAgKiBCaXQgdmFsdWVzIGluICJmbGFncyIgb2YgYSBH VUMgdmFyaWFibGUuICBOb3RlIHRoYXQgdGhlc2UgZG9uJ3QgYXBwZWFyCiAgKiBvbiBkaXNrLCBz byB3ZSBjYW4gcmVhc3NpZ24gdGhlaXIgdmFsdWVzIGZyZWVseS4KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL3VzZXJjb250ZXh0LmggYi9zcmMvaW5jbHVkZS91dGlscy91c2VyY29udGV4 dC5oCmluZGV4IGE4MTk1YzE5NGQuLmQ1NDIyY2U3MGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL3VzZXJjb250ZXh0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdXNlcmNvbnRleHQu aApAQCAtMjIsNSArMjIsNiBAQCB0eXBlZGVmIHN0cnVjdCBVc2VyQ29udGV4dAogLyogRnVuY3Rp b24gcHJvdG90eXBlcy4gKi8KIGV4dGVybiB2b2lkIFN3aXRjaFRvVW50cnVzdGVkVXNlcihPaWQg dXNlcmlkLCBVc2VyQ29udGV4dCAqY29udGV4dCk7CiBleHRlcm4gdm9pZCBSZXN0b3JlVXNlckNv bnRleHQoVXNlckNvbnRleHQgKmNvbnRleHQpOworZXh0ZXJuIHZvaWQgUmVzdHJpY3RTZWFyY2hQ YXRoKE9pZCB1c2VyaWQsIE9pZCBvd25lcik7CiAKICNlbmRpZgkJCQkJCQkvKiBVU0VSQ09OVEVY VF9IICovCi0tIAoyLjM0LjEKCg== --=-q+0F73QPEicn+qFIBsNl--