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.96) (envelope-from ) id 1wUin2-001OPT-0J for pgsql-bugs@arkaria.postgresql.org; Wed, 03 Jun 2026 10:25:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUin0-0012pV-3A for pgsql-bugs@arkaria.postgresql.org; Wed, 03 Jun 2026 10:25:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wUin0-0012pM-2E for pgsql-bugs@lists.postgresql.org; Wed, 03 Jun 2026 10:25:34 +0000 Received: from mail-vk1-xa29.google.com ([2607:f8b0:4864:20::a29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUimy-0000000122s-1Gzt for pgsql-bugs@lists.postgresql.org; Wed, 03 Jun 2026 10:25:34 +0000 Received: by mail-vk1-xa29.google.com with SMTP id 71dfb90a1353d-59dc1714d44so1443618e0c.3 for ; Wed, 03 Jun 2026 03:25:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780482330; cv=none; d=google.com; s=arc-20240605; b=gXAMq4qUtbHXLnpUIJFMmjgTumFf+IanimlL1goztJ3dwEYZQYMx/zH9heeVuM57K4 LIZUzzBd0p/20gmtyHkxsoHYdS60xzN+409p9rd04tpo5OWZN/BK8k7HoNnMWKopgev8 jIwxdELelcfXQH7qVRAdrlgEaJLBo3et5pHfbKdmhAUYctN+ofxH2vEkqrT1IJKcgeEt 1JX8MX9nzYTyWTojuxwMDCMpvQ7fkI5W3Kk5lGUWGQ+FFmRl+mq2RJhvn4OEtpqS14OK 8oZaDsS3pjXd270rb6bAPdbB7q3eJyHzxcYNObwPHVdHsjSuE8f7VYf/qhbNddFbDDBt pIIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=BwuCjact7NtmVVu5pHxMGI0+PtLzWt5NFx1C7m2QRT0=; fh=wNw15p89+mJ2rKWotQ5HAD90V5mxU4CvuyUfisdKTsc=; b=cetS/Ko94b4iel8mqLnxSSVUvedRuywGxnKp0YRxDe8yKKrnl7/2krUjfsS+mq62GK Ez6g27+908RDlgn4TWHfUUdbABSvMQJBuFiiw09dKZxc3IxNP+1KJNu6RV7k81Ogu88x /GatZkGpD5X4a015n9oYI5Bdnj5Qqd1tgH7BUuNrYRZKutTx9JBWmlPAgf9oR+diKQy7 Knnv7yZDXfQ5jfJl1dmH53cFXMrGFiCkmuFB0QXteJhBU+mYEGBAwGIeKWB5y6f+HHZ2 kLxOU9QUdMUZVyYhky2GZTF++B0+x99iTBraOqjBM8wfc7w8A3O4wdN9m7oa+ZVHgD6b ROnA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780482330; x=1781087130; 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=BwuCjact7NtmVVu5pHxMGI0+PtLzWt5NFx1C7m2QRT0=; b=YHlmb3NUTtyJkxcjMstXgKjtAC+PUfg3VVB2Ifqo8IocnhrVYL7u+zHlloSm+CJSSe KM95BR6NovWV5HGM0hAo0aFouFjypcmwoGsS0njOpr2QlafRjNr0URVLlnQVY5Ir2y9h 3B50idFTnp1j+Ho3jxn25MEtCn3DTL7DkDa54NNvkZVBQVvled5op70aXD1P69BFTg/1 hc3nW8FNgI0kD6yhhZPavv+ETO2rXg9t55mOo/y4PM+keHf+YPuLqQNEWUlbE4zcLxLV 3khN88CEyHVk7STtHc439GVmvHFVe2FghnYe68u8j51jDKJSc0qNnolT9MEFazqNE5Cy phsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780482330; x=1781087130; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BwuCjact7NtmVVu5pHxMGI0+PtLzWt5NFx1C7m2QRT0=; b=VgmiqgfSNnJ5mZzjaVi9Z0J7zeF57cPxrd6TmRmxkmFP8ZRrTIBqV2vUzIOgXqdkD+ Dw+RecQTTpBYcXPs1nm2UZuYYPX030STJaUrJxrqWLYd0T16kimsTfserKUx3/sXLP38 WmvpD49S2bO8Edbgw5ZrleSl6d12fz25pOdqiUmWz0K+n8rnBI1zU4b2lfNPnRQW/4vN kpf4kEhiuX+uGm8Ncq3W2Hi6+Nce6CK9IGS9Jf9HRNAEh9l/drA8jz2LhVmPV9Tm4eJI 3JpI9SLcNMJx4bf9u8r/FAq53o+RvelIH1q0YV5qM+tmKubbNw+rwU+gZmvneB+e0FuC PepQ== X-Forwarded-Encrypted: i=1; AFNElJ8cG+PyLXCLq4jO18Ha4/qIPyjQ+2m6bIVBhudVwjtK4k1jq8NSwMcvw3xsXfCJONAmlCUSOoCLl1HA@lists.postgresql.org X-Gm-Message-State: AOJu0YxZuM4UFwmGCCEt/vqJWyJA7WiK3AL0dVEEGX+XTqhjqPQA3Deh sLafCTKEQTz94BwhqYXnRjbrKreEiJjcJ6M2PctiR5zXucZDMPTcowrkadfE0AYLnZHZG+roGhE ASvq/3Q0HLzCVxDYiKHmM2oZADWcFWBQ= X-Gm-Gg: Acq92OElkZNnyVEfEPmlABZcRBTEv34VFen9v+DZ+TIKO08bGG12ABi152akH6ymYQ3 gGEP16/c8mDN2TxVsvdFn18XJF9ph6Rl+eH8RZWgTj9LwmqCfXUYYbyPyF0lLvVqlgCuEwK/C2f 1m/AypHufOe+lJ9n14dXbE6SF4KrZjRxt7qte8mUZaPuTDij3uI0A+Xy9bok0EGB0Nb0ee3QEK2 6YrHfAQ6rBh+QZyf1IWaMncX2l9oNpbLQqEiXp9k3GxChdf10N1aX3cAMl1W2cqaRUDZbiWse/J pRuJAP5oGNsyXBLiNzu0Joax4Nqr6G7253piWGSNI4gKAK8xKrZH5TsE6GHJYnCGe5Lp4IDtDBr 9D7zOoZ3VUcL1kCKmVv8O3J6nUtA/BQEw3aOQBe00722Ts7A= X-Received: by 2002:a05:6122:c8b:b0:5a4:5605:c681 with SMTP id 71dfb90a1353d-5a6de0a67a9mr1437728e0c.0.1780482330011; Wed, 03 Jun 2026 03:25:30 -0700 (PDT) MIME-Version: 1.0 References: <33766.1780471821@localhost> In-Reply-To: <33766.1780471821@localhost> From: Srinath Reddy Sadipiralla Date: Wed, 3 Jun 2026 15:55:18 +0530 X-Gm-Features: AVHnY4Lm8cnJG1vVwcWTgDRpn0D9TF9M4pQBL2YI1AYVqduPzmytKSK6COMS7PI Message-ID: Subject: Re: BUG #19500: pgrepack logical decoding plugin can crash assert builds via SQL decoding API To: Antonin Houska Cc: alvherre@kurilemu.de, n.kalinin@postgrespro.ru, pgsql-bugs@lists.postgresql.org, b@ida.kurilemu.internal Content-Type: multipart/mixed; boundary="000000000000cf5181065356d869" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cf5181065356d869 Content-Type: multipart/alternative; boundary="000000000000cf5181065356d867" --000000000000cf5181065356d867 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 3, 2026 at 1:00=E2=80=AFPM Antonin Houska wrot= e: > Srinath Reddy Sadipiralla wrote: > > > Could we reject the pgrepack plugin at slot creation instead, in > > pg_create_logical_replication_slot() and the CREATE_REPLICATION_SLOT > > command, so misuse gets a clear "reserved for REPACK (CONCURRENTLY)" > > error up front, before any decoding? REPACK creates its slot directly v= ia > > ReplicationSlotCreate(), so it's unaffected, and the begin-callback che= ck > > with magic guard can stay as the internal safety net. > > Happy to be told this isn't worth special-casing :) > > Another possible approach: restrict the use of the plugin to the REPACK > decoding worker. > cool ... that's cleaner, incorporated these changes and added test ,errcode. --=20 Thanks :) Srinath Reddy Sadipiralla EDB: https://www.enterprisedb.com/ --000000000000cf5181065356d867 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Wed, Jun 3, = 2026 at 1:00=E2=80=AFPM Antonin Houska <ah@cybertec.at> wrote:
Srinath Reddy Sadipiralla <srinath2133@gmail.com> wrote:

> Could we reject the pgrepack plugin at slot creation instead, in
> pg_create_logical_replication_slot() and the CREATE_REPLICATION_SLOT > command, so misuse gets a clear "reserved for REPACK (CONCURRENTL= Y)"
> error up front, before any decoding? REPACK creates its slot directly = via
> ReplicationSlotCreate(), so it's unaffected, and the begin-callbac= k check
> with magic guard can stay as the internal safety net.
> Happy to be told this isn't worth special-casing :)

Another possible approach: restrict the use of the plugin to the REPACK
decoding worker.

cool ... that's cleaner, inco= rporated these changes and added test
,errcode.


--
Thanks :)
Srinath Reddy SadipirallaEDB:=C2= =A0https://www.enterprisedb.com/
--000000000000cf5181065356d867-- --000000000000cf5181065356d869 Content-Type: application/octet-stream; name="v2-0002-Reject-the-pgrepack-output-plugin-outside-REPACK-CON.patch" Content-Disposition: attachment; filename="v2-0002-Reject-the-pgrepack-output-plugin-outside-REPACK-CON.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpxx6pd30 RnJvbSA5ZmZmM2RlODVkMGM3YzY3ZjI5ZmNlMjhmOWQzNjZkYjVhM2NmNDZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTcmluYXRoIFJlZGR5IFNhZGlwaXJhbGxhIDxzcmluYXRoMjEz M0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMyBKdW4gMjAyNiAxNTo0NTo0NyArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggMS8xXSBSZWplY3QgdGhlIHBncmVwYWNrIG91dHB1dCBwbHVnaW4gb3V0c2lkZSBS RVBBQ0sKIChDT05DVVJSRU5UTFkpCgpUaGUgcGdyZXBhY2sgb3V0cHV0IHBsdWdpbiBpcyBhbiBp bnRlcm5hbCBjb21wb25lbnQgb2YgUkVQQUNLCihDT05DVVJSRU5UTFkpIGFuZCBpcyBub3QgbWVh bnQgdG8gYmUgZHJpdmVuIHRocm91Z2ggdGhlIGdlbmVyaWMgbG9naWNhbApkZWNvZGluZyBpbnRl cmZhY2UuCi0tLQogY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3JlcGFjay5vdXQgfCAg NCArKysrCiBjb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3JlcGFjay5zcWwgICAgICB8ICA0ICsr KysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3JlcGFja193b3JrZXIuYyAgICAgIHwgIDQgKy0tLQog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgfCAxMiArKysrKysrKysr KysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3JlcGFjay5oICAgICAgICAgICAgIHwgIDIgKysKIDUg ZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvcmVwYWNrLm91dCBiL2NvbnRyaWIv dGVzdF9kZWNvZGluZy9leHBlY3RlZC9yZXBhY2sub3V0CmluZGV4IDYyMDRlNjIwYjQzLi5jOWE3 YmNjN2RkYyAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3JlcGFj ay5vdXQKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL3JlcGFjay5vdXQKQEAg LTk5LDUgKzk5LDkgQEAgUkVQQUNLIChDT05DVVJSRU5UTFkpIHJlcGFja19jb25jX3JlcGxpZGVu dDsKIEVSUk9SOiAgY2Fubm90IGV4ZWN1dGUgUkVQQUNLIChDT05DVVJSRU5UTFkpIG9uIHJlbGF0 aW9uICJyZXBhY2tfY29uY19yZXBsaWRlbnQiCiBERVRBSUw6ICBSRVBBQ0sgKENPTkNVUlJFTlRM WSkgZG9lcyBub3Qgc3VwcG9ydCBkZWZlcnJhYmxlIHByaW1hcnkga2V5cy4KIEhJTlQ6ICBVc2Ug QUxURVIgVEFCTEUgLi4uIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdG8gZGVzaWduYXRl IGFub3RoZXIgaW5kZXggYXMgcmVwbGljYSBpZGVudGl0eS4KKy0tIFRoZSAicGdyZXBhY2siIG91 dHB1dCBwbHVnaW4gaXMgaW50ZXJuYWwgdG8gUkVQQUNLIChDT05DVVJSRU5UTFkpOyBpdCBjYW5u b3QKKy0tIGJlIHNlbGVjdGVkIHRocm91Z2ggdGhlIGdlbmVyaWMgbG9naWNhbCBkZWNvZGluZyBp bnRlcmZhY2UgKGJ1ZyAjMTk1MDApLgorU0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0 aW9uX3Nsb3QoJ3JlcGFja19taXN1c2Vfc2xvdCcsICdwZ3JlcGFjaycpOworRVJST1I6ICBUaGUg InBncmVwYWNrIiBkZWNvZGVyIHBsdWdpbiBtYXkgb25seSBiZSBjYWxsZWQgYnkgUkVQQUNLIChD T05DVVJSRU5UTFkpLgogLS0gY2xlYW4gdXAKIERST1AgVEFCTEUgcmVwYWNrX2NvbmNfcmVwbGlk ZW50LCBjbHN0cnBhcnQ7CmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Jl cGFjay5zcWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3JlcGFjay5zcWwKaW5kZXggY2Vh M2JkMzM2ODkuLmE3Y2I2MTVlNTVkIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcv c3FsL3JlcGFjay5zcWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9yZXBhY2suc3Fs CkBAIC03Myw1ICs3Myw5IEBAIFJFUEFDSyAoQ09OQ1VSUkVOVExZKSByZXBhY2tfY29uY19yZXBs aWRlbnQ7CiBBTFRFUiBUQUJMRSByZXBhY2tfY29uY19yZXBsaWRlbnQgQUREIFBSSU1BUlkgS0VZ IChpKSBERUZFUlJBQkxFOwogUkVQQUNLIChDT05DVVJSRU5UTFkpIHJlcGFja19jb25jX3JlcGxp ZGVudDsKIAorLS0gVGhlICJwZ3JlcGFjayIgb3V0cHV0IHBsdWdpbiBpcyBpbnRlcm5hbCB0byBS RVBBQ0sgKENPTkNVUlJFTlRMWSk7IGl0IGNhbm5vdAorLS0gYmUgc2VsZWN0ZWQgdGhyb3VnaCB0 aGUgZ2VuZXJpYyBsb2dpY2FsIGRlY29kaW5nIGludGVyZmFjZSAoYnVnICMxOTUwMCkuCitTRUxF Q1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVwYWNrX21pc3VzZV9zbG90 JywgJ3BncmVwYWNrJyk7CisKIC0tIGNsZWFuIHVwCiBEUk9QIFRBQkxFIHJlcGFja19jb25jX3Jl cGxpZGVudCwgY2xzdHJwYXJ0OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcmVw YWNrX3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcmVwYWNrX3dvcmtlci5jCmluZGV4 IGYzZDI3MjBiMjQ2Li45ZWEzNjNmNWVhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcmVwYWNrX3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3JlcGFja193b3Jr ZXIuYwpAQCAtMjgsOCArMjgsNiBAQAogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKICNpbmNs dWRlICJ1dGlscy9tZW11dGlscy5oIgogCi0jZGVmaW5lIFJFUExfUExVR0lOX05BTUUgICAicGdy ZXBhY2siCi0KIHN0YXRpYyB2b2lkIFJlcGFja1dvcmtlclNodXRkb3duKGludCBjb2RlLCBEYXR1 bSBhcmcpOwogc3RhdGljIExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKnJlcGFja19zZXR1cF9sb2dp Y2FsX2RlY29kaW5nKE9pZCByZWxpZCk7CiBzdGF0aWMgdm9pZCByZXBhY2tfY2xlYW51cF9sb2dp Y2FsX2RlY29kaW5nKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCk7CkBAIC0yNDYsNyArMjQ0 LDcgQEAgcmVwYWNrX3NldHVwX2xvZ2ljYWxfZGVjb2RpbmcoT2lkIHJlbGlkKQogCSAqIE5laXRo ZXIgcHJlcGFyZV93cml0ZSBub3IgZG9fd3JpdGUgY2FsbGJhY2sgbm9yIHVwZGF0ZV9wcm9ncmVz cyBpcwogCSAqIHVzZWZ1bCBmb3IgdXMuCiAJICovCi0JY3R4ID0gQ3JlYXRlSW5pdERlY29kaW5n Q29udGV4dChSRVBMX1BMVUdJTl9OQU1FLAorCWN0eCA9IENyZWF0ZUluaXREZWNvZGluZ0NvbnRl eHQoUkVQQUNLX1BMVUdJTl9OQU1FLAogCQkJCQkJCQkJTklMLAogCQkJCQkJCQkJdHJ1ZSwKIAkJ CQkJCQkJCXRydWUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmlu ZGV4IDM1NDFmYzc5M2U0Li4yOGI5YzRlYTMwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9sb2dpY2FsLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFj dC5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9nX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiYWNjZXNz L3hsb2d1dGlscy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3JlcGFjay5oIgogI2luY2x1ZGUgImZt Z3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKQEAgLTM1 MSw2ICszNTIsMTcgQEAgQ3JlYXRlSW5pdERlY29kaW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVn aW4sCiAJaWYgKHBsdWdpbiA9PSBOVUxMKQogCQllbG9nKEVSUk9SLCAiY2Fubm90IGluaXRpYWxp emUgbG9naWNhbCBkZWNvZGluZyB3aXRob3V0IGEgc3BlY2lmaWVkIHBsdWdpbiIpOwogCisJLyoK KwkgKiBQbHVnaW4gZm9yIFJFUEFDSyAoQ09OQ1VSUkVOVExZKSBpcyBub3QgZGVzaWduZWQgZm9y IG90aGVyIHVzZXMsIHN1Y2gKKwkgKiBhcyB0aGUgU1FMIGludGVyZmFjZS4gVXNlIHRoZSBmYWN0 IHRoYXQgUkVQQUNLIHVzZXMgYmFja2dyb3VuZCB3b3JrZXIKKwkgKiBmb3IgdGhlIGRlY29kaW5n LgorCSAqLworCWlmIChzdHJjbXAocGx1Z2luLCBSRVBBQ0tfUExVR0lOX05BTUUpID09IDAgJiYg IUFtUmVwYWNrV29ya2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIlRoZSBcIiVzXCIgZGVjb2Rl ciBwbHVnaW4gbWF5IG9ubHkgYmUgY2FsbGVkIGJ5ICVzLiIsCisJCQkJCQlSRVBBQ0tfUExVR0lO X05BTUUsICJSRVBBQ0sgKENPTkNVUlJFTlRMWSkiKSkpOworCiAJLyogTWFrZSBzdXJlIHRoZSBw YXNzZWQgc2xvdCBpcyBzdWl0YWJsZS4gVGhlc2UgYXJlIHVzZXIgZmFjaW5nIGVycm9ycy4gKi8K IAlpZiAoU2xvdElzUGh5c2ljYWwoc2xvdCkpCiAJCWVyZXBvcnQoRVJST1IsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jb21tYW5kcy9yZXBhY2suaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Jl cGFjay5oCmluZGV4IDQ1ZTU0NDBhMzExLi4xZDVlOWRiYmUwMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvcmVwYWNrLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcmVwYWNr LmgKQEAgLTM1LDYgKzM1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ2x1c3RlclBhcmFtcwogCXVpbnQz MgkJb3B0aW9uczsJCS8qIGJpdG1hc2sgb2YgQ0xVT1BUXyogKi8KIH0gQ2x1c3RlclBhcmFtczsK IAorI2RlZmluZSBSRVBBQ0tfUExVR0lOX05BTUUgICAicGdyZXBhY2siCisKIGV4dGVybiBQR0RM TElNUE9SVCB2b2xhdGlsZSBzaWdfYXRvbWljX3QgUmVwYWNrTWVzc2FnZVBlbmRpbmc7CiAKIAot LSAKMi40My4wCgo= --000000000000cf5181065356d869--