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 1t46KU-00GPVX-UW for pgsql-hackers@arkaria.postgresql.org; Thu, 24 Oct 2024 22:29:19 +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 1t46KT-008oo9-7T for pgsql-hackers@arkaria.postgresql.org; Thu, 24 Oct 2024 22:29:17 +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 1t46KS-008ojw-OW for pgsql-hackers@lists.postgresql.org; Thu, 24 Oct 2024 22:29:17 +0000 Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t46KQ-002o1U-Tq for pgsql-hackers@lists.postgresql.org; Thu, 24 Oct 2024 22:29:16 +0000 Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-2fb6110c8faso14301251fa.1 for ; Thu, 24 Oct 2024 15:29:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729808954; x=1730413754; 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=YpSV5boKMhmdY+3M9M3rcOtVQBku0gpo0wxZPUYE5KA=; b=aEO3ki0dYwMw3lp2WMJ8pBHxT3HGYuKTNtOiANkN0HhyutCCHEKop+tLYLX5t1GTDL 3Pisl81uHhg06jGySCESJL8r4m18PkgLtiDr9CbGvxVRGnl5oYkVHW2OoeIqd5imYtTi IOwWT24do2I6Q1nTxqyks79RLV5lAbYTwMnmnjYLITMAenoJvfHXgSa/I1uez/WAuvZz 8b44CmDCx3IV1Fuk21cq161VNtMSJHBOAfwR87u+Weji7yahnKNHMCx//97p3cFNcGCc jNaR782m/aV3Ot81+gYTffuhKhEAc6nyk4v2pUA1kn6Mf3dXlyFcUU2fbK1FcHrhgGWq UcKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729808954; x=1730413754; 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=YpSV5boKMhmdY+3M9M3rcOtVQBku0gpo0wxZPUYE5KA=; b=Q/TW04nC7dDHB0CwCBh10ISEqQCr4lMiQwnjeVM325sRpGuN/sA0k1h1ttz6sQqf+7 x927bisnMt2YLivziecURt37tOqIzu11pW3zP4L+15dSru2b7IRkLgEg2EzK50FuA7/5 Wlxr48hY5xs9VvSy3Ikn2lplUpl6TMQwkLTxF1XNjFlJoBz0mdJfLMVXfvc7MZDCNGPE 1IiUEN2oGgoBQSSIzTxx2PtbJtB7+SAjxZ5XdeGztGPSXIfaTJmvokKxboSQpIAcI43t 2HdsZopZNW07PAQz5rl8fpcWztQmVwdbmuV413Jv5322cJeeWEtICJwz8zrT9AGQQsdx dHoA== X-Forwarded-Encrypted: i=1; AJvYcCVRn0ogw3MgkTT8rTFXEcyzoIFINFdMAcJfTQQOO2DTsGuxXC4kh99Rn/Tau3VoDfQJ1wMHMXqN6/lJCWxZ@lists.postgresql.org X-Gm-Message-State: AOJu0YwPzEeKPgM90AdRvqli6OwZZDkyAl6WJp0hX1U6bfmdkvmPjWj6 zFujqjyq3+vZr7PJnHLXfUUxICSOLV3leFyyhE9YPJK6tDDU8Cf6mgSZl9rkc6QDEXy1WHq10k/ 6qW3Pm5HfvCvm3ZGlRTDHyyHF3GI= X-Google-Smtp-Source: AGHT+IEe3cG3zQaTCbkBA5HZvqWc3zYITbtESuua8fX985EXWOP8pD8hbR+HPQS77Fc+QvbSAjsomrUV3V8pv9DaUu4= X-Received: by 2002:a2e:131a:0:b0:2fb:60d8:744d with SMTP id 38308e7fff4ca-2fca820fc40mr18891461fa.19.1729808953676; Thu, 24 Oct 2024 15:29:13 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Peter Smith Date: Fri, 25 Oct 2024 09:28:47 +1100 Message-ID: Subject: Re: Refactor to use common function 'get_publications_str'. To: Michael Paquier Cc: Masahiko Sawada , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000036bbb10625408828" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000036bbb10625408828 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Oct 24, 2024 at 5:44=E2=80=AFPM Peter Smith = wrote: > > On Thu, Oct 24, 2024 at 5:41=E2=80=AFPM Michael Paquier wrote: > > > > On Thu, Oct 24, 2024 at 05:27:25PM +1100, Peter Smith wrote: > > > Yes, well spotted -- I was aware of that. Originally I had coded a >= =3D > > > PG15 check for that pub_names assignment. e.g. > > > > > > if (walrcv_server_version(LogRepWorkerWalRcvConn) >=3D 150000) > > > GetPublicationsStr(MySubscription->publications, pub_names, true); > > > > I was wondering about putting the call of GetPublicationsStr() in the > > first block with the makeStringInfo(), have an Assert checking that > > pub_names->data is never NULL in the second block, and destroy the > > StringInfo only if it has been allocated. > > > > > But, somehow it seemed messy to do that just to cater for something I > > > thought was not particularly likely. OTOH, I am happy to put that > > > check back in if you think it is warranted. > > > > I think I would add it. The publication list is not mandatory, but > > your patch makes it look so. > > -- > > No problem. I will post an updated patch tomorrow. > I've attached the patch v4. =3D=3D=3D=3D=3D=3D Kind Regards, Peter Smith. Fujitsu Australia --00000000000036bbb10625408828 Content-Type: application/octet-stream; name="v4-0001-Refactor-to-use-common-function-GetPublicationsSt.patch" Content-Disposition: attachment; filename="v4-0001-Refactor-to-use-common-function-GetPublicationsSt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m2nuz2n80 RnJvbSA2ZGRmOTNlZWRmZmY5OGU1OTFhNmI4ZmM5YjYwOTMzN2IwNWNmOWUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBTbWl0aCA8cGV0ZXIuYi5zbWl0aEBmdWppdHN1LmNv bT4KRGF0ZTogRnJpLCAyNSBPY3QgMjAyNCAwOTowNTozNiArMTEwMApTdWJqZWN0OiBbUEFUQ0gg djRdIFJlZmFjdG9yIHRvIHVzZSBjb21tb24gZnVuY3Rpb24gJ0dldFB1YmxpY2F0aW9uc1N0cicu CgpUaGVyZSBpcyBhbHJlYWR5IGEgdXRpbGl0eSBmdW5jdGlvbiAoY2FsbGVkICdnZXRfcHVibGlj YXRpb25zX3N0cicpIGZvciBidWlsZGluZwphIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgb2YgcHVi bGljYXRpb24gbmFtZXMsIGJ1dCBpdCB3YXMgbm90IGJlaW5nIHVzZWQKZXZlcnl3aGVyZSBpdCBj b3VsZCBoYXZlIGJlZW4uCgpUaGlzIGlzIGEgcmVmYWN0b3JpbmcgcGF0Y2ggdG8gbWFrZSBiZXR0 ZXIgdXNlIG9mIHRoaXMgZXhpc3RpbmcgZnVuY3Rpb24uCgpDaGFuZ2VzOgoKLSBUaGUgZnVuY3Rp b24gaGFzIGJlZW4gbW92ZWQsIGFuZCByZW5hbWVkIHRvICdHZXRQdWJsaWNhdGlvbnNTdHInLCBi ZWNhdXNlIGl0CiAgaXMgbm8gbG9uZ2VyIHN0YXRpYy4KCi0gTm93IEdldFB1YmxpY2F0aW9uc1N0 cigpIGlzIGFsc28gYmVpbmcgY2FsbGVkIGZyb20gdGFibGVzeW5jLmMsCiAgZmV0Y2hfcmVtb3Rl X3RhYmxlX2luZm8oKS4KCi0gZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oKSB3YXMgYnVpbGRpbmcg dGhlIHNhbWUgcHVibGljYXRpb24gc3RyaW5nIG11bHRpcGxlCiAgdGltZXMuIEluIHBhc3Npbmcs IGZpeGVkIHRvIGJ1aWxkIHRoZSBzdHJpbmcgb25seSBvbmNlLgoKLSBTaW1pbGFybHksIHRoZXJl IHdlcmUgZHVwbGljYXRlZCBjYWxscyBzdWJzY3JpcHRpb25jbWRzLmMgZmV0Y2hfdGFibGVfbGlz dCgpLgogIFRoaXMgd2FzIG5vdCBjYXVzaW5nIGEgcGVyZm9ybWFuY2UgaGl0IC0tIGp1c3QgbW9y ZSBjb2RlIHRoYW4gd2FzIG5lZWRlZC4KICBJbiBwYXNzaW5nLCBzaW1wbGlmaWVkIHRoaXMgdG9v LgotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgICAgICAgfCAzMSAr KysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAg ICAgfCA2MCArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyB8IDM1ICsrKysrLS0tLS0tLS0tLS0tCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgIHwgIDUgKystCiA0IGZpbGVzIGNo YW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IDllZmM5MTUuLjg5YmY1ZWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtMzUsNiArMzUsMzcgQEAKIHN0YXRpYyBMaXN0ICp0 ZXh0YXJyYXlfdG9fc3RyaW5nbGlzdChBcnJheVR5cGUgKnRleHRhcnJheSk7CiAKIC8qCisgKiBB ZGQgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwdWJsaWNhdGlvbiBuYW1lcyB0byB0aGUgJ2Rl c3QnIHN0cmluZy4KKyAqLwordm9pZAorR2V0UHVibGljYXRpb25zU3RyKExpc3QgKnB1YmxpY2F0 aW9ucywgU3RyaW5nSW5mbyBkZXN0LCBib29sIHF1b3RlX2xpdGVyYWwpCit7CisJTGlzdENlbGwg ICAqbGM7CisJYm9vbAkJZmlyc3QgPSB0cnVlOworCisJQXNzZXJ0KHB1YmxpY2F0aW9ucyAhPSBO SUwpOworCisJZm9yZWFjaChsYywgcHVibGljYXRpb25zKQorCXsKKwkJY2hhcgkgICAqcHVibmFt ZSA9IHN0clZhbChsZmlyc3QobGMpKTsKKworCQlpZiAoZmlyc3QpCisJCQlmaXJzdCA9IGZhbHNl OworCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGRlc3QsICIsICIpOworCisJCWlm IChxdW90ZV9saXRlcmFsKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhkZXN0LCBxdW90ZV9s aXRlcmFsX2NzdHIocHVibmFtZSkpOworCQllbHNlCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9D aGFyKGRlc3QsICciJyk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGRlc3QsIHB1Ym5hbWUp OworCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoZGVzdCwgJyInKTsKKwkJfQorCX0KK30KKworLyoK ICAqIEZldGNoIHRoZSBzdWJzY3JpcHRpb24gZnJvbSB0aGUgc3lzY2FjaGUuCiAgKi8KIFN1YnNj cmlwdGlvbiAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25j bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggMDJj Y2M2My4uZjdmNjcwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpA QCAtNDQwLDM3ICs0NDAsNiBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIH0KIAogLyoKLSAqIEFkZCBwdWJsaWNhdGlv biBuYW1lcyBmcm9tIHRoZSBsaXN0IHRvIGEgc3RyaW5nLgotICovCi1zdGF0aWMgdm9pZAotZ2V0 X3B1YmxpY2F0aW9uc19zdHIoTGlzdCAqcHVibGljYXRpb25zLCBTdHJpbmdJbmZvIGRlc3QsIGJv b2wgcXVvdGVfbGl0ZXJhbCkKLXsKLQlMaXN0Q2VsbCAgICpsYzsKLQlib29sCQlmaXJzdCA9IHRy dWU7Ci0KLQlBc3NlcnQocHVibGljYXRpb25zICE9IE5JTCk7Ci0KLQlmb3JlYWNoKGxjLCBwdWJs aWNhdGlvbnMpCi0JewotCQljaGFyCSAgICpwdWJuYW1lID0gc3RyVmFsKGxmaXJzdChsYykpOwot Ci0JCWlmIChmaXJzdCkKLQkJCWZpcnN0ID0gZmFsc2U7Ci0JCWVsc2UKLQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoZGVzdCwgIiwgIik7Ci0KLQkJaWYgKHF1b3RlX2xpdGVyYWwpCi0JCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKGRlc3QsIHF1b3RlX2xpdGVyYWxfY3N0cihwdWJuYW1lKSk7Ci0J CWVsc2UKLQkJewotCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoZGVzdCwgJyInKTsKLQkJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoZGVzdCwgcHVibmFtZSk7Ci0JCQlhcHBlbmRTdHJpbmdJbmZvQ2hh cihkZXN0LCAnIicpOwotCQl9Ci0JfQotfQotCi0vKgogICogQ2hlY2sgdGhhdCB0aGUgc3BlY2lm aWVkIHB1YmxpY2F0aW9ucyBhcmUgcHJlc2VudCBvbiB0aGUgcHVibGlzaGVyLgogICovCiBzdGF0 aWMgdm9pZApAQCAtNDg2LDcgKzQ1NSw3IEBAIGNoZWNrX3B1YmxpY2F0aW9ucyhXYWxSZWNlaXZl ckNvbm4gKndyY29ubiwgTGlzdCAqcHVibGljYXRpb25zKQogCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoY21kLCAiU0VMRUNUIHQucHVibmFtZSBGUk9NXG4iCiAJCQkJCQkgICAiIHBnX2NhdGFsb2cu cGdfcHVibGljYXRpb24gdCBXSEVSRVxuIgogCQkJCQkJICAgIiB0LnB1Ym5hbWUgSU4gKCIpOwot CWdldF9wdWJsaWNhdGlvbnNfc3RyKHB1YmxpY2F0aW9ucywgY21kLCB0cnVlKTsKKwlHZXRQdWJs aWNhdGlvbnNTdHIocHVibGljYXRpb25zLCBjbWQsIHRydWUpOwogCWFwcGVuZFN0cmluZ0luZm9D aGFyKGNtZCwgJyknKTsKIAogCXJlcyA9IHdhbHJjdl9leGVjKHdyY29ubiwgY21kLT5kYXRhLCAx LCB0YWJsZVJvdyk7CkBAIC01MjMsNyArNDkyLDcgQEAgY2hlY2tfcHVibGljYXRpb25zKFdhbFJl Y2VpdmVyQ29ubiAqd3Jjb25uLCBMaXN0ICpwdWJsaWNhdGlvbnMpCiAJCS8qIFByZXBhcmUgdGhl IGxpc3Qgb2Ygbm9uLWV4aXN0ZW50IHB1YmxpY2F0aW9uKHMpIGZvciBlcnJvciBtZXNzYWdlLiAq LwogCQlTdHJpbmdJbmZvCXB1Ym5hbWVzID0gbWFrZVN0cmluZ0luZm8oKTsKIAotCQlnZXRfcHVi bGljYXRpb25zX3N0cihwdWJsaWNhdGlvbnNDb3B5LCBwdWJuYW1lcywgZmFsc2UpOworCQlHZXRQ dWJsaWNhdGlvbnNTdHIocHVibGljYXRpb25zQ29weSwgcHVibmFtZXMsIGZhbHNlKTsKIAkJZXJl cG9ydChXQVJOSU5HLAogCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKIAkJ CQllcnJtc2dfcGx1cmFsKCJwdWJsaWNhdGlvbiAlcyBkb2VzIG5vdCBleGlzdCBvbiB0aGUgcHVi bGlzaGVyIiwKQEAgLTIxNTEsNyArMjEyMCw3IEBAIGNoZWNrX3B1YmxpY2F0aW9uc19vcmlnaW4o V2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJCQkJCSAgICIg ICAgIEpPSU4gcGdfc3Vic2NyaXB0aW9uX3JlbCBQUyBPTiAoR1BULnJlbGlkID0gUFMuc3JyZWxp ZCksXG4iCiAJCQkJCQkgICAiICAgICBwZ19jbGFzcyBDIEpPSU4gcGdfbmFtZXNwYWNlIE4gT04g KE4ub2lkID0gQy5yZWxuYW1lc3BhY2UpXG4iCiAJCQkJCQkgICAiV0hFUkUgQy5vaWQgPSBHUFQu cmVsaWQgQU5EIFAucHVibmFtZSBJTiAoIik7Ci0JZ2V0X3B1YmxpY2F0aW9uc19zdHIocHVibGlj YXRpb25zLCAmY21kLCB0cnVlKTsKKwlHZXRQdWJsaWNhdGlvbnNTdHIocHVibGljYXRpb25zLCAm Y21kLCB0cnVlKTsKIAlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQsICIpXG4iKTsKIAogCS8q CkBAIC0yMjA4LDcgKzIxNzcsNyBAQCBjaGVja19wdWJsaWNhdGlvbnNfb3JpZ2luKFdhbFJlY2Vp dmVyQ29ubiAqd3Jjb25uLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCVN0cmluZ0luZm8JcHVibmFt ZXMgPSBtYWtlU3RyaW5nSW5mbygpOwogCiAJCS8qIFByZXBhcmUgdGhlIGxpc3Qgb2YgcHVibGlj YXRpb24ocykgZm9yIHdhcm5pbmcgbWVzc2FnZS4gKi8KLQkJZ2V0X3B1YmxpY2F0aW9uc19zdHIo cHVibGlzdCwgcHVibmFtZXMsIGZhbHNlKTsKKwkJR2V0UHVibGljYXRpb25zU3RyKHB1Ymxpc3Qs IHB1Ym5hbWVzLCBmYWxzZSk7CiAJCWVyZXBvcnQoV0FSTklORywKIAkJCQllcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCWVycm1zZygic3Vic2Ny aXB0aW9uIFwiJXNcIiByZXF1ZXN0ZWQgY29weV9kYXRhIHdpdGggb3JpZ2luID0gTk9ORSBidXQg bWlnaHQgY29weSBkYXRhIHRoYXQgaGFkIGEgZGlmZmVyZW50IG9yaWdpbiIsCkBAIC0yMjQzLDE3 ICsyMjEyLDE3IEBAIGZldGNoX3RhYmxlX2xpc3QoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExp c3QgKnB1YmxpY2F0aW9ucykKIAlMaXN0CSAgICp0YWJsZWxpc3QgPSBOSUw7CiAJaW50CQkJc2Vy dmVyX3ZlcnNpb24gPSB3YWxyY3Zfc2VydmVyX3ZlcnNpb24od3Jjb25uKTsKIAlib29sCQljaGVj a19jb2x1bW5saXN0ID0gKHNlcnZlcl92ZXJzaW9uID49IDE1MDAwMCk7CisJU3RyaW5nSW5mbwlw dWJfbmFtZXMgPSBtYWtlU3RyaW5nSW5mbygpOwogCiAJaW5pdFN0cmluZ0luZm8oJmNtZCk7CiAK KwkvKiBCdWlsZCB0aGUgcHViX25hbWVzIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcuICovCisJR2V0 UHVibGljYXRpb25zU3RyKHB1YmxpY2F0aW9ucywgcHViX25hbWVzLCB0cnVlKTsKKwogCS8qIEdl dCB0aGUgbGlzdCBvZiB0YWJsZXMgZnJvbSB0aGUgcHVibGlzaGVyLiAqLwogCWlmIChzZXJ2ZXJf dmVyc2lvbiA+PSAxNjAwMDApCiAJewotCQlTdHJpbmdJbmZvRGF0YSBwdWJfbmFtZXM7Ci0KIAkJ dGFibGVSb3dbMl0gPSBJTlQyVkVDVE9ST0lEOwotCQlpbml0U3RyaW5nSW5mbygmcHViX25hbWVz KTsKLQkJZ2V0X3B1YmxpY2F0aW9uc19zdHIocHVibGljYXRpb25zLCAmcHViX25hbWVzLCB0cnVl KTsKIAogCQkvKgogCQkgKiBGcm9tIHZlcnNpb24gMTYsIHdlIGFsbG93ZWQgcGFzc2luZyBtdWx0 aXBsZSBwdWJsaWNhdGlvbnMgdG8gdGhlCkBAIC0yMjc1LDkgKzIyNDQsNyBAQCBmZXRjaF90YWJs ZV9saXN0KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBMaXN0ICpwdWJsaWNhdGlvbnMpCiAJCQkJ CQkgIiAgICAgICAgICAgICAgICBGUk9NIHBnX3B1YmxpY2F0aW9uXG4iCiAJCQkJCQkgIiAgICAg ICAgICAgICAgICBXSEVSRSBwdWJuYW1lIElOICggJXMgKSkgQVMgZ3B0XG4iCiAJCQkJCQkgIiAg ICAgICAgICAgICBPTiBncHQucmVsaWQgPSBjLm9pZFxuIiwKLQkJCQkJCSBwdWJfbmFtZXMuZGF0 YSk7Ci0KLQkJcGZyZWUocHViX25hbWVzLmRhdGEpOworCQkJCQkJIHB1Yl9uYW1lcy0+ZGF0YSk7 CiAJfQogCWVsc2UKIAl7CkBAIC0yMjg4LDEyICsyMjU1LDEzIEBAIGZldGNoX3RhYmxlX2xpc3Qo V2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucykKIAkJaWYgKGNoZWNr X2NvbHVtbmxpc3QpCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQsICIsIHQuYXR0bmFt ZXNcbiIpOwogCi0JCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNtZCwgIkZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbl90YWJsZXMgdFxuIgotCQkJCQkJCSAgICIgV0hFUkUgdC5wdWJuYW1l IElOICgiKTsKLQkJZ2V0X3B1YmxpY2F0aW9uc19zdHIocHVibGljYXRpb25zLCAmY21kLCB0cnVl KTsKLQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmNtZCwgJyknKTsKKwkJYXBwZW5kU3RyaW5nSW5m bygmY21kLCAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3RhYmxlcyB0XG4iCisJCQkJ CQkJICAgIiBXSEVSRSB0LnB1Ym5hbWUgSU4gKCAlcyApIiwKKwkJCQkJCQkgICBwdWJfbmFtZXMt PmRhdGEpOwogCX0KIAorCWRlc3Ryb3lTdHJpbmdJbmZvKHB1Yl9uYW1lcyk7CisKIAlyZXMgPSB3 YWxyY3ZfZXhlYyh3cmNvbm4sIGNtZC5kYXRhLCBjaGVja19jb2x1bW5saXN0ID8gMyA6IDIsIHRh YmxlUm93KTsKIAlwZnJlZShjbWQuZGF0YSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3RhYmxlc3luYy5jCmluZGV4IGUwM2U3NjEuLmU4YmY3MzYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpAQCAtODAyLDcgKzgwMiw3IEBAIGZl dGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsCiAJT2lk CQkJcXVhbFJvd1tdID0ge1RFWFRPSUR9OwogCWJvb2wJCWlzbnVsbDsKIAlpbnQJCQluYXR0Owot CUxpc3RDZWxsICAgKmxjOworCVN0cmluZ0luZm8JcHViX25hbWVzID0gTlVMTDsKIAlCaXRtYXBz ZXQgICppbmNsdWRlZF9jb2xzID0gTlVMTDsKIAogCWxyZWwtPm5zcG5hbWUgPSBuc3BuYW1lOwpA QCAtODU2LDE1ICs4NTYsMTAgQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFt ZSwgY2hhciAqcmVsbmFtZSwKIAkJV2FsUmN2RXhlY1Jlc3VsdCAqcHVicmVzOwogCQlUdXBsZVRh YmxlU2xvdCAqdHNsb3Q7CiAJCU9pZAkJCWF0dHJzUm93W10gPSB7SU5UMlZFQ1RPUk9JRH07Ci0J CVN0cmluZ0luZm9EYXRhIHB1Yl9uYW1lczsKIAotCQlpbml0U3RyaW5nSW5mbygmcHViX25hbWVz KTsKLQkJZm9yZWFjaChsYywgTXlTdWJzY3JpcHRpb24tPnB1YmxpY2F0aW9ucykKLQkJewotCQkJ aWYgKGZvcmVhY2hfY3VycmVudF9pbmRleChsYykgPiAwKQotCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoJnB1Yl9uYW1lcywgIiwgIik7Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZwdWJf bmFtZXMsIHF1b3RlX2xpdGVyYWxfY3N0cihzdHJWYWwobGZpcnN0KGxjKSkpKTsKLQkJfQorCQkv KiBCdWlsZCB0aGUgcHViX25hbWVzIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcuICovCisJCXB1Yl9u YW1lcyA9IG1ha2VTdHJpbmdJbmZvKCk7CisJCUdldFB1YmxpY2F0aW9uc1N0cihNeVN1YnNjcmlw dGlvbi0+cHVibGljYXRpb25zLCBwdWJfbmFtZXMsIHRydWUpOwogCiAJCS8qCiAJCSAqIEZldGNo IGluZm8gYWJvdXQgY29sdW1uIGxpc3RzIGZvciB0aGUgcmVsYXRpb24gKGZyb20gYWxsIHRoZQpA QCAtODgxLDcgKzg3Niw3IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUs IGNoYXIgKnJlbG5hbWUsCiAJCQkJCQkgIiBXSEVSRSBncHQucmVsaWQgPSAldSBBTkQgYy5vaWQg PSBncHQucmVsaWQiCiAJCQkJCQkgIiAgIEFORCBwLnB1Ym5hbWUgSU4gKCAlcyApIiwKIAkJCQkJ CSBscmVsLT5yZW1vdGVpZCwKLQkJCQkJCSBwdWJfbmFtZXMuZGF0YSk7CisJCQkJCQkgcHViX25h bWVzLT5kYXRhKTsKIAogCQlwdWJyZXMgPSB3YWxyY3ZfZXhlYyhMb2dSZXBXb3JrZXJXYWxSY3ZD b25uLCBjbWQuZGF0YSwKIAkJCQkJCQkgbGVuZ3Rob2YoYXR0cnNSb3cpLCBhdHRyc1Jvdyk7CkBA IC05MzYsOCArOTMxLDYgQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwg Y2hhciAqcmVsbmFtZSwKIAkJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdCh0c2xvdCk7CiAK IAkJd2FscmN2X2NsZWFyX3Jlc3VsdChwdWJyZXMpOwotCi0JCXBmcmVlKHB1Yl9uYW1lcy5kYXRh KTsKIAl9CiAKIAkvKgpAQCAtMTAzOSwxOSArMTAzMiw4IEBAIGZldGNoX3JlbW90ZV90YWJsZV9p bmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsCiAJICovCiAJaWYgKHdhbHJjdl9zZXJ2 ZXJfdmVyc2lvbihMb2dSZXBXb3JrZXJXYWxSY3ZDb25uKSA+PSAxNTAwMDApCiAJewotCQlTdHJp bmdJbmZvRGF0YSBwdWJfbmFtZXM7Ci0KLQkJLyogQnVpbGQgdGhlIHB1Ym5hbWUgbGlzdC4gKi8K LQkJaW5pdFN0cmluZ0luZm8oJnB1Yl9uYW1lcyk7Ci0JCWZvcmVhY2hfbm9kZShTdHJpbmcsIHB1 YnN0ciwgTXlTdWJzY3JpcHRpb24tPnB1YmxpY2F0aW9ucykKLQkJewotCQkJY2hhcgkgICAqcHVi bmFtZSA9IHN0clZhbChwdWJzdHIpOwotCi0JCQlpZiAoZm9yZWFjaF9jdXJyZW50X2luZGV4KHB1 YnN0cikgPiAwKQotCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnB1Yl9uYW1lcywgIiwgIik7 Ci0KLQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnB1Yl9uYW1lcywgcXVvdGVfbGl0ZXJhbF9j c3RyKHB1Ym5hbWUpKTsKLQkJfQorCQkvKiBSZXVzZSB0aGUgYWxyZWFkeSBidWlsdCBwdWJfbmFt ZXMgY29tbWEtc2VwYXJhdGVkIHN0cmluZy4gKi8KKwkJQXNzZXJ0KHB1Yl9uYW1lcyk7CiAKIAkJ LyogQ2hlY2sgZm9yIHJvdyBmaWx0ZXJzLiAqLwogCQlyZXNldFN0cmluZ0luZm8oJmNtZCk7CkBA IC0xMDYyLDcgKzEwNDQsNyBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1l LCBjaGFyICpyZWxuYW1lLAogCQkJCQkJICIgV0hFUkUgZ3B0LnJlbGlkID0gJXUiCiAJCQkJCQkg IiAgIEFORCBwLnB1Ym5hbWUgSU4gKCAlcyApIiwKIAkJCQkJCSBscmVsLT5yZW1vdGVpZCwKLQkJ CQkJCSBwdWJfbmFtZXMuZGF0YSk7CisJCQkJCQkgcHViX25hbWVzLT5kYXRhKTsKIAogCQlyZXMg PSB3YWxyY3ZfZXhlYyhMb2dSZXBXb3JrZXJXYWxSY3ZDb25uLCBjbWQuZGF0YSwgMSwgcXVhbFJv dyk7CiAKQEAgLTExMDEsNiArMTA4Myw3IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIg Km5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsCiAJCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3Qo c2xvdCk7CiAKIAkJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworCQlkZXN0cm95U3RyaW5nSW5m byhwdWJfbmFtZXMpOwogCX0KIAogCXBmcmVlKGNtZC5kYXRhKTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5oCmluZGV4IDBhYTE0ZWMuLmIyNWYzZmUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaApAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94 bG9nZGVmcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb25fZC5oIgotCisjaW5jbHVkZSAibGliL3N0cmluZ2luZm8uaCIKICNp bmNsdWRlICJub2Rlcy9wZ19saXN0LmgiCiAKIC8qCkBAIC0xODAsNCArMTgwLDcgQEAgZXh0ZXJu IHZvaWQgRGlzYWJsZVN1YnNjcmlwdGlvbihPaWQgc3ViaWQpOwogCiBleHRlcm4gaW50CUNvdW50 REJTdWJzY3JpcHRpb25zKE9pZCBkYmlkKTsKIAorZXh0ZXJuIHZvaWQgR2V0UHVibGljYXRpb25z U3RyKExpc3QgKnB1YmxpY2F0aW9ucywgU3RyaW5nSW5mbyBkZXN0LAorCQkJCQkJCSAgIGJvb2wg cXVvdGVfbGl0ZXJhbCk7CisKICNlbmRpZgkJCQkJCQkvKiBQR19TVUJTQ1JJUFRJT05fSCAqLwot LSAKMS44LjMuMQoK --00000000000036bbb10625408828--