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 1sv4YG-00CGxy-RB for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Sep 2024 00:46:13 +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 1sv4YE-00ABUc-P2 for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Sep 2024 00:46:10 +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 1sv4YE-00ABUU-5w for pgsql-hackers@lists.postgresql.org; Mon, 30 Sep 2024 00:46:10 +0000 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sv4Y8-001hnY-E4 for pgsql-hackers@postgresql.org; Mon, 30 Sep 2024 00:46:08 +0000 Received: by mail-qk1-x734.google.com with SMTP id af79cd13be357-7acdd65fbceso323922385a.3 for ; Sun, 29 Sep 2024 17:46:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=postsubmeta.net; s=google; t=1727657163; x=1728261963; darn=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=QB0lYuq4OqR/+5mC0Tc9+7QJZMMGFP1YrbAinIZFnrM=; b=hY5bPGBen8HL47qSQdw9cRC+Nc1blhWF+dR12A56MxjHrbKHHSiBfaSaWpETFH3A17 lIFMMNVKS6KQS5vwvtWmnNBtwgyU7YJ6lNVTVkKR5ggwIPY426w6JBaRQESVgC2pUKaY j85HnG6VT2LGkYmNUw4tVGDSxbxCDeS4Dzj2JoI+8T/JaYd6hR4mPtTLmNNuio7Qzvgx h9PdL6u2wIqOi/h/TDZKLfSQlD8TztmB4pFqaPAbjKxElK48QSLsO1jOUU9hcx5jUXaj r6WFXrTHAwKyvg+knEsCKlhyyezW5RrOMutz4l9uGIPPtjtnn+rnCPl3dNqRxnql4cOb BLOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727657163; x=1728261963; 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=QB0lYuq4OqR/+5mC0Tc9+7QJZMMGFP1YrbAinIZFnrM=; b=V38cUsrdxCtzfW+HK18aVmxMVM+BWb97Yfv7N7DyPNJPlC07P5EG874ny1LTNDAGsM qXm9nWa4eqj4mjAi5vX04/WfUL+C+EU4l6uKN/5sncfNMwurbrEQmfO4LjhSNRHaJtJl owzoGaysNJCXYALe8nP2rzKqjs+NqSgKgQGKH2XAuRR90ZSB7SE3d0ampuEOTjgfAVLZ ymxBFas7vqTsnAc/zBp4WqET3OWFFDxkFku30D0Au2P46PnD6P+cf3xss7vO9tY+VN1k MNR4VKiIZYW3UbZ5Ndmn7Fj8Nmf32IU+f+w8IzQC0w7325t5G3n3kFi2bG5riPWy1odQ C2lA== X-Gm-Message-State: AOJu0YxPRsQbwnZiQTgToX/J2AqvyN9FxVTSOXu/4F0a/TgoiS8vRlTX KhHCraTJC3sFrQ+NMoNWAfExgkNmSOWeklGUYe/Ldv3psjA3+F7+OLMXpM2mCbfoTafNFx8oFqL vYnJfnQ== X-Google-Smtp-Source: AGHT+IH4lqlzhb/XKurepIfcTJUdQ8gqAovSp8eC1BernJkYOtn7GiNaTK/POfcvgMgW68OLTIAZWg== X-Received: by 2002:a05:620a:1aa8:b0:7a9:a219:17a2 with SMTP id af79cd13be357-7ae378bbccamr1927697785a.50.1727657162777; Sun, 29 Sep 2024 17:46:02 -0700 (PDT) Received: from [172.16.6.11] ([142.198.103.162]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7ae3782c69esm367077085a.92.2024.09.29.17.46.01 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 29 Sep 2024 17:46:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------LU9dEB5ki9LNjpqOgIzXCo85" Message-ID: Date: Sun, 29 Sep 2024 20:45:50 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Thomas Krennwallner Subject: pg_upgrade check for invalid databases To: pgsql-hackers@postgresql.org 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. --------------LU9dEB5ki9LNjpqOgIzXCo85 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, if a cluster contains invalid databases that we cannot connect to anymore, pg_upgrade would currently fail when trying to connect to the first encountered invalid database with Performing Consistency Checks ----------------------------- Checking cluster versions ok connection failure: connection to server on socket "/tmp/.s.PGSQL.50432" failed: FATAL: cannot connect to invalid database "foo" HINT: Use DROP DATABASE to drop invalid databases. Failure, exiting If there is more than one invalid database, we need to run pg_upgrade more than once (unless the user inspects pg_database). I attached two small patches for PG 17 and PG 18 (can be easily backported to all previous versions upon request). Instead of just failing to connect with an error, we collect all invalid databases in a report file invalid_databases.txt: Performing Consistency Checks ----------------------------- Checking cluster versions ok Checking for invalid databases fatal Your installation contains invalid databases as a consequence of interrupted DROP DATABASE. They are now marked as corrupted databases that cannot be connected to anymore. Consider removing them using DROP DATABASE ...; A list of invalid databases is in the file: /usr/local/pgsql/data/18/pg_upgrade_output.d/20240929T200559.707/invalid_databases.txt Failure, exiting Any thoughts on the proposed patches? --------------LU9dEB5ki9LNjpqOgIzXCo85 Content-Type: text/x-patch; charset=UTF-8; name="pg18-v1-0001-pg_upgrade-Add-check-for-invalid-databases.patch" Content-Disposition: attachment; filename*0="pg18-v1-0001-pg_upgrade-Add-check-for-invalid-databases.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBjNDRmNzIzYzAzMzU3M2ZhNWRhNzI3MjE1OTViYzEzNWEwMGUzY2JmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgS3Jlbm53YWxsbmVyIDx0ZWFrYXlAYWl2 ZW4uaW8+CkRhdGU6IEZyaSwgMjAgU2VwIDIwMjQgMTc6MzM6MDUgLTA0MDAKU3ViamVjdDog W1BBVENIXSBwZ191cGdyYWRlOiBBZGQgY2hlY2sgZm9yIGludmFsaWQgZGF0YWJhc2VzLgoK Q3VycmVudGx5LCBwZ191cGdyYWRlIGZhaWxzIHRvIGNvbm5lY3QgdG8gdGhlIGZpcnN0IGlu dmFsaWQgZGF0YWJhc2UKaXQgZW5jb3VudGVycyBpbiBnZXRfbG9hZGFibGVfbGlicmFyaWVz KCkgYW5kIHRoZW4gYWJvcnRzLiAgV2hpbGUgd2UKcHJpbnQgYSBmYXRhbCBtZXNzYWdlIHdp dGggYSBoaW50IHdoYXQgc2hvdWxkIGJlIGRvbmUsIHRoZSBvdXRwdXQgaXMKdGVyc2UgYW5k IGRvZXMgbm90IHJlcG9ydCBmdXJ0aGVyIGludmFsaWQgZGF0YWJhc2VzIHByZXNlbnQgaW4g YW4KaW5zdGFsbGF0aW9uLgoKSW5zdGVhZCBvZiBqdXN0IGV4aXRpbmcgb24gZmlyc3QgZXJy b3IsIHdlIGNvbGxlY3QgYWxsCnBnX2RhdGFiYXNlLmRhdGNvbm5saW1pdCB2YWx1ZXMgaW4g Z2V0X2RiX2luZm9zKCksIGlnbm9yZSBpbnZhbGlkCmRhdGFiYXNlcyBpbiBwcm9jZXNzX3Ns b3QoKSwgYW5kIHRoZW4gcGVyZm9ybSBjaGVja19mb3JfaW52YWxpZF9kYnMoKSwKd2hpY2gg Y29sbGVjdHMgYWxsIGludmFsaWQgZGF0YWJhc2VzIGluIGEgcmVwb3J0IGZpbGUKaW52YWxp ZF9kYXRhYmFzZXMudHh0LgotLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jICAgICAg ICAgICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iaW4vcGdfdXBn cmFkZS9pbmZvLmMgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5oICAgICAgICB8ICAyICsKIHNyYy9iaW4vcGdfdXBncmFkZS90LzAwMl9w Z191cGdyYWRlLnBsIHwgIDIgKy0KIHNyYy9iaW4vcGdfdXBncmFkZS90YXNrLmMgICAgICAg ICAgICAgIHwgMzIgKysrKysrKysrKystLQogNSBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS9jaGVjay5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMKaW5kZXggMTI3MzVhNDI2 OC4uYjViMGY3Y2Q2ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMK KysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j bGFzc19kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiZmVfdXRpbHMvc3RyaW5nX3V0 aWxzLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJwZ191cGdyYWRl LmgiCkBAIC0xOSw2ICsyMCw3IEBACiBzdGF0aWMgdm9pZCBjaGVja19uZXdfY2x1c3Rlcl9p c19lbXB0eSh2b2lkKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2lzX2luc3RhbGxfdXNlcihDbHVz dGVySW5mbyAqY2x1c3Rlcik7CiBzdGF0aWMgdm9pZCBjaGVja19wcm9wZXJfZGF0YWxsb3dj b25uKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKK3N0YXRpYyB2b2lkIGNoZWNrX2Zvcl9pbnZh bGlkX2RicyhDbHVzdGVySW5mbyAqY2x1c3Rlcik7CiBzdGF0aWMgdm9pZCBjaGVja19mb3Jf cHJlcGFyZWRfdHJhbnNhY3Rpb25zKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2 b2lkIGNoZWNrX2Zvcl9pc25fYW5kX2ludDhfcGFzc2luZ19taXNtYXRjaChDbHVzdGVySW5m byAqY2x1c3Rlcik7CiBzdGF0aWMgdm9pZCBjaGVja19mb3JfdXNlcl9kZWZpbmVkX3Bvc3Rm aXhfb3BzKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKQEAgLTU5OCw2ICs2MDAsMTMgQEAgY2hl Y2tfYW5kX2R1bXBfb2xkX2NsdXN0ZXIodm9pZCkKIAkgKi8KIAlnZXRfZGJfcmVsX2FuZF9z bG90X2luZm9zKCZvbGRfY2x1c3Rlcik7CiAKKwkvKgorCSAqIFZlcmlmeSB0aGF0IHRoZSBv bGQgY2x1c3RlciBkb2VzIG5vdCByZWZlcmVuY2UgaW52YWxpZCBkYXRhYmFzZXMuCisJICog Q29ubmVjdGlvbnMgdG8gc3VjaCBkYXRhYmFzZXMgYXJlIG5vdCBhbGxvd2VkIGFuZCBicmVh ayB0aGUgZm9sbG93aW5nCisJICogY2hlY2tzLgorCSAqLworCWNoZWNrX2Zvcl9pbnZhbGlk X2Ricygmb2xkX2NsdXN0ZXIpOworCiAJaW5pdF90YWJsZXNwYWNlcygpOwogCiAJZ2V0X2xv YWRhYmxlX2xpYnJhcmllcygpOwpAQCAtNjkxLDYgKzcwMCwxMyBAQCBjaGVja19uZXdfY2x1 c3Rlcih2b2lkKQogewogCWdldF9kYl9yZWxfYW5kX3Nsb3RfaW5mb3MoJm5ld19jbHVzdGVy KTsKIAorCS8qCisJICogVmVyaWZ5IHRoYXQgdGhlIG5ldyBjbHVzdGVyIGRvZXMgbm90IHJl ZmVyZW5jZSBpbnZhbGlkIGRhdGFiYXNlcy4KKwkgKiBDb25uZWN0aW9ucyB0byBzdWNoIGRh dGFiYXNlcyBhcmUgbm90IGFsbG93ZWQgYW5kIGJyZWFrIHRoZSBmb2xsb3dpbmcKKwkgKiBj aGVja3MuCisJICovCisJY2hlY2tfZm9yX2ludmFsaWRfZGJzKCZuZXdfY2x1c3Rlcik7CisK IAljaGVja19uZXdfY2x1c3Rlcl9pc19lbXB0eSgpOwogCiAJY2hlY2tfbG9hZGFibGVfbGli cmFyaWVzKCk7CkBAIC0xMDg3LDYgKzExMDMsNTIgQEAgY2hlY2tfaXNfaW5zdGFsbF91c2Vy KENsdXN0ZXJJbmZvICpjbHVzdGVyKQogCWNoZWNrX29rKCk7CiB9CiAKKy8qCisgKgljaGVj a19mb3JfaW52YWxpZF9kYnMKKyAqCisgKglFbnN1cmUgdGhhdCBhbGwgZGF0YWJhc2VzIGFy ZSB2YWxpZCBhcyBjb25uZWN0aW9ucyB0byBpbnZhbGlkIGRhdGFiYXNlcworICoJYXJlIG5v dCBhbGxvd2VkLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfZm9yX2ludmFsaWRfZGJzKENs dXN0ZXJJbmZvICpjbHVzdGVyKQoreworCWludAkJCWRibnVtOworCUZJTEUJICAgKnNjcmlw dCA9IE5VTEw7CisJY2hhcgkJb3V0cHV0X3BhdGhbTUFYUEdQQVRIXTsKKworCXByZXBfc3Rh dHVzKCJDaGVja2luZyBmb3IgaW52YWxpZCBkYXRhYmFzZXMiKTsKKworCXNucHJpbnRmKG91 dHB1dF9wYXRoLCBzaXplb2Yob3V0cHV0X3BhdGgpLCAiJXMvJXMiLAorCQkJIGxvZ19vcHRz LmJhc2VkaXIsCisJCQkgImludmFsaWRfZGF0YWJhc2VzLnR4dCIpOworCisJZm9yIChkYm51 bSA9IDA7IGRibnVtIDwgY2x1c3Rlci0+ZGJhcnIubmRiczsgZGJudW0rKykKKwl7CisJCURi SW5mbwkgICAqYWN0aXZlX2RiID0gJmNsdXN0ZXItPmRiYXJyLmRic1tkYm51bV07CisKKwkJ aWYgKGFjdGl2ZV9kYi0+ZGJfY29ubmxpbWl0ID09IERBVENPTk5MSU1JVF9JTlZBTElEX0RC KQorCQl7CisJCQlpZiAoc2NyaXB0ID09IE5VTEwgJiYgKHNjcmlwdCA9IGZvcGVuX3ByaXYo b3V0cHV0X3BhdGgsICJ3IikpID09IE5VTEwpCisJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBv cGVuIGZpbGUgXCIlc1wiOiAlbSIsIG91dHB1dF9wYXRoKTsKKwkJCWZwcmludGYoc2NyaXB0 LCAiJXNcbiIsIGFjdGl2ZV9kYi0+ZGJfbmFtZSk7CisJCX0KKwl9CisKKwlpZiAoc2NyaXB0 KQorCXsKKwkJZmNsb3NlKHNjcmlwdCk7CisJCXBnX2xvZyhQR19SRVBPUlQsICJmYXRhbCIp OworCQlwZ19mYXRhbCgiWW91ciBpbnN0YWxsYXRpb24gY29udGFpbnMgaW52YWxpZCBkYXRh YmFzZXMgYXMgYSBjb25zZXF1ZW5jZSBvZlxuIgorCQkJCSAiaW50ZXJydXB0ZWQgRFJPUCBE QVRBQkFTRS4gIFRoZXkgYXJlIG5vdyBtYXJrZWQgYXMgY29ycnVwdGVkIGRhdGFiYXNlc1xu IgorCQkJCSAidGhhdCBjYW5ub3QgYmUgY29ubmVjdGVkIHRvIGFueW1vcmUuICBDb25zaWRl ciByZW1vdmluZyB0aGVtIHVzaW5nXG4iCisJCQkJICIgICAgRFJPUCBEQVRBQkFTRSAuLi47 XG4iCisJCQkJICJBIGxpc3Qgb2YgaW52YWxpZCBkYXRhYmFzZXMgaXMgaW4gdGhlIGZpbGU6 XG4iCisJCQkJICIgICAgJXMiLCBvdXRwdXRfcGF0aCk7CisJfQorCWVsc2UKKwkJY2hlY2tf b2soKTsKK30KKwogCiAvKgogICoJY2hlY2tfcHJvcGVyX2RhdGFsbG93Y29ubgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9p bmZvLmMKaW5kZXggZjgzZGVkODljYi4uMGUyYmQ0MGQxYSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ191cGdyYWRlL2luZm8uYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCkBA IC00MDksMTIgKzQwOSwxMyBAQCBnZXRfZGJfaW5mb3MoQ2x1c3RlckluZm8gKmNsdXN0ZXIp CiAJaW50CQkJdHVwbnVtOwogCURiSW5mbwkgICAqZGJpbmZvczsKIAlpbnQJCQlpX2RhdG5h bWUsCisJCQkJaV9kYXRjb25ubGltaXQsCiAJCQkJaV9vaWQsCiAJCQkJaV9zcGNsb2NhdGlv bjsKIAljaGFyCQlxdWVyeVtRVUVSWV9BTExPQ107CiAKIAlzbnByaW50ZihxdWVyeSwgc2l6 ZW9mKHF1ZXJ5KSwKLQkJCSAiU0VMRUNUIGQub2lkLCBkLmRhdG5hbWUsIGQuZW5jb2Rpbmcs IGQuZGF0Y29sbGF0ZSwgZC5kYXRjdHlwZSwgIik7CisJCQkgIlNFTEVDVCBkLm9pZCwgZC5k YXRuYW1lLCBkLmVuY29kaW5nLCBkLmRhdGNvbGxhdGUsIGQuZGF0Y3R5cGUsIGQuZGF0Y29u bmxpbWl0LCAiKTsKIAlpZiAoR0VUX01BSk9SX1ZFUlNJT04oY2x1c3Rlci0+bWFqb3JfdmVy c2lvbikgPj0gMTcwMCkKIAkJc25wcmludGYocXVlcnkgKyBzdHJsZW4ocXVlcnkpLCBzaXpl b2YocXVlcnkpIC0gc3RybGVuKHF1ZXJ5KSwKIAkJCQkgImRhdGxvY3Byb3ZpZGVyLCBkYXRs b2NhbGUsICIpOwpAQCAtNDM2LDYgKzQzNyw3IEBAIGdldF9kYl9pbmZvcyhDbHVzdGVySW5m byAqY2x1c3RlcikKIAogCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOwogCWlfZGF0 bmFtZSA9IFBRZm51bWJlcihyZXMsICJkYXRuYW1lIik7CisJaV9kYXRjb25ubGltaXQgPSBQ UWZudW1iZXIocmVzLCAiZGF0Y29ubmxpbWl0Iik7CiAJaV9zcGNsb2NhdGlvbiA9IFBRZm51 bWJlcihyZXMsICJzcGNsb2NhdGlvbiIpOwogCiAJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsK QEAgLTQ0NSw2ICs0NDcsNyBAQCBnZXRfZGJfaW5mb3MoQ2x1c3RlckluZm8gKmNsdXN0ZXIp CiAJewogCQlkYmluZm9zW3R1cG51bV0uZGJfb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCB0dXBudW0sIGlfb2lkKSk7CiAJCWRiaW5mb3NbdHVwbnVtXS5kYl9uYW1lID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCB0dXBudW0sIGlfZGF0bmFtZSkpOworCQlkYmluZm9zW3R1 cG51bV0uZGJfY29ubmxpbWl0ID0gYXRvaShQUWdldHZhbHVlKHJlcywgdHVwbnVtLCBpX2Rh dGNvbm5saW1pdCkpOwogCQlzbnByaW50ZihkYmluZm9zW3R1cG51bV0uZGJfdGFibGVzcGFj ZSwgc2l6ZW9mKGRiaW5mb3NbdHVwbnVtXS5kYl90YWJsZXNwYWNlKSwgIiVzIiwKIAkJCQkg UFFnZXR2YWx1ZShyZXMsIHR1cG51bSwgaV9zcGNsb2NhdGlvbikpOwogCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oCmluZGV4IDUzZjY5M2MyZDQuLmIxYzc3Y2E2ZGUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191 cGdyYWRlL3BnX3VwZ3JhZGUuaApAQCAtMTk0LDYgKzE5NCw4IEBAIHR5cGVkZWYgc3RydWN0 CiAJY2hhcgkgICAqZGJfbmFtZTsJCS8qIGRhdGFiYXNlIG5hbWUgKi8KIAljaGFyCQlkYl90 YWJsZXNwYWNlW01BWFBHUEFUSF07CS8qIGRhdGFiYXNlIGRlZmF1bHQgdGFibGVzcGFjZQog CQkJCQkJCQkJCQkgKiBwYXRoICovCisJaW50CQkJZGJfY29ubmxpbWl0OwkvKiBkYXRhYmFz ZSBpbnZhbGlkIGlmIHNldCB0bworCQkJCQkJCQkgKiBEQVRDT05OTElNSVRfSU5WQUxJRF9E QiAqLwogCVJlbEluZm9BcnIJcmVsX2FycjsJCS8qIGFycmF5IG9mIGFsbCB1c2VyIHJlbGlu Zm9zICovCiAJTG9naWNhbFNsb3RJbmZvQXJyIHNsb3RfYXJyOwkvKiBhcnJheSBvZiBhbGwg TG9naWNhbFNsb3RJbmZvICovCiB9IERiSW5mbzsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dXBncmFkZS90LzAwMl9wZ191cGdyYWRlLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAy X3BnX3VwZ3JhZGUucGwKaW5kZXggMTdhZjJjZTYxZS4uYzdkYTZkMjdiMiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAyX3BnX3VwZ3JhZGUucGwKKysrIGIvc3JjL2Jp bi9wZ191cGdyYWRlL3QvMDAyX3BnX3VwZ3JhZGUucGwKQEAgLTQyNCw3ICs0MjQsNyBAQCBT S0lQOgogCQkJJG1vZGUsICctLWNoZWNrJywKIAkJXSwKIAkJMSwKLQkJW3FyL2ludmFsaWQv XSwgICAgIyBwZ191cGdyYWRlIHByaW50cyBlcnJvcnMgb24gc3Rkb3V0IDooCisJCVtxci9p bnZhbGlkX2RhdGFiYXNlc1wudHh0L10sICAgICMgcGdfdXBncmFkZSBwcmludHMgZXJyb3Jz IG9uIHN0ZG91dCA6KAogCQlbcXIvXiQvXSwKIAkJJ2ludmFsaWQgZGF0YWJhc2UgY2F1c2Vz IGZhaWx1cmUnKTsKIAlybXRyZWUoJG5ld25vZGUtPmRhdGFfZGlyIC4gIi9wZ191cGdyYWRl X291dHB1dC5kIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvdGFzay5jIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3Rhc2suYwppbmRleCBiYTE3MjZjMjVlLi45MGRlMjA3MGEx IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdGFzay5jCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS90YXNrLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKIAogI2luY2x1ZGUgInBvc3Rn cmVzX2ZlLmgiCiAKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVk ZSAiY29tbW9uL2Nvbm5lY3QuaCIKICNpbmNsdWRlICJmZV91dGlscy9zdHJpbmdfdXRpbHMu aCIKICNpbmNsdWRlICJwZ191cGdyYWRlLmgiCkBAIC0yMjgsNiArMjI5LDE4IEBAIHByb2Nl c3NfcXVlcnlfcmVzdWx0KGNvbnN0IENsdXN0ZXJJbmZvICpjbHVzdGVyLCBVcGdyYWRlVGFz a1Nsb3QgKnNsb3QsCiAJCVBRY2xlYXIocmVzKTsKIH0KIAorLyoKKyAqIENsb3NlcyB0aGUg Y29ubmVjdGlvbiBtYW5hZ2VkIGJ5IHRoZSBzbG90IGFuZCBmcmVlcyB0aGUgc2xvdCBmb3Ig aW1tZWRpYXRlIHJldXNlLgorICovCitzdGF0aWMgdm9pZAorZnJlZV9zbG90KFVwZ3JhZGVU YXNrU2xvdCAqc2xvdCkKK3sKKwlpZiAoc2xvdC0+Y29ubikKKwkJUFFmaW5pc2goc2xvdC0+ Y29ubik7CisJbWVtc2V0KHNsb3QsIDAsIHNpemVvZihVcGdyYWRlVGFza1Nsb3QpKTsKKwlz bG90LT5yZWFkeSA9IHRydWU7Cit9CisKIC8qCiAgKiBBZHZhbmNlcyB0aGUgc3RhdGUgbWFj aGluZSBmb3IgYSBnaXZlbiBzbG90IGFzIG5lY2Vzc2FyeS4KICAqLwpAQCAtMjU1LDYgKzI2 OCwyMSBAQCBwcm9jZXNzX3Nsb3QoY29uc3QgQ2x1c3RlckluZm8gKmNsdXN0ZXIsIFVwZ3Jh ZGVUYXNrU2xvdCAqc2xvdCwgY29uc3QgVXBncmFkZVRhcwogCQkJICogbmV3IGNvbm5lY3Rp b24uCiAJCQkgKi8KIAkJCXNsb3QtPmRiX2lkeCA9IGRic19wcm9jZXNzaW5nKys7CisKKwkJ CS8qCisJCQkgKiBEbyBub3QgdHJ5IHRvIGNvbm5lY3QgdG8gaW52YWxpZCBkYXRhYmFzZXMg aGVyZSwKKwkJCSAqIGNoZWNrX2Zvcl9pbnZhbGlkX2RicygpIHdpbGwgcmVwb3J0IHRoZW0g bGF0ZXIuIFNraXAgdGhpcworCQkJICogZGF0YWJhc2UgaW5zdGVhZCwgZnJlZSB0aGUgc2xv dCBhbmQgc3RhcnQgaW5pdGlhdGluZyB0aGUgbmV4dAorCQkJICogY29ubmVjdGlvbi4KKwkJ CSAqLworCQkJaWYgKGNsdXN0ZXItPmRiYXJyLmRic1tzbG90LT5kYl9pZHhdLmRiX2Nvbm5s aW1pdCA9PSBEQVRDT05OTElNSVRfSU5WQUxJRF9EQikKKwkJCXsKKwkJCQlkYnNfY29tcGxl dGUrKzsKKwkJCQlmcmVlX3Nsb3Qoc2xvdCk7CisJCQkJcHJvY2Vzc19zbG90KGNsdXN0ZXIs IHNsb3QsIHRhc2spOworCQkJCXJldHVybjsKKwkJCX0KKwogCQkJc2xvdC0+c3RhdGUgPSBD T05ORUNUSU5HOwogCQkJc3RhcnRfY29ubihjbHVzdGVyLCBzbG90KTsKIApAQCAtMzE0LDkg KzM0Miw3IEBAIHByb2Nlc3Nfc2xvdChjb25zdCBDbHVzdGVySW5mbyAqY2x1c3RlciwgVXBn cmFkZVRhc2tTbG90ICpzbG90LCBjb25zdCBVcGdyYWRlVGFzCiAJCQkgKiB0aHJvdWdoIHRo ZSBzbG90cy4KIAkJCSAqLwogCQkJZGJzX2NvbXBsZXRlKys7Ci0JCQlQUWZpbmlzaChzbG90 LT5jb25uKTsKLQkJCW1lbXNldChzbG90LCAwLCBzaXplb2YoVXBncmFkZVRhc2tTbG90KSk7 Ci0JCQlzbG90LT5yZWFkeSA9IHRydWU7CisJCQlmcmVlX3Nsb3Qoc2xvdCk7CiAKIAkJCXBy b2Nlc3Nfc2xvdChjbHVzdGVyLCBzbG90LCB0YXNrKTsKIAotLSAKMi40Ni4xCgo= --------------LU9dEB5ki9LNjpqOgIzXCo85 Content-Type: text/x-patch; charset=UTF-8; name="pg17-v1-0001-pg_upgrade-Add-check-for-invalid-databases.patch" Content-Disposition: attachment; filename*0="pg17-v1-0001-pg_upgrade-Add-check-for-invalid-databases.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBiZDZkYTFiYmJmZTIwN2U5MWM3YWQ0ZmZmMDA4ZGE3MGE5OWQ2ODRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgS3Jlbm53YWxsbmVyIDx0ZWFrYXlAYWl2 ZW4uaW8+CkRhdGU6IFRodSwgMTIgU2VwIDIwMjQgMTY6Mjk6MDYgLTA0MDAKU3ViamVjdDog W1BBVENIXSBwZ191cGdyYWRlOiBBZGQgY2hlY2sgZm9yIGludmFsaWQgZGF0YWJhc2VzLgoK Q3VycmVudGx5LCBwZ191cGdyYWRlIGZhaWxzIHRvIGNvbm5lY3QgdG8gdGhlIGZpcnN0IGlu dmFsaWQgZGF0YWJhc2UKaXQgZW5jb3VudGVycyBpbiBnZXRfbG9hZGFibGVfbGlicmFyaWVz KCkgYW5kIHRoZW4gYWJvcnRzLiAgV2hpbGUgd2UKcHJpbnQgYSBmYXRhbCBtZXNzYWdlIHdp dGggYSBoaW50IHdoYXQgc2hvdWxkIGJlIGRvbmUsIHRoZSBvdXRwdXQgaXMKdGVyc2UgYW5k IGRvZXMgbm90IHJlcG9ydCBmdXJ0aGVyIGludmFsaWQgZGF0YWJhc2VzIHByZXNlbnQgaW4g YW4KaW5zdGFsbGF0aW9uLgoKSW5zdGVhZCBvZiBqdXN0IGV4aXRpbmcgb24gZmlyc3QgZXJy b3IsIHdlIGNvbGxlY3QgYWxsCnBnX2RhdGFiYXNlLmRhdGNvbm5saW1pdCB2YWx1ZXMgaW4g Z2V0X2RiX2luZm9zKCksIGlnbm9yZSBpbnZhbGlkCmRhdGFiYXNlcyBpbiBnZXRfZGJfcmVs X2FuZF9zbG90X2luZm9zKCksIGFuZCB0aGVuIHBlcmZvcm0KY2hlY2tfZm9yX2ludmFsaWRf ZGJzKCksIHdoaWNoIGNvbGxlY3RzIGFsbCBpbnZhbGlkIGRhdGFiYXNlcyBpbiBhCnJlcG9y dCBmaWxlIGludmFsaWRfZGF0YWJhc2VzLnR4dC4KLS0tCiBzcmMvYmluL3BnX3VwZ3JhZGUv Y2hlY2suYyAgICAgICAgICAgICB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrCiBz cmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jICAgICAgICAgICAgICB8IDEzICsrKysrLQogc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAgICAgICAgfCAgMiArCiBzcmMvYmluL3Bn X3VwZ3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbCB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQs IDc3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ191cGdyYWRlL2NoZWNrLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYwppbmRl eCAxY2Y4NGNjMWJiLi5kNTZlYTUyYzI3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvY2hlY2suYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYwpAQCAtMTIsNiAr MTIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX2NsYXNzX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJmZV91dGls cy9zdHJpbmdfdXRpbHMuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgogI2luY2x1ZGUg InBnX3VwZ3JhZGUuaCIKQEAgLTE5LDYgKzIwLDcgQEAKIHN0YXRpYyB2b2lkIGNoZWNrX25l d19jbHVzdGVyX2lzX2VtcHR5KHZvaWQpOwogc3RhdGljIHZvaWQgY2hlY2tfaXNfaW5zdGFs bF91c2VyKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNrX3Byb3Bl cl9kYXRhbGxvd2Nvbm4oQ2x1c3RlckluZm8gKmNsdXN0ZXIpOworc3RhdGljIHZvaWQgY2hl Y2tfZm9yX2ludmFsaWRfZGJzKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lk IGNoZWNrX2Zvcl9wcmVwYXJlZF90cmFuc2FjdGlvbnMoQ2x1c3RlckluZm8gKmNsdXN0ZXIp Owogc3RhdGljIHZvaWQgY2hlY2tfZm9yX2lzbl9hbmRfaW50OF9wYXNzaW5nX21pc21hdGNo KENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl91c2VyX2Rl ZmluZWRfcG9zdGZpeF9vcHMoQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwpAQCAtNTg2LDYgKzU4 OCwxMyBAQCBjaGVja19hbmRfZHVtcF9vbGRfY2x1c3Rlcihib29sIGxpdmVfY2hlY2spCiAJ ICovCiAJZ2V0X2RiX3JlbF9hbmRfc2xvdF9pbmZvcygmb2xkX2NsdXN0ZXIsIGxpdmVfY2hl Y2spOwogCisJLyoKKwkgKiBWZXJpZnkgdGhhdCB0aGUgb2xkIGNsdXN0ZXIgZG9lcyBub3Qg cmVmZXJlbmNlIGludmFsaWQgZGF0YWJhc2VzLgorCSAqIENvbm5lY3Rpb25zIHRvIHN1Y2gg ZGF0YWJhc2VzIGFyZSBub3QgYWxsb3dlZCBhbmQgYnJlYWsgdGhlIGZvbGxvd2luZworCSAq IGNoZWNrcy4KKwkgKi8KKwljaGVja19mb3JfaW52YWxpZF9kYnMoJm9sZF9jbHVzdGVyKTsK KwogCWluaXRfdGFibGVzcGFjZXMoKTsKIAogCWdldF9sb2FkYWJsZV9saWJyYXJpZXMoKTsK QEAgLTY3OSw2ICs2ODgsMTMgQEAgY2hlY2tfbmV3X2NsdXN0ZXIodm9pZCkKIHsKIAlnZXRf ZGJfcmVsX2FuZF9zbG90X2luZm9zKCZuZXdfY2x1c3RlciwgZmFsc2UpOwogCisJLyoKKwkg KiBWZXJpZnkgdGhhdCB0aGUgbmV3IGNsdXN0ZXIgZG9lcyBub3QgcmVmZXJlbmNlIGludmFs aWQgZGF0YWJhc2VzLgorCSAqIENvbm5lY3Rpb25zIHRvIHN1Y2ggZGF0YWJhc2VzIGFyZSBu b3QgYWxsb3dlZCBhbmQgYnJlYWsgdGhlIGZvbGxvd2luZworCSAqIGNoZWNrcy4KKwkgKi8K KwljaGVja19mb3JfaW52YWxpZF9kYnMoJm5ld19jbHVzdGVyKTsKKwogCWNoZWNrX25ld19j bHVzdGVyX2lzX2VtcHR5KCk7CiAKIAljaGVja19sb2FkYWJsZV9saWJyYXJpZXMoKTsKQEAg LTEwNzUsNiArMTA5MSw1MiBAQCBjaGVja19pc19pbnN0YWxsX3VzZXIoQ2x1c3RlckluZm8g KmNsdXN0ZXIpCiAJY2hlY2tfb2soKTsKIH0KIAorLyoKKyAqCWNoZWNrX2Zvcl9pbnZhbGlk X2RicworICoKKyAqCUVuc3VyZSB0aGF0IGFsbCBkYXRhYmFzZXMgYXJlIHZhbGlkIGFzIGNv bm5lY3Rpb25zIHRvIGludmFsaWQgZGF0YWJhc2VzCisgKglhcmUgbm90IGFsbG93ZWQuCisg Ki8KK3N0YXRpYyB2b2lkCitjaGVja19mb3JfaW52YWxpZF9kYnMoQ2x1c3RlckluZm8gKmNs dXN0ZXIpCit7CisJaW50CQkJZGJudW07CisJRklMRQkgICAqc2NyaXB0ID0gTlVMTDsKKwlj aGFyCQlvdXRwdXRfcGF0aFtNQVhQR1BBVEhdOworCisJcHJlcF9zdGF0dXMoIkNoZWNraW5n IGZvciBpbnZhbGlkIGRhdGFiYXNlcyIpOworCisJc25wcmludGYob3V0cHV0X3BhdGgsIHNp emVvZihvdXRwdXRfcGF0aCksICIlcy8lcyIsCisJCQkgbG9nX29wdHMuYmFzZWRpciwKKwkJ CSAiaW52YWxpZF9kYXRhYmFzZXMudHh0Iik7CisKKwlmb3IgKGRibnVtID0gMDsgZGJudW0g PCBjbHVzdGVyLT5kYmFyci5uZGJzOyBkYm51bSsrKQorCXsKKwkJRGJJbmZvCSAgICphY3Rp dmVfZGIgPSAmY2x1c3Rlci0+ZGJhcnIuZGJzW2RibnVtXTsKKworCQlpZiAoYWN0aXZlX2Ri LT5kYl9jb25ubGltaXQgPT0gREFUQ09OTkxJTUlUX0lOVkFMSURfREIpCisJCXsKKwkJCWlm IChzY3JpcHQgPT0gTlVMTCAmJiAoc2NyaXB0ID0gZm9wZW5fcHJpdihvdXRwdXRfcGF0aCwg InciKSkgPT0gTlVMTCkKKwkJCQlwZ19mYXRhbCgiY291bGQgbm90IG9wZW4gZmlsZSBcIiVz XCI6ICVtIiwgb3V0cHV0X3BhdGgpOworCQkJZnByaW50ZihzY3JpcHQsICIlc1xuIiwgYWN0 aXZlX2RiLT5kYl9uYW1lKTsKKwkJfQorCX0KKworCWlmIChzY3JpcHQpCisJeworCQlmY2xv c2Uoc2NyaXB0KTsKKwkJcGdfbG9nKFBHX1JFUE9SVCwgImZhdGFsIik7CisJCXBnX2ZhdGFs KCJZb3VyIGluc3RhbGxhdGlvbiBjb250YWlucyBpbnZhbGlkIGRhdGFiYXNlcyBhcyBhIGNv bnNlcXVlbmNlIG9mXG4iCisJCQkJICJpbnRlcnJ1cHRlZCBEUk9QIERBVEFCQVNFLiAgVGhl eSBhcmUgbm93IG1hcmtlZCBhcyBjb3JydXB0ZWQgZGF0YWJhc2VzXG4iCisJCQkJICJ0aGF0 IGNhbm5vdCBiZSBjb25uZWN0ZWQgdG8gYW55bW9yZS4gIENvbnNpZGVyIHJlbW92aW5nIHRo ZW0gdXNpbmdcbiIKKwkJCQkgIiAgICBEUk9QIERBVEFCQVNFIC4uLjtcbiIKKwkJCQkgIkEg bGlzdCBvZiBpbnZhbGlkIGRhdGFiYXNlcyBpcyBpbiB0aGUgZmlsZTpcbiIKKwkJCQkgIiAg ICAlcyIsIG91dHB1dF9wYXRoKTsKKwl9CisJZWxzZQorCQljaGVja19vaygpOworfQorCiAK IC8qCiAgKgljaGVja19wcm9wZXJfZGF0YWxsb3djb25uCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX3VwZ3JhZGUvaW5mby5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYwppbmRleCA1 YzA0MWZhMDZlLi44NzFiMWZjMzBhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUv aW5mby5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKQEAgLTExLDYgKzExLDcg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jbGFzc19kLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2luY2x1 ZGUgInBnX3VwZ3JhZGUuaCIKIAogc3RhdGljIHZvaWQgY3JlYXRlX3JlbF9maWxlbmFtZV9t YXAoY29uc3QgY2hhciAqb2xkX2RhdGEsIGNvbnN0IGNoYXIgKm5ld19kYXRhLApAQCAtMjkw LDYgKzI5MSwxMyBAQCBnZXRfZGJfcmVsX2FuZF9zbG90X2luZm9zKENsdXN0ZXJJbmZvICpj bHVzdGVyLCBib29sIGxpdmVfY2hlY2spCiAJewogCQlEYkluZm8JICAgKnBEYkluZm8gPSAm Y2x1c3Rlci0+ZGJhcnIuZGJzW2RibnVtXTsKIAorCQkvKgorCQkgKiBEbyBub3QgdHJ5IHRv IGNvbm5lY3QgdG8gaW52YWxpZCBkYXRhYmFzZXMgaGVyZSwKKwkJICogY2hlY2tfZm9yX2lu dmFsaWRfZGJzKCkgd2lsbCByZXBvcnQgdGhlbSBsYXRlci4KKwkJICovCisJCWlmIChwRGJJ bmZvLT5kYl9jb25ubGltaXQgPT0gREFUQ09OTkxJTUlUX0lOVkFMSURfREIpCisJCQljb250 aW51ZTsKKwogCQlnZXRfcmVsX2luZm9zKGNsdXN0ZXIsIHBEYkluZm8pOwogCiAJCWlmIChj bHVzdGVyID09ICZvbGRfY2x1c3RlcikKQEAgLTM4NCwxMiArMzkyLDEzIEBAIGdldF9kYl9p bmZvcyhDbHVzdGVySW5mbyAqY2x1c3RlcikKIAlpbnQJCQl0dXBudW07CiAJRGJJbmZvCSAg ICpkYmluZm9zOwogCWludAkJCWlfZGF0bmFtZSwKKwkJCQlpX2RhdGNvbm5saW1pdCwKIAkJ CQlpX29pZCwKIAkJCQlpX3NwY2xvY2F0aW9uOwogCWNoYXIJCXF1ZXJ5W1FVRVJZX0FMTE9D XTsKIAogCXNucHJpbnRmKHF1ZXJ5LCBzaXplb2YocXVlcnkpLAotCQkJICJTRUxFQ1QgZC5v aWQsIGQuZGF0bmFtZSwgZC5lbmNvZGluZywgZC5kYXRjb2xsYXRlLCBkLmRhdGN0eXBlLCAi KTsKKwkJCSAiU0VMRUNUIGQub2lkLCBkLmRhdG5hbWUsIGQuZW5jb2RpbmcsIGQuZGF0Y29s bGF0ZSwgZC5kYXRjdHlwZSwgZC5kYXRjb25ubGltaXQsICIpOwogCWlmIChHRVRfTUFKT1Jf VkVSU0lPTihjbHVzdGVyLT5tYWpvcl92ZXJzaW9uKSA+PSAxNzAwKQogCQlzbnByaW50Zihx dWVyeSArIHN0cmxlbihxdWVyeSksIHNpemVvZihxdWVyeSkgLSBzdHJsZW4ocXVlcnkpLAog CQkJCSAiZGF0bG9jcHJvdmlkZXIsIGRhdGxvY2FsZSwgIik7CkBAIC00MTEsNiArNDIwLDcg QEAgZ2V0X2RiX2luZm9zKENsdXN0ZXJJbmZvICpjbHVzdGVyKQogCiAJaV9vaWQgPSBQUWZu dW1iZXIocmVzLCAib2lkIik7CiAJaV9kYXRuYW1lID0gUFFmbnVtYmVyKHJlcywgImRhdG5h bWUiKTsKKwlpX2RhdGNvbm5saW1pdCA9IFBRZm51bWJlcihyZXMsICJkYXRjb25ubGltaXQi KTsKIAlpX3NwY2xvY2F0aW9uID0gUFFmbnVtYmVyKHJlcywgInNwY2xvY2F0aW9uIik7CiAK IAludHVwcyA9IFBRbnR1cGxlcyhyZXMpOwpAQCAtNDIwLDYgKzQzMCw3IEBAIGdldF9kYl9p bmZvcyhDbHVzdGVySW5mbyAqY2x1c3RlcikKIAl7CiAJCWRiaW5mb3NbdHVwbnVtXS5kYl9v aWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIHR1cG51bSwgaV9vaWQpKTsKIAkJZGJpbmZv c1t0dXBudW1dLmRiX25hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHR1cG51bSwg aV9kYXRuYW1lKSk7CisJCWRiaW5mb3NbdHVwbnVtXS5kYl9jb25ubGltaXQgPSBhdG9pKFBR Z2V0dmFsdWUocmVzLCB0dXBudW0sIGlfZGF0Y29ubmxpbWl0KSk7CiAJCXNucHJpbnRmKGRi aW5mb3NbdHVwbnVtXS5kYl90YWJsZXNwYWNlLCBzaXplb2YoZGJpbmZvc1t0dXBudW1dLmRi X3RhYmxlc3BhY2UpLCAiJXMiLAogCQkJCSBQUWdldHZhbHVlKHJlcywgdHVwbnVtLCBpX3Nw Y2xvY2F0aW9uKSk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaCBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXggZTJiOTli NDlmYS4uZWQ1ZDQ1ZmEwNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC0xOTUs NiArMTk1LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAljaGFyCSAgICpkYl9uYW1lOwkJLyogZGF0 YWJhc2UgbmFtZSAqLwogCWNoYXIJCWRiX3RhYmxlc3BhY2VbTUFYUEdQQVRIXTsJLyogZGF0 YWJhc2UgZGVmYXVsdCB0YWJsZXNwYWNlCiAJCQkJCQkJCQkJCSAqIHBhdGggKi8KKwlpbnQJ CQlkYl9jb25ubGltaXQ7CS8qIGRhdGFiYXNlIGludmFsaWQgaWYgc2V0IHRvCisJCQkJCQkJ CSAqIERBVENPTk5MSU1JVF9JTlZBTElEX0RCICovCiAJUmVsSW5mb0FycglyZWxfYXJyOwkJ LyogYXJyYXkgb2YgYWxsIHVzZXIgcmVsaW5mb3MgKi8KIAlMb2dpY2FsU2xvdEluZm9BcnIg c2xvdF9hcnI7CS8qIGFycmF5IG9mIGFsbCBMb2dpY2FsU2xvdEluZm8gKi8KIH0gRGJJbmZv OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAyX3BnX3VwZ3JhZGUucGwg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbAppbmRleCAxN2FmMmNl NjFlLi5jN2RhNmQyN2IyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJf cGdfdXBncmFkZS5wbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJfcGdfdXBncmFk ZS5wbApAQCAtNDI0LDcgKzQyNCw3IEBAIFNLSVA6CiAJCQkkbW9kZSwgJy0tY2hlY2snLAog CQldLAogCQkxLAotCQlbcXIvaW52YWxpZC9dLCAgICAjIHBnX3VwZ3JhZGUgcHJpbnRzIGVy cm9ycyBvbiBzdGRvdXQgOigKKwkJW3FyL2ludmFsaWRfZGF0YWJhc2VzXC50eHQvXSwgICAg IyBwZ191cGdyYWRlIHByaW50cyBlcnJvcnMgb24gc3Rkb3V0IDooCiAJCVtxci9eJC9dLAog CQknaW52YWxpZCBkYXRhYmFzZSBjYXVzZXMgZmFpbHVyZScpOwogCXJtdHJlZSgkbmV3bm9k ZS0+ZGF0YV9kaXIgLiAiL3BnX3VwZ3JhZGVfb3V0cHV0LmQiKTsKLS0gCjIuNDYuMQoK --------------LU9dEB5ki9LNjpqOgIzXCo85--