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 1wSCmI-0031q5-0u for pgsql-hackers@arkaria.postgresql.org; Wed, 27 May 2026 11:50:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSCmG-0085wG-0T for pgsql-hackers@arkaria.postgresql.org; Wed, 27 May 2026 11:50:25 +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 1wSCmF-0085w8-20 for pgsql-hackers@lists.postgresql.org; Wed, 27 May 2026 11:50:24 +0000 Received: from mail-japanwestazon11010005.outbound.protection.outlook.com ([52.101.228.5] helo=OS0P286CU011.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wSCmE-000000010Ym-0zof for pgsql-hackers@lists.postgresql.org; Wed, 27 May 2026 11:50:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gWedPpSiAPmJLaaOkaPVmvBNYb51M+E0LkYao/7Y1qlf8vzbP76Qzw9A6K3vBFE+Qy56leP1giOyruIaUjiWgdRb7v+H2hGsSWCS6Gg2MOhkcKdMAbHzSP8HTzRv+HQUR6RIbwoo+JtB6Fv2u4IIfvV0SxFQ7Ifh8RlfNhQfcnYhb/lnKMOK96mzXGdRo4cSow9bwZoupQ9bQaZgdLJ7JvV/dTRlxoPBc0e8/bHJzpK9BiepVw6eD4WAPfbE7CdVm35EyY26BVb3REOLrQL95/YOnc2V8/9lyf9dAkDt1x8X6I5I3g2A94B2YHWWiyukpM02xahP9vh0LcXnMHI+6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p+KofHSYCsO2XX1MX14tzndHsINUQ2WJcVh4L0NHNWA=; b=d0N3xcaO3vFU9axF0S2RVGe+p5SkTQn/Yze4M2ljG4Q6UXfKfD8QkumoBd6cRwaD6zEQD+Z60sbCulb+boNTuuVACwC3IzZdoFULuNkKPzOim7pyqepLhmAUY0fJ5ymkeA9AZqwLK5RgvEbHttDujgxQdYAYdsrqjgvF0gQbvops91tqBWZmfcfEL78WZM6BIOtGxsmcp2Yws/fCiv+drDrYFTJQ26wqeFh0Fong/CF6bN2rQE0bIuufEc7KYG7bhIpqxDvx9az426LMOgPRjeHpG4/1HT6Yxboz6DXolvvRYPb90ePZx9hw184rE0rRKsqdYndu5JrV5e3LlhjDMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p+KofHSYCsO2XX1MX14tzndHsINUQ2WJcVh4L0NHNWA=; b=dsUh78jOL31ud3iPtbgJefhmqBLUyvJG2LrbXpCBsnFifRtz0Yv1ATJqGZPvaHB9S5BVt4hMXIxeH4x/aYAz0GTLT9V+JZAtEgE1hsyR4BU+FyciE6n/Ma7g8yQzlYT/LFSKfry1Y0TIxEmP9cwGopCeYPrIj0OAQac+opHvQ2W+48EsyN2zurKGvulM3zX6TFHAaRk+rfqIZX0BrLCSUYZ26U7uro6V1HQ8okP+wFWFjfoX8wT3En/w6OsSytGtSbMRHQR3lZYXv/8qn/HnSXbKIu6oTP24b92KfJ0rgvm64NT4++21dZEpeTP1s40kPZhNKk1FfEMo82T0WE6sZQ== Received: from TY4PR01MB17718.jpnprd01.prod.outlook.com (2603:1096:405:38a::22) by TY3PR01MB12051.jpnprd01.prod.outlook.com (2603:1096:400:408::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.12; Wed, 27 May 2026 11:50:17 +0000 Received: from TY4PR01MB17718.jpnprd01.prod.outlook.com ([fe80::7430:f96b:750d:8a04]) by TY4PR01MB17718.jpnprd01.prod.outlook.com ([fe80::7430:f96b:750d:8a04%5]) with mapi id 15.21.0048.013; Wed, 27 May 2026 11:50:16 +0000 From: "Zhijie Hou (Fujitsu)" To: PostgreSQL Hackers Subject: Fix race in ReplicationSlotRelease for ephemeral slots Thread-Topic: Fix race in ReplicationSlotRelease for ephemeral slots Thread-Index: Adztxq7jT1CuwZjqTjO1S2+BFTl8Lg== Date: Wed, 27 May 2026 11:50:16 +0000 Message-ID: Accept-Language: en-AS, ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=8675a060-951d-4fb5-88ab-08de9e41ce7b;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2026-05-27T10:50:28Z;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Tag=10, 3, 0, 1; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TY4PR01MB17718:EE_|TY3PR01MB12051:EE_ x-ms-office365-filtering-correlation-id: 7a1a767d-caad-4b7c-02cf-08debbe61ed9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|6049299003|366016|376014|1580799027|4053099003|38070700021|18002099003|56012099006|11063799006|3023799007; x-microsoft-antispam-message-info: OzOrAo0MsO0x0bUe1JX0ZNQFwiyQORnjQ5NaSpvwTHBvn0M+mWg4YpRVSHBwIOrNDiaQF2oldAzPM95vFA/wPIRoYWABdy5HP5jpP7cb6mTYJFqy8DGF3TLVA8+Iwks/Z5WupdaqOeYE/CEzdiwDA+OfRCrY9JwBZEjbeGOdX/jwayusa01yl0TWAuw03M30wjeEMESbxF2/V/5i8likTVCLQPeTE6Tr8kCBNd1bA0aErZMUXiZlWuEerMMMllJG9faH7JWlV4ONbbfcGsFonata5PjRbJyM7aNjevvUgzjEpA4bqUJT/LaeyPAx03uJS4CTigXGc13hiPZgeO6O/w2ptwl7oZ5kH2kd36Rlo2LW5f/9xUPxKtCnIg+49jOW7oaMffmoMkgb+kAUlQaD5djsqKmXetbm4qmOMGCJohF80sM6Z1uqkpRrUjvcpvzzdFyk8cCTMltK99ALlEsNxv9Q6ySvNq1trAK48ouvWiFCETFtjWrVQ6RcMW7AZOeuctIP6cVuI0nzYsPpwfyJ078MkyJnYUGtvLrhJR6jEv1YsSKz1CxuOTyT3796hgHP/+Y91Y986KNImSNwALlM0mCQ+EEE/Y0Rvab/+IiNjryK8QUymN2At+OKzqKJkIpxTlLqvN2bI6Iu3z8Oo7GO/5ULfLqfQA91n6argCN/cl1uqatbaxxedukxr64X1MUD1DTlAVNTVmGWIfwj+FyYZQF5IzIZtOHdjWTNKGN5eLaeIh1Osf+UiW785QohKPu3fPmrEzaR6w7zPc6xCx4/q7P9jAXeKdk/sXE7F5datgo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY4PR01MB17718.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(6049299003)(366016)(376014)(1580799027)(4053099003)(38070700021)(18002099003)(56012099006)(11063799006)(3023799007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?NkRPWDRQejlRRkxiMkJZZkpyQzBPaWp4dE5MeGZ5U1hmT2hMa1BCbEI4?= =?iso-2022-jp?B?OTNaQnNDT0JoRTAxSWRJSXI0clM2a0JXWEpibUt2bkFJQnlSWEhHcDVt?= =?iso-2022-jp?B?Z09ST1FTZG9LMGdYVDd3WHluR29DUUFXZ3pGMG8rbDZvREJTMHUxeCt6?= =?iso-2022-jp?B?UW03V00xNU5BR2pTMnFUYVEzOWF6MFBPWU15eFBjdllFb0hYNVF3bmEz?= =?iso-2022-jp?B?azQzektuUW5Bc29qdy9TZ0laME9jZzZyVXZzZHU3UzBFNk9XaXE2T2N3?= =?iso-2022-jp?B?VlVyVU55bmg5TWNNSVBmOWtkbzk3SG1RY096RDFZYTFnY3dHb1VwMHpC?= =?iso-2022-jp?B?eGZZQ0dub0dodHArQUxNa0RTellCWFN1YzU5NG5FWjRKOFhCbWMvS2k3?= =?iso-2022-jp?B?emkwUVlPbk9aSWR4Lzlhb01ld1NsbFdSbHNTaWxmV1o0TXBFMXNMUDRM?= =?iso-2022-jp?B?VFNTcU5ML2tVcXhFODI5SWpTTVhNWm9TQkYvOGxmRlYvWm5nMHpiaEFX?= =?iso-2022-jp?B?NDhwbzFMMDg1RzBZeElOeW1wU3I5bGhGWjEvOWhWZFpHMUVyK3VKQjhn?= =?iso-2022-jp?B?ei9ZOTlqL2VWaGk3eTFWSGpsd1RvdGVlZU9FcTNLVjBMU0dDcmV1Rm1K?= =?iso-2022-jp?B?VDkzNzhiVzRvb0h1TzFMSEVOcTlrdUlNdFQzbUdQc1YzRmpaeU9CVW9S?= =?iso-2022-jp?B?Z0Q1VE9senR6bThjaU5kdVNQdDdXQ1hVWkpMRzllTDlBaW9iMUFiL2xt?= =?iso-2022-jp?B?cWFZZ1o0NGVZbUZqS0hxVTA5QTJLWXR0V0xIYXU5MkVZOVNqTDFDQUZZ?= =?iso-2022-jp?B?cTBKODJEN3NaSml6ZHpLcFIvU1IzRUlFNW1hN3ZYemR4aDdzcWVwWUlh?= =?iso-2022-jp?B?N1pSNG1SWndDRFRKblYrMS9iWTRIRFp4My95T3hzQnNJb21PZUtheXJr?= =?iso-2022-jp?B?VlVTWnM3K3k5MVhvWFVhM29TUVNZY1VtMUsvallxcmxjdXhzS0NRMmlR?= =?iso-2022-jp?B?dVM2d0U3ZEprZzNSaGRIeDMxOFdYNk9VTXlseWJMb0dtbVMxZDl5aFdw?= =?iso-2022-jp?B?ZC9RNTJPQTdGWFM2QXJEcW9RZEFNWlpmdWFoZG9PeHJtWFZSQU5iY3Iv?= =?iso-2022-jp?B?dXZFTUlLVUcyT2F5ejVTc3c5U2R6cEs3YkY0Q0loV1dYR0YrS1RhQ1lT?= =?iso-2022-jp?B?Nm1jcHJ0L045aml4cEtrMmRKdGpyZkppdTl6M0ViNDF3NXJ4YUlWbGJ0?= =?iso-2022-jp?B?cTh4QzRmSnY4dDdmUWNiN2xGR1VEWllXRzJpQVFiKy9rVjJqV1p2cVIv?= =?iso-2022-jp?B?cEFUbmU5L2RUUFllN2ptZ1I2dDBQbDlaUEcrVkRPeXBnaFRBUzBPc0tN?= =?iso-2022-jp?B?UUxxZ0pQcWtWS3dxMmF5YmVPU2lSSXhJM1cwdFoxNEZtUXVVMTF4dUJa?= =?iso-2022-jp?B?elJjNG9KRCt5MUlkTlZUelozb1IwVVAyTElVWkVPRWhmWU9lZEpJZ2Jm?= =?iso-2022-jp?B?cVVjWjE4SDdMN0o5QUVFdm0wNmtkVG5xL05OQm5ZVXorNWVRTVJIa2ZX?= =?iso-2022-jp?B?MzhGejNGMUwxQ0Y4OWtkNUFjZ3FubWdkU20vbkFoVmdIUEZ5Tzg4WWxL?= =?iso-2022-jp?B?aThYVERoNFRHNFYvZlBKSHJWRWkvRzZmVW1KK1p5dkROU0dWZFF2K25q?= =?iso-2022-jp?B?YjZpNUxCSDdzNEZYN3VQRmYyeDlKalI0RDRJVTJQVG9pZlpta1c5ak1X?= =?iso-2022-jp?B?ZTlYTXFwRTdacktHd0ZlR1M4SDN3WmpWUnM0NHdsMXdMaHBCeThsaVBD?= =?iso-2022-jp?B?cnZReFcySVREZEdHMEUxazZnMThvSDdTZVBKM2xGLzFXTXRSQVo2TURS?= =?iso-2022-jp?B?TXB2dTREdkNJamN5ZDBZQkZQaHBlUUZ3VFhBY0d2emNkOEt3eVhLVVFN?= =?iso-2022-jp?B?aEtZOE80aUdTRW5aWUlUaTU5RUlvSDdaMVZhUGI4SHpTWnpLTWI5VEVo?= =?iso-2022-jp?B?ZDF4WndhSnZ4VVExUmwzb3kvMUtscnVCOVZ5VUltTjZLWlNEeTFWcW9D?= =?iso-2022-jp?B?ZjUxNlVIRTQwL1c2R1R4eGVEOFl2R3FIa1Y1RVF0YjhmelRYMEZZbmxU?= =?iso-2022-jp?B?YWxENkYyVmRZU2oxY2xlWlIrMnRPTGUwcFNNQzNrSHA2TXVBY25DSExZ?= =?iso-2022-jp?B?anlKb3AxMjNhejB3emFuNi92YUI5b1VGV0RYaE9HQ0dYNzQwNTRYYjJs?= =?iso-2022-jp?B?Uk9iRDZZR0hGUkxNWk4zZTR6a0VSRWNhM2NrWEtEdkdYQms3ZHczR0NM?= =?iso-2022-jp?B?aU1VbFdWbHM0cnNJRVVvUDBPQlpBSkVac3B2bDFONHFZaGxLRUZsREQv?= =?iso-2022-jp?B?MStWK1d2Z2dpN2hjZVlYdVhqc3VFcitmRVV5UzVhSzM5Q3VjS25BUUNB?= =?iso-2022-jp?B?alhwaW5uRUIvRmluTHBrVm5xVFQvYTlqU2dtRjlJY0lZYlZtcGl0am5E?= =?iso-2022-jp?B?RjdkekU3am5EejFPRjhuTHh0Q3pGZ2cxS0l0UT09?= Content-Type: multipart/mixed; boundary="_002_TY4PR01MB177184FF9EE916F577E1F554194082TY4PR01MB17718jp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: lhjJCquSjf1yzcsd4sdfLQAw2UqijEiaLxyd/+tjUp/tdO0VlvLirHg3dhhSkC0bYuN+Ay4IdGNyyFLb+DhEJVyKECWaP6ZpXEvdY/8XLwbVxO0OlblhQxdBdJqq54zyWygvHr47daEn92eUW1DkJODLPh88hvaxE2bAeqyUoFJLB1r1Eua6IbBsKDEe+Oo5OUpTY9Ym6Rvab0HIAKkEng5kQv1c3Jd1klpt3HUelE9WNieG72MOq7Inu56qpH78TfffEE7hHMtOHhv1oCOJNdJzBjctBg1iEd4ypgjTl7ufiuD1vwJMamybXNheNYncPthx8mBNiA5k/wdlaX9Pkw== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY4PR01MB17718.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a1a767d-caad-4b7c-02cf-08debbe61ed9 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2026 11:50:16.7428 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dhzH7yCSJ+Qc4nGeccN+7/DcvXR1oNe4Yww/6p9vb/AsrmyLUS65QsgEcRdIEKnylM9HXECAbodMcHxxMab8WQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY3PR01MB12051 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TY4PR01MB177184FF9EE916F577E1F554194082TY4PR01MB17718jp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Hi, While testing the slot release logic, I noticed a bug in ReplicationSlotRelease() where it may access a replication slot array entry= that has already been released by itself. The detail is: When releasing an ephemeral replication slot, ReplicationSlotRelease() first drops the slot via ReplicationSlotDropAcquir= ed(). After this point, the slot's shared memory slot array entry can be immediat= ely reused by another backend creating a new slot. However, ReplicationSlotRelease() continued executing common cleanup code t= hat still dereferenced the old slot pointer and updated shared memory fields su= ch as effective_xmin. If the slot array entry had already been reallocated, these writes could inadvertently affect a different, unrelated slot. I am attaching a patch that avoids touching slot shared-memory state after dropping an ephemeral slot. Keep the post-release shared-memory updates onl= y for non-ephemeral slots, where the slot remains valid after release. To reproduce, we can use the following steps: 1. Attach gdb to the backend and set a breakpoint in ReplicationSlotRelease= () right after ReplicationSlotDropAcquired() is called. 2. Create an ephemeral slot in the above backend with an invalid output plu= gin: SELECT pg_create_logical_replication_slot('test_slot_dropped', 'pgoutput= 2', false, false, true); 3. Once the breakpoint is hit, start another backend and create a new slot named 'test_slot_created'. 4. Release the breakpoint and allow the first backend to continue. At this point, you will see it updating the new slot 'test_slot_created' -> acti= ve_proc (and effective_xmin, if a snapshot is being exported) to invalid values. 5. Start a third backend and attempt to acquire the same slot 'test_slot_created' ? this should not be possible under normal circumsta= nces, but the bug allows it. I haven't attached a test for this fix, as the change is straightforward an= d the likelihood of encountering this bug is low, so it may not be worth adding t= est cycles for it. However, if others feel differently, I'm OK to add one. Best Regards, Hou zj --_002_TY4PR01MB177184FF9EE916F577E1F554194082TY4PR01MB17718jp_ Content-Type: application/octet-stream; name="v1-0001-Fix-race-in-ReplicationSlotRelease-for-ephemeral-.patch" Content-Description: v1-0001-Fix-race-in-ReplicationSlotRelease-for-ephemeral-.patch Content-Disposition: attachment; filename="v1-0001-Fix-race-in-ReplicationSlotRelease-for-ephemeral-.patch"; size=3967; creation-date="Wed, 27 May 2026 10:52:38 GMT"; modification-date="Wed, 27 May 2026 11:50:16 GMT" Content-Transfer-Encoding: base64 RnJvbSBkNThkNDllNTg1YWJmNGYxYzJjYzI5ZGUxNzJkY2IzMzU5NTAxN2Q3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGlqaWUgSG91IDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpE YXRlOiBXZWQsIDI3IE1heSAyMDI2IDE4OjI0OjM5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2MV0g Rml4IHJhY2UgaW4gUmVwbGljYXRpb25TbG90UmVsZWFzZSBmb3IgZXBoZW1lcmFsIHNsb3RzCgpX aGVuIHJlbGVhc2luZyBhbiBlcGhlbWVyYWwgcmVwbGljYXRpb24gc2xvdCwgUmVwbGljYXRpb25T bG90UmVsZWFzZSgpIGZpcnN0CmRyb3BzIHRoZSBzbG90IHZpYSBSZXBsaWNhdGlvblNsb3REcm9w QWNxdWlyZWQoKS4gQWZ0ZXIgdGhpcyBwb2ludCwgdGhlIHNsb3QncwpzaGFyZWQgbWVtb3J5IHNs b3QgYXJyYXkgZW50cnkgY2FuIGJlIGltbWVkaWF0ZWx5IHJldXNlZCBieSBhbm90aGVyIGJhY2tl bmQKY3JlYXRpbmcgYSBuZXcgc2xvdC4KCkhvd2V2ZXIsIFJlcGxpY2F0aW9uU2xvdFJlbGVhc2Uo KSBjb250aW51ZWQgZXhlY3V0aW5nIGNvbW1vbiBjbGVhbnVwIGNvZGUgdGhhdApzdGlsbCBkZXJl ZmVyZW5jZWQgdGhlIG9sZCBzbG90IHBvaW50ZXIgYW5kIHVwZGF0ZWQgc2hhcmVkIG1lbW9yeSBm aWVsZHMgc3VjaCBhcwplZmZlY3RpdmVfeG1pbi4gSWYgdGhlIHNsb3QgYXJyYXkgZW50cnkgaGFk IGFscmVhZHkgYmVlbiByZWFsbG9jYXRlZCwgdGhlc2UKd3JpdGVzIGNvdWxkIGluYWR2ZXJ0ZW50 bHkgYWZmZWN0IGEgZGlmZmVyZW50LCB1bnJlbGF0ZWQgc2xvdC4KClRoaXMgY29tbWl0IGF2b2lk cyB0b3VjaGluZyBzbG90IHNoYXJlZC1tZW1vcnkgc3RhdGUgYWZ0ZXIgZHJvcHBpbmcgYW4gZXBo ZW1lcmFsCnNsb3QuIEtlZXAgdGhlIHBvc3QtcmVsZWFzZSBzaGFyZWQtbWVtb3J5IHVwZGF0ZXMg b25seSBmb3Igbm9uLWVwaGVtZXJhbCBzbG90cywKd2hlcmUgdGhlIHNsb3QgcmVtYWlucyB2YWxp ZCBhZnRlciByZWxlYXNlLgotLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyB8IDY4 ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNSBp bnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXgg YzBjOWY1MTRmN2IuLjM3NzQ1ODY3OTMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC03OTcs NDQgKzc5Nyw0NiBAQCBSZXBsaWNhdGlvblNsb3RSZWxlYXNlKHZvaWQpCiAJCWlmIChpc19sb2dp Y2FsKQogCQkJUmVxdWVzdERpc2FibGVMb2dpY2FsRGVjb2RpbmcoKTsKIAl9Ci0KLQkvKgotCSAq IElmIHNsb3QgbmVlZGVkIHRvIHRlbXBvcmFyaWx5IHJlc3RyYWluIGJvdGggZGF0YSBhbmQgY2F0 YWxvZyB4bWluIHRvCi0JICogY3JlYXRlIHRoZSBjYXRhbG9nIHNuYXBzaG90LCByZW1vdmUgdGhh dCB0ZW1wb3JhcnkgY29uc3RyYWludC4KLQkgKiBTbmFwc2hvdHMgY2FuIG9ubHkgYmUgZXhwb3J0 ZWQgd2hpbGUgdGhlIGluaXRpYWwgc25hcHNob3QgaXMgc3RpbGwKLQkgKiBhY3F1aXJlZC4KLQkg Ki8KLQlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3QtPmRhdGEueG1pbikgJiYKLQkJVHJh bnNhY3Rpb25JZElzVmFsaWQoc2xvdC0+ZWZmZWN0aXZlX3htaW4pKQorCWVsc2UKIAl7Ci0JCVNw aW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQlzbG90LT5lZmZlY3RpdmVfeG1pbiA9IElu dmFsaWRUcmFuc2FjdGlvbklkOwotCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJ UmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZFhtaW4oZmFsc2UpOwotCX0KLQotCS8qCi0J ICogU2V0IHRoZSB0aW1lIHNpbmNlIHRoZSBzbG90IGhhcyBiZWNvbWUgaW5hY3RpdmUuIFdlIGdl dCB0aGUgY3VycmVudAotCSAqIHRpbWUgYmVmb3JlaGFuZCB0byBhdm9pZCBzeXN0ZW0gY2FsbCB3 aGlsZSBob2xkaW5nIHRoZSBzcGlubG9jay4KLQkgKi8KLQlub3cgPSBHZXRDdXJyZW50VGltZXN0 YW1wKCk7CisJCS8qCisJCSAqIElmIHNsb3QgbmVlZGVkIHRvIHRlbXBvcmFyaWx5IHJlc3RyYWlu IGJvdGggZGF0YSBhbmQgY2F0YWxvZyB4bWluCisJCSAqIHRvIGNyZWF0ZSB0aGUgY2F0YWxvZyBz bmFwc2hvdCwgcmVtb3ZlIHRoYXQgdGVtcG9yYXJ5IGNvbnN0cmFpbnQuCisJCSAqIFNuYXBzaG90 cyBjYW4gb25seSBiZSBleHBvcnRlZCB3aGlsZSB0aGUgaW5pdGlhbCBzbmFwc2hvdCBpcyBzdGls bAorCQkgKiBhY3F1aXJlZC4KKwkJICovCisJCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xv dC0+ZGF0YS54bWluKSAmJgorCQkJVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdC0+ZWZmZWN0aXZl X3htaW4pKQorCQl7CisJCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJCXNsb3Qt PmVmZmVjdGl2ZV94bWluID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCQlTcGluTG9ja1JlbGVh c2UoJnNsb3QtPm11dGV4KTsKKwkJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWlu KGZhbHNlKTsKKwkJfQogCi0JaWYgKHNsb3QtPmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfUEVSU0lT VEVOVCkKLQl7CiAJCS8qCi0JCSAqIE1hcmsgcGVyc2lzdGVudCBzbG90IGluYWN0aXZlLiAgV2Un cmUgbm90IGZyZWVpbmcgaXQsIGp1c3QKLQkJICogZGlzY29ubmVjdGluZywgYnV0IHdha2UgdXAg b3RoZXJzIHRoYXQgbWF5IGJlIHdhaXRpbmcgZm9yIGl0LgorCQkgKiBTZXQgdGhlIHRpbWUgc2lu Y2UgdGhlIHNsb3QgaGFzIGJlY29tZSBpbmFjdGl2ZS4gV2UgZ2V0IHRoZSBjdXJyZW50CisJCSAq IHRpbWUgYmVmb3JlaGFuZCB0byBhdm9pZCBzeXN0ZW0gY2FsbCB3aGlsZSBob2xkaW5nIHRoZSBz cGlubG9jay4KIAkJICovCi0JCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQlzbG90 LT5hY3RpdmVfcHJvYyA9IElOVkFMSURfUFJPQ19OVU1CRVI7Ci0JCVJlcGxpY2F0aW9uU2xvdFNl dEluYWN0aXZlU2luY2Uoc2xvdCwgbm93LCBmYWxzZSk7Ci0JCVNwaW5Mb2NrUmVsZWFzZSgmc2xv dC0+bXV0ZXgpOwotCQlDb25kaXRpb25WYXJpYWJsZUJyb2FkY2FzdCgmc2xvdC0+YWN0aXZlX2N2 KTsKLQl9Ci0JZWxzZQotCQlSZXBsaWNhdGlvblNsb3RTZXRJbmFjdGl2ZVNpbmNlKHNsb3QsIG5v dywgdHJ1ZSk7CisJCW5vdyA9IEdldEN1cnJlbnRUaW1lc3RhbXAoKTsKIAotCU15UmVwbGljYXRp b25TbG90ID0gTlVMTDsKKwkJaWYgKHNsb3QtPmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfUEVSU0lT VEVOVCkKKwkJeworCQkJLyoKKwkJCSAqIE1hcmsgcGVyc2lzdGVudCBzbG90IGluYWN0aXZlLiAg V2UncmUgbm90IGZyZWVpbmcgaXQsIGp1c3QKKwkJCSAqIGRpc2Nvbm5lY3RpbmcsIGJ1dCB3YWtl IHVwIG90aGVycyB0aGF0IG1heSBiZSB3YWl0aW5nIGZvciBpdC4KKwkJCSAqLworCQkJU3Bpbkxv Y2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCQlzbG90LT5hY3RpdmVfcHJvYyA9IElOVkFMSURf UFJPQ19OVU1CRVI7CisJCQlSZXBsaWNhdGlvblNsb3RTZXRJbmFjdGl2ZVNpbmNlKHNsb3QsIG5v dywgZmFsc2UpOworCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCQlDb25kaXRp b25WYXJpYWJsZUJyb2FkY2FzdCgmc2xvdC0+YWN0aXZlX2N2KTsKKwkJfQorCQllbHNlCisJCQlS ZXBsaWNhdGlvblNsb3RTZXRJbmFjdGl2ZVNpbmNlKHNsb3QsIG5vdywgdHJ1ZSk7CisKKwkJTXlS ZXBsaWNhdGlvblNsb3QgPSBOVUxMOworCX0KIAogCS8qIG1pZ2h0IG5vdCBoYXZlIGJlZW4gc2V0 IHdoZW4gd2UndmUgYmVlbiBhIHBsYWluIHNsb3QgKi8KIAlMV0xvY2tBY3F1aXJlKFByb2NBcnJh eUxvY2ssIExXX0VYQ0xVU0lWRSk7Ci0tIAoyLjQzLjAKCg== --_002_TY4PR01MB177184FF9EE916F577E1F554194082TY4PR01MB17718jp_--