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 1qorVC-003DcF-6F for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Oct 2023 20:32:50 +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 1qorV9-00Bs4I-Nf for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Oct 2023 20:32:48 +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.94.2) (envelope-from ) id 1qorV9-00Bs2x-AR for pgsql-hackers@lists.postgresql.org; Fri, 06 Oct 2023 20:32:48 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qorV5-000eYx-A4 for pgsql-hackers@lists.postgresql.org; Fri, 06 Oct 2023 20:32:47 +0000 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-9b275afb6abso804382866b.1 for ; Fri, 06 Oct 2023 13:32:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1696624362; x=1697229162; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=ylBNbwHU+UloSYh60GMkgU2hNLdiY8fra1hovtHs9uk=; b=u2t25lc7F8Y4dEUZPjAFhnaV0HgoZUyVB6ph4nBMrsP0XmfVugfnWejozKMe/kW+/j SELFqLgCTeYA8Daks5SqCrfJp2HoCTdY/elpIm3MSJkw/fZ2e895e/PDCEGaOFTzkJQA qLdDhDaMtlF6vsUov4zoOkMyGetNwmNN4KMD+DjtdNLysxSLDJEpe+/Lw/cr1CCLw6GS qdP622VWMEMDwmTepo//SpxEBPkPGgTS7lHuqeCpPlmc5CjZMHs5BA3/A4rtJx7esEQx uiJccGj6vknEo4vzj4JodKPXaXb8dCXW9bJYklX7WlZnTwce+IlD8+2dzbvlzx9CZ4dy 3xnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696624362; x=1697229162; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ylBNbwHU+UloSYh60GMkgU2hNLdiY8fra1hovtHs9uk=; b=iyH8opxzuG9EauhB9sp4N2WM9NU81hmHlJDX1ShYmTFlfaJv5Tb75p1RluKbU1oCHF 4vUSflG5fiTi3UGFRllx0mztAaNAstez4cuA5Eu3dk7JVg7bgUT9fzuEh/dZsNIfC5Po sN5y/qx+jFZEzQFpiAm5ItfmkDz6YqXyibfKBliuaNg8D0pfRpelexkVD2He3vbbw6x7 fa8JUm4S6xRCurY696J/xbSNV83XfD9QBz5soyxjWSADSyhem/feQolY4pdHwSXQ8Nup LP6my89qw4X4Qp5Gw/WBmX5K6PkGvQslWqPUf4b1DYCRnxWq2DCk5udMLc7a6l2bMY4y Xj7A== X-Gm-Message-State: AOJu0YwdviYbqIiCzPTguqpOkpH5zrdNZxGIII9PweXpwBGyI4Nntlvc rMTiGhIHYy4B5MgMZrkHg9h69w== X-Google-Smtp-Source: AGHT+IE83dNtxT1cjbzdI7HCOsjY3FV9qPQuosjk+z9sDvWBlNcsGEpgWt326xB0se/SD9wJo6M3sQ== X-Received: by 2002:a17:906:da82:b0:9ae:5f52:a491 with SMTP id xh2-20020a170906da8200b009ae5f52a491mr4725039ejb.8.1696624361998; Fri, 06 Oct 2023 13:32:41 -0700 (PDT) Received: from localhost.localdomain (178-190-178-223.adsl.highway.telekom.at. [178.190.178.223]) by smtp.gmail.com with ESMTPSA id ov19-20020a170906fc1300b009a193a5acffsm3354759ejb.121.2023.10.06.13.32.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 13:32:41 -0700 (PDT) Message-ID: <84f7a1dd3052544974d5b4d5df7beb5a244b48fa.camel@cybertec.at> Subject: Re: Fix output of zero privileges in psql From: Laurenz Albe To: Erik Wienhold , PostgreSQL Hackers Date: Fri, 06 Oct 2023 22:32:41 +0200 In-Reply-To: <1966228777.127452.1694979110595@office.mailbox.org> References: <1966228777.127452.1694979110595@office.mailbox.org> Content-Type: multipart/mixed; boundary="=-tCRIm+0XzcF4z3XvMjZI" User-Agent: Evolution 3.48.4 (3.48.4-1.fc38) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-tCRIm+0XzcF4z3XvMjZI Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 2023-09-17 at 21:31 +0200, Erik Wienhold wrote: > I wrote a patch to change psql's display of zero privileges after a user'= s > reported confusion with the psql output for zero vs. default privileges [= 1]. > Admittedly, zero privileges is a rare use case [2] but I think psql shoul= d not > confuse the user in the off chance that this happens. >=20 > With this change psql now prints "(none)" for zero privileges instead of > nothing.=C2=A0 This affects the following meta commands: >=20 > =C2=A0=C2=A0=C2=A0 \db+ \dD+ \df+ \dL+ \dl+ \dn+ \dp \dT+ \l >=20 > Default privileges start as NULL::aclitem[] in various catalog columns bu= t > revoking the default privileges leaves an empty aclitem array.=C2=A0 Usin= g > \pset null '(null)' as a workaround to spot default privileges does not w= ork > because the meta commands ignore this setting. >=20 > The privileges shown by \dconfig+ and \ddp as well as the column privileg= es > shown by \dp are not affected by this change because those privileges are= reset > to NULL instead of leaving empty arrays. >=20 > Commands \des+ and \dew+ are not covered in src/test/regress because no f= oreign > data wrapper is available at this point to create a foreign server. >=20 > [1] https://www.postgresql.org/message-id/efdd465d-a795-6188-7f71-7cdb4b2= be031%40mtneva.com > [2] https://www.postgresql.org/message-id/31246.1693337238%40sss.pgh.pa.u= s Reading that thread, I had the impression that there was more support for honoring "\pset null" rather than unconditionally displaying "(none)". The simple attached patch does it like that. What do you think? Yours, Laurenz Albe --=-tCRIm+0XzcF4z3XvMjZI Content-Disposition: attachment; filename="0001-psql-honor-pset-null-in-backslash-commands.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-psql-honor-pset-null-in-backslash-commands.patch"; charset="UTF-8" RnJvbSA2YzY3ZjE1ZjAxMWRkZjFlMzA5Y2I3ZTg0NTgwYjI2NmQ2NzRhMWUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogRnJpLCA2IE9jdCAyMDIzIDIyOjEyOjMzICswMjAwClN1YmplY3Q6IFtQQVRDSF0g cHNxbDogaG9ub3IgIlxwc2V0IG51bGwiIGluIGJhY2tzbGFzaCBjb21tYW5kcwoKSW4gdGhlIG91 dHB1dCBvZiBiYWNrc2xhc2ggY29tbWFuZHMsIE5VTEwgd2FzIGFsd2F5cyBkaXNwbGF5ZWQKYXMg ZW1wdHkgc3RyaW5nLCByYXRoZXIgdGhhbiBob25vcmluZyB0aGUgdmFsdWVzIHNldCB3aXRoCiJc cHNldCBudWxsIi4KClRoaXMgd2FzIHN1cnByaXNpbmcsIGFuZCBpbiBzb21lIGNhc2VzIGl0IHdh cyBkb3ducmlnaHQgY29uZnVzaW5nOgpmb3IgZXhhbXBsZSwgZGVmYXVsdCBwcml2aWxlZ2VzIChz dG9yZWQgYXMgTlVMTCkgd2VyZSBkaXNwbGF5ZWQKanVzdCBsaWtlIGFuIGVtcHR5IGFjbGl0ZW1b XSwgbWFraW5nIHRoZXNlIGNhc2VzIHVuZGlzdGluZ3Vpc2hhYmxlCmluIHRoZSBvdXRwdXQuCgpE aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzk2ZDY4ODVhLTVlMjUtOWFlOC00YTFhLWQ3 ZTU1N2E1ZmU5YyU0MG10bmV2YS5jb20KLS0tCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyB8IDQz IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBiYWM5NGEzMzhjLi4yMjRhYTIyNTc1IDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwpAQCAtMTI0LDcgKzEyNCw2IEBAIGRlc2NyaWJlQWdncmVnYXRlcyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSkKIAlpZiAoIXJlcykKIAkJ cmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlteW9wdC50aXRsZSA9 IF8oIkxpc3Qgb2YgYWdncmVnYXRlIGZ1bmN0aW9ucyIpOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFk ZXIgPSB0cnVlOwogCkBAIC0xOTcsNyArMTk2LDYgQEAgZGVzY3JpYmVBY2Nlc3NNZXRob2RzKGNv bnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGZh bHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlteW9wdC50aXRsZSA9IF8oIkxpc3Qg b2YgYWNjZXNzIG1ldGhvZHMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIAlt eW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtMjYyLDcgKzI2 MCw2IEBAIGRlc2NyaWJlVGFibGVzcGFjZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJi b3NlKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxsUHJpbnQgPSBO VUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB0YWJsZXNwYWNlcyIpOwogCW15b3B0LnRy YW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCkBAIC01ODUsNyArNTgyLDYgQEAgZGVzY3JpYmVGdW5j dGlvbnMoY29uc3QgY2hhciAqZnVuY3R5cGVzLCBjb25zdCBjaGFyICpmdW5jX3BhdHRlcm4sCiAJ aWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CiAJ bXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGZ1bmN0aW9ucyIpOwogCW15b3B0LnRyYW5zbGF0ZV9o ZWFkZXIgPSB0cnVlOwogCWlmIChwc2V0LnN2ZXJzaW9uID49IDkwNjAwKQpAQCAtNzAyLDcgKzY5 OCw2IEBAIGRlc2NyaWJlVHlwZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBi b29sIHNob3dTeXN0ZW0pCiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0Lm51 bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGRhdGEgdHlwZXMiKTsK IAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIApAQCAtODkzLDcgKzg4OCw2IEBAIGRl c2NyaWJlT3BlcmF0b3JzKGNvbnN0IGNoYXIgKm9wZXJfcGF0dGVybiwKIAlpZiAoIXJlcykKIAkJ cmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlteW9wdC50aXRsZSA9 IF8oIkxpc3Qgb2Ygb3BlcmF0b3JzIik7CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7 CiAKQEAgLTk5NSw3ICs5ODksNiBAQCBsaXN0QWxsRGJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFBy aW50ID0gTlVMTDsKIAlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgZGF0YWJhc2VzIik7CiAJbXlv cHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CiAKQEAgLTExNDYsNyArMTEzOSw2IEBAIHBlcm1p c3Npb25zTGlzdChjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHNob3dTeXN0ZW0pCiAJaWYgKCFy ZXMpCiAJCWdvdG8gZXJyb3JfcmV0dXJuOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlw cmludGZQUUV4cEJ1ZmZlcigmYnVmLCBfKCJBY2Nlc3MgcHJpdmlsZWdlcyIpKTsKIAlteW9wdC50 aXRsZSA9IGJ1Zi5kYXRhOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwpAQCAtMTIx OCw3ICsxMjEwLDYgQEAgbGlzdERlZmF1bHRBQ0xzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJaWYg KCFyZXMpCiAJCWdvdG8gZXJyb3JfcmV0dXJuOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsK IAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCBfKCJEZWZhdWx0IGFjY2VzcyBwcml2aWxlZ2VzIikp OwogCW15b3B0LnRpdGxlID0gYnVmLmRhdGE7CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRy dWU7CkBAIC0xNDE3LDcgKzE0MDgsNiBAQCBvYmplY3REZXNjcmlwdGlvbihjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHNob3dTeXN0ZW0pCiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAot CW15b3B0Lm51bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJPYmplY3QgZGVzY3Jp cHRpb25zIik7CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CiAJbXlvcHQudHJhbnNs YXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKQEAgLTM4NTIsNyArMzg0Miw2IEBAIGxp c3REYlJvbGVTZXR0aW5ncyhjb25zdCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpwYXR0ZXJu MikKIAl9CiAJZWxzZQogCXsKLQkJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAkJbXlvcHQudGl0 bGUgPSBfKCJMaXN0IG9mIHNldHRpbmdzIik7CiAJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0 cnVlOwogCkBAIC0zOTI2LDcgKzM5MTUsNiBAQCBkZXNjcmliZVJvbGVHcmFudHMoY29uc3QgY2hh ciAqcGF0dGVybiwgYm9vbCBzaG93U3lzdGVtKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7 CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBy b2xlIGdyYW50cyIpOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCkBAIC00MTIy LDcgKzQxMTAsNiBAQCBsaXN0VGFibGVzKGNvbnN0IGNoYXIgKnRhYnR5cGVzLCBjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5cwogCX0KIAllbHNlCiAJewotCQlt eW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCQlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgcmVsYXRp b25zIik7CiAJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCQlteW9wdC50cmFuc2xh dGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtNDMzMiw3ICs0MzE5LDYgQEAgbGlz dFBhcnRpdGlvbmVkVGFibGVzKGNvbnN0IGNoYXIgKnJlbHR5cGVzLCBjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCiAJaW5pdFBRRXhwQnVmZmVyKCZ0aXRsZSk7CiAJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJnRpdGxlLCB0YWJsZXRpdGxlKTsKIAotCW15b3B0Lm51bGxQcmludCA9IE5V TEw7CiAJbXlvcHQudGl0bGUgPSB0aXRsZS5kYXRhOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIg PSB0cnVlOwogCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CkBA IC00NDEyLDcgKzQzOTgsNiBAQCBsaXN0TGFuZ3VhZ2VzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7 CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBs YW5ndWFnZXMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIApAQCAtNDQ5Nyw3 ICs0NDgyLDYgQEAgbGlzdERvbWFpbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl LCBib29sIHNob3dTeXN0ZW0pCiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0 Lm51bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGRvbWFpbnMiKTsK IAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIApAQCAtNDU3Niw3ICs0NTYwLDYgQEAg bGlzdENvbnZlcnNpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBz aG93U3lzdGVtKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxsUHJp bnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBjb252ZXJzaW9ucyIpOwogCW15 b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0g dHJhbnNsYXRlX2NvbHVtbnM7CkBAIC00NjQ0LDcgKzQ2MjcsNiBAQCBkZXNjcmliZUNvbmZpZ3Vy YXRpb25QYXJhbWV0ZXJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwKIAlpZiAo IXJlcykKIAkJcmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlpZiAo cGF0dGVybikKIAkJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVycyIpOwogCWVsc2UKQEAgLTQ3MjYsNyArNDcwOCw2IEBAIGxpc3RFdmVudFRyaWdnZXJzKGNv bnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGZh bHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlteW9wdC50aXRsZSA9IF8oIkxpc3Qg b2YgZXZlbnQgdHJpZ2dlcnMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIAlt eW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtNDgyNSw3ICs0 ODA2LDYgQEAgbGlzdEV4dGVuZGVkU3RhdHMoY29uc3QgY2hhciAqcGF0dGVybikKIAlpZiAoIXJl cykKIAkJcmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0gTlVMTDsKIAlteW9wdC50 aXRsZSA9IF8oIkxpc3Qgb2YgZXh0ZW5kZWQgc3RhdGlzdGljcyIpOwogCW15b3B0LnRyYW5zbGF0 ZV9oZWFkZXIgPSB0cnVlOwogCkBAIC00OTM4LDcgKzQ5MTgsNiBAQCBsaXN0Q2FzdHMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7 CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBj YXN0cyIpOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCW15b3B0LnRyYW5zbGF0 ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CkBAIC01MDU3LDcgKzUwMzYsNiBAQCBsaXN0 Q29sbGF0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5 c3RlbSkKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0g TlVMTDsKIAlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgY29sbGF0aW9ucyIpOwogCW15b3B0LnRy YW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNs YXRlX2NvbHVtbnM7CkBAIC01MTE5LDcgKzUwOTcsNiBAQCBsaXN0U2NoZW1hcyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3RlbSkKIAlpZiAoIXJlcykKIAkJ Z290byBlcnJvcl9yZXR1cm47CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRp dGxlID0gXygiTGlzdCBvZiBzY2hlbWFzIik7CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRy dWU7CiAKQEAgLTUyMzYsNyArNTIxMyw2IEBAIGxpc3RUU1BhcnNlcnMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9w dC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB0ZXh0IHNlYXJj aCBwYXJzZXJzIik7CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CiAKQEAgLTUzODQs NyArNTM2MCw2IEBAIGRlc2NyaWJlT25lVFNQYXJzZXIoY29uc3QgY2hhciAqb2lkLCBjb25zdCBj aGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICpwcnNuYW1lKQogCWlmICghcmVzKQogCQlyZXR1cm4g ZmFsc2U7CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCWluaXRQUUV4cEJ1ZmZlcigmdGl0 bGUpOwogCWlmIChuc3BuYW1lKQogCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlRleHQg c2VhcmNoIHBhcnNlciBcIiVzLiVzXCIiKSwKQEAgLTU0MjEsNyArNTM5Niw2IEBAIGRlc2NyaWJl T25lVFNQYXJzZXIoY29uc3QgY2hhciAqb2lkLCBjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBj aGFyICpwcnNuYW1lKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JbXlvcHQubnVsbFByaW50ID0g TlVMTDsKIAlpZiAobnNwbmFtZSkKIAkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJUb2tl biB0eXBlcyBmb3IgcGFyc2VyIFwiJXMuJXNcIiIpLAogCQkJCQkJICBuc3BuYW1lLCBwcnNuYW1l KTsKQEAgLTU0OTcsNyArNTQ3MSw2IEBAIGxpc3RUU0RpY3Rpb25hcmllcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15 b3B0Lm51bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIHRleHQgc2Vh cmNoIGRpY3Rpb25hcmllcyIpOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCkBA IC01NTYzLDcgKzU1MzYsNiBAQCBsaXN0VFNUZW1wbGF0ZXMoY29uc3QgY2hhciAqcGF0dGVybiwg Ym9vbCB2ZXJib3NlKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxs UHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1w bGF0ZXMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIApAQCAtNTYxOCw3ICs1 NTkwLDYgQEAgbGlzdFRTQ29uZmlncyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Up CiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmludCA9IE5VTEw7 CiAJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIHRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb25zIik7 CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CiAKQEAgLTU3NjQsNyArNTczNSw2IEBA IGRlc2NyaWJlT25lVFNDb25maWcoY29uc3QgY2hhciAqb2lkLCBjb25zdCBjaGFyICpuc3BuYW1l LCBjb25zdCBjaGFyICpjZmduYW1lLAogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlxu UGFyc2VyOiBcIiVzXCIiKSwKIAkJCQkJCSAgcHJzbmFtZSk7CiAKLQlteW9wdC5udWxsUHJpbnQg PSBOVUxMOwogCW15b3B0LnRpdGxlID0gdGl0bGUuZGF0YTsKIAlteW9wdC5mb290ZXJzID0gTlVM TDsKIAlteW9wdC50b3B0LmRlZmF1bHRfZm9vdGVyID0gZmFsc2U7CkBAIC01ODQxLDcgKzU4MTEs NiBAQCBsaXN0Rm9yZWlnbkRhdGFXcmFwcGVycyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZl cmJvc2UpCiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmludCA9 IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIGZvcmVpZ24tZGF0YSB3cmFwcGVycyIp OwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCkBAIC01OTE4LDcgKzU4ODcsNiBA QCBsaXN0Rm9yZWlnblNlcnZlcnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQog CWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwog CW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBmb3JlaWduIHNlcnZlcnMiKTsKIAlteW9wdC50cmFu c2xhdGVfaGVhZGVyID0gdHJ1ZTsKIApAQCAtNTk3NCw3ICs1OTQyLDYgQEAgbGlzdFVzZXJNYXBw aW5ncyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaWYgKCFyZXMpCiAJCXJl dHVybiBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBf KCJMaXN0IG9mIHVzZXIgbWFwcGluZ3MiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKIApAQCAtNjA0Nyw3ICs2MDE0LDYgQEAgbGlzdEZvcmVpZ25UYWJsZXMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlt eW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBmb3JlaWdu IHRhYmxlcyIpOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwogCkBAIC02MDk5LDcg KzYwNjUsNiBAQCBsaXN0RXh0ZW5zaW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCWlmICghcmVz KQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRp dGxlID0gXygiTGlzdCBvZiBpbnN0YWxsZWQgZXh0ZW5zaW9ucyIpOwogCW15b3B0LnRyYW5zbGF0 ZV9oZWFkZXIgPSB0cnVlOwogCkBAIC02MjAzLDcgKzYxNjgsNiBAQCBsaXN0T25lRXh0ZW5zaW9u Q29udGVudHMoY29uc3QgY2hhciAqZXh0bmFtZSwgY29uc3QgY2hhciAqb2lkKQogCWlmICghcmVz KQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCWluaXRQUUV4 cEJ1ZmZlcigmdGl0bGUpOwogCXByaW50ZlBRRXhwQnVmZmVyKCZ0aXRsZSwgXygiT2JqZWN0cyBp biBleHRlbnNpb24gXCIlc1wiIiksIGV4dG5hbWUpOwogCW15b3B0LnRpdGxlID0gdGl0bGUuZGF0 YTsKQEAgLTYzNDAsNyArNjMwNCw2IEBAIGxpc3RQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0 dGVybikKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVsbFByaW50ID0g TlVMTDsKIAlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2YgcHVibGljYXRpb25zIik7CiAJbXlvcHQu dHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CiAJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFu c2xhdGVfY29sdW1uczsKQEAgLTY2OTUsNyArNjY1OCw2IEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9u cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaWYgKCFyZXMpCiAJCXJldHVy biBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJM aXN0IG9mIHN1YnNjcmlwdGlvbnMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsK IAlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtNjgwOCw3 ICs2NzcwLDYgQEAgbGlzdE9wZXJhdG9yQ2xhc3Nlcyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9k X3BhdHRlcm4sCiAJaWYgKCFyZXMpCiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmlu dCA9IE5VTEw7CiAJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIG9wZXJhdG9yIGNsYXNzZXMiKTsK IAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKIAlteW9wdC50cmFuc2xhdGVfY29sdW1u cyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtNjg5Nyw3ICs2ODU4LDYgQEAgbGlzdE9wZXJhdG9y RmFtaWxpZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLAogCWlmICghcmVzKQog CQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxl ID0gXygiTGlzdCBvZiBvcGVyYXRvciBmYW1pbGllcyIpOwogCW15b3B0LnRyYW5zbGF0ZV9oZWFk ZXIgPSB0cnVlOwogCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7 CkBAIC02OTk2LDcgKzY5NTYsNiBAQCBsaXN0T3BGYW1pbHlPcGVyYXRvcnMoY29uc3QgY2hhciAq YWNjZXNzX21ldGhvZF9wYXR0ZXJuLAogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlt eW9wdC5udWxsUHJpbnQgPSBOVUxMOwogCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiBvcGVyYXRv cnMgb2Ygb3BlcmF0b3IgZmFtaWxpZXMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKIAlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtNzA4 OSw3ICs3MDQ4LDYgQEAgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNoYXIgKmFjY2Vzc19t ZXRob2RfcGF0dGVybiwKIAlpZiAoIXJlcykKIAkJcmV0dXJuIGZhbHNlOwogCi0JbXlvcHQubnVs bFByaW50ID0gTlVMTDsKIAlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Ygc3VwcG9ydCBmdW5jdGlv bnMgb2Ygb3BlcmF0b3IgZmFtaWxpZXMiKTsKIAlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKIAlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOwpAQCAtNzE0 MSw3ICs3MDk5LDYgQEAgbGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpCiAJaWYgKCFyZXMp CiAJCXJldHVybiBmYWxzZTsKIAotCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CiAJbXlvcHQudGl0 bGUgPSBfKCJMYXJnZSBvYmplY3RzIik7CiAJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7 CiAKLS0gCjIuNDEuMAoK --=-tCRIm+0XzcF4z3XvMjZI--