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 1uLE9S-003rno-48 for pgsql-hackers@arkaria.postgresql.org; Sat, 31 May 2025 04:48:58 +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 1uLE9O-009bbf-RP for pgsql-hackers@arkaria.postgresql.org; Sat, 31 May 2025 04:48:54 +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 1uLE9O-009bbP-52 for pgsql-hackers@lists.postgresql.org; Sat, 31 May 2025 04:48:54 +0000 Received: from mail-io1-xd2e.google.com ([2607:f8b0:4864:20::d2e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uLE9M-000p0L-0k for pgsql-hackers@lists.postgresql.org; Sat, 31 May 2025 04:48:53 +0000 Received: by mail-io1-xd2e.google.com with SMTP id ca18e2360f4ac-86cf3dd8c97so214923939f.2 for ; Fri, 30 May 2025 21:48:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748666931; x=1749271731; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Bwqfhc6+/TJjyVOrBuWC0O+INVYAxWz2h1VVFXD4L6U=; b=P3/+qTvqsFpyr65Wp+q842vGu/s5cv8Y2ooxhy0NZbEbd1N8apMmxrZIslnhh+exLo SYgGoCX04X2716Qq7TEWjA6KCHjH6mBdCUVmbR3hZeDJR9y6E+wb+3xKKYiiYSN0O3gS yoCbV8d4hmNMfgnPN9xsQBGp9R/k1IPEPhVclgYpjQHbGNZHAyAPycQOo126yPrtE7uB aACOhnohHypmS/Yeon0do/4NonBsQUZ0olw7/Wu4Y1HQv0lBVE6PRPCsyLIJ7wSjhnfW dn22smctGbMUoHyM+kLEs4PtSiL3uRqrY/XUbhZIpm7WxsgupwoDwySi5FLlW3e3H0qy RD/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748666931; x=1749271731; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Bwqfhc6+/TJjyVOrBuWC0O+INVYAxWz2h1VVFXD4L6U=; b=CfEE1pAs6uULvGgz/F6mWVT75+mR6qCM+yqw8sxeIrWzCWBwZDd4NAE5kpvA78xime lE2f54mMcE9DrzRe0tC3mHSCf+SkqPMGSRfZp/vr4xC4hzu3r3X9ZgTQ8xn9a2z+y16d i1Qx9j+nx5ULJKq2C2qsLA/hx7unRHI0AQAWgpSmMzqB2LVDPx9BHXQLC83KCrD0jqMJ xYtajyZf0F1RPhBMAjPwNGgATDA/leOXJR/igAU/fyPbpIElR6vBtpiozWivcdj48lKE SOpg570MWioJOzJP5z/iqiFNoB5lZfNlFoc84TdmCK0vUWrb1zfUnme+z2vIeMv76lPg eJXQ== X-Forwarded-Encrypted: i=1; AJvYcCVj62MKVdBkSFxXlsO7PkC6rG8W9cSwwU5HXF5SuJAdVNDPq43BQjT29q+iKOjys+mgT2tNgwDNLLQAIXVj@lists.postgresql.org X-Gm-Message-State: AOJu0YztevyYDcqPALCrGdrhygYRAxU1eJu3Yyt8ValfRDX6wHY/EAFd HTuDSvpN84ld9/mKsJ23PW6yjJARheNW+l28CofIp5GfHEmcHJFN+0SHa5ZPxXUt7pKAlkV+hPz PTmoTZKcTIG0K0bVY0PEYg5j6OVkLC63MgYvO X-Gm-Gg: ASbGnctrOlrL6jaxTq+OhZQm9Y+m7IiRzXDMF2W4c0jbBWCyFXbdu6A6K04dC/zi2Bq y2P4fZ0h1AGuUn+c8wilyuLQrgGodyNauWxFByTNA2UPhrQbrkVvpRvrkzP75YqbZcSwEMZq/So dARa9+ZV/7f8oCrtWFaMLNtMqPSKzBDSkTVzozAdliYGsq0yV+6Dqd4qz/DLroiubrQw== X-Google-Smtp-Source: AGHT+IGZz3iL/cgnfC9ITJCVhf/enI5zjOSSs3E1UTbWO1fXZHwFqpkz/Yn76LrC7sAICyj1qEl27fuIBkjsgefQ4ZI= X-Received: by 2002:a05:6e02:1d99:b0:3dc:7fa4:804 with SMTP id e9e14a558f8ab-3dda3387dc3mr6150065ab.16.1748666930674; Fri, 30 May 2025 21:48:50 -0700 (PDT) MIME-Version: 1.0 References: <21076.1748617331@localhost> <2724612.1748655287@sss.pgh.pa.us> In-Reply-To: <2724612.1748655287@sss.pgh.pa.us> From: Greg Sabino Mullane Date: Sat, 31 May 2025 00:48:13 -0400 X-Gm-Features: AX0GCFsNfImPqOwdJ3n1G2naV9GYYT5zZe-_YrWN2yqeq0bihHiiZ6JZbym_0Q8 Message-ID: Subject: Re: POC: Carefully exposing information without authentication To: Tom Lane Cc: Antonin Houska , "pgsql-hackers@lists.postgresql.org" Content-Type: multipart/mixed; boundary="0000000000003bd35d0636673f66" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003bd35d0636673f66 Content-Type: multipart/alternative; boundary="0000000000003bd35c0636673f64" --0000000000003bd35c0636673f64 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, May 30, 2025 at 9:34=E2=80=AFPM Tom Lane wrote: > I think calling it in the postmaster is a nonstarter. Thanks for the feedback. Please find attached version two, which moves the code to the very start of BackendInitialize in tcop/backend_startup.c. If we handle the request, we simply proc_exit and avoid all the other backend startup stuff. So still a big win. I also made a first rough pass at the documentation. Cheers, Greg -- Crunchy Data - https://www.crunchydata.com Enterprise Postgres Software Products & Tech Support --0000000000003bd35c0636673f64 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Fri, May 30, 2025 at 9:34=E2=80=AFPM T= om Lane <tgl@sss.pgh.pa.us> = wrote:
I think calling it in the postmaster is= a nonstarter.

Thanks for the feedback. Ple= ase find attached version two, which moves the code to the very start of Ba= ckendInitialize in=C2=A0
tcop/backend_startup.c. If we handle the= request, we simply proc_exit and avoid all the other backend startup stuff= . So still a big win. I also made a first rough pass at the documentation.<= /div>

Cheers,
Greg

--
Crunchy Data - = https://www.crunchydata.com
Enterprise Postgres Software Prod= ucts & Tech Support

--0000000000003bd35c0636673f64-- --0000000000003bd35d0636673f66 Content-Type: application/octet-stream; name="0002-Allow-specific-information-to-be-output-directly-by-Postgres.patch" Content-Disposition: attachment; filename="0002-Allow-specific-information-to-be-output-directly-by-Postgres.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbbr19j30 RnJvbSBkYWI2ZWE3ZmQyMWFhZmJmNWY4N2IxNjM5MDNlNTRmMTI5ZjQ1ZTBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIFNhYmlubyBNdWxsYW5lIDxncmVnQHR1cm5zdGVwLmNv bT4KRGF0ZTogU2F0LCAzMSBNYXkgMjAyNSAwMDozODoyNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hd IEFsbG93IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvIGJlIG91dHB1dCBkaXJlY3RseSBieSBQb3N0 Z3Jlcy4KCi0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAg IHwgIDc4ICsrKysrKysKIHNyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9zdGFydHVwLmMgICAgICAg ICAgICB8IDE5MSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jICAgICAgICAgICB8ICAyNyArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgOCArCiBzcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuaCAgICAgICAgICAgfCAgIDQgKwogNSBmaWxlcyBjaGFuZ2VkLCAzMDggaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dt bC9jb25maWcuc2dtbAppbmRleCBmNGEwMTkxYzU1Yi4uNTc3NGQ3ODc0MGYgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwK QEAgLTEwNzcsNiArMTA3Nyw4NCBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICA8L3Zhcmlh YmxlbGlzdD4KICAgICAgPC9zZWN0Mj4KIAorICAgICA8c2VjdDIgaWQ9InJ1bnRpbWUtY29uZmln LWV4cG9zZS1zZXR0aW5ncyI+CisgICAgIDx0aXRsZT5FeHBvc2UgU2V0dGluZ3M8L3RpdGxlPgor CisgICAgIDx2YXJpYWJsZWxpc3Q+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLWV4cG9z ZS1yZWNvdmVyeSIgeHJlZmxhYmVsPSJleHBvc2VfcmVjb3ZlcnkiPgorICAgICAgPHRlcm0+PHZh cm5hbWU+ZXhwb3NlX3JlY292ZXJ5PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisg ICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmV4cG9zZV9yZWNvdmVy eTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2lu ZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgRW5hYmxlcyByZXBvcnRpbmcgaWYgdGhlIHNlcnZlciBpcyBpbiByZWNvdmVyeSBt b2RlIHdpdGhvdXQgcmVxdWlyaW5nCisgICAgICAgIGFuIGF1dGhlbnRpY2F0ZWQgbG9naW4uIENs aWVudHMgY2FuIHNlbmQgdGhlIHN0cmluZyA8bGl0ZXJhbD5HRVQgL3JlcGxpY2E8L2xpdGVyYWw+ CisgICAgICAgIGFuZCB3aWxsIHJlY2VpdmUgYSAxIG9yIDAuIFRoaXMgaXMgZXF1aXZhbGVudCB0 byBsb2dnaW5nIGluIGFuZCBydW5uaW5nCisgICAgICAgIDxsaXRlcmFsPlNFTEVDVCBwZ19pc19p bl9yZWNvdmVyeSgpPC9saXRlcmFsPi4gQSBjbGllbnQgY2FuIGFsc28gc2VuZCB0aGUKKyAgICAg ICAgc3RyaW5nIDxsaXRlcmFsPkhFQUQgL3JlcGxpY2E8L2xpdGVyYWw+IHdoaWNoIHdpbGwgc29s ZWx5IHJldHVybiBhbiBIVFRQIGxpdGVyYWw6CisgICAgICAgIDxsaXRlcmFsPjIwMDwvbGl0ZXJh bD4gaWYgdGhlIHNlcnZlciBpcyBpbiByZWNvdmVyeSwgPGxpdGVyYWw+NTAzPC9saXRlcmFsPiBp ZiBub3QuCisgICAgICAgIChUaGlzIGFsbG93cyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgdG8gdGhl IHNhbWUgUGF0cm9uaSBmdW5jdGlvbmFsaXR5KQorICAgICAgICBGaW5hbGx5LCBhIGNsaWVudCBj YW4gaXNzdWUgPGxpdGVyYWw+R0VUIC9pbmZvPC9saXRlcmFsPiBhbmQgcmVjZWl2ZSB0aGUgc3Ry aW5nCisgICAgICAgIDxsaXRlcmFsPlJFQ09WRVJZOiA8L2xpdGVyYWw+IGZvbGxvd2VkIGJ5IGEg MSBvciAwLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1leHBvc2Utc3lzaWQiIHhyZWZs YWJlbD0iZXhwb3NlX3N5c2lkIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmV4cG9zZV9zeXNpZDwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5leHBvc2Vfc3lzaWQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24g cGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEVuYWJsZXMgcmVwb3J0aW5n IHRoZSBzeXN0ZW0gaWRlbnRpZmllciBvZiB0aGUgY2x1c3RlciB3aXRob3V0IHJlcXVpcmluZwor ICAgICAgICBhbiBhdXRoZW50aWNhdGVkIGxvZ2luLiBDbGllbnRzIGNhbiBzZW5kIHRoZSBzdHJp bmcgPGxpdGVyYWw+R0VUIC9zeXNpZDwvbGl0ZXJhbD4KKyAgICAgICAgYW5kIHdpbGwgcmVjZWl2 ZSB0aGUgbnVtZXJpYyBzeXN0ZW0gaWRlbnRpZmllci4gVGhpcyBpcyBhIHVuaXF1ZSBudW1iZXIg Z2VuZXJhdGVkCisgICAgICAgIGJ5IGVhY2ggY2x1c3RlciB3aGVuIGluaXRkYiBpcyBydW4uCisg ICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBBIGNsaWVudCBjYW4gaXNzdWUg PGxpdGVyYWw+R0VUIC9pbmZvPC9saXRlcmFsPiBhbmQgcmVjZWl2ZSB0aGUgc3RyaW5nCisgICAg ICAgIDxsaXRlcmFsPlNZU0lEOiA8L2xpdGVyYWw+IGZvbGxvd2VkIGJ5IHRoZSBudW1lcmljIHN5 c3RlbSBpZGVudGlmaWVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg VGhpcyBmZWF0dXJlIGlzIHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgaWYgdGhlIHNlcnZlciBpcyB0 aGUgc2FtZSBzZXJ2ZXIgYXMgcHJldmlvdXNseQorICAgICAgICBlbmNvdW50ZXJlZC4gTm90ZSB0 aGFuIHByaW1hcnkgYW5kIHJlcGxpY2Egc2VydmVycyB3aWxsIHNoYXJlIHRoZSBzYW1lIHN5c3Rl bQorICAgICAgICBpZGVudGlmaWVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+ CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1leHBv c2UtdmVyc2lvbiIgeHJlZmxhYmVsPSJleHBvc2VfdmVyc2lvbiI+CisgICAgICA8dGVybT48dmFy bmFtZT5leHBvc2VfdmVyc2lvbjwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAg ICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5leHBvc2VfdmVyc2lvbjwv dmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgRW5hYmxlcyByZXBvcnRpbmcgdGhlIG51bWVyaWMgdmVyc2lvbiBvZiB0aGUgUG9zdGdy ZXMgY2x1c3RlciB3aXRob3V0IHJlcXVpcmluZworICAgICAgICBhbiBhdXRoZW50aWNhdGVkIGxv Z2luLiBDbGllbnRzIGNhbiBzZW5kIHRoZSBzdHJpbmcgPGxpdGVyYWw+R0VUIC92ZXJzaW9uPC9s aXRlcmFsPgorICAgICAgICBhbmQgd2lsbCByZWNlaXZlIGFuIGludGVnZXIgcmVwcmVzZW50aW5n IHRoZSB2ZXJzaW9uLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQSBj bGllbnQgY2FuIGlzc3VlIDxsaXRlcmFsPkdFVCAvaW5mbzwvbGl0ZXJhbD4gYW5kIHJlY2VpdmUg dGhlIHN0cmluZworICAgICAgICA8bGl0ZXJhbD5WRVJTSU9OOiA8L2xpdGVyYWw+IGZvbGxvd2Vk IGJ5IHRoZSBudW1lcmljIHZlcnNpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgor ICAgICAgICBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIG5vbi1Qb3N0Z3JlcyBzeXN0 ZW1zIChlc3AuIHNlY3VyaXR5IHNjYW5uZXJzKSB0aGF0CisgICAgICAgIG5lZWQgYSB3YXkgdG8g ZWFzaWx5IGRldGVybWluZSB0aGUgdmVyc2lvbiBvZiBQb3N0Z3JlcyBpbiB1c2Ugd2l0aG91dCBy ZXF1aXJpbmcKKyAgICAgICAgYSBQb3N0Z3JlcyBjbGllbnQgLSBvciB3aXRob3V0IG5lZWRpbmcg YW55IGtub3dsZWRnZSBvZiB0aGUgUG9zdGdyZXMgcHJvdG9jb2wgYXQgYWxsLgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDwv dmFyaWFibGVsaXN0PgorICAgICA8L3NlY3QyPgorCiAgICAgIDxzZWN0MiBpZD0icnVudGltZS1j b25maWctY29ubmVjdGlvbi1hdXRoZW50aWNhdGlvbiI+CiAgICAgIDx0aXRsZT5BdXRoZW50aWNh dGlvbjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9zdGFy dHVwLmMgYi9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5jCmluZGV4IGE3ZDFmZWM5 ODFmLi5jZThhNTA4N2VjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9iYWNrZW5kX3N0 YXJ0dXAuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5jCkBAIC00Niw2 ICs0NiwxMCBAQAogYm9vbAkJVHJhY2VfY29ubmVjdGlvbl9uZWdvdGlhdGlvbiA9IGZhbHNlOwog dWludDMyCQlsb2dfY29ubmVjdGlvbnMgPSAwOwogY2hhcgkgICAqbG9nX2Nvbm5lY3Rpb25zX3N0 cmluZyA9IE5VTEw7Citib29sCQlleHBvc2VfcmVjb3ZlcnkgPSBmYWxzZTsKK2Jvb2wJCWV4cG9z ZV9zeXNpZCA9IGZhbHNlOworYm9vbAkJZXhwb3NlX3ZlcnNpb24gPSBmYWxzZTsKKwogCiAvKiBP dGhlciBnbG9iYWxzICovCiAKQEAgLTY1LDYgKzY5LDcgQEAgc3RhdGljIHZvaWQgU2VuZE5lZ290 aWF0ZVByb3RvY29sVmVyc2lvbihMaXN0ICp1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucyk7 CiBzdGF0aWMgdm9pZCBwcm9jZXNzX3N0YXJ0dXBfcGFja2V0X2RpZShTSUdOQUxfQVJHUyk7CiBz dGF0aWMgdm9pZCBTdGFydHVwUGFja2V0VGltZW91dEhhbmRsZXIodm9pZCk7CiBzdGF0aWMgYm9v bCB2YWxpZGF0ZV9sb2dfY29ubmVjdGlvbnNfb3B0aW9ucyhMaXN0ICplbGVtbGlzdCwgdWludDMy ICpmbGFncyk7CitzdGF0aWMgYm9vbCBFeHBvc2VJbmZvcm1hdGlvbihwZ3NvY2tldCBmZCk7CiAK IC8qCiAgKiBFbnRyeSBwb2ludCBmb3IgYSBuZXcgYmFja2VuZCBwcm9jZXNzLgpAQCAtMTQ4LDYg KzE1MywxNSBAQCBCYWNrZW5kSW5pdGlhbGl6ZShDbGllbnRTb2NrZXQgKmNsaWVudF9zb2NrLCBD QUNfc3RhdGUgY2FjKQogCVN0cmluZ0luZm9EYXRhIHBzX2RhdGE7CiAJTWVtb3J5Q29udGV4dCBv bGRjb250ZXh0OwogCisJLyoKKwkgKiBQb3NzaWJseSBzY2FuIGZvciBhIHNpbXBsZSBHRVQgLyBI RUFEIHJlcXVlc3QuIElmIHRoaXMgaXMgZGV0ZWN0ZWQgYW5kCisJICogaGFuZGxlZCwgd2UgYXJl IGRvbmUgYW5kIGNhbiBpbW1lZGlhdGVseSBleGl0CisJICovCisJaWYgKChleHBvc2VfcmVjb3Zl cnkgfHwgZXhwb3NlX3N5c2lkIHx8IGV4cG9zZV92ZXJzaW9uKQorCQkmJiBFeHBvc2VJbmZvcm1h dGlvbihjbGllbnRfc29jay0+c29jaykpCisJCXByb2NfZXhpdCgwKTsKKwkvKiBTaG91bGQgd2Ug ZG8gZXhpdCgwKSBoZXJlLCBkZXNwaXRlIHRoZSB3YXJuaW5ncyBpbiBpcGMuYz8gKi8KKwogCS8q IFRlbGwgZmQuYyBhYm91dCB0aGUgbG9uZy1saXZlZCBGRCBhc3NvY2lhdGVkIHdpdGggdGhlIGNs aWVudF9zb2NrICovCiAJUmVzZXJ2ZUV4dGVybmFsRkQoKTsKIApAQCAtMTExMywzICsxMTI3LDE4 MCBAQCBhc3NpZ25fbG9nX2Nvbm5lY3Rpb25zKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0 cmEpCiB7CiAJbG9nX2Nvbm5lY3Rpb25zID0gKigoaW50ICopIGV4dHJhKTsKIH0KKworCitzdGF0 aWMKK2Jvb2wKK0V4cG9zZUluZm9ybWF0aW9uKHBnc29ja2V0IGZkKQoreworCisvKgorICogRXhw b3NlSW5mb3JtYXRpb24KKyAqCisgKgorICogSGFuZGxlIGVhcmx5IHNvY2tldCBwcm9iZSBiZWZv cmUgZnVsbCBiYWNrZW5kIHN0YXJ0dXAuCisgKiBSZXNwb25kcyB0byBzbWFsbCBzZXQgb2YgcHJl ZGVmaW5lZCBlbmRwb2ludHMgKGUuZy4gR0VUIC9pbmZvKQorICoKKyAqIFJlcXVpcmVzIGF0IGxl YXN0IG9uZSAiZXhwb3NlXyIgR1VDIHRvIGJlIHRydWUuCisgKgorICogUmV0dXJucyB0cnVlIGlm IGVuZHBvaW50IGlzIHJlY29nbml6ZWQuCisgKi8KKworI2RlZmluZSBFWFBPU0VfTUlOX1FVRVJZ IDkJCS8qIFNob3J0ZXN0IHBvc3NpYmxlIGxpbmU6ICJHZXQgL2luZm8iICovCisjZGVmaW5lIEVY UE9TRV9NQVhfUVVFUlkgMTYJCS8qIExvbmdlc3QgcG9zc2libGUgR0VUIGxpbmUgKi8KKworLyog V2hhdCBpbmZvcm1hdGlvbiBpcyBiZWluZyByZXR1cm5lZCAqLworCXR5cGVkZWYgZW51bQorCXsK KwkJRVhQT1NFX05PVEhJTkcsCisJCUVYUE9TRV9IRUFEX1JFUExJQ0EsCisJCUVYUE9TRV9HRVRf QUxMLAorCQlFWFBPU0VfR0VUX1JFUExJQ0EsCisJCUVYUE9TRV9HRVRfU1lTSUQsCisJCUVYUE9T RV9HRVRfVkVSU0lPTiwKKwl9CQkJUmV0dXJuVHlwZTsKKworCXR5cGVkZWYgc3RydWN0CisJewor CQljb25zdCBjaGFyICplbmRwb2ludDsKKwkJY29uc3QgYm9vbCAqcmVxdWlyZTsKKwkJUmV0dXJu VHlwZQl0eXBlOworCX0JCQllbmRwb2ludF9hY3Rpb247CisKKwlzdGF0aWMgZW5kcG9pbnRfYWN0 aW9uIGVuZHBvaW50X2FjdGlvbnNbXSA9CisJeworCQl7CisJCQkiSEVBRCAvcmVwbGljYSIsICZl eHBvc2VfcmVjb3ZlcnksIEVYUE9TRV9IRUFEX1JFUExJQ0EKKwkJfSwKKwkJeworCQkJIkdFVCAv cmVwbGljYSIsICZleHBvc2VfcmVjb3ZlcnksIEVYUE9TRV9HRVRfUkVQTElDQQorCQl9LAorCQl7 CisJCQkiR0VUIC9zeXNpZCIsICZleHBvc2Vfc3lzaWQsIEVYUE9TRV9HRVRfU1lTSUQKKwkJfSwK KwkJeworCQkJIkdFVCAvdmVyc2lvbiIsICZleHBvc2VfdmVyc2lvbiwgRVhQT1NFX0dFVF9WRVJT SU9OCisJCX0sCisJCXsKKwkJCSJHRVQgL2luZm8iLCBOVUxMLCBFWFBPU0VfR0VUX0FMTAorCQl9 CisJfTsKKworCXNzaXplX3QJCW47CisJY2hhcgkJYnVmW0VYUE9TRV9NQVhfUVVFUlkgKyAxXTsK KwlpbnQJCQl0eXBlOworCisJQXNzZXJ0KGV4cG9zZV9yZWNvdmVyeSB8fCBleHBvc2Vfc3lzaWQg fHwgZXhwb3NlX3ZlcnNpb24pOworCisJZG8KKwl7CisJCW4gPSByZWN2KGZkLCBidWYsIEVYUE9T RV9NQVhfUVVFUlksIE1TR19QRUVLKTsKKwl9IHdoaWxlIChuIDwgMCAmJiBlcnJubyA9PSBFSU5U Uik7CisKKwkvKgorCSAqIExlYXZlIGFzIHNvb24gYXMgcG9zc2libGUgaWYgbm90IGNoYW5jZSB3 ZSBhcmUgaW50ZXJlc3RlZC4gV2UgYWxzbworCSAqIHNpbXBseSByZXR1cm4gZmFsc2UgZm9yIG4g PT0gLTEKKwkgKi8KKwlpZiAobiA8IEVYUE9TRV9NSU5fUVVFUlkpCisJCXJldHVybiBmYWxzZTsK KworCWJ1ZltuXSA9ICdcMCc7CisKKwl0eXBlID0gRVhQT1NFX05PVEhJTkc7CisJZm9yIChpbnQg aSA9IDA7IGkgPCBsZW5ndGhvZihlbmRwb2ludF9hY3Rpb25zKTsgaSsrKQorCXsKKwkJaWYgKAor CQkJc3RybmNtcChidWYsIGVuZHBvaW50X2FjdGlvbnNbaV0uZW5kcG9pbnQsIHN0cmxlbihlbmRw b2ludF9hY3Rpb25zW2ldLmVuZHBvaW50KSkgPT0gMAorCQkJJiYKKwkJCShlbmRwb2ludF9hY3Rp b25zW2ldLnJlcXVpcmUgPT0gTlVMTAorCQkJIHx8CisJCQkgKihlbmRwb2ludF9hY3Rpb25zW2ld LnJlcXVpcmUpCisJCQkgKSkKKwkJeworCQkJdHlwZSA9IGVuZHBvaW50X2FjdGlvbnNbaV0udHlw ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKHR5cGUgPT0gRVhQT1NFX05PVEhJTkcpCisJ CXJldHVybiBmYWxzZTsKKworCXsKKwkJc3RhdGljIGNvbnN0IGNoYXIgaHR0cF92ZXJzaW9uW10g PSAiSFRUUC8xLjEiOworCQlzdGF0aWMgY29uc3QgY2hhciBodHRwX3R5cGVbXSA9ICJDb250ZW50 LVR5cGU6IHRleHQvcGxhaW4iOworCQlzdGF0aWMgY29uc3QgY2hhciAqaHR0cF9jb25uID0gIkNv bm5lY3Rpb246IGNsb3NlIjsKKwkJc3RhdGljIGNvbnN0IGNoYXIgaHR0cF9sZW5bXSA9ICJDb250 ZW50LUxlbmd0aCI7CisKKwkJU3RyaW5nSW5mb0RhdGEgbXNnOworCisJCWlmICh0eXBlID09IEVY UE9TRV9IRUFEX1JFUExJQ0EpCisJCXsKKwkJCS8qCisJCQkgKiBDYWxsZXIgb25seSBjYXJlcyBh Ym91dCB0aGUgSFRUUCByZXNwb25zZSBjb2RlLCBzbyBubyBjb250ZW50CisJCQkgKiBuZWVkZWQK KwkJCSAqLworCisJCQlpbml0U3RyaW5nSW5mb0V4dCgmbXNnLCA2NCk7CisKKwkJCWFwcGVuZFN0 cmluZ0luZm8oJm1zZywKKwkJCQkJCQkgIiVzICVzXHJcbiIKKwkJCQkJCQkgIiVzXHJcbiIKKwkJ CQkJCQkgIiVzXHJcblxyXG4iLAorCQkJCQkJCSBodHRwX3ZlcnNpb24sCisJCQkJCQkJIChSZWNv dmVyeUluUHJvZ3Jlc3MoKSA/ICIyMDAgT0siIDogIjUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxlIiks CisJCQkJCQkJIGh0dHBfdHlwZSwKKwkJCQkJCQkgaHR0cF9jb25uCisJCQkJKTsKKwkJfQorCQll bHNlCisJCXsKKwkJCVN0cmluZ0luZm9EYXRhIGNvbnRlbnQ7CisKKwkJCWluaXRTdHJpbmdJbmZv RXh0KCZjb250ZW50LCA2NCk7CisKKwkJCWlmIChleHBvc2VfcmVjb3ZlcnkgJiYgKHR5cGUgPT0g RVhQT1NFX0dFVF9BTEwgfHwgdHlwZSA9PSBFWFBPU0VfR0VUX1JFUExJQ0EpKQorCQkJCWFwcGVu ZFN0cmluZ0luZm8oJmNvbnRlbnQsICIlcyVkXHJcbiIsCisJCQkJCQkJCSB0eXBlID09IEVYUE9T RV9HRVRfQUxMID8gIlJFQ09WRVJZOiAiIDogIiIsCisJCQkJCQkJCSBSZWNvdmVyeUluUHJvZ3Jl c3MoKSA/IDEgOiAwKTsKKwkJCWlmIChleHBvc2Vfc3lzaWQgJiYgKHR5cGUgPT0gRVhQT1NFX0dF VF9BTEwgfHwgdHlwZSA9PSBFWFBPU0VfR0VUX1NZU0lEKSkKKwkJCQlhcHBlbmRTdHJpbmdJbmZv KCZjb250ZW50LCAiJXMlbHVcclxuIiwKKwkJCQkJCQkJIHR5cGUgPT0gRVhQT1NFX0dFVF9BTEwg PyAiU1lTSUQ6ICIgOiAiIiwKKwkJCQkJCQkJIEdldFN5c3RlbUlkZW50aWZpZXIoKSk7CisJCQlp ZiAoZXhwb3NlX3ZlcnNpb24gJiYgKHR5cGUgPT0gRVhQT1NFX0dFVF9BTEwgfHwgdHlwZSA9PSBF WFBPU0VfR0VUX1ZFUlNJT04pKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJmNvbnRlbnQsICIlcyVk XHJcbiIsCisJCQkJCQkJCSB0eXBlID09IEVYUE9TRV9HRVRfQUxMID8gIlZFUlNJT046ICIgOiAi IiwKKwkJCQkJCQkJIFBHX1ZFUlNJT05fTlVNKTsKKworCQkJaW5pdFN0cmluZ0luZm9FeHQoJm1z ZywgMjU2KTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbygmbXNnLAorCQkJCQkJCSAiJXMgMjAwIE9L XHJcbiIKKwkJCQkJCQkgIiVzXHJcbiIKKwkJCQkJCQkgIiVzOiAlZFxyXG4iCisJCQkJCQkJICIl c1xyXG5cclxuIgorCQkJCQkJCSAiJXMiLAorCQkJCQkJCSBodHRwX3ZlcnNpb24sCisJCQkJCQkJ IGh0dHBfdHlwZSwKKwkJCQkJCQkgaHR0cF9sZW4sIGNvbnRlbnQubGVuLAorCQkJCQkJCSBodHRw X2Nvbm4sCisJCQkJCQkJIGNvbnRlbnQuZGF0YQorCQkJCSk7CisKKwkJCXBmcmVlKGNvbnRlbnQu ZGF0YSk7CisJCX0KKworCQlkbworCQl7CisJCQluID0gc2VuZChmZCwgbXNnLmRhdGEsIG1zZy5s ZW4sIDApOworCQl9IHdoaWxlIChuIDwgMCAmJiBlcnJubyA9PSBFSU5UUik7CisKKwkJcGZyZWUo bXNnLmRhdGEpOworCisJCWlmIChuIDwgMCkKKwkJCWVsb2coREVCVUcxLCAiY291bGQgbm90IHNl bmQgdG8gY2xpZW50OiAlbSIpOworCisJCXJldHVybiB0cnVlOworCisJfQorCit9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDJmOGNiZDg2NzU5Li4zOGJlYTcxOTAxMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE3MDEsNiArMTcwMSwzMyBAQCBzdHJ1 Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQl0cnVlLAogCQlOVUxMLCBO VUxMLCBOVUxMCiAJfSwKKwl7CisJCXsiZXhwb3NlX3JlY292ZXJ5IiwgUEdDX1NJR0hVUCwgQ0xJ RU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJZ2V0dGV4dF9ub29wKCJFeHBvc2VzIGlmIHRoZSBzZXJ2 ZXIgaXMgaW4gcmVjb3Zlcnkgd2l0aG91dCBhIGxvZ2luLiIpLAorCQkJTlVMTAorCQl9LAorCQkm ZXhwb3NlX3JlY292ZXJ5LAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisJewor CQl7ImV4cG9zZV9zeXNpZCIsIFBHQ19TSUdIVVAsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJ CWdldHRleHRfbm9vcCgiRXhwb3NlcyB0aGUgc3lzdGVtIGlkZW50aWZpZXIgd2l0aG91dCBhIGxv Z2luLiIpLAorCQkJTlVMTAorCQl9LAorCQkmZXhwb3NlX3N5c2lkLAorCQlmYWxzZSwKKwkJTlVM TCwgTlVMTCwgTlVMTAorCX0sCisJeworCQl7ImV4cG9zZV92ZXJzaW9uIiwgUEdDX1NJR0hVUCwg Q0xJRU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJZ2V0dGV4dF9ub29wKCJFeHBvc2VzIHRoZSB2ZXJz aW9uIHdpdGhvdXQgYSBsb2dpbi4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJmV4cG9zZV92ZXJzaW9u LAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewogCQl7ImFycmF5X251bGxz IiwgUEdDX1VTRVJTRVQsIENPTVBBVF9PUFRJT05TX1BSRVZJT1VTLAogCQkJZ2V0dGV4dF9ub29w KCJFbmFibGVzIGlucHV0IG9mIE5VTEwgZWxlbWVudHMgaW4gYXJyYXlzLiIpLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDg3Y2U3NmIxOGY0 Li5hMTZkMzcyNjgyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jl c3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5j b25mLnNhbXBsZQpAQCAtOTEsNiArOTEsMTQgQEAKIAkJCQkJIyBkaXNjb25uZWN0aW9uIHdoaWxl IHJ1bm5pbmcgcXVlcmllczsKIAkJCQkJIyAwIGZvciBuZXZlcgogCisKKyMgLSBFeHBvc2UgaW5m b3JtYXRpb24gLQorCisjZXhwb3NlX3JlY292ZXJ5ID0gb2ZmCisjZXhwb3NlX3N5c2lkID0gb2Zm CisjZXhwb3NlX3ZlcnNpb24gPSBvZmYKKworCiAjIC0gQXV0aGVudGljYXRpb24gLQogCiAjYXV0 aGVudGljYXRpb25fdGltZW91dCA9IDFtaW4JCSMgMXMtNjAwcwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmggYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3Bv c3RtYXN0ZXIuaAppbmRleCA5MjQ5N2NkNmEwZi4uMTU2NjJjZTAwNTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oCisrKyBiL3NyYy9pbmNsdWRlL3Bvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5oCkBAIC03MCw2ICs3MCwxMCBAQCBleHRlcm4gUEdETExJTVBPUlQg Ym9vbCByZXN0YXJ0X2FmdGVyX2NyYXNoOwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgcmVtb3Zl X3RlbXBfZmlsZXNfYWZ0ZXJfY3Jhc2g7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZW5kX2Fi b3J0X2Zvcl9jcmFzaDsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHNlbmRfYWJvcnRfZm9yX2tp bGw7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBleHBvc2VfcmVjb3Zlcnk7CitleHRlcm4gUEdE TExJTVBPUlQgYm9vbCBleHBvc2Vfc3lzaWQ7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBleHBv c2VfdmVyc2lvbjsKKwogCiAjaWZkZWYgV0lOMzIKIGV4dGVybiBQR0RMTElNUE9SVCBIQU5ETEUg UG9zdG1hc3RlckhhbmRsZTsKLS0gCjIuMzAuMgoK --0000000000003bd35d0636673f66--