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 1qlqGW-004aRQ-7u for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Sep 2023 12:37:12 +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 1qlqGT-00CkUl-JH for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Sep 2023 12:37:09 +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 1qlqGS-00CkUV-UX for pgsql-hackers@lists.postgresql.org; Thu, 28 Sep 2023 12:37:09 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qlqGP-0077Vp-35 for pgsql-hackers@lists.postgresql.org; Thu, 28 Sep 2023 12:37:07 +0000 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4064014bca5so45966695e9.3 for ; Thu, 28 Sep 2023 05:37:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695904623; x=1696509423; darn=lists.postgresql.org; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=H/VyCtJsUjqJBtAqUOytWfDpVSkfbyTivlY5AwwjEvE=; b=hjkCRgdE6elJ3mm0pOjNCE86yyb/weCL8gluBIW2FA6+6VZFy6K3T8vYICAaiflxaz KEGTy1Ua9kdNorsQbFNIpqqOjqn1R9UbpqJFglWE09Yy7tNUu1wQLVXypmylUXAbzZJi 8Q3VNcaDGhCwYL53IQtZxn3/7av/Q5v71MEkwcjjfludmUOrEetnJdrdOEwmnMLbDxQj k01RVN2noCTMLfNploS4ZWQwtQDO0l1RjQ9KxwQDAdWtrUqz0HieWF7TD9TnXrIgoJ8W nWWHOMwEVT9VvEoEvPQUUF1aKbvJ4LrO0ZGXKn2G++AfKWDjqPU99ZotMFX3VKv0/r4N Cudw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695904623; x=1696509423; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=H/VyCtJsUjqJBtAqUOytWfDpVSkfbyTivlY5AwwjEvE=; b=eCCYTJx3h2HMnK8jueoYHN3kEKdx5sfdkVAoRT9SvsxU1/ZSm71mIYZqkja+kaRDUf SG/LCj82oABb6K32HoYJn9wq7PhoHoO42TRf865mbWRTt9hbQ3xFv5/Uey6RAmYPD96J RpdYTH2UrCl6A2Ke/3/xIsbU7j5jowkiy7P+FQQVOpKS1eTHdNLtKQKohS58Qd3SBreb CebrW67c7yqxbnGQaiXf9MY3HQFSZQPGbIIzDSM5Kwl9c+7HL81K8+0ri45SbKaG84cF EAAH/qCXAOm8YaKVXrgOa8Qq57Vj/FOFftplgVYwDQwvIbDTcda3NOkE0eA5fxdjMTm4 BCnA== X-Gm-Message-State: AOJu0YyhF4qUrXVrJElTvYt5EC/YfCBWJafE4aZbJ6tI/dKIWSPqRSfM exkKODr3Usq9KEzRLmHHB+y9N8HIOYM= X-Google-Smtp-Source: AGHT+IHU0ayxE0ztKhd55Ai36yqN+o2zAKPRkv5zQCQ7+3yY5Ze3QJfeLDtQOZu3lCz6IDf+QfmlMA== X-Received: by 2002:adf:f3cf:0:b0:31f:91ae:4509 with SMTP id g15-20020adff3cf000000b0031f91ae4509mr1003602wrp.40.1695904623375; Thu, 28 Sep 2023 05:37:03 -0700 (PDT) Received: from ?IPV6:2a01:cb11:55e:1700:b472:25e:6d15:5c84? ([2a01:cb11:55e:1700:b472:25e:6d15:5c84]) by smtp.gmail.com with ESMTPSA id x17-20020a5d6b51000000b0031980294e9fsm19382773wrw.116.2023.09.28.05.37.02 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 28 Sep 2023 05:37:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------PKc3MSYPYyb6fdvEVr02Hgq4" Message-ID: Date: Thu, 28 Sep 2023 14:37:02 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: "Drouvot, Bertrand" Subject: Add a new BGWORKER_BYPASS_ROLELOGINCHECK flag To: PostgreSQL Hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------PKc3MSYPYyb6fdvEVr02Hgq4 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi hackers, Please find attached a patch proposal to $SUBJECT. This patch allows the role provided in BackgroundWorkerInitializeConnection() and BackgroundWorkerInitializeConnectionByOid() to lack login authorization. In InitPostgres(), in case of a background worker, authentication is not performed (PerformAuthentication() is not called), so having the role used to connect to the database lacking login authorization seems to make sense. With this new flag in place, one could give "high" privileges to the role used to initialize the background workers connections without any risk of seeing this role being used by a "normal user" to login. The attached patch: - adds the new flag - adds documentation - adds testing Looking forward to your feedback, Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------PKc3MSYPYyb6fdvEVr02Hgq4 Content-Type: text/plain; charset=UTF-8; name="v1-0001-Allow-background-workers-to-bypass-login-check.patch" Content-Disposition: attachment; filename*0="v1-0001-Allow-background-workers-to-bypass-login-check.patch" Content-Transfer-Encoding: base64 RnJvbSA4MmVhNTNhODFhNWU5ZjVlOGI2ODBlYzZkZTg0OWE0OGE3MjIyNDYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJ0cmFuZCBEcm91dm90IDxiZXJ0cmFuZGRyb3V2 b3QucGdAZ21haWwuY29tPgpEYXRlOiBXZWQsIDIwIFNlcCAyMDIzIDA4OjI4OjU5ICswMDAw ClN1YmplY3Q6IFtQQVRDSCB2MV0gQWxsb3cgYmFja2dyb3VuZCB3b3JrZXJzIHRvIGJ5cGFz cyBsb2dpbiBjaGVjawoKVGhpcyBhZGRzIGEgbmV3IGZsYWcgdmFsdWUgKEJHV09SS0VSX0JZ UEFTU19ST0xFTE9HSU5DSEVDSykgdG8gdGhlIGZsYWdzIGJlaW5nCnVzZWQgaW4gQmFja2dy b3VuZFdvcmtlckluaXRpYWxpemVDb25uZWN0aW9uKCkgYW5kIEJhY2tncm91bmRXb3JrZXJJ bml0aWFsaXplQ29ubmVjdGlvbkJ5T2lkKCkuCgpUaGlzIGZsYWcgYWxsb3dzIHRoZSBiYWNr Z3JvdW5kIHdvcmtlcnMgdG8gYnlwYXNzIHRoZSBsb2dpbiBjaGVjayBkb25lIGluIEluaXRp YWxpemVTZXNzaW9uVXNlcklkKCkuCi0tLQogZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290 c3RyYXAuYyAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1 dG92YWN1dW0uYyAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9w b3N0bWFzdGVyLmMgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9pbml0 L21pc2Npbml0LmMgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9wb3N0aW5pdC5jICAgICAgICAgICAgIHwgIDkgKystLQogc3JjL2luY2x1ZGUvbWlzY2Fk bWluLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKy0KIHNyYy9pbmNsdWRlL3Bvc3Rt YXN0ZXIvYmd3b3JrZXIuaCAgICAgICAgICAgICB8ICA2ICsrLQogLi4uL21vZHVsZXMvd29y a2VyX3NwaS90LzAwMV93b3JrZXJfc3BpLnBsICAgIHwgNDggKysrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvbW9kdWxlcy93b3JrZXJfc3BpL3dvcmtlcl9zcGkuYyAgICAgIHwgMjUg KysrKysrKysrLQogMTEgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pCiAgIDYuOSUgZG9jL3NyYy9zZ21sLwogICAzLjQlIHNyYy9iYWNrZW5kL2Jv b3RzdHJhcC8KICAxMC42JSBzcmMvYmFja2VuZC9wb3N0bWFzdGVyLwogIDE2LjglIHNyYy9i YWNrZW5kL3V0aWxzL2luaXQvCiAgIDcuMiUgc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci8KICAy OS43JSBzcmMvdGVzdC9tb2R1bGVzL3dvcmtlcl9zcGkvdC8KICAyMS4xJSBzcmMvdGVzdC9t b2R1bGVzL3dvcmtlcl9zcGkvCiAgIDQuMCUgc3JjLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9iZ3dvcmtlci5zZ21sIGIvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwKaW5kZXgg OWFkMTE0NmJhMC4uNzMzNWMwMmVkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Jnd29y a2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwKQEAgLTIwMCw3ICsy MDAsOCBAQCB0eXBlZGVmIHN0cnVjdCBCYWNrZ3JvdW5kV29ya2VyCiAgICA8bGl0ZXJhbD5J bnZhbGlkT2lkPC9saXRlcmFsPiwgdGhlIHByb2Nlc3Mgd2lsbCBydW4gYXMgdGhlIHN1cGVy dXNlciBjcmVhdGVkCiAgICBkdXJpbmcgPGNvbW1hbmQ+aW5pdGRiPC9jb21tYW5kPi4gSWYg PGxpdGVyYWw+QkdXT1JLRVJfQllQQVNTX0FMTE9XQ09OTjwvbGl0ZXJhbD4KICAgIGlzIHNw ZWNpZmllZCBhcyA8dmFybmFtZT5mbGFnczwvdmFybmFtZT4gaXQgaXMgcG9zc2libGUgdG8g YnlwYXNzIHRoZSByZXN0cmljdGlvbgotICAgdG8gY29ubmVjdCB0byBkYXRhYmFzZXMgbm90 IGFsbG93aW5nIHVzZXIgY29ubmVjdGlvbnMuCisgICB0byBjb25uZWN0IHRvIGRhdGFiYXNl cyBub3QgYWxsb3dpbmcgdXNlciBjb25uZWN0aW9ucy4gSWYgPGxpdGVyYWw+QkdXT1JLRVJf QllQQVNTX1JPTEVMT0dJTkNIRUNLPC9saXRlcmFsPgorICAgaXMgc3BlY2lmaWVkIGFzIDx2 YXJuYW1lPmZsYWdzPC92YXJuYW1lPiBpdCBpcyBwb3NzaWJsZSB0byBieXBhc3MgdGhlIGxv Z2luIGNoZWNrIHRvIGNvbm5lY3QgdG8gZGF0YWJhc2VzLgogICAgQSBiYWNrZ3JvdW5kIHdv cmtlciBjYW4gb25seSBjYWxsIG9uZSBvZiB0aGVzZSB0d28gZnVuY3Rpb25zLCBhbmQgb25s eQogICAgb25jZS4gIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBzd2l0Y2ggZGF0YWJhc2VzLgog ICA8L3BhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFw LmMgYi9zcmMvYmFja2VuZC9ib290c3RyYXAvYm9vdHN0cmFwLmMKaW5kZXggNTgxMGY4ODI1 ZS4uZDRiNjQyNTU4NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYm9vdHN0cmFwL2Jvb3Rz dHJhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2Jvb3RzdHJhcC9ib290c3RyYXAuYwpAQCAtMzQ1 LDcgKzM0NSw3IEBAIEJvb3RzdHJhcE1vZGVNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10s IGJvb2wgY2hlY2tfb25seSkKIAlpZiAocGdfbGlua19jYW5hcnlfaXNfZnJvbnRlbmQoKSkK IAkJZWxvZyhFUlJPUiwgImJhY2tlbmQgaXMgaW5jb3JyZWN0bHkgbGlua2VkIHRvIGZyb250 ZW5kIGZ1bmN0aW9ucyIpOwogCi0JSW5pdFBvc3RncmVzKE5VTEwsIEludmFsaWRPaWQsIE5V TEwsIEludmFsaWRPaWQsIGZhbHNlLCBmYWxzZSwgTlVMTCk7CisJSW5pdFBvc3RncmVzKE5V TEwsIEludmFsaWRPaWQsIE5VTEwsIEludmFsaWRPaWQsIGZhbHNlLCAwLCBOVUxMKTsKIAog CS8qIEluaXRpYWxpemUgc3R1ZmYgZm9yIGJvb3RzdHJhcC1maWxlIHByb2Nlc3NpbmcgKi8K IAlmb3IgKGkgPSAwOyBpIDwgTUFYQVRUUjsgaSsrKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1 dG92YWN1dW0uYwppbmRleCBhZTliZTliOTExLi5kZGU4M2U3NmZiIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtNDg4LDcgKzQ4OCw3IEBAIEF1dG9WYWNMYXVu Y2hlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkvKiBFYXJseSBpbml0aWFsaXph dGlvbiAqLwogCUJhc2VJbml0KCk7CiAKLQlJbml0UG9zdGdyZXMoTlVMTCwgSW52YWxpZE9p ZCwgTlVMTCwgSW52YWxpZE9pZCwgZmFsc2UsIGZhbHNlLCBOVUxMKTsKKwlJbml0UG9zdGdy ZXMoTlVMTCwgSW52YWxpZE9pZCwgTlVMTCwgSW52YWxpZE9pZCwgZmFsc2UsIDAsIE5VTEwp OwogCiAJU2V0UHJvY2Vzc2luZ01vZGUoTm9ybWFsUHJvY2Vzc2luZyk7CiAKQEAgLTE3MDYs NyArMTcwNiw3IEBAIEF1dG9WYWNXb3JrZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJCSAqIE5vdGU6IGlmIHdlIGhhdmUgc2VsZWN0ZWQgYSBqdXN0LWRlbGV0ZWQgZGF0YWJh c2UgKGR1ZSB0byB1c2luZwogCQkgKiBzdGFsZSBzdGF0cyBpbmZvKSwgd2UnbGwgZmFpbCBh bmQgZXhpdCBoZXJlLgogCQkgKi8KLQkJSW5pdFBvc3RncmVzKE5VTEwsIGRiaWQsIE5VTEws IEludmFsaWRPaWQsIGZhbHNlLCBmYWxzZSwKKwkJSW5pdFBvc3RncmVzKE5VTEwsIGRiaWQs IE5VTEwsIEludmFsaWRPaWQsIGZhbHNlLCAwLAogCQkJCQkgZGJuYW1lKTsKIAkJU2V0UHJv Y2Vzc2luZ01vZGUoTm9ybWFsUHJvY2Vzc2luZyk7CiAJCXNldF9wc19kaXNwbGF5KGRibmFt ZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBi L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IDU0ZTliZmI4YzQu LjQ0M2IxYzQ3MjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1h c3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC01 NTg4LDcgKzU1ODgsNyBAQCBCYWNrZ3JvdW5kV29ya2VySW5pdGlhbGl6ZUNvbm5lY3Rpb24o Y29uc3QgY2hhciAqZGJuYW1lLCBjb25zdCBjaGFyICp1c2VybmFtZSwgdQogCUluaXRQb3N0 Z3JlcyhkYm5hbWUsIEludmFsaWRPaWQsCS8qIGRhdGFiYXNlIHRvIGNvbm5lY3QgdG8gKi8K IAkJCQkgdXNlcm5hbWUsIEludmFsaWRPaWQsCS8qIHJvbGUgdG8gY29ubmVjdCBhcyAqLwog CQkJCSBmYWxzZSwJCQkvKiBuZXZlciBob25vciBzZXNzaW9uX3ByZWxvYWRfbGlicmFyaWVz ICovCi0JCQkJIChmbGFncyAmIEJHV09SS0VSX0JZUEFTU19BTExPV0NPTk4pICE9IDAsCS8q IGlnbm9yZSBkYXRhbGxvd2Nvbm4/ICovCisJCQkJIGZsYWdzLAogCQkJCSBOVUxMKTsJCQkv KiBubyBvdXRfZGJuYW1lICovCiAKIAkvKiBpdCBoYWQgYmV0dGVyIG5vdCBnb3R0ZW4gb3V0 IG9mICJpbml0IiBtb2RlIHlldCAqLwpAQCAtNTYxNSw3ICs1NjE1LDcgQEAgQmFja2dyb3Vu ZFdvcmtlckluaXRpYWxpemVDb25uZWN0aW9uQnlPaWQoT2lkIGRib2lkLCBPaWQgdXNlcm9p ZCwgdWludDMyIGZsYWdzKQogCUluaXRQb3N0Z3JlcyhOVUxMLCBkYm9pZCwJLyogZGF0YWJh c2UgdG8gY29ubmVjdCB0byAqLwogCQkJCSBOVUxMLCB1c2Vyb2lkLCAvKiByb2xlIHRvIGNv bm5lY3QgYXMgKi8KIAkJCQkgZmFsc2UsCQkJLyogbmV2ZXIgaG9ub3Igc2Vzc2lvbl9wcmVs b2FkX2xpYnJhcmllcyAqLwotCQkJCSAoZmxhZ3MgJiBCR1dPUktFUl9CWVBBU1NfQUxMT1dD T05OKSAhPSAwLAkvKiBpZ25vcmUgZGF0YWxsb3djb25uPyAqLworCQkJCSBmbGFncywKIAkJ CQkgTlVMTCk7CQkJLyogbm8gb3V0X2RibmFtZSAqLwogCiAJLyogaXQgaGFkIGJldHRlciBu b3QgZ290dGVuIG91dCBvZiAiaW5pdCIgbW9kZSB5ZXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwpp bmRleCAyMWI5NzYzMTgzLi5mNWVmOGY1MmE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC00 MjEwLDcgKzQyMTAsNyBAQCBQb3N0Z3Jlc01haW4oY29uc3QgY2hhciAqZGJuYW1lLCBjb25z dCBjaGFyICp1c2VybmFtZSkKIAlJbml0UG9zdGdyZXMoZGJuYW1lLCBJbnZhbGlkT2lkLAkv KiBkYXRhYmFzZSB0byBjb25uZWN0IHRvICovCiAJCQkJIHVzZXJuYW1lLCBJbnZhbGlkT2lk LAkvKiByb2xlIHRvIGNvbm5lY3QgYXMgKi8KIAkJCQkgIWFtX3dhbHNlbmRlciwgLyogaG9u b3Igc2Vzc2lvbl9wcmVsb2FkX2xpYnJhcmllcz8gKi8KLQkJCQkgZmFsc2UsCQkJLyogZG9u J3QgaWdub3JlIGRhdGFsbG93Y29ubiAqLworCQkJCSAwLAogCQkJCSBOVUxMKTsJCQkvKiBu byBvdXRfZGJuYW1lICovCiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9taXNjaW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jCmlu ZGV4IDFlNjcxYzU2MGMuLjE4MmQ2NjY4NTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2luaXQvbWlzY2luaXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L21pc2Np bml0LmMKQEAgLTcyNSw3ICs3MjUsNyBAQCBoYXNfcm9scmVwbGljYXRpb24oT2lkIHJvbGVp ZCkKICAqIEluaXRpYWxpemUgdXNlciBpZGVudGl0eSBkdXJpbmcgbm9ybWFsIGJhY2tlbmQg c3RhcnR1cAogICovCiB2b2lkCi1Jbml0aWFsaXplU2Vzc2lvblVzZXJJZChjb25zdCBjaGFy ICpyb2xlbmFtZSwgT2lkIHJvbGVpZCkKK0luaXRpYWxpemVTZXNzaW9uVXNlcklkKGNvbnN0 IGNoYXIgKnJvbGVuYW1lLCBPaWQgcm9sZWlkLCBib29sIGJ5cGFzc19sb2dpbl9jaGVjaykK IHsKIAlIZWFwVHVwbGUJcm9sZVR1cDsKIAlGb3JtX3BnX2F1dGhpZCByZm9ybTsKQEAgLTc4 OSw3ICs3ODksNyBAQCBJbml0aWFsaXplU2Vzc2lvblVzZXJJZChjb25zdCBjaGFyICpyb2xl bmFtZSwgT2lkIHJvbGVpZCkKIAkJLyoKIAkJICogSXMgcm9sZSBhbGxvd2VkIHRvIGxvZ2lu IGF0IGFsbD8KIAkJICovCi0JCWlmICghcmZvcm0tPnJvbGNhbmxvZ2luKQorCQlpZiAoIWJ5 cGFzc19sb2dpbl9jaGVjayAmJiAhcmZvcm0tPnJvbGNhbmxvZ2luKQogCQkJZXJlcG9ydChG QVRBTCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0FVVEhPUklaQVRJT05fU1BF Q0lGSUNBVElPTiksCiAJCQkJCSBlcnJtc2coInJvbGUgXCIlc1wiIGlzIG5vdCBwZXJtaXR0 ZWQgdG8gbG9nIGluIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9z dGluaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYwppbmRleCBkZjRk MTVhNTBmLi42Y2NlZGZmZDYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9pbml0 L3Bvc3Rpbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCkBA IC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdz dGF0LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgiCisjaW5jbHVkZSAi cG9zdG1hc3Rlci9iZ3dvcmtlci5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rl ci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNh dGlvbi93YWxzZW5kZXIuaCIKQEAgLTcxOCwxMCArNzE5LDEyIEBAIHZvaWQKIEluaXRQb3N0 Z3Jlcyhjb25zdCBjaGFyICppbl9kYm5hbWUsIE9pZCBkYm9pZCwKIAkJCSBjb25zdCBjaGFy ICp1c2VybmFtZSwgT2lkIHVzZXJvaWQsCiAJCQkgYm9vbCBsb2FkX3Nlc3Npb25fbGlicmFy aWVzLAotCQkJIGJvb2wgb3ZlcnJpZGVfYWxsb3dfY29ubmVjdGlvbnMsCisJCQkgdWludDMy IGZsYWdzLAogCQkJIGNoYXIgKm91dF9kYm5hbWUpCiB7CiAJYm9vbAkJYm9vdHN0cmFwID0g SXNCb290c3RyYXBQcm9jZXNzaW5nTW9kZSgpOworCWJvb2wJCW92ZXJyaWRlX2FsbG93X2Nv bm5lY3Rpb25zID0gKGZsYWdzICYgQkdXT1JLRVJfQllQQVNTX0FMTE9XQ09OTikgIT0gMDsK Kwlib29sCQlieXBhc3NfbG9naW5fY2hlY2sgPSAoZmxhZ3MgJiBCR1dPUktFUl9CWVBBU1Nf Uk9MRUxPR0lOQ0hFQ0spICE9IDA7CiAJYm9vbAkJYW1fc3VwZXJ1c2VyOwogCWNoYXIJICAg KmZ1bGxwYXRoOwogCWNoYXIJCWRibmFtZVtOQU1FREFUQUxFTl07CkBAIC05MDEsNyArOTA0 LDcgQEAgSW5pdFBvc3RncmVzKGNvbnN0IGNoYXIgKmluX2RibmFtZSwgT2lkIGRib2lkLAog CQl9CiAJCWVsc2UKIAkJewotCQkJSW5pdGlhbGl6ZVNlc3Npb25Vc2VySWQodXNlcm5hbWUs IHVzZXJvaWQpOworCQkJSW5pdGlhbGl6ZVNlc3Npb25Vc2VySWQodXNlcm5hbWUsIHVzZXJv aWQsIGJ5cGFzc19sb2dpbl9jaGVjayk7CiAJCQlhbV9zdXBlcnVzZXIgPSBzdXBlcnVzZXIo KTsKIAkJfQogCX0KQEAgLTkxMCw3ICs5MTMsNyBAQCBJbml0UG9zdGdyZXMoY29uc3QgY2hh ciAqaW5fZGJuYW1lLCBPaWQgZGJvaWQsCiAJCS8qIG5vcm1hbCBtdWx0aXVzZXIgY2FzZSAq LwogCQlBc3NlcnQoTXlQcm9jUG9ydCAhPSBOVUxMKTsKIAkJUGVyZm9ybUF1dGhlbnRpY2F0 aW9uKE15UHJvY1BvcnQpOwotCQlJbml0aWFsaXplU2Vzc2lvblVzZXJJZCh1c2VybmFtZSwg dXNlcm9pZCk7CisJCUluaXRpYWxpemVTZXNzaW9uVXNlcklkKHVzZXJuYW1lLCB1c2Vyb2lk LCBmYWxzZSk7CiAJCS8qIGVuc3VyZSB0aGF0IGF1dGhfbWV0aG9kIGlzIGFjdHVhbGx5IHZh bGlkLCBha2EgYXV0aG5faWQgaXMgbm90IE5VTEwgKi8KIAkJaWYgKE15Q2xpZW50Q29ubmVj dGlvbkluZm8uYXV0aG5faWQpCiAJCQlJbml0aWFsaXplU3lzdGVtVXNlcihNeUNsaWVudENv bm5lY3Rpb25JbmZvLmF1dGhuX2lkLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2Fk bWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCAxNGJkNTc0ZmMyLi43ZTZl ZTQxNWNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMv aW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMzY0LDcgKzM2NCw4IEBAIGV4dGVybiBib29sIElu U2VjdXJpdHlSZXN0cmljdGVkT3BlcmF0aW9uKHZvaWQpOwogZXh0ZXJuIGJvb2wgSW5Ob0Zv cmNlUkxTT3BlcmF0aW9uKHZvaWQpOwogZXh0ZXJuIHZvaWQgR2V0VXNlcklkQW5kQ29udGV4 dChPaWQgKnVzZXJpZCwgYm9vbCAqc2VjX2RlZl9jb250ZXh0KTsKIGV4dGVybiB2b2lkIFNl dFVzZXJJZEFuZENvbnRleHQoT2lkIHVzZXJpZCwgYm9vbCBzZWNfZGVmX2NvbnRleHQpOwot ZXh0ZXJuIHZvaWQgSW5pdGlhbGl6ZVNlc3Npb25Vc2VySWQoY29uc3QgY2hhciAqcm9sZW5h bWUsIE9pZCByb2xlaWQpOworZXh0ZXJuIHZvaWQgSW5pdGlhbGl6ZVNlc3Npb25Vc2VySWQo Y29uc3QgY2hhciAqcm9sZW5hbWUsIE9pZCByb2xlaWQsCisJCQkJCQkJCQlib29sIGJ5cGFz c19sb2dpbl9jaGVjayk7CiBleHRlcm4gdm9pZCBJbml0aWFsaXplU2Vzc2lvblVzZXJJZFN0 YW5kYWxvbmUodm9pZCk7CiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uQXV0aG9yaXphdGlvbihP aWQgdXNlcmlkLCBib29sIGlzX3N1cGVydXNlcik7CiBleHRlcm4gT2lkCUdldEN1cnJlbnRS b2xlSWQodm9pZCk7CkBAIC00NjgsNyArNDY5LDcgQEAgZXh0ZXJuIHZvaWQgSW5pdGlhbGl6 ZU1heEJhY2tlbmRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgSW5pdFBvc3RncmVzKGNvbnN0IGNo YXIgKmluX2RibmFtZSwgT2lkIGRib2lkLAogCQkJCQkJIGNvbnN0IGNoYXIgKnVzZXJuYW1l LCBPaWQgdXNlcm9pZCwKIAkJCQkJCSBib29sIGxvYWRfc2Vzc2lvbl9saWJyYXJpZXMsCi0J CQkJCQkgYm9vbCBvdmVycmlkZV9hbGxvd19jb25uZWN0aW9ucywKKwkJCQkJCSB1aW50MzIg ZmxhZ3MsCiAJCQkJCQkgY2hhciAqb3V0X2RibmFtZSk7CiBleHRlcm4gdm9pZCBCYXNlSW5p dCh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtl ci5oIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCmluZGV4IDc4MTU1MDdl M2QuLmQ3YTVjMWE5NDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3 b3JrZXIuaAorKysgYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKQEAgLTE1 MCw5ICsxNTAsMTEgQEAgZXh0ZXJuIHZvaWQgQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVD b25uZWN0aW9uQnlPaWQoT2lkIGRib2lkLCBPaWQgdXNlcm9pZCwgdWkKICAqIEZsYWdzIHRv IEJhY2tncm91bmRXb3JrZXJJbml0aWFsaXplQ29ubmVjdGlvbiBldCBhbAogICoKICAqCi0g KiBBbGxvdyBieXBhc3NpbmcgZGF0YWxsb3djb25uIHJlc3RyaWN0aW9ucyB3aGVuIGNvbm5l Y3RpbmcgdG8gZGF0YWJhc2UKKyAqIEFsbG93IGJ5cGFzc2luZyBkYXRhbGxvd2Nvbm4gcmVz dHJpY3Rpb25zIGFuZCBsb2dpbiBjaGVjayB3aGVuIGNvbm5lY3RpbmcKKyAqIHRvIGRhdGFi YXNlCiAgKi8KLSNkZWZpbmUgQkdXT1JLRVJfQllQQVNTX0FMTE9XQ09OTiAxCisjZGVmaW5l IEJHV09SS0VSX0JZUEFTU19BTExPV0NPTk4gMHgwMDAxCisjZGVmaW5lIEJHV09SS0VSX0JZ UEFTU19ST0xFTE9HSU5DSEVDSyAweDAwMDIKIAogCiAvKiBCbG9jay91bmJsb2NrIHNpZ25h bHMgaW4gYSBiYWNrZ3JvdW5kIHdvcmtlciBwcm9jZXNzICovCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9tb2R1bGVzL3dvcmtlcl9zcGkvdC8wMDFfd29ya2VyX3NwaS5wbCBiL3NyYy90ZXN0 L21vZHVsZXMvd29ya2VyX3NwaS90LzAwMV93b3JrZXJfc3BpLnBsCmluZGV4IDI5NjVhY2Q3 ODkuLmZmOGI3MmY1YjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvd29ya2VyX3Nw aS90LzAwMV93b3JrZXJfc3BpLnBsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvd29ya2VyX3Nw aS90LzAwMV93b3JrZXJfc3BpLnBsCkBAIC05Myw0ICs5Myw1MiBAQCBvayggJG5vZGUtPnBv bGxfcXVlcnlfdW50aWwoCiAJJ2R5bmFtaWMgYmd3b3JrZXJzIGFsbCBsYXVuY2hlZCcKICkg b3IgZGllICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgZHluYW1pYyBiZ3dvcmtlcnMg dG8gYmUgbGF1bmNoZWQiOwogCisjIENoZWNrIEJHV09SS0VSX0JZUEFTU19ST0xFTE9HSU5D SEVDSyBiZWhhdmVzIGFzIGV4cGVjdGVkLgorCisjIEZpcnN0IGNyZWF0ZSBhIHJvbGUgd2l0 aG91dCBsb2dpbi4KKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFbCisgIENS RUFURSBST0xFIG5vbG9ncm9sZSB3aXRoIG5vbG9naW47CisgIEFMVEVSIFJPTEUgbm9sb2dy b2xlIHdpdGggc3VwZXJ1c2VyOworXSk7CisKK215ICRsb2dfc3RhcnQgPSBnZXRfbG9nX3Np emUoJG5vZGUpOworCisjIEFzayB0aGUgYmFja2dyb3VuZCB3b3JrZXJzIHRvIGNvbm5lY3Qg d2l0aCB0aGlzIHJvbGUuCiskbm9kZS0+YXBwZW5kX2NvbmYoCisJJ3Bvc3RncmVzcWwuY29u ZicsIHF7Cit3b3JrZXJfc3BpLnJvbGUgPSAnbm9sb2dyb2xlJworfSk7Ciskbm9kZS0+cmVz dGFydDsKKworIyBBbiBlcnJvciBtZXNzYWdlIHNob3VsZCBiZSBpc3N1ZWQuCitvayggJG5v ZGUtPmxvZ19jb250YWlucygKKwkJInJvbGUgXCJub2xvZ3JvbGVcIiBpcyBub3QgcGVybWl0 dGVkIHRvIGxvZyBpbiIsICRsb2dfc3RhcnQpLAorCSJub2xvZ3JvbGUgbm90IGFsbG93ZWQg dG8gY29ubmVjdCBpZiBCR1dPUktFUl9CWVBBU1NfUk9MRUxPR0lOQ0hFQ0sgaXMgbm90IHNl dCIKKyk7CisKKworJGxvZ19zdGFydCA9IGdldF9sb2dfc2l6ZSgkbm9kZSk7CisKKyMgQXNr IHRoZSBiYWNrZ3JvdW5kIHdvcmtlcnMgdG8gY29ubmVjdCB3aXRoIHRoaXMgcm9sZSB3aXRo IHRoZSBmbGFnIGluIHBsYWNlLgorJG5vZGUtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3Fs LmNvbmYnLCBxeword29ya2VyX3NwaS5yb2xlID0gJ25vbG9ncm9sZScKK3dvcmtlcl9zcGku YnlwYXNzX2xvZ2luX2NoZWNrID0gdHJ1ZQorfSk7Ciskbm9kZS0+cmVzdGFydDsKKworIyBB biBlcnJvciBtZXNzYWdlIHNob3VsZCBub3QgYmUgaXNzdWVkLgorb2soICEkbm9kZS0+bG9n X2NvbnRhaW5zKAorCQkicm9sZSBcIm5vbG9ncm9sZVwiIGlzIG5vdCBwZXJtaXR0ZWQgdG8g bG9nIGluIiwgJGxvZ19zdGFydCksCisJIm5vbG9ncm9sZSBhbGxvd2VkIHRvIGNvbm5lY3Qg aWYgQkdXT1JLRVJfQllQQVNTX1JPTEVMT0dJTkNIRUNLIGlzIHNldCIpOworCiBkb25lX3Rl c3RpbmcoKTsKKworIyByZXR1cm4gdGhlIHNpemUgb2YgbG9nZmlsZSBvZiAkbm9kZSBpbiBi eXRlcworc3ViIGdldF9sb2dfc2l6ZQoreworCW15ICgkbm9kZSkgPSBAXzsKKworCXJldHVy biAoc3RhdCAkbm9kZS0+bG9nZmlsZSlbN107Cit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL3dvcmtlcl9zcGkvd29ya2VyX3NwaS5jIGIvc3JjL3Rlc3QvbW9kdWxlcy93b3Jr ZXJfc3BpL3dvcmtlcl9zcGkuYwppbmRleCA5OGY4ZDQxOTRiLi5kMmNhOTlmMmM1IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3dvcmtlcl9zcGkvd29ya2VyX3NwaS5jCisrKyBi L3NyYy90ZXN0L21vZHVsZXMvd29ya2VyX3NwaS93b3JrZXJfc3BpLmMKQEAgLTUyLDYgKzUy LDggQEAgUEdETExFWFBPUlQgdm9pZCB3b3JrZXJfc3BpX21haW4oRGF0dW0gbWFpbl9hcmcp IHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOwogc3RhdGljIGludAl3b3JrZXJfc3BpX25hcHRp bWUgPSAxMDsKIHN0YXRpYyBpbnQJd29ya2VyX3NwaV90b3RhbF93b3JrZXJzID0gMjsKIHN0 YXRpYyBjaGFyICp3b3JrZXJfc3BpX2RhdGFiYXNlID0gTlVMTDsKK3N0YXRpYyBjaGFyICp3 b3JrZXJfc3BpX3JvbGUgPSBOVUxMOworc3RhdGljIGJvb2wgd29ya2VyX3NwaV9ieXBhc3Nf bG9naW5fY2hlY2sgPSBmYWxzZTsKIAogLyogdmFsdWUgY2FjaGVkLCBmZXRjaGVkIGZyb20g c2hhcmVkIG1lbW9yeSAqLwogc3RhdGljIHVpbnQzMiB3b3JrZXJfc3BpX3dhaXRfZXZlbnRf bWFpbiA9IDA7CkBAIC0xNTIsNyArMTU0LDEwIEBAIHdvcmtlcl9zcGlfbWFpbihEYXR1bSBt YWluX2FyZykKIAlCYWNrZ3JvdW5kV29ya2VyVW5ibG9ja1NpZ25hbHMoKTsKIAogCS8qIENv bm5lY3QgdG8gb3VyIGRhdGFiYXNlICovCi0JQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVD b25uZWN0aW9uKHdvcmtlcl9zcGlfZGF0YWJhc2UsIE5VTEwsIDApOworCWlmICh3b3JrZXJf c3BpX2J5cGFzc19sb2dpbl9jaGVjaykKKwkJQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVD b25uZWN0aW9uKHdvcmtlcl9zcGlfZGF0YWJhc2UsIHdvcmtlcl9zcGlfcm9sZSwgQkdXT1JL RVJfQllQQVNTX1JPTEVMT0dJTkNIRUNLKTsKKwllbHNlCisJCUJhY2tncm91bmRXb3JrZXJJ bml0aWFsaXplQ29ubmVjdGlvbih3b3JrZXJfc3BpX2RhdGFiYXNlLCB3b3JrZXJfc3BpX3Jv bGUsIDApOwogCiAJZWxvZyhMT0csICIlcyBpbml0aWFsaXplZCB3aXRoICVzLiVzIiwKIAkJ IE15Qmd3b3JrZXJFbnRyeS0+Ymd3X25hbWUsIHRhYmxlLT5zY2hlbWEsIHRhYmxlLT5uYW1l KTsKQEAgLTMxNiw2ICszMjEsMjQgQEAgX1BHX2luaXQodm9pZCkKIAkJCQkJCQkgICAwLAog CQkJCQkJCSAgIE5VTEwsIE5VTEwsIE5VTEwpOwogCisJRGVmaW5lQ3VzdG9tU3RyaW5nVmFy aWFibGUoIndvcmtlcl9zcGkucm9sZSIsCisJCQkJCQkJICAgIlJvbGUgdG8gY29ubmVjdCB3 aXRoLiIsCisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICAmd29ya2VyX3NwaV9yb2xlLAor CQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgUEdDX1NJR0hVUCwKKwkJCQkJCQkgICAwLAor CQkJCQkJCSAgIE5VTEwsIE5VTEwsIE5VTEwpOworCisJRGVmaW5lQ3VzdG9tQm9vbFZhcmlh YmxlKCJ3b3JrZXJfc3BpLmJ5cGFzc19sb2dpbl9jaGVjayIsCisJCQkJCQkJICJTaG91bGQg QkdXIGFsbG93cyB0byBjb25uZWN0IHdpdGggbm9uIGxvZ2luIHJvbGUuIiwKKwkJCQkJCQkg TlVMTCwKKwkJCQkJCQkgJndvcmtlcl9zcGlfYnlwYXNzX2xvZ2luX2NoZWNrLAorCQkJCQkJ CSBmYWxzZSwKKwkJCQkJCQkgUEdDX1NJR0hVUCwKKwkJCQkJCQkgMCwKKwkJCQkJCQkgTlVM TCwgTlVMTCwgTlVMTCk7CisKIAlpZiAoIXByb2Nlc3Nfc2hhcmVkX3ByZWxvYWRfbGlicmFy aWVzX2luX3Byb2dyZXNzKQogCQlyZXR1cm47CiAKLS0gCjIuMzQuMQoK --------------PKc3MSYPYyb6fdvEVr02Hgq4--