Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qX7Gw-005BZw-Fg for pgsql-hackers@arkaria.postgresql.org; Fri, 18 Aug 2023 21:44:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qX7Gt-00DhoG-3z for pgsql-hackers@arkaria.postgresql.org; Fri, 18 Aug 2023 21:44:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qX7Gs-00Dho1-Bj for pgsql-hackers@lists.postgresql.org; Fri, 18 Aug 2023 21:44:42 +0000 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qX7Gk-000sFd-Ij for pgsql-hackers@postgresql.org; Fri, 18 Aug 2023 21:44:41 +0000 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-26d5c71199fso464191a91.0 for ; Fri, 18 Aug 2023 14:44:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1692395073; x=1692999873; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=dDjkTxSIM7N5/Rj9VhF4YhykE4jh++CmYj77cp7Rc68=; b=ca3xRhIJ6sD8nWfW1mIluktvNofmF1PW0ZCiXTHW6NB8AQ/eHcQ8uLoMjomGvCfV72 bKOm8opMtADDy1W8V/4tj78ByVlltVr1QbwDk10EczRL0sImKjqSqecNscZYcJR5s0kt akCWKbtWtJRo00Er5pAEcKeIWzVLHZtmSdSGWjrU3fm5prG57lafNvgNjSYsMKAI6GH4 bnC046LEj1o1hc+1BGHhsUPYW1+yqWWvaIgNA2b+5G5w6uCb2e1coljEc7p/9Q08Gg0t 9fyUHzHQTiLCgUt3YQnX59A9VExYy1PE26WxppZcSrBhLYmJJr4LodhPhbRT6eMd3PiP rU8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692395073; x=1692999873; h=mime-version:user-agent:date:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dDjkTxSIM7N5/Rj9VhF4YhykE4jh++CmYj77cp7Rc68=; b=EDQiRY1IuBb2Bsi5DQtfCrscqQXun1FBvazHKVpSDVg8fjluRm9u1tq8tm+tRM+ret gK4+1an43e1Zx5wY+NRsuKuQf1jjBCQpxkA+vibqdt7LmbPfjHoYqDXHsYosryYdu14R bacj64NLyBx5w3JJQM/WADeC4myvisP9DslQPYU156sPcpoiiyijZBghS/SjqBEXDUiI /+VZUYbIWKYBK8K2w7Y5kSjffLfSFdE2r/LPXVHGnngKskdHyffpyyAq3oJjV9+tcVDO kGJ5ZoJdkbwHmZ4ceeeum7ybeyiXWJ6Bo6Z1fdn9P3ErapCX/ds6zyo+v0+Un5R4xYRW MC2g== X-Gm-Message-State: AOJu0YwGxYe0Fd6fZcpARuwqCpdU+E61HBN1/aoLEhCZBWDYBmuiMAgY 0FM08c7DrvPAdjV6L5vHCzzey3HIyYwNRzwUPJs= X-Google-Smtp-Source: AGHT+IEGkqppd0MDlvBa/9RzkTKQ1a2f01Ft7vz/VTEyUyw2vCu4/bXMNP5YN5QfJG7IQE965Dw9cw== X-Received: by 2002:a17:90a:bd17:b0:268:f56:a2d6 with SMTP id y23-20020a17090abd1700b002680f56a2d6mr381092pjr.22.1692395073187; Fri, 18 Aug 2023 14:44:33 -0700 (PDT) Received: from [172.24.1.77] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id v12-20020a17090a458c00b00265c742a262sm1948508pjg.4.2023.08.18.14.44.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Aug 2023 14:44:32 -0700 (PDT) Message-ID: Subject: [17] Special search_path names "!pg_temp" and "!pg_catalog" From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Fri, 18 Aug 2023 14:44:31 -0700 Content-Type: multipart/mixed; boundary="=-SmGIZ0wWD1Wvrr8pihV9" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-SmGIZ0wWD1Wvrr8pihV9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable The attached patch adds some special names to prevent pg_temp and/or pg_catalog from being included implicitly. This is a useful safety feature for functions that don't have any need to search pg_temp. The current (v16) recommendation is to include pg_temp last, which does add to the safety, but it's confusing to *include* a namespace when your intention is actually to *exclude* it, and it's also not completely excluding pg_temp. Although the syntax in the attached patch is not much friendlier, at least it's clear that the intent is to exclude pg_temp. Furthermore, it will be friendlier if we adopt the SEARCH SYSTEM syntax proposed in another thread[1]. Additionally, this patch adds a WARNING when creating a schema that uses one of these special names. Previously, there was no warning when creating a schema with the name "$user", which could cause confusion. [1] https://www.postgresql.org/message-id/flat/2710f56add351a1ed553efb677408e51= b060e67c.camel@j-davis.com --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-SmGIZ0wWD1Wvrr8pihV9 Content-Disposition: attachment; filename*0=0001-Special-names-pg_temp-and-pg_catalog-for-search_path.pat; filename*1=ch Content-Type: text/x-patch; name="0001-Special-names-pg_temp-and-pg_catalog-for-search_path.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3OWNiOTRiODU3ZjUxZGVjNWNiYzI0YjNkNDZkMmU1OGRlOTJiNWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDE4IEF1ZyAyMDIzIDE0OjIxOjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gU3BlY2lhbCBu YW1lcyAiIXBnX3RlbXAiIGFuZCAiIXBnX2NhdGFsb2ciIGZvciBzZWFyY2hfcGF0aC4KClRoZXNl IG5hbWVzIGFjdCBhcyBtYXJrZXJzIHByZXZlbnRpbmcgdGhlIGltcGxpY2l0IG5hbWVzcGFjZXMg ZnJvbQpiZWluZyBhZGRlZCB0byB0aGUgc2VhcmNoIHBhdGguCgpGdW5jdGlvbnMgb2Z0ZW4gZG9u J3QgbmVlZCB0byBsb29rIGluIHBnX3RlbXAsIGFuZCBpbiB0aG9zZSBjYXNlcyBpdCdzCnNhZmVy IHRvIGV4Y2x1ZGUgcGdfdGVtcCBlbnRpcmVseS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKysrLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX2Z1bmN0aW9uLnNnbWwgICB8ICA4ICsrKy0tLQogc3JjL2JhY2tlbmQvY2F0YWxv Zy9uYW1lc3BhY2UuYyAgICAgICAgIHwgMjMgKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2NoZW1hY21kcy5jICAgICAgIHwgMTMgKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQgfCAzNSArKysrKysrKysrKysrKysrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9uYW1lc3BhY2Uuc3FsICAgICAgfCAxOCArKysrKysrKysr KysrCiA2IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKaW5kZXggMTEyNTFmYTA1ZS4uNDUxZjljN2U5NCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtODYz MSwxMCArODYzMSwxMSBAQCBDT1BZIHBvc3RncmVzX2xvZyBGUk9NICcvZnVsbC9wYXRoL3RvL2xv Z2ZpbGUuY3N2JyBXSVRIIGNzdjsKIAogICAgICAgIDxwYXJhPgogICAgICAgICBUaGUgc3lzdGVt IGNhdGFsb2cgc2NoZW1hLCA8bGl0ZXJhbD5wZ19jYXRhbG9nPC9saXRlcmFsPiwgaXMgYWx3YXlz Ci0gICAgICAgIHNlYXJjaGVkLCB3aGV0aGVyIGl0IGlzIG1lbnRpb25lZCBpbiB0aGUgcGF0aCBv ciBub3QuICBJZiBpdCBpcwotICAgICAgICBtZW50aW9uZWQgaW4gdGhlIHBhdGggdGhlbiBpdCB3 aWxsIGJlIHNlYXJjaGVkIGluIHRoZSBzcGVjaWZpZWQKLSAgICAgICAgb3JkZXIuICBJZiA8bGl0 ZXJhbD5wZ19jYXRhbG9nPC9saXRlcmFsPiBpcyBub3QgaW4gdGhlIHBhdGggdGhlbiBpdCB3aWxs Ci0gICAgICAgIGJlIHNlYXJjaGVkIDxlbXBoYXNpcz5iZWZvcmU8L2VtcGhhc2lzPiBzZWFyY2hp bmcgYW55IG9mIHRoZSBwYXRoIGl0ZW1zLgorICAgICAgICBzZWFyY2hlZCwgdW5sZXNzIHRoZSBz cGVjaWFsIHNjaGVtYSBuYW1lCisgICAgICAgIDxsaXRlcmFsPiFwZ19jYXRhbG9nPC9saXRlcmFs PiBpcyBzcGVjaWZpZWQgaW4gdGhlIHBhdGguICBJZiBpdCBpcworICAgICAgICBtZW50aW9uZWQg aW4gdGhlIHBhdGggdGhlbiBpdCB3aWxsIGJlIHNlYXJjaGVkIGluIHRoZSBzcGVjaWZpZWQgb3Jk ZXIuCisgICAgICAgIElmIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+IGlzIG5vdCBpbiB0 aGUgcGF0aCB0aGVuIGl0IHdpbGwgYmUKKyAgICAgICAgc2VhcmNoZWQgPGVtcGhhc2lzPmJlZm9y ZTwvZW1waGFzaXM+IHNlYXJjaGluZyBhbnkgb2YgdGhlIHBhdGggaXRlbXMuCiAgICAgICAgPC9w YXJhPgogCiAgICAgICAgPCEtLSBUbyBmdXJ0aGVyIHNwbGl0IGhhaXJzLCBmdW5jbmFtZSgnZm9v JykgZG9lcyBub3QgdXNlIHRoZSB0ZW1wb3JhcnkKQEAgLTg2NDMsMTMgKzg2NDQsMTUgQEAgQ09Q WSBwb3N0Z3Jlc19sb2cgRlJPTSAnL2Z1bGwvcGF0aC90by9sb2dmaWxlLmNzdicgV0lUSCBjc3Y7 CiAgICAgICAgICAgICBmdW5jX25hbWUgZ3JhbW1hciBwcm9kdWN0aW9uIi4gLS0+CiAgICAgICAg PHBhcmE+CiAgICAgICAgIExpa2V3aXNlLCB0aGUgY3VycmVudCBzZXNzaW9uJ3MgdGVtcG9yYXJ5 LXRhYmxlIHNjaGVtYSwKLSAgICAgICAgPGxpdGVyYWw+cGdfdGVtcF88cmVwbGFjZWFibGU+bm5u PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+LCBpcyBhbHdheXMgc2VhcmNoZWQgaWYgaXQKLSAgICAg ICAgZXhpc3RzLiAgSXQgY2FuIGJlIGV4cGxpY2l0bHkgbGlzdGVkIGluIHRoZSBwYXRoIGJ5IHVz aW5nIHRoZQotICAgICAgICBhbGlhcyA8bGl0ZXJhbD5wZ190ZW1wPC9saXRlcmFsPjxpbmRleHRl cm0+PHByaW1hcnk+cGdfdGVtcDwvcHJpbWFyeT48L2luZGV4dGVybT4uICBJZiBpdCBpcyBub3Qg bGlzdGVkIGluIHRoZSBwYXRoIHRoZW4KLSAgICAgICAgaXQgaXMgc2VhcmNoZWQgZmlyc3QgKGV2 ZW4gYmVmb3JlIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+KS4gIEhvd2V2ZXIsCi0gICAg ICAgIHRoZSB0ZW1wb3Jhcnkgc2NoZW1hIGlzIG9ubHkgc2VhcmNoZWQgZm9yIHJlbGF0aW9uICh0 YWJsZSwgdmlldywKLSAgICAgICAgc2VxdWVuY2UsIGV0Yy4pIGFuZCBkYXRhIHR5cGUgbmFtZXMu ICBJdCBpcyBuZXZlciBzZWFyY2hlZCBmb3IKLSAgICAgICAgZnVuY3Rpb24gb3Igb3BlcmF0b3Ig bmFtZXMuCisgICAgICAgIDxsaXRlcmFsPnBnX3RlbXBfPHJlcGxhY2VhYmxlPm5ubjwvcmVwbGFj ZWFibGU+PC9saXRlcmFsPiwgaXMgYWx3YXlzCisgICAgICAgIHNlYXJjaGVkIGlmIGl0IGV4aXN0 cywgdW5sZXNzIHRoZSBzcGVjaWFsIHNjaGVtYSBuYW1lCisgICAgICAgIDxsaXRlcmFsPiFwZ190 ZW1wPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQuICBJdCBjYW4gYmUgZXhwbGljaXRseQorICAgICAg ICBsaXN0ZWQgaW4gdGhlIHBhdGggYnkgdXNpbmcgdGhlIGFsaWFzCisgICAgICAgIDxsaXRlcmFs PnBnX3RlbXA8L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5wZ190ZW1wPC9wcmltYXJ5Pjwv aW5kZXh0ZXJtPi4KKyAgICAgICAgSWYgaXQgaXMgbm90IGxpc3RlZCBpbiB0aGUgcGF0aCB0aGVu IGl0IGlzIHNlYXJjaGVkIGZpcnN0IChldmVuIGJlZm9yZQorICAgICAgICA8bGl0ZXJhbD5wZ19j YXRhbG9nPC9saXRlcmFsPikuICBIb3dldmVyLCB0aGUgdGVtcG9yYXJ5IHNjaGVtYSBpcyBvbmx5 CisgICAgICAgIHNlYXJjaGVkIGZvciByZWxhdGlvbiAodGFibGUsIHZpZXcsIHNlcXVlbmNlLCBl dGMuKSBhbmQgZGF0YSB0eXBlCisgICAgICAgIG5hbWVzLiAgSXQgaXMgbmV2ZXIgc2VhcmNoZWQg Zm9yIGZ1bmN0aW9uIG9yIG9wZXJhdG9yIG5hbWVzLgogICAgICAgIDwvcGFyYT4KIAogICAgICAg IDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZnVuY3Rpb24uc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Z1bmN0aW9uLnNnbWwKaW5kZXggODYzZDk5ZDFm Yy4uOTNhZWJkZWIyNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZnVuY3Rp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mdW5jdGlvbi5zZ21sCkBAIC03 OTQsOSArNzk0LDggQEAgU0VMRUNUICogRlJPTSBkdXAoNDIpOwogICAgIFBhcnRpY3VsYXJseSBp bXBvcnRhbnQgaW4gdGhpcyByZWdhcmQgaXMgdGhlCiAgICAgdGVtcG9yYXJ5LXRhYmxlIHNjaGVt YSwgd2hpY2ggaXMgc2VhcmNoZWQgZmlyc3QgYnkgZGVmYXVsdCwgYW5kCiAgICAgaXMgbm9ybWFs bHkgd3JpdGFibGUgYnkgYW55b25lLiAgQSBzZWN1cmUgYXJyYW5nZW1lbnQgY2FuIGJlIG9idGFp bmVkCi0gICAgYnkgZm9yY2luZyB0aGUgdGVtcG9yYXJ5IHNjaGVtYSB0byBiZSBzZWFyY2hlZCBs YXN0LiAgVG8gZG8gdGhpcywKLSAgICB3cml0ZSA8bGl0ZXJhbD5wZ190ZW1wPC9saXRlcmFsPjxp bmRleHRlcm0+PHByaW1hcnk+cGdfdGVtcDwvcHJpbWFyeT48c2Vjb25kYXJ5PnNlY3VyaW5nIGZ1 bmN0aW9uczwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPiBhcyB0aGUgbGFzdCBlbnRyeSBpbiA8dmFy bmFtZT5zZWFyY2hfcGF0aDwvdmFybmFtZT4uCi0gICAgVGhpcyBmdW5jdGlvbiBpbGx1c3RyYXRl cyBzYWZlIHVzYWdlOgorICAgIGJ5IHNwZWNpZnlpbmcgPGxpdGVyYWw+IXBnX3RlbXA8L2xpdGVy YWw+LiAgVGhpcyBmdW5jdGlvbiBpbGx1c3RyYXRlcworICAgIHNhZmUgdXNhZ2U6CiAKIDxwcm9n cmFtbGlzdGluZz4KIENSRUFURSBGVU5DVElPTiBjaGVja19wYXNzd29yZCh1bmFtZSBURVhULCBw YXNzIFRFWFQpCkBAIC04MTEsOCArODEwLDcgQEAgQkVHSU4KIEVORDsKICQkICBMQU5HVUFHRSBw bHBnc3FsCiAgICAgU0VDVVJJVFkgREVGSU5FUgotICAgIC0tIFNldCBhIHNlY3VyZSBzZWFyY2hf cGF0aDogdHJ1c3RlZCBzY2hlbWEocyksIHRoZW4gJ3BnX3RlbXAnLgotICAgIFNFVCBzZWFyY2hf cGF0aCA9IGFkbWluLCBwZ190ZW1wOworICAgIFNFVCBzZWFyY2hfcGF0aCA9IGFkbWluLCAiIXBn X3RlbXAiOwogPC9wcm9ncmFtbGlzdGluZz4KIAogICAgIFRoaXMgZnVuY3Rpb24ncyBpbnRlbnRp b24gaXMgdG8gYWNjZXNzIGEgdGFibGUgPGxpdGVyYWw+YWRtaW4ucHdkczwvbGl0ZXJhbD4uCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCAwYzY3OWZiZjk0Li42ZDhhOWNhZDAyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMKQEAgLTM2NDUsNiArMzY0NSw4IEBAIHJlY29tcHV0ZU5hbWVzcGFj ZVBhdGgodm9pZCkKIAlMaXN0CSAgICpuZXdwYXRoOwogCUxpc3RDZWxsICAgKmw7CiAJYm9vbAkJ dGVtcF9taXNzaW5nOworCWJvb2wJCWltcGxpY2l0X3BnX3RlbXAgPSB0cnVlOworCWJvb2wJCWlt cGxpY2l0X3BnX2NhdGFsb2cgPSB0cnVlOwogCU9pZAkJCWZpcnN0TlM7CiAJYm9vbAkJcGF0aENo YW5nZWQ7CiAJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CkBAIC0zNzE0LDYgKzM3MTYsMTQgQEAgcmVj b21wdXRlTmFtZXNwYWNlUGF0aCh2b2lkKQogCQkJCQl0ZW1wX21pc3NpbmcgPSB0cnVlOwogCQkJ fQogCQl9CisJCWVsc2UgaWYgKHN0cmNtcChjdXJuYW1lLCAiIXBnX3RlbXAiKSA9PSAwKQorCQl7 CisJCQlpbXBsaWNpdF9wZ190ZW1wID0gZmFsc2U7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGN1 cm5hbWUsICIhcGdfY2F0YWxvZyIpID09IDApCisJCXsKKwkJCWltcGxpY2l0X3BnX2NhdGFsb2cg PSBmYWxzZTsKKwkJfQogCQllbHNlCiAJCXsKIAkJCS8qIG5vcm1hbCBuYW1lc3BhY2UgcmVmZXJl bmNlICovCkBAIC0zNzM4LDE0ICszNzQ4LDE3IEBAIHJlY29tcHV0ZU5hbWVzcGFjZVBhdGgodm9p ZCkKIAkJZmlyc3ROUyA9IGxpbml0aWFsX29pZChvaWRsaXN0KTsKIAogCS8qCi0JICogQWRkIGFu eSBpbXBsaWNpdGx5LXNlYXJjaGVkIG5hbWVzcGFjZXMgdG8gdGhlIGxpc3QuICBOb3RlIHRoZXNl IGdvIG9uCi0JICogdGhlIGZyb250LCBub3QgdGhlIGJhY2s7IGFsc28gbm90aWNlIHRoYXQgd2Ug ZG8gbm90IGNoZWNrIFVTQUdFCi0JICogcGVybWlzc2lvbnMgZm9yIHRoZXNlLgorCSAqIEFkZCBh bnkgaW1wbGljaXRseS1zZWFyY2hlZCBuYW1lc3BhY2VzIHRvIHRoZSBsaXN0IHVubGVzcyB0aGUg bWFya2VycworCSAqICIhcGdfY2F0YWxvZyIgb3IgIiFwZ190ZW1wIiBhcmUgcHJlc2VudC4gIE5v dGUgdGhlc2UgZ28gb24gdGhlIGZyb250LAorCSAqIG5vdCB0aGUgYmFjazsgYWxzbyBub3RpY2Ug dGhhdCB3ZSBkbyBub3QgY2hlY2sgVVNBR0UgcGVybWlzc2lvbnMgZm9yCisJICogdGhlc2UuCiAJ ICovCi0JaWYgKCFsaXN0X21lbWJlcl9vaWQob2lkbGlzdCwgUEdfQ0FUQUxPR19OQU1FU1BBQ0Up KQorCWlmIChpbXBsaWNpdF9wZ19jYXRhbG9nICYmCisJCSFsaXN0X21lbWJlcl9vaWQob2lkbGlz dCwgUEdfQ0FUQUxPR19OQU1FU1BBQ0UpKQogCQlvaWRsaXN0ID0gbGNvbnNfb2lkKFBHX0NBVEFM T0dfTkFNRVNQQUNFLCBvaWRsaXN0KTsKIAotCWlmIChPaWRJc1ZhbGlkKG15VGVtcE5hbWVzcGFj ZSkgJiYKKwlpZiAoaW1wbGljaXRfcGdfdGVtcCAmJgorCQlPaWRJc1ZhbGlkKG15VGVtcE5hbWVz cGFjZSkgJiYKIAkJIWxpc3RfbWVtYmVyX29pZChvaWRsaXN0LCBteVRlbXBOYW1lc3BhY2UpKQog CQlvaWRsaXN0ID0gbGNvbnNfb2lkKG15VGVtcE5hbWVzcGFjZSwgb2lkbGlzdCk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NjaGVtYWNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NjaGVtYWNtZHMuYwppbmRleCA2ZWIzZGM2YmFiLi5jYTRjYzljNDcyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zY2hlbWFjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2NoZW1hY21kcy5jCkBAIC0xMDksNiArMTA5LDE5IEBAIENyZWF0ZVNjaGVtYUNv bW1hbmQoQ3JlYXRlU2NoZW1hU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJ CQkJIGVycm1zZygidW5hY2NlcHRhYmxlIHNjaGVtYSBuYW1lIFwiJXNcIiIsIHNjaGVtYU5hbWUp LAogCQkJCSBlcnJkZXRhaWwoIlRoZSBwcmVmaXggXCJwZ19cIiBpcyByZXNlcnZlZCBmb3Igc3lz dGVtIHNjaGVtYXMuIikpKTsKIAorCS8qCisJICogVGhlc2UgbmFtZXMgaGF2ZSBzcGVjaWFsIG1l YW5pbmcgZm9yIHNlYXJjaF9wYXRoLiBFbWl0IG9ubHkgYSBXQVJOSU5HCisJICogKHJhdGhlciB0 aGFuIEVSUk9SKSB0byBhdm9pZCBjb21wYXRpYmlsaXR5IHByb2JsZW1zLgorCSAqLworCWlmIChz dHJjbXAoc2NoZW1hTmFtZSwgIiR1c2VyIikgPT0gMCB8fAorCQlzdHJuY21wKHNjaGVtYU5hbWUs ICIhcGdfIiwgNCkgPT0gMCkKKwl7CisJCWVyZXBvcnQoV0FSTklORywKKwkJCQkoZXJyY29kZShF UlJDT0RFX1JFU0VSVkVEX05BTUUpLAorCQkJCSBlcnJtc2coInNjaGVtYSBuYW1lIFwiJXNcIiBz aG91bGQgbm90IGJlIHVzZWQiLCBzY2hlbWFOYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGUgbmFt ZSBcIiR1c2VyXCIgYW5kIHByZWZpeCBcIiFwZ19cIiBoYXZlIHNwZWNpYWwgbWVhbmluZyBmb3Ig c2VhcmNoX3BhdGguIikpKTsKKwl9CisKIAkvKgogCSAqIElmIGlmX25vdF9leGlzdHMgd2FzIGdp dmVuIGFuZCB0aGUgc2NoZW1hIGFscmVhZHkgZXhpc3RzLCBiYWlsIG91dC4KIAkgKiAoTm90ZTog d2UgbmVlZG4ndCBjaGVjayB0aGlzIHdoZW4gbm90IGlmX25vdF9leGlzdHMsIGJlY2F1c2UKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dAppbmRleCBhNjJmZDhkZWQwLi4xY2Qy YzY0Nzg2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0xMTQs MyArMTE0LDM4IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWVz cGFjZSA9CiAgICAgIDAKICgxIHJvdykKIAorLS0gdGVzdCBzcGVjaWFsIG5hbWVzCitDUkVBVEUg U0NIRU1BICIkdXNlciI7CitXQVJOSU5HOiAgc2NoZW1hIG5hbWUgIiR1c2VyIiBzaG91bGQgbm90 IGJlIHVzZWQKK0RFVEFJTDogIFRoZSBuYW1lICIkdXNlciIgYW5kIHByZWZpeCAiIXBnXyIgaGF2 ZSBzcGVjaWFsIG1lYW5pbmcgZm9yIHNlYXJjaF9wYXRoLgorQ1JFQVRFIFNDSEVNQSAiIXBnX2Zv byI7CitXQVJOSU5HOiAgc2NoZW1hIG5hbWUgIiFwZ19mb28iIHNob3VsZCBub3QgYmUgdXNlZAor REVUQUlMOiAgVGhlIG5hbWUgIiR1c2VyIiBhbmQgcHJlZml4ICIhcGdfIiBoYXZlIHNwZWNpYWwg bWVhbmluZyBmb3Igc2VhcmNoX3BhdGguCistLSB0ZXN0ICIhcGdfdGVtcCIKK0NSRUFURSBURU1Q T1JBUlkgVEFCTEUgdG1wKGkgSU5UKTsKK1NFTEVDVCAqIEZST00gdG1wOworIGkgCistLS0KKygw IHJvd3MpCisKK1NFVCBzZWFyY2hfcGF0aCA9IHB1YmxpYywgIiFwZ190ZW1wIjsKK1NFTEVDVCAq IEZST00gdG1wOworRVJST1I6ICByZWxhdGlvbiAidG1wIiBkb2VzIG5vdCBleGlzdAorTElORSAx OiBTRUxFQ1QgKiBGUk9NIHRtcDsKKyAgICAgICAgICAgICAgICAgICAgICBeCitSRVNFVCBzZWFy Y2hfcGF0aDsKK0RST1AgVEFCTEUgdG1wOworLS0gdGVzdCAiIXBnX2NhdGFsb2ciCitTRUxFQ1Qg MSsxOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAgICAyCisoMSByb3cpCisKK1NFVCBz ZWFyY2hfcGF0aCA9IHB1YmxpYywgIiFwZ19jYXRhbG9nIjsKK1NFTEVDVCAxKzE7CitFUlJPUjog IG9wZXJhdG9yIGRvZXMgbm90IGV4aXN0OiBpbnRlZ2VyICsgaW50ZWdlcgorTElORSAxOiBTRUxF Q1QgMSsxOworICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBObyBvcGVyYXRvciBtYXRjaGVzIHRo ZSBnaXZlbiBuYW1lIGFuZCBhcmd1bWVudCB0eXBlcy4gWW91IG1pZ2h0IG5lZWQgdG8gYWRkIGV4 cGxpY2l0IHR5cGUgY2FzdHMuCitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL25hbWVzcGFjZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9uYW1l c3BhY2Uuc3FsCmluZGV4IDM0NzRmNWVjZjQuLjc3Y2U3YzRjMzEgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL25hbWVzcGFjZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv bmFtZXNwYWNlLnNxbApAQCAtNjYsMyArNjYsMjEgQEAgRFJPUCBTQ0hFTUEgdGVzdF9uc19zY2hl bWFfcmVuYW1lZCBDQVNDQURFOwogLS0gdmVyaWZ5IHRoYXQgdGhlIG9iamVjdHMgd2VyZSBkcm9w cGVkCiBTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lc3BhY2UgPQog ICAgIChTRUxFQ1Qgb2lkIEZST00gcGdfbmFtZXNwYWNlIFdIRVJFIG5zcG5hbWUgPSAndGVzdF9u c19zY2hlbWFfcmVuYW1lZCcpOworCistLSB0ZXN0IHNwZWNpYWwgbmFtZXMKK0NSRUFURSBTQ0hF TUEgIiR1c2VyIjsKK0NSRUFURSBTQ0hFTUEgIiFwZ19mb28iOworCistLSB0ZXN0ICIhcGdfdGVt cCIKK0NSRUFURSBURU1QT1JBUlkgVEFCTEUgdG1wKGkgSU5UKTsKK1NFTEVDVCAqIEZST00gdG1w OworU0VUIHNlYXJjaF9wYXRoID0gcHVibGljLCAiIXBnX3RlbXAiOworU0VMRUNUICogRlJPTSB0 bXA7CitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgVEFCTEUgdG1wOworCistLSB0ZXN0ICIhcGdf Y2F0YWxvZyIKK1NFTEVDVCAxKzE7CitTRVQgc2VhcmNoX3BhdGggPSBwdWJsaWMsICIhcGdfY2F0 YWxvZyI7CitTRUxFQ1QgMSsxOworUkVTRVQgc2VhcmNoX3BhdGg7Ci0tIAoyLjM0LjEKCg== --=-SmGIZ0wWD1Wvrr8pihV9--