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.96) (envelope-from ) id 1vpNTE-006wRr-15 for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Feb 2026 09:22:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vpNTD-009tqd-1C for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Feb 2026 09:22:15 +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.96) (envelope-from ) id 1vpNTC-009tq7-2V for pgsql-hackers@lists.postgresql.org; Mon, 09 Feb 2026 09:22:14 +0000 Received: from mail-yw1-x1134.google.com ([2607:f8b0:4864:20::1134]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vpNTA-00000001Ffe-10S3 for pgsql-hackers@postgresql.org; Mon, 09 Feb 2026 09:22:13 +0000 Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-79430ef54c3so23668927b3.2 for ; Mon, 09 Feb 2026 01:22:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770628931; cv=none; d=google.com; s=arc-20240605; b=A4SmkGGM59ssFZfI1VIpNz8KGAp918hqAucYjjTdn7RO04t1s1QuCSfh+pGTmPf5+b 8fPdN5rg5edlS44MT0sqb2S5hOXtBLJwvUJo4M1Ut0d9pc/ufJD656+HawyTY1+3swR0 08ijSZYKmy2R2wcCWdGIPw+xj+6Am+aJwwnKgMeLgtNBPVaMvPIHDglobZK3EevV52S0 r5+JNOYz38pdl9SV7REaCz8FpOanogYwea3/zT40HSuBqLNvn1BQOxWRpGNvBE890z+C e1C5HCi0wacso+Dv4K32TQhosUpmHAEGcFtK3JMZC6n2KVctDU9AvfOCACQYlPH69MNO 9ABQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=kOIRXvf1CLXUGzzaV6j4PDtg/rdFTWlQd7PTRH0BCJY=; fh=llvrXrlB20cjf9sj7FvwNbOMW4sdeMH+atzbg2LtQt4=; b=FHIcw/oTKx3uDKzoRUaO9O8Bs9071pD4iFH26VvKdv61qFcoc0yE3X0D3RVq5iE59e jqR3OIvEO2JzYNxnDmTX7dZ9iF3EwWDnmKS9Ittm2rtFYnLCU9lqoGR86bZRQMRYYMNP WBHqag7O21qBl9krWHy9FaA2QGD7YdEZ/HQlnTFaPmIRgOHqfTwL9r8Dc9oeKq2UnfUf 2IrPUn5B+H4dQXJMDomV1sZY0fWQRCnesJtCO+Hgyh72HR0eVHoECtIAaHnJRwPkjyKH jwxutz7rrvxYXWxRoTFBm5Ty8vOEgRB5ZU15Sx+aTo+DE/lDMcb9OsK6tZmB7HNpbAEf PscA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datadoghq.com; s=google; t=1770628931; x=1771233731; darn=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=kOIRXvf1CLXUGzzaV6j4PDtg/rdFTWlQd7PTRH0BCJY=; b=ZyO5fAqDqcDXkK2GrHny1eR82re737R7SkKDWI452WVK89jUxLLDF489/2Abvna79X nD+ClF/YQTlVK2dfJ9dvBG+nQAVV89NbEdjrEXIJWe1lMPswgc5W+3XvrbejB85BE1Pj rTRHFNprTRNoxcr+tcaMdOJLd9T7Nml1BJdx4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770628931; x=1771233731; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kOIRXvf1CLXUGzzaV6j4PDtg/rdFTWlQd7PTRH0BCJY=; b=FVdJAgoVpGhEAJmfK5ZL211dwJFPPOkCZK+sOt693DpaSnr+IEKGCB647jtq+EVlGx ncw3s0/5+NXooFPjXbHbxi5I3s5K+mNTwx/8oCBmPdkbkhcB8lxAl8gm78VrKBykxt/a 0d6lPGYTuLegLePRB6zpG1fazK4J3IVyc0g/6LCXyTHiqSOrKOxVsuSoqRTkbzzihSQ6 wohfZk+lG3sMgLAADD6NPEHyJB7Hg7LIZiEBc9AtOWEyhvj3gf5a6PDKkkfqRWU+d7oo XvyjvTigVdlxr/jgdSVSjIfcaPK1+Cxij0jp72R6TlY1kAAXLhHUykISWKjFP+P5DVXi bEkA== X-Gm-Message-State: AOJu0Yyr/wmyEC3jMuBSyw0RM+PvOHrD4sdndFS0x0SZQ6IYp0AGu8H8 JOfj7n29mJX4ioZDbVgL7+WolbVxDe1ZGU9StfPwGOuFWjAT4Wqg+fBH/7BADVAnQLhqUf0QMpI 7Wd1ZNiu+Yivy+85b0c1ZNz6gMcSb8Q4CYw4eibbOfw== X-Gm-Gg: AZuq6aJ8DUMHsQASrotbWmhO7A6SrzumiNIdaTX50SHI+3LiLMY5DXRYptLSOCa1o76 Tvz51mos4S+lWEHvndQA/enGN0qzg1xvRcFzgSy4bBBw2A3wd3jcnQC+dQUR4QIBStdA5+KbNmi Z6Jf2ckRfXcsdiI7NLQ7qWVexf+tj2ZoWC5o7ryLGTayJnmPhGDLf7rNwUvoWW3nDit0J6f1gN6 h3ks7tx+OYYmAnaXqshAQJEK3PsWqYw/HX6MAdNyPB2zE/OVAQ0YBQCHtX9ZG9NSEAbMg== X-Received: by 2002:a05:690c:6605:b0:795:3e1:ddac with SMTP id 00721157ae682-7952aa945ebmr106605557b3.21.1770628930807; Mon, 09 Feb 2026 01:22:10 -0800 (PST) MIME-Version: 1.0 References: <0cbf5d34-f117-456f-bcc0-50fa9a8eafba@gmail.com> In-Reply-To: <0cbf5d34-f117-456f-bcc0-50fa9a8eafba@gmail.com> From: Anthonin Bonnefoy Date: Mon, 9 Feb 2026 10:21:59 +0100 X-Gm-Features: AZwV_QihT10wI0XqMqEhhzBEGxVdypsbRxEZez3912IBHNtRTFhB3YT6ruAcLUk Message-ID: Subject: Re: Propagate XLogFindNextRecord error to callers To: Mircea Cadariu Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000076c5d0064a60ac98" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000076c5d0064a60ac98 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 3, 2026 at 5:05=E2=80=AFPM Mircea Cadariu wrote: > I've picked up the review for your patch. Thanks for picking it! > Attached is a failing test that reproduces the issue. Have I got it > right? We can consider using it to validate your patch then. Yeah, that's the gist of it. However, the test you've written will only work on little endian architectures. Also, I think the xlog page header size won't have the 4 bytes padding on 32 bits systems. I've added a similar test in 001_basic.pl, but it relies on copying an existing WAL file and setting the WAL magic to 0000. This way, the result will be the same independent of the endianness and memory padding. Regards, Anthonin Bonnefoy --00000000000076c5d0064a60ac98 Content-Type: application/octet-stream; name="v2-0001-Propage-errormsg-to-XLogFindNextRecord-caller.patch" Content-Disposition: attachment; filename="v2-0001-Propage-errormsg-to-XLogFindNextRecord-caller.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mley850t0 RnJvbSA3NDA1MTkxOTJlNmMzYzY1MDNmMDQ3OTQyMmM3YjkxMTBhNDE4NmNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRob25pbiBCb25uZWZveSA8YW50aG9uaW4uYm9ubmVmb3lA ZGF0YWRvZ2hxLmNvbT4KRGF0ZTogRnJpLCAxMiBEZWMgMjAyNSAwOTo1NjowMCArMDEwMApTdWJq ZWN0OiBQcm9wYWdlIGVycm9ybXNnIHRvIFhMb2dGaW5kTmV4dFJlY29yZCBjYWxsZXIKCkN1cnJl bnRseSwgWExvZ0ZpbmROZXh0UmVjb3JkIGVycm9ybXNnIGlzIGlnbm9yZWQgYW5kIGNhbGxlcnMg d2lsbCBvbmx5Cm91dHB1dCBhIGdlbmVyaWMgJ2NvdWxkIG5vdCBmaW5kIGEgdmFsaWQgcmVjb3Jk JyBtZXNzYWdlIHdpdGhvdXQKZGV0YWlscy4KQWRkaXRpb25hbGx5LCBpbnZhbGlkIHBhZ2UgaGVh ZGVyIHdvbid0IGdvIHRocm91Z2ggWExvZ1JlYWRSZWNvcmQsCmxlYXZpbmcgdGhlIGVycm9yIGlu IHN0YXRlLT5lcnJvcm1zZ19idWYuCgpUaGlzIHBhdGNoIHByb3BhZ2F0ZXMgWExvZ0ZpbmROZXh0 UmVjb3JkJ3MgZXJyb3IgbWVzc2FnZSB0byB0aGUgY2FsbGVycwphbmQgZGlzcGxheXMgaXQuIElu IGNhc2Ugb2YgYW4gaW52YWxpZCBwYWdlIGhlYWRlciwgdGhlIGVycm9ybXNnIGlzCmZpbGxlZCB3 aXRoIGVycm9ybXNnX2J1ZiBjb250ZW50LgotLS0KIGNvbnRyaWIvcGdfd2FsaW5zcGVjdC9wZ193 YWxpbnNwZWN0LmMgICAgIHwgMTYgKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ3JlYWRlci5jICAgfCAxNiArKysrKysrKysrKysrLS0tCiBzcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL3dhbHN1bW1hcml6ZXIuYyAgICB8IDE3ICsrKysrKysrKysrKy0tLS0tCiBz cmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jICAgICAgICAgICB8IDEyICsrKysrKysrKy0t LQogc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAxX2Jhc2ljLnBsICAgICAgICAgfCAyMyArKysrKysr KysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ193YWxkdW1wL3QvMDAzX2Vycm9yX21lc3NhZ2Uu cGwgfCAyMiArKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3Jl YWRlci5oICAgICAgICAgICB8ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMo KyksIDE2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfd2FsZHVt cC90LzAwM19lcnJvcl9tZXNzYWdlLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ193YWxpbnNw ZWN0L3BnX3dhbGluc3BlY3QuYyBiL2NvbnRyaWIvcGdfd2FsaW5zcGVjdC9wZ193YWxpbnNwZWN0 LmMKaW5kZXggNzE2YTA5MjJjNmIuLjk4ZGQzMWI2OWJiIDEwMDY0NAotLS0gYS9jb250cmliL3Bn X3dhbGluc3BlY3QvcGdfd2FsaW5zcGVjdC5jCisrKyBiL2NvbnRyaWIvcGdfd2FsaW5zcGVjdC9w Z193YWxpbnNwZWN0LmMKQEAgLTk3LDYgKzk3LDcgQEAgSW5pdFhMb2dSZWFkZXJTdGF0ZShYTG9n UmVjUHRyIGxzbikKIAlYTG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXI7CiAJUmVhZExvY2FsWExv Z1BhZ2VOb1dhaXRQcml2YXRlICpwcml2YXRlX2RhdGE7CiAJWExvZ1JlY1B0cglmaXJzdF92YWxp ZF9yZWNvcmQ7CisJY2hhcgkgICAqZXJyb3Jtc2c7CiAKIAkvKgogCSAqIFJlYWRpbmcgV0FMIGJl bG93IHRoZSBmaXJzdCBwYWdlIG9mIHRoZSBmaXJzdCBzZWdtZW50cyBpc24ndCBhbGxvd2VkLgpA QCAtMTI0LDEyICsxMjUsMTkgQEAgSW5pdFhMb2dSZWFkZXJTdGF0ZShYTG9nUmVjUHRyIGxzbikK IAkJCQkgZXJyZGV0YWlsKCJGYWlsZWQgd2hpbGUgYWxsb2NhdGluZyBhIFdBTCByZWFkaW5nIHBy b2Nlc3Nvci4iKSkpOwogCiAJLyogZmlyc3QgZmluZCBhIHZhbGlkIHJlY3B0ciB0byBzdGFydCBm cm9tICovCi0JZmlyc3RfdmFsaWRfcmVjb3JkID0gWExvZ0ZpbmROZXh0UmVjb3JkKHhsb2dyZWFk ZXIsIGxzbik7CisJZmlyc3RfdmFsaWRfcmVjb3JkID0gWExvZ0ZpbmROZXh0UmVjb3JkKHhsb2dy ZWFkZXIsIGxzbiwgJmVycm9ybXNnKTsKIAogCWlmICghWExvZ1JlY1B0cklzVmFsaWQoZmlyc3Rf dmFsaWRfcmVjb3JkKSkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQllcnJtc2coImNvdWxkIG5vdCBm aW5kIGEgdmFsaWQgcmVjb3JkIGFmdGVyICVYLyUwOFgiLAotCQkJCQkgICBMU05fRk9STUFUX0FS R1MobHNuKSkpOworCXsKKwkJaWYgKGVycm9ybXNnKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ ZXJybXNnKCJjb3VsZCBub3QgZmluZCBhIHZhbGlkIHJlY29yZCBhZnRlciAlWC8lMDhYOiAlcyIs CisJCQkJCQkgICBMU05fRk9STUFUX0FSR1MobHNuKSwgZXJyb3Jtc2cpKTsKKwkJZWxzZQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJybXNnKCJjb3VsZCBub3QgZmluZCBhIHZhbGlkIHJlY29y ZCBhZnRlciAlWC8lMDhYIiwKKwkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhsc24pKSk7CisJfQog CiAJcmV0dXJuIHhsb2dyZWFkZXI7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9ncmVhZGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVh ZGVyLmMKaW5kZXggMDNhZGE4YWEwYzUuLjVhMTUxYmJmMjdmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVhZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ3JlYWRlci5jCkBAIC0xMzkxLDEyICsxMzkxLDExIEBAIFhMb2dSZWFkZXJS ZXNldEVycm9yKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUpCiAgKiBYTG9nUmVhZFJlY29yZCgpIHdp bGwgcmVhZCB0aGUgbmV4dCB2YWxpZCByZWNvcmQuCiAgKi8KIFhMb2dSZWNQdHIKLVhMb2dGaW5k TmV4dFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIFJlY1B0cikKK1hM b2dGaW5kTmV4dFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIFJlY1B0 ciwgY2hhciAqKmVycm9ybXNnKQogewogCVhMb2dSZWNQdHIJdG1wUmVjUHRyOwogCVhMb2dSZWNQ dHIJZm91bmQgPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAlYTG9nUGFnZUhlYWRlciBoZWFkZXI7Ci0J Y2hhcgkgICAqZXJyb3Jtc2c7CiAKIAlBc3NlcnQoWExvZ1JlY1B0cklzVmFsaWQoUmVjUHRyKSk7 CiAKQEAgLTE0ODEsNyArMTQ4MCw3IEBAIFhMb2dGaW5kTmV4dFJlY29yZChYTG9nUmVhZGVyU3Rh dGUgKnN0YXRlLCBYTG9nUmVjUHRyIFJlY1B0cikKIAkgKiBvciB3ZSBqdXN0IGp1bXBlZCBvdmVy IHRoZSByZW1haW5pbmcgZGF0YSBvZiBhIGNvbnRpbnVhdGlvbi4KIAkgKi8KIAlYTG9nQmVnaW5S ZWFkKHN0YXRlLCB0bXBSZWNQdHIpOwotCXdoaWxlIChYTG9nUmVhZFJlY29yZChzdGF0ZSwgJmVy cm9ybXNnKSAhPSBOVUxMKQorCXdoaWxlIChYTG9nUmVhZFJlY29yZChzdGF0ZSwgZXJyb3Jtc2cp ICE9IE5VTEwpCiAJewogCQkvKiBwYXN0IHRoZSByZWNvcmQgd2UndmUgZm91bmQsIGJyZWFrIG91 dCAqLwogCQlpZiAoUmVjUHRyIDw9IHN0YXRlLT5SZWFkUmVjUHRyKQpAQCAtMTQ5Niw2ICsxNDk1 LDE3IEBAIFhMb2dGaW5kTmV4dFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVj UHRyIFJlY1B0cikKIGVycjoKIAlYTG9nUmVhZGVySW52YWxSZWFkU3RhdGUoc3RhdGUpOwogCisJ LyoKKwkgKiB3ZSBtYXkgaGF2ZSByZXBvcnRlZCBlcnJvcnMgZHVlIHRvIGludmFsaWQgV0FMIGhl YWRlciwgcHJvcGFnYXRlIHRoZQorCSAqIGVycm9yIG1lc3NhZ2UgdG8gdGhlIGNhbGxlci4KKwkg Ki8KKwlpZiAoc3RhdGUtPmVycm9ybXNnX2RlZmVycmVkKQorCXsKKwkJaWYgKHN0YXRlLT5lcnJv cm1zZ19idWZbMF0gIT0gJ1wwJykKKwkJCSplcnJvcm1zZyA9IHN0YXRlLT5lcnJvcm1zZ19idWY7 CisJCXN0YXRlLT5lcnJvcm1zZ19kZWZlcnJlZCA9IGZhbHNlOworCX0KKwogCXJldHVybiBJbnZh bGlkWExvZ1JlY1B0cjsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93 YWxzdW1tYXJpemVyLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3dhbHN1bW1hcml6ZXIuYwpp bmRleCAyZDhmNTcwOTlmZC4uZjUwOTc2YTdmNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvd2Fsc3VtbWFyaXplci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fs c3VtbWFyaXplci5jCkBAIC05MTcsNiArOTE3LDcgQEAgU3VtbWFyaXplV0FMKFRpbWVMaW5lSUQg dGxpLCBYTG9nUmVjUHRyIHN0YXJ0X2xzbiwgYm9vbCBleGFjdCwKIAlXYWxTdW1tYXJ5SU8gaW87 CiAJQmxvY2tSZWZUYWJsZSAqYnJ0YWIgPSBDcmVhdGVFbXB0eUJsb2NrUmVmVGFibGUoKTsKIAli b29sCQlmYXN0X2ZvcndhcmQgPSB0cnVlOworCWNoYXIJICAgKmVycm9ybXNnOwogCiAJLyogSW5p dGlhbGl6ZSBwcml2YXRlIGRhdGEgZm9yIHhsb2dyZWFkZXIuICovCiAJcHJpdmF0ZV9kYXRhID0g cGFsbG9jMF9vYmplY3QoU3VtbWFyaXplclJlYWRMb2NhbFhMb2dQcml2YXRlKTsKQEAgLTk2OCw3 ICs5NjksNyBAQCBTdW1tYXJpemVXQUwoVGltZUxpbmVJRCB0bGksIFhMb2dSZWNQdHIgc3RhcnRf bHNuLCBib29sIGV4YWN0LAogCX0KIAllbHNlCiAJewotCQlzdW1tYXJ5X3N0YXJ0X2xzbiA9IFhM b2dGaW5kTmV4dFJlY29yZCh4bG9ncmVhZGVyLCBzdGFydF9sc24pOworCQlzdW1tYXJ5X3N0YXJ0 X2xzbiA9IFhMb2dGaW5kTmV4dFJlY29yZCh4bG9ncmVhZGVyLCBzdGFydF9sc24sICZlcnJvcm1z Zyk7CiAJCWlmICghWExvZ1JlY1B0cklzVmFsaWQoc3VtbWFyeV9zdGFydF9sc24pKQogCQl7CiAJ CQkvKgpAQCAtOTk3LDkgKzk5OCwxNiBAQCBTdW1tYXJpemVXQUwoVGltZUxpbmVJRCB0bGksIFhM b2dSZWNQdHIgc3RhcnRfbHNuLCBib29sIGV4YWN0LAogCQkJCXN3aXRjaF9sc24gPSB4bG9ncmVh ZGVyLT5FbmRSZWNQdHI7CiAJCQl9CiAJCQllbHNlCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ CWVycm1zZygiY291bGQgbm90IGZpbmQgYSB2YWxpZCByZWNvcmQgYWZ0ZXIgJVgvJTA4WCIsCi0J CQkJCQkJICAgTFNOX0ZPUk1BVF9BUkdTKHN0YXJ0X2xzbikpKTsKKwkJCXsKKwkJCQlpZiAoZXJy b3Jtc2cpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJybXNnKCJjb3VsZCBub3QgZmlu ZCBhIHZhbGlkIHJlY29yZCBhZnRlciAlWC8lMDhYOiAlcyIsCisJCQkJCQkJCSAgIExTTl9GT1JN QVRfQVJHUyhzdGFydF9sc24pLCBlcnJvcm1zZykpOworCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQllcnJtc2coImNvdWxkIG5vdCBmaW5kIGEgdmFsaWQgcmVjb3JkIGFmdGVy ICVYLyUwOFgiLAorCQkJCQkJCQkgICBMU05fRk9STUFUX0FSR1Moc3RhcnRfbHNuKSkpOworCQkJ fQogCQl9CiAKIAkJLyogV2Ugc2hvdWxkbid0IGdvIGJhY2t3YXJkLiAqLwpAQCAtMTAxMiw3ICsx MDIwLDYgQEAgU3VtbWFyaXplV0FMKFRpbWVMaW5lSUQgdGxpLCBYTG9nUmVjUHRyIHN0YXJ0X2xz biwgYm9vbCBleGFjdCwKIAl3aGlsZSAoMSkKIAl7CiAJCWludAkJCWJsb2NrX2lkOwotCQljaGFy CSAgICplcnJvcm1zZzsKIAkJWExvZ1JlY29yZCAqcmVjb3JkOwogCQl1aW50OAkJcm1pZDsKIApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKaW5kZXggZjM0NDYzODVkNmEuLjk4ODdkYzdmMzFhIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf d2FsZHVtcC9wZ193YWxkdW1wLmMKQEAgLTEyMTIsMTEgKzEyMTIsMTcgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJCXBnX2ZhdGFsKCJvdXQgb2YgbWVtb3J5IHdoaWxlIGFsbG9jYXRp bmcgYSBXQUwgcmVhZGluZyBwcm9jZXNzb3IiKTsKIAogCS8qIGZpcnN0IGZpbmQgYSB2YWxpZCBy ZWNwdHIgdG8gc3RhcnQgZnJvbSAqLwotCWZpcnN0X3JlY29yZCA9IFhMb2dGaW5kTmV4dFJlY29y ZCh4bG9ncmVhZGVyX3N0YXRlLCBwcml2YXRlLnN0YXJ0cHRyKTsKKwlmaXJzdF9yZWNvcmQgPSBY TG9nRmluZE5leHRSZWNvcmQoeGxvZ3JlYWRlcl9zdGF0ZSwgcHJpdmF0ZS5zdGFydHB0ciwgJmVy cm9ybXNnKTsKIAogCWlmICghWExvZ1JlY1B0cklzVmFsaWQoZmlyc3RfcmVjb3JkKSkKLQkJcGdf ZmF0YWwoImNvdWxkIG5vdCBmaW5kIGEgdmFsaWQgcmVjb3JkIGFmdGVyICVYLyUwOFgiLAotCQkJ CSBMU05fRk9STUFUX0FSR1MocHJpdmF0ZS5zdGFydHB0cikpOworCXsKKwkJaWYgKGVycm9ybXNn KQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGEgdmFsaWQgcmVjb3JkIGFmdGVyICVYLyVY OiAlcyIsCisJCQkJCSBMU05fRk9STUFUX0FSR1MocHJpdmF0ZS5zdGFydHB0ciksIGVycm9ybXNn KTsKKwkJZWxzZQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGEgdmFsaWQgcmVjb3JkIGFm dGVyICVYLyVYIiwKKwkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLnN0YXJ0cHRyKSk7CisJ fQogCiAJLyoKIAkgKiBEaXNwbGF5IGEgbWVzc2FnZSB0aGF0IHdlJ3JlIHNraXBwaW5nIGRhdGEg aWYgYGZyb21gIHdhc24ndCBhIHBvaW50ZXIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2FsZHVt cC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAppbmRl eCA1ZGI1ZDIwMTM2Zi4uMTg5ODg0OGU0MTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVt cC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8wMDFfYmFzaWMucGwK QEAgLTYsNiArNiw3IEBAIHVzZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKIHVzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpDbHVzdGVyOwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwogdXNlIFRl c3Q6Ok1vcmU7Cit1c2UgRmlsZTo6Q29weTsKIAogcHJvZ3JhbV9oZWxwX29rKCdwZ193YWxkdW1w Jyk7CiBwcm9ncmFtX3ZlcnNpb25fb2soJ3BnX3dhbGR1bXAnKTsKQEAgLTIzNiw2ICsyMzcsMjgg QEAgY29tbWFuZF9mYWlsc19saWtlKAogCXFyL2Vycm9yOiBlcnJvciBpbiBXQUwgcmVjb3JkIGF0 LywKIAknZXJyb3JzIGFyZSBzaG93biB3aXRoIC0tcXVpZXQnKTsKIAorIyBXcm9uZyBXQUwgdmVy c2lvbi4gV2UgY29weSBhbiBleGlzdGluZyB3YWwgZmlsZSBhbmQgc2V0IHRoZQorIyBwYWdlJ3Mg bWFnaWMgdmFsdWUgdG8gMDAwMC4KK3sKKwlteSAkYnJva2VuX3dhbF9kaXIgPSBQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczo6dGVtcGRpcl9zaG9ydCgpOworCW15ICRicm9rZW5fd2FsID0gIiRicm9r ZW5fd2FsX2Rpci8kc3RhcnRfd2FsZmlsZSI7CisJY29weSgkbm9kZS0+ZGF0YV9kaXIgLiAnL3Bn X3dhbC8nIC4gJHN0YXJ0X3dhbGZpbGUsICRicm9rZW5fd2FsKQorCQl8fCBkaWUgImNvcHlpbmcg JHN0YXJ0X3dhbGZpbGUgJCEiOworCisJbXkgJGZoOworCW9wZW4oJGZoLCAnKzwnLCAkYnJva2Vu X3dhbCk7CisJc3lzc2VlaygkZmgsIDAsIDApCisJCW9yIEJBSUxfT1VUKCJzeXNzZWVrIGZhaWxl ZDogJCEiKTsKKwlzeXN3cml0ZSgkZmgsIHBhY2soIlMiLCAwKSkKKwkJb3IgQkFJTF9PVVQoInN5 c3dyaXRlIGZhaWxlZDogJCEiKTsKKwljbG9zZSgkZmgpOworCisJY29tbWFuZF9mYWlsc19saWtl KAorCQlbICdwZ193YWxkdW1wJywgJGJyb2tlbl93YWwgXSwKKwkJCXFyL2ludmFsaWQgbWFnaWMg bnVtYmVyIDAwMDAvaSwKKwkJCSdkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHNob3duIGZvciBpbnZh bGlkIFdBTCBwYWdlIG1hZ2ljJworCSk7Cit9CiAKICMgVGVzdCBmb3I6IERpc3BsYXkgYSBtZXNz YWdlIHRoYXQgd2UncmUgc2tpcHBpbmcgZGF0YSBpZiBgZnJvbWAKICMgd2Fzbid0IGEgcG9pbnRl ciB0byB0aGUgc3RhcnQgb2YgYSByZWNvcmQuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1 bXAvdC8wMDNfZXJyb3JfbWVzc2FnZS5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwM19lcnJv cl9tZXNzYWdlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43OTky ZDE4ZjFiOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwM19lcnJv cl9tZXNzYWdlLnBsCkBAIC0wLDAgKzEsMjIgQEAKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3Mg RkFUQUwgPT4gJ2FsbCc7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6 TW9yZTsKKworbXkgJHRlbXBkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcigp OworbXkgJHdhbGZpbGUgPSAiJHRlbXBkaXIvMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwIjsKKwor b3BlbihteSAkZmgsICc+JywgJHdhbGZpbGUpIG9yIGRpZSAiQ2Fubm90IGNyZWF0ZSAkd2FsZmls ZTogJCEiOworYmlubW9kZSgkZmgpOworcHJpbnQgJGZoIHBhY2soJ3Z2VlE8VlZRPFZWJywKKyAg ICAweEQxMTYsIDB4MDAwMiwgMSwgMCwgMCwgMCwgMTIzNDU2Nzg5MDEyMzQsIDE2KjEwMjQqMTAy NCwgODE5Mik7CitwcmludCAkZmggIlwwIiB4ICg4MTkyIC0gNDApOworY2xvc2UoJGZoKTsKKwor Y29tbWFuZF9mYWlsc19saWtlKAorICAgIFsgJ3BnX3dhbGR1bXAnLCAnLS1zdGFydD0wLzI4Jywg JHdhbGZpbGUgXSwKKyAgICBxci9pbnZhbGlkIG1hZ2ljIG51bWJlci4qRDExNi9pLAorICAgICdk ZXRhaWxlZCBlcnJvciBtZXNzYWdlIHNob3duIGZvciBpbnZhbGlkIFdBTCBwYWdlIG1hZ2ljJwor KTsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxv Z3JlYWRlci5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWFkZXIuaAppbmRleCA4MGYxYTU0 OGUwOC4uNTY3ZGYzM2FjOGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVh ZGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWFkZXIuaApAQCAtMzQyLDcgKzM0 Miw3IEBAIGV4dGVybiB2b2lkIFhMb2dSZWFkZXJTZXREZWNvZGVCdWZmZXIoWExvZ1JlYWRlclN0 YXRlICpzdGF0ZSwKIAogLyogUG9zaXRpb24gdGhlIFhMb2dSZWFkZXIgdG8gZ2l2ZW4gcmVjb3Jk ICovCiBleHRlcm4gdm9pZCBYTG9nQmVnaW5SZWFkKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhM b2dSZWNQdHIgUmVjUHRyKTsKLWV4dGVybiBYTG9nUmVjUHRyIFhMb2dGaW5kTmV4dFJlY29yZChY TG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVjUHRyIFJlY1B0cik7CitleHRlcm4gWExvZ1Jl Y1B0ciBYTG9nRmluZE5leHRSZWNvcmQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0 ciBSZWNQdHIsIGNoYXIgKiplcnJvcm1zZyk7CiAKIC8qIFJldHVybiB2YWx1ZXMgZnJvbSBYTG9n UGFnZVJlYWRDQi4gKi8KIHR5cGVkZWYgZW51bSBYTG9nUGFnZVJlYWRSZXN1bHQKLS0gCjIuNTIu MAoK --00000000000076c5d0064a60ac98--