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 1w4dxB-002Orz-1o for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 12:00:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4dx9-00HOOA-38 for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 12:00:16 +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 1w4dx9-00HOO2-18 for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 12:00:16 +0000 Received: from mail-oo1-xc2d.google.com ([2607:f8b0:4864:20::c2d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4dx7-00000000cRB-49eY for pgsql-hackers@postgresql.org; Mon, 23 Mar 2026 12:00:14 +0000 Received: by mail-oo1-xc2d.google.com with SMTP id 006d021491bc7-67bad873c3eso34032eaf.3 for ; Mon, 23 Mar 2026 05:00:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774267213; cv=none; d=google.com; s=arc-20240605; b=LVXBgqWFk+jxjFu5AL4r85N/E5reCyPS7TiADPXXpg0elATrYIq+PHeKKgTCULeYUX LdB+L3+N0T/9TLqGeILGNx6UKBzo/2Nc+kiBf0XXegTkybqazjSStlXelIc2Hlj3l5Xk T683+ngPeivzEWVrC1Y0Qq9pYLXb0xpAIu09SuyNjACtZP9L1GQI8yx+mWxuNGao3uU3 c3u0BjmN6XLrEEWZSK//yp/Y1lu0L0jFtAxiBdLyMizQ8oyEbCEWAKF4tvYKWgt7h98S AAFvCQqsrgoEKbrG1n4Okp/zRkcFmRR/MiwvkOLxx9SV55q+BadNIqum221NYls2JMZ4 lLLQ== 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=C1ksvIk0PY782s/ly1UIgt5Phg6yRmb+3OCCwyjkMkw=; fh=vNjQdKjlYLFjUATF+DL4zaZufHWp+36Em82JZCDNANw=; b=eGYcBLHat+NbAP1p4fJmaJVt9ZG0HSBLPgSnU+DKNi5l/vQ5zUXTzsjEs/cOzNez2U oFSI7HHW2z+lrSfuzjTHQIexTwWlubFSDErG0fJ6ELGkR8+w36sThWsHqKu9syDCoIeR jOme0VDaOHw62HMkTNnmnvNrpk9hMmrjuj5RrgBN+xChzSEtf8tX20qdsTEKME7A9ce/ a6lxJ4gohYq0qbQanwPjT9CVntuFsuESgDmFFo0drFhuKEmkn7doAHbznErLJqnv6QYR JPhS/t60b4aMi3QC4MciVofN7i5JyUdXXNBTaUTGQs/0yafgTrsDzERYhJZa+NbltJIJ XKUg==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774267213; x=1774872013; 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=C1ksvIk0PY782s/ly1UIgt5Phg6yRmb+3OCCwyjkMkw=; b=UVJ3w4XBux794fG2a2h/4DrVbYcgyoMdcwpLX+hgthheRaELBzSoID9MayoxxwhALl nM7/7ChCCKRlcicEv+Knz1p+PcifIQQK82qn95muR/XJ6jkKjO1PlZ9oP5JAjkayMOoi NB4lFDVXKsJi4e2Sz7Gm2Wwh7fbWub36KpuUfBqPgafTyoTTjNHiDzR/T94XNfQkoEU1 nwwiAoKfCQKsCDjUk6qWQ5rhJunz/u/FsO/KrixnR67UDSiFdwf3GMO8ztW0tPr22YZz 2C5TV24/dwYM2T3/cST1kA9eSAVjuGEx70E8cZAbWaEet3D82r5iNP7WVCiStQisUxrL fuiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774267213; x=1774872013; 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=C1ksvIk0PY782s/ly1UIgt5Phg6yRmb+3OCCwyjkMkw=; b=ELdCzD8Xkjoj1V95ehAA3gbF8a4znUYi4b5cYAsCRo0PmWQs+wW5oTsMB1R41PIyKq oDLKDFy2ZlNVRxSvNOI+JuPClOmxdUAu+mVnga/b7bX6TbptcKCg8R8lbBVURGcz/b+y 3Rnq7j2QHCpzvJyPWbBmG4BnPpbU+uO3UQtPjOu5S1Y0G4Vt0Spl6HsSBoLEL5f6SGGy ZB2RoKk7S4Rx3BgK823ykGNcfZ/hWLQx/Xm9b09Xe6kMrJmg5kogQcLQpAl26536hP9W 5xb8t3GpSbKAQj81Z1bHimiWMFlyskoT4rCpqo/wslqG/fnkZFLq/6T+wbjOp2lMsvpq xvlA== X-Forwarded-Encrypted: i=1; AJvYcCWhaiQqRb6ZFLOjUUjUevvtwkg+PMQzknixsC5X+YUvGmEmn0vRdtg0S5Z4QIwNQXUcsqEJxT93bOGADbpR@postgresql.org X-Gm-Message-State: AOJu0YwOQTHJEczpTKMrwuwLx5Ncfil6hNUI8FKtYUxRNXbewRSWVnMz TB514/+4byaNKiXdT/t2QmIKu6nJ0bGnvJzp4e41t2YXlFuJhrbDGNEBJY8qLzRgCZzSMMVLCw8 +JcC/zFPaVcM7yzOzTqc8FkdBxhMbGEm3YVds7eU= X-Gm-Gg: ATEYQzwsK+Mkc8hUzV+2MGudLl5Aqq7PTt4WJteQR7I9beC9kaGpcqEOEwk/MQXjSes soKEaEHxMvaY4dplkM5KDWp8r5IfuNhv82Fe6GLBmrKWyLDrtqxD9t/batx378hG7Vc5U7FL75U 0eJu3GDaKY8orJDkDSDIvb+4hYB/zMYDCFfg4rUrC3brSddwrLuCfIaL2g7FXpEVW5uw/YX2z41 Bt1PNXFjjGYJ1LIyvpbVpx+xVsgprmQxWsJoZU2Yk3rZ7rsohx90uYkKOe04nyx+Csrrfeq32WT LjnRvVgPmy+M6kVqtYQiAeR/z8ZigjS4ZEzVkglz X-Received: by 2002:a05:6820:2d04:b0:67d:e6ce:a85f with SMTP id 006d021491bc7-67de6ceaa3emr3910072eaf.68.1774267213278; Mon, 23 Mar 2026 05:00:13 -0700 (PDT) MIME-Version: 1.0 References: <0cbf5d34-f117-456f-bcc0-50fa9a8eafba@gmail.com> <1D505B52-9D58-4783-846D-600391C2A3B1@gmail.com> In-Reply-To: From: Fujii Masao Date: Mon, 23 Mar 2026 21:00:00 +0900 X-Gm-Features: AQROBzDIdxHSrw59qgC-7vrNsPi1PkDFvTO5uAYiPS2a5IuoWIn_QdDJ7CAl8-U Message-ID: Subject: Re: Propagate XLogFindNextRecord error to callers To: Anthonin Bonnefoy Cc: Chao Li , Mircea Cadariu , PostgreSQL Hackers , Japin Li Content-Type: multipart/mixed; boundary="000000000000fc0c80064dafc659" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fc0c80064dafc659 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 23, 2026 at 5:15=E2=80=AFPM Anthonin Bonnefoy wrote: > > +# Wrong WAL version. We copy an existing wal file and set the > > +# page's magic value to 0000. > > > > Would it be better to describe the purpose of this test at the top? > > For example: > > > > # Test that pg_waldump reports a detailed error message when dumpin= g > > # a WAL file with an invalid magic number (0000). > > { > > # The broken WAL file is created by copying a valid WAL fil= e and > > # overwriting its magic number with 0000. > > my $broken_wal_dir =3D PostgreSQL::Test::Utils::tempdir_sho= rt(); > > Sounds good, I've updated the patch. Thanks for updating the patch! It looks like the first part of the comment above wasn't included, so I've added it. I also made a few cosmetic changes and updated the commit message. Attached is the updated version of the patch. Unless there are objections, I'll commit this version. Regards, --=20 Fujii Masao --000000000000fc0c80064dafc659 Content-Type: application/octet-stream; name="v8-0001-Report-detailed-errors-from-XLogFindNextRecord-fa.patch" Content-Disposition: attachment; filename="v8-0001-Report-detailed-errors-from-XLogFindNextRecord-fa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn34vfwv0 RnJvbSA3NjI0MDA1YWQ2ZDQ0MTNlMjdjMTMzZWYyNTAzODExMTRhNTI3Yjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5vcmc+CkRh dGU6IE1vbiwgMjMgTWFyIDIwMjYgMTg6Mzc6NTYgKzA5MDAKU3ViamVjdDogW1BBVENIIHY4XSBS ZXBvcnQgZGV0YWlsZWQgZXJyb3JzIGZyb20gWExvZ0ZpbmROZXh0UmVjb3JkKCkgZmFpbHVyZXMu CgpQcmV2aW91c2x5LCBYTG9nRmluZE5leHRSZWNvcmQoKSBkaWQgbm90IHJldHVybiBkZXRhaWxl ZCBlcnJvciBpbmZvcm1hdGlvbgp3aGVuIGl0IGZhaWxlZCB0byBmaW5kIGEgdmFsaWQgV0FMIHJl Y29yZC4gQXMgYSByZXN1bHQsIGNhbGxlcnMgc3VjaCBhcwp0aGUgV0FMIHN1bW1hcml6ZXIsIHBn X3dhbGR1bXAsIGFuZCBwZ193YWxpbnNwZWN0IGNvdWxkIG9ubHkgcmVwb3J0IGdlbmVyaWMKZXJy b3JzIChlLmcuLCAiY291bGQgbm90IGZpbmQgYSB2YWxpZCByZWNvcmQgYWZ0ZXIgLi4uIiksIG1h a2luZwp0cm91Ymxlc2hvb3RpbmcgZGlmZmljdWx0LgoKVGhpcyBjb21taXQgZml4IHRoZSBpc3N1 ZSBieSBleHRlbmRpbmcgWExvZ0ZpbmROZXh0UmVjb3JkKCkgdG8gcmV0dXJuCmRldGFpbGVkIGVy cm9yIGluZm9ybWF0aW9uIG9uIGZhaWx1cmUsIGFuZCB1cGRhdGluZyBpdHMgY2FsbGVycyB0byBp bmNsdWRlCnRob3NlIGRldGFpbHMgaW4gdGhlaXIgZXJyb3IgbWVzc2FnZXMuCgpGb3IgZXhhbXBs ZSwgd2hlbiBwZ193YWxkdW1wIGlzIHJ1biBvbiBhIFdBTCBmaWxlIHdpdGggYW4gaW52YWxpZCBt YWdpYyBudW1iZXIsCml0IG5vdyByZXBvcnRzIG5vdCBvbmx5IHRoZSBnZW5lcmljIGVycm9yIGJ1 dCBhbHNvIHRoZSBzcGVjaWZpYyBjYXVzZQooZS5nLiwgImludmFsaWQgbWFnaWMgbnVtYmVyIiku CgpBdXRob3I6IEFudGhvbmluIEJvbm5lZm95IDxhbnRob25pbi5ib25uZWZveUBkYXRhZG9naHEu Y29tPgpSZXZpZXdlZC1ieTogTWlyY2VhIENhZGFyaXUgPGNhZGFyaXUubWlyY2VhQGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEphcGluIExpIDxqYXBpbmxpQGhvdG1haWwuY29tPgpSZXZpZXdlZC1i eTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEZ1amlpIE1h c2FvIDxtYXNhby5mdWppaUBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FPNl9YcW94SlhkZGNUNHdrZDlYZCtjRDZTei1meXNwUkd1VjRCcS13YlhHNHBWTnpBQG1h aWwuZ21haWwuY29tCi0tLQogY29udHJpYi9wZ193YWxpbnNwZWN0L3BnX3dhbGluc3BlY3QuYyAg IHwgMTYgKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFk ZXIuYyB8IDI0ICsrKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci93 YWxzdW1tYXJpemVyLmMgIHwgMTcgKysrKysrKysrKy0tLS0tCiBzcmMvYmluL3BnX3dhbGR1bXAv cGdfd2FsZHVtcC5jICAgICAgICAgfCAxMiArKysrKysrKy0tLQogc3JjL2Jpbi9wZ193YWxkdW1w L3QvMDAxX2Jhc2ljLnBsICAgICAgIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L2luY2x1ZGUvYWNjZXNzL3hsb2dyZWFkZXIuaCAgICAgICAgIHwgIDMgKystCiA2IGZpbGVzIGNo YW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcGdfd2FsaW5zcGVjdC9wZ193YWxpbnNwZWN0LmMgYi9jb250cmliL3BnX3dhbGluc3Bl Y3QvcGdfd2FsaW5zcGVjdC5jCmluZGV4IGY2ZjVmMDc5MmQyLi40Y2Y2ZTQxZTJmNSAxMDA2NDQK LS0tIGEvY29udHJpYi9wZ193YWxpbnNwZWN0L3BnX3dhbGluc3BlY3QuYworKysgYi9jb250cmli L3BnX3dhbGluc3BlY3QvcGdfd2FsaW5zcGVjdC5jCkBAIC05OSw2ICs5OSw3IEBAIEluaXRYTG9n UmVhZGVyU3RhdGUoWExvZ1JlY1B0ciBsc24pCiAJWExvZ1JlYWRlclN0YXRlICp4bG9ncmVhZGVy OwogCVJlYWRMb2NhbFhMb2dQYWdlTm9XYWl0UHJpdmF0ZSAqcHJpdmF0ZV9kYXRhOwogCVhMb2dS ZWNQdHIJZmlyc3RfdmFsaWRfcmVjb3JkOworCWNoYXIJICAgKmVycm9ybXNnOwogCiAJLyoKIAkg KiBSZWFkaW5nIFdBTCBiZWxvdyB0aGUgZmlyc3QgcGFnZSBvZiB0aGUgZmlyc3Qgc2VnbWVudHMg aXNuJ3QgYWxsb3dlZC4KQEAgLTEyNiwxMiArMTI3LDE5IEBAIEluaXRYTG9nUmVhZGVyU3RhdGUo WExvZ1JlY1B0ciBsc24pCiAJCQkJIGVycmRldGFpbCgiRmFpbGVkIHdoaWxlIGFsbG9jYXRpbmcg YSBXQUwgcmVhZGluZyBwcm9jZXNzb3IuIikpKTsKIAogCS8qIGZpcnN0IGZpbmQgYSB2YWxpZCBy ZWNwdHIgdG8gc3RhcnQgZnJvbSAqLwotCWZpcnN0X3ZhbGlkX3JlY29yZCA9IFhMb2dGaW5kTmV4 dFJlY29yZCh4bG9ncmVhZGVyLCBsc24pOworCWZpcnN0X3ZhbGlkX3JlY29yZCA9IFhMb2dGaW5k TmV4dFJlY29yZCh4bG9ncmVhZGVyLCBsc24sICZlcnJvcm1zZyk7CiAKIAlpZiAoIVhMb2dSZWNQ dHJJc1ZhbGlkKGZpcnN0X3ZhbGlkX3JlY29yZCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJZXJy bXNnKCJjb3VsZCBub3QgZmluZCBhIHZhbGlkIHJlY29yZCBhZnRlciAlWC8lMDhYIiwKLQkJCQkJ ICAgTFNOX0ZPUk1BVF9BUkdTKGxzbikpKTsKKwl7CisJCWlmIChlcnJvcm1zZykKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCWVycm1zZygiY291bGQgbm90IGZpbmQgYSB2YWxpZCByZWNvcmQgYWZ0 ZXIgJVgvJTA4WDogJXMiLAorCQkJCQkJICAgTFNOX0ZPUk1BVF9BUkdTKGxzbiksIGVycm9ybXNn KSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycm1zZygiY291bGQgbm90IGZp bmQgYSB2YWxpZCByZWNvcmQgYWZ0ZXIgJVgvJTA4WCIsCisJCQkJCQkgICBMU05fRk9STUFUX0FS R1MobHNuKSkpOworCX0KIAogCXJldHVybiB4bG9ncmVhZGVyOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ3JlYWRlci5jCmluZGV4IDhjYjIxMTBjYjk5Li44ODQ5NjEwZGIwMCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFkZXIuYwpAQCAtMTM5MCwxNCArMTM5MCwy MSBAQCBYTG9nUmVhZGVyUmVzZXRFcnJvcihYTG9nUmVhZGVyU3RhdGUgKnN0YXRlKQogICoKICAq IFRoaXMgcG9zaXRpb25zIHRoZSByZWFkZXIsIGxpa2UgWExvZ0JlZ2luUmVhZCgpLCBzbyB0aGF0 IHRoZSBuZXh0IGNhbGwgdG8KICAqIFhMb2dSZWFkUmVjb3JkKCkgd2lsbCByZWFkIHRoZSBuZXh0 IHZhbGlkIHJlY29yZC4KKyAqCisgKiBPbiBmYWlsdXJlLCBJbnZhbGlkWExvZ1JlY1B0ciBpcyBy ZXR1cm5lZCwgYW5kICplcnJvcm1zZyBpcyBzZXQgdG8gYSBzdHJpbmcKKyAqIHdpdGggZGV0YWls cyBvZiB0aGUgZmFpbHVyZS4KKyAqCisgKiBXaGVuIHNldCwgKmVycm9ybXNnIHBvaW50cyB0byBh biBpbnRlcm5hbCBidWZmZXIgdGhhdCdzIHZhbGlkIHVudGlsIHRoZSBuZXh0CisgKiBjYWxsIHRv IFhMb2dSZWFkUmVjb3JkLgogICovCiBYTG9nUmVjUHRyCi1YTG9nRmluZE5leHRSZWNvcmQoWExv Z1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciBSZWNQdHIpCitYTG9nRmluZE5leHRSZWNv cmQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExvZ1JlY1B0ciBSZWNQdHIsIGNoYXIgKiplcnJv cm1zZykKIHsKIAlYTG9nUmVjUHRyCXRtcFJlY1B0cjsKIAlYTG9nUmVjUHRyCWZvdW5kID0gSW52 YWxpZFhMb2dSZWNQdHI7CiAJWExvZ1BhZ2VIZWFkZXIgaGVhZGVyOwotCWNoYXIJICAgKmVycm9y bXNnOworCisJKmVycm9ybXNnID0gTlVMTDsKIAogCUFzc2VydChYTG9nUmVjUHRySXNWYWxpZChS ZWNQdHIpKTsKIApAQCAtMTQ4Miw3ICsxNDg5LDcgQEAgWExvZ0ZpbmROZXh0UmVjb3JkKFhMb2dS ZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgUmVjUHRyKQogCSAqIG9yIHdlIGp1c3QganVt cGVkIG92ZXIgdGhlIHJlbWFpbmluZyBkYXRhIG9mIGEgY29udGludWF0aW9uLgogCSAqLwogCVhM b2dCZWdpblJlYWQoc3RhdGUsIHRtcFJlY1B0cik7Ci0Jd2hpbGUgKFhMb2dSZWFkUmVjb3JkKHN0 YXRlLCAmZXJyb3Jtc2cpICE9IE5VTEwpCisJd2hpbGUgKFhMb2dSZWFkUmVjb3JkKHN0YXRlLCBl cnJvcm1zZykgIT0gTlVMTCkKIAl7CiAJCS8qIHBhc3QgdGhlIHJlY29yZCB3ZSd2ZSBmb3VuZCwg YnJlYWsgb3V0ICovCiAJCWlmIChSZWNQdHIgPD0gc3RhdGUtPlJlYWRSZWNQdHIpCkBAIC0xNDk3 LDYgKzE1MDQsMTcgQEAgWExvZ0ZpbmROZXh0UmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUs IFhMb2dSZWNQdHIgUmVjUHRyKQogZXJyOgogCVhMb2dSZWFkZXJJbnZhbFJlYWRTdGF0ZShzdGF0 ZSk7CiAKKwkvKgorCSAqIFdlIG1heSBoYXZlIHJlcG9ydGVkIGVycm9ycyBkdWUgdG8gaW52YWxp ZCBXQUwgaGVhZGVyLCBwcm9wYWdhdGUgdGhlCisJICogZXJyb3IgbWVzc2FnZSB0byB0aGUgY2Fs bGVyLgorCSAqLworCWlmIChzdGF0ZS0+ZXJyb3Jtc2dfZGVmZXJyZWQpCisJeworCQlpZiAoc3Rh dGUtPmVycm9ybXNnX2J1ZlswXSAhPSAnXDAnKQorCQkJKmVycm9ybXNnID0gc3RhdGUtPmVycm9y bXNnX2J1ZjsKKwkJc3RhdGUtPmVycm9ybXNnX2RlZmVycmVkID0gZmFsc2U7CisJfQorCiAJcmV0 dXJuIEludmFsaWRYTG9nUmVjUHRyOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3dhbHN1bW1hcml6ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvd2Fsc3VtbWFy aXplci5jCmluZGV4IGUxYWExMDJmNDFkLi4wYzA2NzBmN2RhOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci93YWxzdW1tYXJpemVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci93YWxzdW1tYXJpemVyLmMKQEAgLTkxNSw2ICs5MTUsNyBAQCBTdW1tYXJpemVXQUwoVGlt ZUxpbmVJRCB0bGksIFhMb2dSZWNQdHIgc3RhcnRfbHNuLCBib29sIGV4YWN0LAogCVdhbFN1bW1h cnlJTyBpbzsKIAlCbG9ja1JlZlRhYmxlICpicnRhYiA9IENyZWF0ZUVtcHR5QmxvY2tSZWZUYWJs ZSgpOwogCWJvb2wJCWZhc3RfZm9yd2FyZCA9IHRydWU7CisJY2hhcgkgICAqZXJyb3Jtc2c7CiAK IAkvKiBJbml0aWFsaXplIHByaXZhdGUgZGF0YSBmb3IgeGxvZ3JlYWRlci4gKi8KIAlwcml2YXRl X2RhdGEgPSBwYWxsb2MwX29iamVjdChTdW1tYXJpemVyUmVhZExvY2FsWExvZ1ByaXZhdGUpOwpA QCAtOTY2LDcgKzk2Nyw3IEBAIFN1bW1hcml6ZVdBTChUaW1lTGluZUlEIHRsaSwgWExvZ1JlY1B0 ciBzdGFydF9sc24sIGJvb2wgZXhhY3QsCiAJfQogCWVsc2UKIAl7Ci0JCXN1bW1hcnlfc3RhcnRf bHNuID0gWExvZ0ZpbmROZXh0UmVjb3JkKHhsb2dyZWFkZXIsIHN0YXJ0X2xzbik7CisJCXN1bW1h cnlfc3RhcnRfbHNuID0gWExvZ0ZpbmROZXh0UmVjb3JkKHhsb2dyZWFkZXIsIHN0YXJ0X2xzbiwg JmVycm9ybXNnKTsKIAkJaWYgKCFYTG9nUmVjUHRySXNWYWxpZChzdW1tYXJ5X3N0YXJ0X2xzbikp CiAJCXsKIAkJCS8qCkBAIC05OTUsOSArOTk2LDE2IEBAIFN1bW1hcml6ZVdBTChUaW1lTGluZUlE IHRsaSwgWExvZ1JlY1B0ciBzdGFydF9sc24sIGJvb2wgZXhhY3QsCiAJCQkJc3dpdGNoX2xzbiA9 IHhsb2dyZWFkZXItPkVuZFJlY1B0cjsKIAkJCX0KIAkJCWVsc2UKLQkJCQllcmVwb3J0KEVSUk9S LAotCQkJCQkJZXJybXNnKCJjb3VsZCBub3QgZmluZCBhIHZhbGlkIHJlY29yZCBhZnRlciAlWC8l MDhYIiwKLQkJCQkJCQkgICBMU05fRk9STUFUX0FSR1Moc3RhcnRfbHNuKSkpOworCQkJeworCQkJ CWlmIChlcnJvcm1zZykKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQllcnJtc2coImNvdWxk IG5vdCBmaW5kIGEgdmFsaWQgcmVjb3JkIGFmdGVyICVYLyUwOFg6ICVzIiwKKwkJCQkJCQkJICAg TFNOX0ZPUk1BVF9BUkdTKHN0YXJ0X2xzbiksIGVycm9ybXNnKSk7CisJCQkJZWxzZQorCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCWVycm1zZygiY291bGQgbm90IGZpbmQgYSB2YWxpZCByZWNv cmQgYWZ0ZXIgJVgvJTA4WCIsCisJCQkJCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhzdGFydF9sc24p KSk7CisJCQl9CiAJCX0KIAogCQkvKiBXZSBzaG91bGRuJ3QgZ28gYmFja3dhcmQuICovCkBAIC0x MDEwLDcgKzEwMTgsNiBAQCBTdW1tYXJpemVXQUwoVGltZUxpbmVJRCB0bGksIFhMb2dSZWNQdHIg c3RhcnRfbHNuLCBib29sIGV4YWN0LAogCXdoaWxlICgxKQogCXsKIAkJaW50CQkJYmxvY2tfaWQ7 Ci0JCWNoYXIJICAgKmVycm9ybXNnOwogCQlYTG9nUmVjb3JkICpyZWNvcmQ7CiAJCXVpbnQ4CQly bWlkOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3dhbGR1bXAvcGdfd2FsZHVtcC5jIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwppbmRleCBmODI1MDdlZjY5Ni4uNjMwZDk4NTk4 ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfd2FsZHVtcC9wZ193YWxkdW1wLmMKKysrIGIvc3Jj L2Jpbi9wZ193YWxkdW1wL3BnX3dhbGR1bXAuYwpAQCAtMTM4NCwxMSArMTM4NCwxNyBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJcGdfZmF0YWwoIm91dCBvZiBtZW1vcnkgd2hpbGUg YWxsb2NhdGluZyBhIFdBTCByZWFkaW5nIHByb2Nlc3NvciIpOwogCiAJLyogZmlyc3QgZmluZCBh IHZhbGlkIHJlY3B0ciB0byBzdGFydCBmcm9tICovCi0JZmlyc3RfcmVjb3JkID0gWExvZ0ZpbmRO ZXh0UmVjb3JkKHhsb2dyZWFkZXJfc3RhdGUsIHByaXZhdGUuc3RhcnRwdHIpOworCWZpcnN0X3Jl Y29yZCA9IFhMb2dGaW5kTmV4dFJlY29yZCh4bG9ncmVhZGVyX3N0YXRlLCBwcml2YXRlLnN0YXJ0 cHRyLCAmZXJyb3Jtc2cpOwogCiAJaWYgKCFYTG9nUmVjUHRySXNWYWxpZChmaXJzdF9yZWNvcmQp KQotCQlwZ19mYXRhbCgiY291bGQgbm90IGZpbmQgYSB2YWxpZCByZWNvcmQgYWZ0ZXIgJVgvJTA4 WCIsCi0JCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLnN0YXJ0cHRyKSk7CisJeworCQlpZiAo ZXJyb3Jtc2cpCisJCQlwZ19mYXRhbCgiY291bGQgbm90IGZpbmQgYSB2YWxpZCByZWNvcmQgYWZ0 ZXIgJVgvJTA4WDogJXMiLAorCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHByaXZhdGUuc3RhcnRwdHIp LCBlcnJvcm1zZyk7CisJCWVsc2UKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZmluZCBhIHZhbGlk IHJlY29yZCBhZnRlciAlWC8lMDhYIiwKKwkJCQkJIExTTl9GT1JNQVRfQVJHUyhwcml2YXRlLnN0 YXJ0cHRyKSk7CisJfQogCiAJLyoKIAkgKiBEaXNwbGF5IGEgbWVzc2FnZSB0aGF0IHdlJ3JlIHNr aXBwaW5nIGRhdGEgaWYgYGZyb21gIHdhc24ndCBhIHBvaW50ZXIKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbCBiL3NyYy9iaW4vcGdfd2FsZHVtcC90LzAwMV9i YXNpYy5wbAppbmRleCAxMWRmN2UwOTJiZi4uOGJiOGZhMjI1ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfd2FsZHVtcC90LzAwMV9iYXNpYy5wbAorKysgYi9zcmMvYmluL3BnX3dhbGR1bXAvdC8w MDFfYmFzaWMucGwKQEAgLTQsNiArNCw3IEBACiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzIEZB VEFMID0+ICdhbGwnOwogdXNlIEN3ZDsKK3VzZSBGaWxlOjpDb3B5OwogdXNlIFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7CiB1c2UgVGVzdDo6 TW9yZTsKQEAgLTI0Niw2ICsyNDcsMzMgQEAgY29tbWFuZF9saWtlKAogCXFyL14kLywKIAknbm8g b3V0cHV0IHdpdGggLS1xdWlldCBvcHRpb24nKTsKIAorIyBUZXN0IHRoYXQgcGdfd2FsZHVtcCBy ZXBvcnRzIGEgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSB3aGVuIGR1bXBpbmcKKyMgYSBXQUwgZmls ZSB3aXRoIGFuIGludmFsaWQgbWFnaWMgbnVtYmVyICgwMDAwKS4KKyMKKyMgVGhlIGJyb2tlbiBX QUwgZmlsZSBpcyBjcmVhdGVkIGJ5IGNvcHlpbmcgYSB2YWxpZCBXQUwgZmlsZSBhbmQKKyMgb3Zl cndyaXRpbmcgaXRzIG1hZ2ljIG51bWJlciB3aXRoIDAwMDAuCitteSAkYnJva2VuX3dhbF9kaXIg PSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcl9zaG9ydCgpOworbXkgJGJyb2tlbl93 YWwgPSAiJGJyb2tlbl93YWxfZGlyLyRzdGFydF93YWxmaWxlIjsKK2NvcHkoJG5vZGUtPmRhdGFf ZGlyIC4gJy9wZ193YWwvJyAuICRzdGFydF93YWxmaWxlLCAkYnJva2VuX3dhbCkKKyAgfHwgZGll ICJjb3B5aW5nICRzdGFydF93YWxmaWxlICQhIjsKKworbXkgJGZoOworb3BlbigkZmgsICcrPCcs ICRicm9rZW5fd2FsKQorICBvciBCQUlMX09VVCgib3BlbiBmYWlsZWQ6ICQhIik7CitiaW5tb2Rl ICRmaDsKKworc3lzc2VlaygkZmgsIDAsIDApCisgIG9yIEJBSUxfT1VUKCJzeXNzZWVrIGZhaWxl ZDogJCEiKTsKK3N5c3dyaXRlKCRmaCwgcGFjaygiUyIsIDApKQorICBvciBCQUlMX09VVCgic3lz d3JpdGUgZmFpbGVkOiAkISIpOworY2xvc2UoJGZoKQorICBvciBCQUlMX09VVCgiY2xvc2UgZmFp bGVkOiAkISIpOworCitjb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfd2FsZHVtcCcsICRicm9r ZW5fd2FsIF0sCisJcXIvaW52YWxpZCBtYWdpYyBudW1iZXIgMDAwMC9pLAorCSdkZXRhaWxlZCBl cnJvciBtZXNzYWdlIHNob3duIGZvciBpbnZhbGlkIFdBTCBwYWdlIG1hZ2ljJyk7CisKICMgVGVz dCBmb3I6IERpc3BsYXkgYSBtZXNzYWdlIHRoYXQgd2UncmUgc2tpcHBpbmcgZGF0YSBpZiBgZnJv bWAKICMgd2Fzbid0IGEgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgYSByZWNvcmQuCiBzdWIgdGVz dF9wZ193YWxkdW1wX3NraXBfYnl0ZXMKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94 bG9ncmVhZGVyLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlYWRlci5oCmluZGV4IDgwZjFh NTQ4ZTA4Li45N2VhZTJjMWRhYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dy ZWFkZXIuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlYWRlci5oCkBAIC0zNDIsNyAr MzQyLDggQEAgZXh0ZXJuIHZvaWQgWExvZ1JlYWRlclNldERlY29kZUJ1ZmZlcihYTG9nUmVhZGVy U3RhdGUgKnN0YXRlLAogCiAvKiBQb3NpdGlvbiB0aGUgWExvZ1JlYWRlciB0byBnaXZlbiByZWNv cmQgKi8KIGV4dGVybiB2b2lkIFhMb2dCZWdpblJlYWQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwg WExvZ1JlY1B0ciBSZWNQdHIpOwotZXh0ZXJuIFhMb2dSZWNQdHIgWExvZ0ZpbmROZXh0UmVjb3Jk KFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhMb2dSZWNQdHIgUmVjUHRyKTsKK2V4dGVybiBYTG9n UmVjUHRyIFhMb2dGaW5kTmV4dFJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBYTG9nUmVj UHRyIFJlY1B0ciwKKwkJCQkJCQkJCSBjaGFyICoqZXJyb3Jtc2cpOwogCiAvKiBSZXR1cm4gdmFs dWVzIGZyb20gWExvZ1BhZ2VSZWFkQ0IuICovCiB0eXBlZGVmIGVudW0gWExvZ1BhZ2VSZWFkUmVz dWx0Ci0tIAoyLjUxLjIKCg== --000000000000fc0c80064dafc659--