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 1slPQr-007TPT-Tg for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Sep 2024 09:02:39 +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 1slPQp-009Ej4-GF for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Sep 2024 09:02:35 +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 1slPQo-009Eh9-Ux for pgsql-hackers@lists.postgresql.org; Tue, 03 Sep 2024 09:02:35 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1slPQi-000Qp1-9a for pgsql-hackers@postgresql.org; Tue, 03 Sep 2024 09:02:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1725354147; bh=eA8pzWPEvwqr1Ou0eLFt7I0Tv1xrzm6+H+965N7EHG4=; h=Message-ID:Date:User-Agent:Subject:To:Cc:References:From: In-Reply-To:From; b=6dWuZmjpBq+UyssOLCw08Iff4e4swujwTqO2NmULRdddpKFWmOelDGxzWzyQPgj+E CAzxS10g/fkK97Wydf72BC+6NEaxR+YOZ4ywzYdcZo+3zaExoAgCH3mQC7C6+vOaLP K7nylRG0sUjQsG6ig++D3fADEYPJY8EIEEaXF3z+zQbKKkyv5uMOhUMHJ6prhg3SLk ej9hSQ96MmKiQlvvPu83T6T4jYa9G3hOsjdFDZJY/1TZXhBKRL6yaKwQ5YDbtBnw7R vtM5tT7T7/ZjWbRghaOnu3lDKX7/vG3q1R2piaaRdAHSJvOvCuTPolUuIeiVQxpblk qSMmN2ib9FqDQ== Received: from [192.168.0.91] (unknown [31.173.86.47]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: a.melnikov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 924D660096; Tue, 3 Sep 2024 12:02:26 +0300 (MSK) Content-Type: multipart/mixed; boundary="------------1qGKSaR2Db02MxRYns6toxtt" Message-ID: Date: Tue, 3 Sep 2024 12:02:26 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Use XLOG_CONTROL_FILE macro everywhere? To: Kyotaro Horiguchi , daniel@yesql.se Cc: peter@eisentraut.org, tgl@sss.pgh.pa.us, robertmhaas@gmail.com, michael@paquier.xyz, pgsql-hackers@postgresql.org References: <30207.1714164677@sss.pgh.pa.us> <769dcaa2-acb7-49e5-a0b8-f257b91d1aed@eisentraut.org> <54B16BF2-6979-4BB0-BE39-118D32B1BC58@yesql.se> <20240903.143756.562059416508617821.horikyota.ntt@gmail.com> Content-Language: en-US From: "Anton A. Melnikov" In-Reply-To: <20240903.143756.562059416508617821.horikyota.ntt@gmail.com> X-KSMG-AntiPhishing: NotDetected, bases: 2024/09/03 08:17:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2024/09/03 06:42:00 #26513250 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 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. --------------1qGKSaR2Db02MxRYns6toxtt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 03.09.2024 08:37, Kyotaro Horiguchi wrote: > At Mon, 2 Sep 2024 15:44:45 +0200, Daniel Gustafsson wrote in >> Summarizing the thread it seems consensus is using XLOG_CONTROL_FILE >> consistently as per the original patch. 1) >> A few comments on the patch though: >> >> - * reads the data from $PGDATA/global/pg_control >> + * reads the data from $PGDATA/ >> >> I don't think this is an improvement, I'd leave that one as the filename >> spelled out. > > I agree with the first point. In fact, I think it might be even better > to just write something like "reads the data from the control file" in > plain language rather than using the actual file name. Thanks for remarks! Agreed with both. Tried to fix in v2 attached. 2) >> - "the \".old\" suffix from %s/global/pg_control.old.\n" >> + "the \".old\" suffix from %s/%s.old.\n" >> >> Same with that change, not sure I think that makes reading the errormessage >> code any easier. > As for the > second point, I'm fine either way, but if the main goal is to ensure > resilience against future changes to the value of XLOG_CONTROL_FILE, > then changing it makes sense. On the other hand, I don't see any > strong reasons not to change it. That said, I don't really expect the > value to change in the first place. In v2 removed XLOG_CONTROL_FILE from args and used it directly in the string. IMHO this makes the code more readable and will output the correct text if the macro changes. 3) > The following point caught my attention. > >> +++ b/src/backend/postmaster/postmaster.c > ... >> +#include "access/xlog_internal.h" > > The name xlog_internal suggests that the file should only be included > by modules dealing with XLOG details, and postmaster.c doesn't seem to > fit that category. If the macro is used more broadly, it might be > better to move it to a more public location. However, following the > current discussion, if we decide to keep the macro's name as it is, it > would make more sense to keep it in its current location. Maybe include/access/xlogdefs.h would be a good place for this? In v2 moved some definitions from xlog_internal to xlogdefs and removed including xlog_internal.h from the postmaster.c. Please, take a look on it. With the best wishes, -- Anton A. Melnikov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --------------1qGKSaR2Db02MxRYns6toxtt Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-Use-XLOG_CONTROL_FILE-macro-everywhere-in-C-code.patch" Content-Disposition: attachment; filename*0="v2-0001-Use-XLOG_CONTROL_FILE-macro-everywhere-in-C-code.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSAwYjE0MzU0OTJlMjkzZWU1NTUzYTY5YzJiM2M1NjBiOTNhZGRjODJlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW50b24gQS4gTWVsbmlrb3YiIDxhLm1lbG5pa292 QHBvc3RncmVzcHJvLnJ1PgpEYXRlOiBGcmksIDE5IEFwciAyMDI0IDA2OjEyOjQ0ICswMzAw ClN1YmplY3Q6IFtQQVRDSF0gVXNlIFhMT0dfQ09OVFJPTF9GSUxFIG1hY3JvIGV2ZXJ5d2hl cmUgaW4gQyBjb2RlCgotLS0KIHNyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwLmMgICAg ICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMg ICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvcGdfY29tYmluZWJh Y2t1cC5jIHwgIDUgKysrLS0KIHNyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRh dGEuYyAgICAgfCAgMyArKy0KIHNyYy9iaW4vcGdfcmV3aW5kL2ZpbGVtYXAuYyAgICAgICAg ICAgICAgICAgfCAgMyArKy0KIHNyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jICAgICAg ICAgICAgICAgfCAgOCArKysrLS0tLQogc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRyb2xkYXRh LmMgICAgICAgICAgICB8ICA5ICsrKysrLS0tLQogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAv cGdfdmVyaWZ5YmFja3VwLmMgICB8ICAzICsrLQogc3JjL2NvbW1vbi9jb250cm9sZGF0YV91 dGlscy5jICAgICAgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ2Rl ZnMuaCAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysrCiAxMCBmaWxlcyBjaGFu Z2VkLCAzNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5jIGIvc3JjL2JhY2tlbmQvYmFja3VwL2Jh c2ViYWNrdXAuYwppbmRleCA5YTJiZjU5ZTg0Li5jNWExZTE4MTA0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5jCisrKyBiL3NyYy9iYWNrZW5kL2JhY2t1 cC9iYXNlYmFja3VwLmMKQEAgLTEzNDcsNyArMTM0Nyw3IEBAIHNlbmREaXIoYmJzaW5rICpz aW5rLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgYmFzZXBhdGhsZW4sIGJvb2wgc2l6ZW9ubHks CiAJCXNucHJpbnRmKHBhdGhidWYsIHNpemVvZihwYXRoYnVmKSwgIiVzLyVzIiwgcGF0aCwg ZGUtPmRfbmFtZSk7CiAKIAkJLyogU2tpcCBwZ19jb250cm9sIGhlcmUgdG8gYmFjayB1cCBp dCBsYXN0ICovCi0JCWlmIChzdHJjbXAocGF0aGJ1ZiwgIi4vZ2xvYmFsL3BnX2NvbnRyb2wi KSA9PSAwKQorCQlpZiAoc3RyY21wKHBhdGhidWYsICIuLyIgWExPR19DT05UUk9MX0ZJTEUp ID09IDApCiAJCQljb250aW51ZTsKIAogCQlpZiAobHN0YXQocGF0aGJ1ZiwgJnN0YXRidWYp ICE9IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIu YyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IDdmMzE3MGE4 ZjAuLjFhMzRlZDFjYWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9z dG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBA IC0xNDg5LDcgKzE0ODksNyBAQCBjaGVja0NvbnRyb2xGaWxlKHZvaWQpCiAJY2hhcgkJcGF0 aFtNQVhQR1BBVEhdOwogCUZJTEUJICAgKmZwOwogCi0Jc25wcmludGYocGF0aCwgc2l6ZW9m KHBhdGgpLCAiJXMvZ2xvYmFsL3BnX2NvbnRyb2wiLCBEYXRhRGlyKTsKKwlzbnByaW50Zihw YXRoLCBzaXplb2YocGF0aCksICIlcy8lcyIsIERhdGFEaXIsIFhMT0dfQ09OVFJPTF9GSUxF KTsKIAogCWZwID0gQWxsb2NhdGVGaWxlKHBhdGgsIFBHX0JJTkFSWV9SKTsKIAlpZiAoZnAg PT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC9wZ19jb21i aW5lYmFja3VwLmMgYi9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvcGdfY29tYmluZWJhY2t1 cC5jCmluZGV4IGIyNmM1MzI0NDUuLjE2NDQ4ZTc4YjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfY29tYmluZWJhY2t1cC9wZ19jb21iaW5lYmFja3VwLmMKKysrIGIvc3JjL2Jpbi9wZ19j b21iaW5lYmFja3VwL3BnX2NvbWJpbmViYWNrdXAuYwpAQCAtMTYsNiArMTYsNyBAQAogI2lu Y2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAKKyNpbmNsdWRlICJhY2Nl c3MveGxvZ19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImJhY2t1cF9sYWJlbC5oIgogI2luY2x1 ZGUgImNvbW1vbi9ibGtyZWZ0YWJsZS5oIgogI2luY2x1ZGUgImNvbW1vbi9jaGVja3N1bV9o ZWxwZXIuaCIKQEAgLTI4NCw3ICsyODUsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJCXsKIAkJCWNoYXIJICAgKmNvbnRyb2xwYXRoOwogCi0JCQljb250cm9scGF0aCA9 IHBzcHJpbnRmKCIlcy8lcyIsIHByaW9yX2JhY2t1cF9kaXJzW2ldLCAiZ2xvYmFsL3BnX2Nv bnRyb2wiKTsKKwkJCWNvbnRyb2xwYXRoID0gcHNwcmludGYoIiVzLyVzIiwgcHJpb3JfYmFj a3VwX2RpcnNbaV0sIFhMT0dfQ09OVFJPTF9GSUxFKTsKIAogCQkJcGdfZmF0YWwoIiVzOiBt YW5pZmVzdCBzeXN0ZW0gaWRlbnRpZmllciBpcyAlbGx1LCBidXQgY29udHJvbCBmaWxlIGhh cyAlbGx1IiwKIAkJCQkJIGNvbnRyb2xwYXRoLApAQCAtNTkxLDcgKzU5Miw3IEBAIGNoZWNr X2NvbnRyb2xfZmlsZXMoaW50IG5fYmFja3VwcywgY2hhciAqKmJhY2t1cF9kaXJzKQogCQli b29sCQljcmNfb2s7CiAJCWNoYXIJICAgKmNvbnRyb2xwYXRoOwogCi0JCWNvbnRyb2xwYXRo ID0gcHNwcmludGYoIiVzLyVzIiwgYmFja3VwX2RpcnNbaV0sICJnbG9iYWwvcGdfY29udHJv bCIpOworCQljb250cm9scGF0aCA9IHBzcHJpbnRmKCIlcy8lcyIsIGJhY2t1cF9kaXJzW2ld LCBYTE9HX0NPTlRST0xfRklMRSk7CiAJCXBnX2xvZ19kZWJ1ZygicmVhZGluZyBcIiVzXCIi LCBjb250cm9scGF0aCk7CiAJCWNvbnRyb2xfZmlsZSA9IGdldF9jb250cm9sZmlsZV9ieV9l eGFjdF9wYXRoKGNvbnRyb2xwYXRoLCAmY3JjX29rKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19jb250cm9sZGF0YS9wZ19jb250cm9sZGF0YS5jIGIvc3JjL2Jpbi9wZ19jb250cm9s ZGF0YS9wZ19jb250cm9sZGF0YS5jCmluZGV4IDkzZTA4Mzc5NDcuLmJhM2UxOGM5MTggMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfY29udHJvbGRhdGEvcGdfY29udHJvbGRhdGEuYworKysg Yi9zcmMvYmluL3BnX2NvbnRyb2xkYXRhL3BnX2NvbnRyb2xkYXRhLmMKQEAgLTEsNyArMSw4 IEBACiAvKgogICogcGdfY29udHJvbGRhdGEKICAqCi0gKiByZWFkcyB0aGUgZGF0YSBmcm9t ICRQR0RBVEEvZ2xvYmFsL3BnX2NvbnRyb2wKKyAqIHJlYWRzIHRoZSBkYXRhIGZyb20gcmVh ZHMgdGhlIGRhdGEgZnJvbSB0aGUgY29udHJvbCBmaWxlCisgKiB3aGljaCBpcyBsb2NhdGVk IGF0ICRQR0RBVEEvWExPR19DT05UUk9MX0ZJTEUKICAqCiAgKiBjb3B5cmlnaHQgKGMpIE9s aXZlciBFbHBoaWNrIDxvbGx5QGxmaXguY28udWs+LCAyMDAxOwogICogbGljZW5zZTogQlNE CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jld2luZC9maWxlbWFwLmMgYi9zcmMvYmluL3Bn X3Jld2luZC9maWxlbWFwLmMKaW5kZXggNDQ1ODMyNGM5ZC4uNjIyNGU5NGQwOSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1hcC5jCisrKyBiL3NyYy9iaW4vcGdfcmV3 aW5kL2ZpbGVtYXAuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+ CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5h bC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZV9kLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2ZpbGVfdXRpbHMuaCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vuc3RhYmxl LmgiCkBAIC02NDMsNyArNjQ0LDcgQEAgZGVjaWRlX2ZpbGVfYWN0aW9uKGZpbGVfZW50cnlf dCAqZW50cnkpCiAJICogRG9uJ3QgdG91Y2ggdGhlIGNvbnRyb2wgZmlsZS4gSXQgaXMgaGFu ZGxlZCBzcGVjaWFsbHksIGFmdGVyIGNvcHlpbmcKIAkgKiBhbGwgdGhlIG90aGVyIGZpbGVz LgogCSAqLwotCWlmIChzdHJjbXAocGF0aCwgImdsb2JhbC9wZ19jb250cm9sIikgPT0gMCkK KwlpZiAoc3RyY21wKHBhdGgsIFhMT0dfQ09OVFJPTF9GSUxFKSA9PSAwKQogCQlyZXR1cm4g RklMRV9BQ1RJT05fTk9ORTsKIAogCS8qIFNraXAgbWFjT1Mgc3lzdGVtIGZpbGVzICovCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jld2luZC9wZ19yZXdpbmQuYyBiL3NyYy9iaW4vcGdf cmV3aW5kL3BnX3Jld2luZC5jCmluZGV4IDg0NDlhZTc4ZWYuLjIxM2E4YjIyY2QgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jCisrKyBiL3NyYy9iaW4vcGdf cmV3aW5kL3BnX3Jld2luZC5jCkBAIC0zMjgsNyArMzI4LDcgQEAgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJICogbmVlZCB0byBtYWtlIHN1cmUgYnkgdGhlbXNlbHZlcyB0aGF0 IHRoZSB0YXJnZXQgY2x1c3RlciBpcyBpbiBhIGNsZWFuCiAJICogc3RhdGUuCiAJICovCi0J YnVmZmVyID0gc2x1cnBGaWxlKGRhdGFkaXJfdGFyZ2V0LCAiZ2xvYmFsL3BnX2NvbnRyb2wi LCAmc2l6ZSk7CisJYnVmZmVyID0gc2x1cnBGaWxlKGRhdGFkaXJfdGFyZ2V0LCBYTE9HX0NP TlRST0xfRklMRSwgJnNpemUpOwogCWRpZ2VzdENvbnRyb2xGaWxlKCZDb250cm9sRmlsZV90 YXJnZXQsIGJ1ZmZlciwgc2l6ZSk7CiAJcGdfZnJlZShidWZmZXIpOwogCkBAIC0zMzgsMTIg KzMzOCwxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAl7CiAJCWVuc3VyZUNs ZWFuU2h1dGRvd24oYXJndlswXSk7CiAKLQkJYnVmZmVyID0gc2x1cnBGaWxlKGRhdGFkaXJf dGFyZ2V0LCAiZ2xvYmFsL3BnX2NvbnRyb2wiLCAmc2l6ZSk7CisJCWJ1ZmZlciA9IHNsdXJw RmlsZShkYXRhZGlyX3RhcmdldCwgWExPR19DT05UUk9MX0ZJTEUsICZzaXplKTsKIAkJZGln ZXN0Q29udHJvbEZpbGUoJkNvbnRyb2xGaWxlX3RhcmdldCwgYnVmZmVyLCBzaXplKTsKIAkJ cGdfZnJlZShidWZmZXIpOwogCX0KIAotCWJ1ZmZlciA9IHNvdXJjZS0+ZmV0Y2hfZmlsZShz b3VyY2UsICJnbG9iYWwvcGdfY29udHJvbCIsICZzaXplKTsKKwlidWZmZXIgPSBzb3VyY2Ut PmZldGNoX2ZpbGUoc291cmNlLCBYTE9HX0NPTlRST0xfRklMRSwgJnNpemUpOwogCWRpZ2Vz dENvbnRyb2xGaWxlKCZDb250cm9sRmlsZV9zb3VyY2UsIGJ1ZmZlciwgc2l6ZSk7CiAJcGdf ZnJlZShidWZmZXIpOwogCkBAIC02MzEsNyArNjMxLDcgQEAgcGVyZm9ybV9yZXdpbmQoZmls ZW1hcF90ICpmaWxlbWFwLCByZXdpbmRfc291cmNlICpzb3VyY2UsCiAJICogRmV0Y2ggdGhl IGNvbnRyb2wgZmlsZSBmcm9tIHRoZSBzb3VyY2UgbGFzdC4gVGhpcyBlbnN1cmVzIHRoYXQg dGhlCiAJICogbWluUmVjb3ZlcnlQb2ludCBpcyB1cC10by1kYXRlLgogCSAqLwotCWJ1ZmZl ciA9IHNvdXJjZS0+ZmV0Y2hfZmlsZShzb3VyY2UsICJnbG9iYWwvcGdfY29udHJvbCIsICZz aXplKTsKKwlidWZmZXIgPSBzb3VyY2UtPmZldGNoX2ZpbGUoc291cmNlLCBYTE9HX0NPTlRS T0xfRklMRSwgJnNpemUpOwogCWRpZ2VzdENvbnRyb2xGaWxlKCZDb250cm9sRmlsZV9zb3Vy Y2VfYWZ0ZXIsIGJ1ZmZlciwgc2l6ZSk7CiAJcGdfZnJlZShidWZmZXIpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYyBiL3NyYy9iaW4vcGdfdXBn cmFkZS9jb250cm9sZGF0YS5jCmluZGV4IDFmMGNjZWEzZWQuLjA1MjdhZTc2ZDggMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9jb250cm9sZGF0YS5jCisrKyBiL3NyYy9iaW4v cGdfdXBncmFkZS9jb250cm9sZGF0YS5jCkBAIC0xMSw2ICsxMSw3IEBACiAKICNpbmNsdWRl IDxjdHlwZS5oPgogCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dfaW50ZXJuYWwuaCIKICNpbmNs dWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAicGdfdXBncmFkZS5oIgogCkBAIC03 MTQsMTAgKzcxNSwxMCBAQCBkaXNhYmxlX29sZF9jbHVzdGVyKHZvaWQpCiAJCQkJbmV3X3Bh dGhbTUFYUEdQQVRIXTsKIAogCS8qIHJlbmFtZSBwZ19jb250cm9sIHNvIG9sZCBzZXJ2ZXIg Y2Fubm90IGJlIGFjY2lkZW50YWxseSBzdGFydGVkICovCi0JcHJlcF9zdGF0dXMoIkFkZGlu ZyBcIi5vbGRcIiBzdWZmaXggdG8gb2xkIGdsb2JhbC9wZ19jb250cm9sIik7CisJcHJlcF9z dGF0dXMoIkFkZGluZyBcIi5vbGRcIiBzdWZmaXggdG8gb2xkICIgWExPR19DT05UUk9MX0ZJ TEUpOwogCi0Jc25wcmludGYob2xkX3BhdGgsIHNpemVvZihvbGRfcGF0aCksICIlcy9nbG9i YWwvcGdfY29udHJvbCIsIG9sZF9jbHVzdGVyLnBnZGF0YSk7Ci0Jc25wcmludGYobmV3X3Bh dGgsIHNpemVvZihuZXdfcGF0aCksICIlcy9nbG9iYWwvcGdfY29udHJvbC5vbGQiLCBvbGRf Y2x1c3Rlci5wZ2RhdGEpOworCXNucHJpbnRmKG9sZF9wYXRoLCBzaXplb2Yob2xkX3BhdGgp LCAiJXMvJXMiLCBvbGRfY2x1c3Rlci5wZ2RhdGEsIFhMT0dfQ09OVFJPTF9GSUxFKTsKKwlz bnByaW50ZihuZXdfcGF0aCwgc2l6ZW9mKG5ld19wYXRoKSwgIiVzLyVzLm9sZCIsIG9sZF9j bHVzdGVyLnBnZGF0YSwgWExPR19DT05UUk9MX0ZJTEUpOwogCWlmIChwZ19tdl9maWxlKG9s ZF9wYXRoLCBuZXdfcGF0aCkgIT0gMCkKIAkJcGdfZmF0YWwoImNvdWxkIG5vdCByZW5hbWUg ZmlsZSBcIiVzXCIgdG8gXCIlc1wiOiAlbSIsCiAJCQkJIG9sZF9wYXRoLCBuZXdfcGF0aCk7 CkBAIC03MjUsNyArNzI2LDcgQEAgZGlzYWJsZV9vbGRfY2x1c3Rlcih2b2lkKQogCiAJcGdf bG9nKFBHX1JFUE9SVCwgIlxuIgogCQkgICAiSWYgeW91IHdhbnQgdG8gc3RhcnQgdGhlIG9s ZCBjbHVzdGVyLCB5b3Ugd2lsbCBuZWVkIHRvIHJlbW92ZVxuIgotCQkgICAidGhlIFwiLm9s ZFwiIHN1ZmZpeCBmcm9tICVzL2dsb2JhbC9wZ19jb250cm9sLm9sZC5cbiIKKwkJICAgInRo ZSBcIi5vbGRcIiBzdWZmaXggZnJvbSAlcy8iIFhMT0dfQ09OVFJPTF9GSUxFICIub2xkLlxu IgogCQkgICAiQmVjYXVzZSBcImxpbmtcIiBtb2RlIHdhcyB1c2VkLCB0aGUgb2xkIGNsdXN0 ZXIgY2Fubm90IGJlIHNhZmVseVxuIgogCQkgICAic3RhcnRlZCBvbmNlIHRoZSBuZXcgY2x1 c3RlciBoYXMgYmVlbiBzdGFydGVkLiIsCiAJCSAgIG9sZF9jbHVzdGVyLnBnZGF0YSk7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyBi L3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IGZkNjEw YzIwYTYuLjUzMzM4ZGYzOTcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3BnX3ZlcmlmeWJhY2t1cC5jCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3BnX3Zl cmlmeWJhY2t1cC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4K ICNpbmNsdWRlIDx0aW1lLmg+CiAKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5o IgogI2luY2x1ZGUgImNvbW1vbi9jb250cm9sZGF0YV91dGlscy5oIgogI2luY2x1ZGUgImNv bW1vbi9oYXNoZm5fdW5zdGFibGUuaCIKICNpbmNsdWRlICJjb21tb24vbG9nZ2luZy5oIgpA QCAtNzM1LDcgKzczNiw3IEBAIHZlcmlmeV9iYWNrdXBfZmlsZSh2ZXJpZmllcl9jb250ZXh0 ICpjb250ZXh0LCBjaGFyICpyZWxwYXRoLCBjaGFyICpmdWxscGF0aCkKIAkgKiB2ZXJzaW9u IDEuCiAJICovCiAJaWYgKGNvbnRleHQtPm1hbmlmZXN0LT52ZXJzaW9uICE9IDEgJiYKLQkJ c3RyY21wKHJlbHBhdGgsICJnbG9iYWwvcGdfY29udHJvbCIpID09IDApCisJCXN0cmNtcChy ZWxwYXRoLCBYTE9HX0NPTlRST0xfRklMRSkgPT0gMCkKIAkJdmVyaWZ5X2NvbnRyb2xfZmls ZShmdWxscGF0aCwgY29udGV4dC0+bWFuaWZlc3QtPnN5c3RlbV9pZGVudGlmaWVyKTsKIAog CS8qIFVwZGF0ZSBzdGF0aXN0aWNzIGZvciBwcm9ncmVzcyByZXBvcnQsIGlmIG5lY2Vzc2Fy eSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jIGIvc3Jj L2NvbW1vbi9jb250cm9sZGF0YV91dGlscy5jCmluZGV4IDgyMzA5YjI1MTAuLjQxMTEzOWVl YjAgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vY29udHJvbGRhdGFfdXRpbHMuYworKysgYi9z cmMvY29tbW9uL2NvbnRyb2xkYXRhX3V0aWxzLmMKQEAgLTUzLDcgKzUzLDcgQEAgZ2V0X2Nv bnRyb2xmaWxlKGNvbnN0IGNoYXIgKkRhdGFEaXIsIGJvb2wgKmNyY19va19wKQogewogCWNo YXIJCUNvbnRyb2xGaWxlUGF0aFtNQVhQR1BBVEhdOwogCi0Jc25wcmludGYoQ29udHJvbEZp bGVQYXRoLCBNQVhQR1BBVEgsICIlcy9nbG9iYWwvcGdfY29udHJvbCIsIERhdGFEaXIpOwor CXNucHJpbnRmKENvbnRyb2xGaWxlUGF0aCwgTUFYUEdQQVRILCAiJXMvJXMiLCBEYXRhRGly LCBYTE9HX0NPTlRST0xfRklMRSk7CiAKIAlyZXR1cm4gZ2V0X2NvbnRyb2xmaWxlX2J5X2V4 YWN0X3BhdGgoQ29udHJvbEZpbGVQYXRoLCBjcmNfb2tfcCk7CiB9CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZ2RlZnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9n ZGVmcy5oCmluZGV4IDMwMDk3OTg5NTIuLjllZTlmZmFkNzAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy94bG9nZGVmcy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9n ZGVmcy5oCkBAIC0yOCw2ICsyOCwyMSBAQCB0eXBlZGVmIHVpbnQ2NCBYTG9nUmVjUHRyOwog I2RlZmluZSBJbnZhbGlkWExvZ1JlY1B0cgkwCiAjZGVmaW5lIFhMb2dSZWNQdHJJc0ludmFs aWQocikJKChyKSA9PSBJbnZhbGlkWExvZ1JlY1B0cikKIAorLyoKKyAqIFRoZSBYTG9nIGRp cmVjdG9yeSBhbmQgY29udHJvbCBmaWxlIChyZWxhdGl2ZSB0byAkUEdEQVRBKQorICovCisj ZGVmaW5lIFhMT0dESVIJCQkJInBnX3dhbCIKKyNkZWZpbmUgWExPR19DT05UUk9MX0ZJTEUJ Imdsb2JhbC9wZ19jb250cm9sIgorCisvKgorICogVGhlc2UgbWFjcm9zIGVuY2Fwc3VsYXRl IGtub3dsZWRnZSBhYm91dCB0aGUgZXhhY3QgbGF5b3V0IG9mIFhMb2cgZmlsZQorICogbmFt ZXMsIHRpbWVsaW5lIGhpc3RvcnkgZmlsZSBuYW1lcywgYW5kIGFyY2hpdmUtc3RhdHVzIGZp bGUgbmFtZXMuCisgKi8KKyNkZWZpbmUgTUFYRk5BTUVMRU4JCTY0CisKKy8qIExlbmd0aCBv ZiBYTG9nIGZpbGUgbmFtZSAqLworI2RlZmluZSBYTE9HX0ZOQU1FX0xFTgkgICAyNAorCiAv KgogICogRmlyc3QgTFNOIHRvIHVzZSBmb3IgImZha2UiIExTTnMuCiAgKgotLSAKMi40Ni4w Cgo= --------------1qGKSaR2Db02MxRYns6toxtt--