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 1unnlN-00BHVH-AK for pgpool-hackers@arkaria.postgresql.org; Mon, 18 Aug 2025 00:30:15 +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 1unnlL-00BuYT-LJ for pgpool-hackers@arkaria.postgresql.org; Mon, 18 Aug 2025 00:30:12 +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 1unnlL-00BuYK-9j for pgpool-hackers@lists.postgresql.org; Mon, 18 Aug 2025 00:30:12 +0000 Received: from mail-japaneastazon11021096.outbound.protection.outlook.com ([52.101.125.96] helo=TYVP286CU001.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1unnlJ-000Q9r-10 for pgpool-hackers@lists.postgresql.org; Mon, 18 Aug 2025 00:30:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pm/sPrBvUiTPltfPb7EgJVjrokLBwCqhfOiu2cc0HHzRXN+xQw1WLIBhwh79enIwkREz5hM2IaAQharSBajqUjU0q+qa1uUXmehPovWmGBo1SPMTF8XoJRJci4s7BxbDZI7W1s5lzsU+G3G+qufuFVPBJZq8I4YW6Rej/hVHgi1BTI4AHr16k467g4mgo81ql/Vg++3iRV81UoZ5wYwd/Cm9g7bBJKXflFFv0Jtw4xmiBfZ8h2NFUYIUjRlQtD3nOsBhNQk3ZNmPT/VxVqhTXc4NHjAp5KvqU+Fdwd73DOwll2i14wbtzMX0Qdq2FZF2CjKoOnem+xkqyVaMvsq89A== 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=qu/bY+tehwfYCCtr5h3YVBkxJC8ujGNa3RjXjkXrtA8=; b=ZfB2HDJpqvz3N1Gatdp7n3EudSNgcIkt8akP1nm47ZusHehQRkXBkrTcqm8CJkASW7VIUns7H3+L93EM8GQ+4hUlOq/WYh1w6gptwWnB6IRlEbwM20n/bPuDVvC1OjdrG6uImy5UnhgwJWIl0f/hiOVZEkACPfp51Q+X5ZaMsN15JL7yh3ZEL0NqK0tgIeciBsshBun9vmncJszSBuP/wuRXqjlvgPHn8H2H9/PCab6tKfQVwCDGnRfhNI9QniZpjWS5HwTD+loY7MjxCuSJSMajO5AEzBTI2/rYtfN4B3nELDhM+hwUMht6KrWmKCn7+7OeD7pTpqN1UlB25tNnMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sraoss.co.jp; dmarc=pass action=none header.from=sraoss.co.jp; dkim=pass header.d=sraoss.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sraoss.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qu/bY+tehwfYCCtr5h3YVBkxJC8ujGNa3RjXjkXrtA8=; b=mCKNjNwA6WBBzCALEX5LPtlFzHiTUufOXh1+jX3xCwtztarXqSJ13yLf9LtQYmmxHwl1ohd3EVMm+tbjMv/4b0Yb9qRPI1mnqqDgf+1fFvkDb8mVWnYerLJD3yoRX3JRtkSBRbxQNH8HgcLb5zY+q1Gd9vizfHp3bbg1JSskDKl+6JVmMVYXtHewURJ+3Dz9Uk4vGvmYWTHkWOy+QrT9oA0lfqk1wC+OoYVv3k/LAQOkfbgMY97+goZlYtQ+P/4toefXDZQXM2PaPHUq52+hKgPATpGyrclKHUsz2QAGPU5fC0pNaS8t5a7VgfosiMf/0PHBidcUEsmxaCzRLicyrA== Received: from TYWP286MB2633.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:249::12) by OS3P286MB2677.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:1fc::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9031.24; Mon, 18 Aug 2025 00:30:02 +0000 Received: from TYWP286MB2633.JPNP286.PROD.OUTLOOK.COM ([fe80::66aa:2227:bbba:ead2]) by TYWP286MB2633.JPNP286.PROD.OUTLOOK.COM ([fe80::66aa:2227:bbba:ead2%4]) with mapi id 15.20.9031.023; Mon, 18 Aug 2025 00:30:02 +0000 From: Bo Peng To: "pgpool-hackers@lists.postgresql.org" Subject: Proposal: Restrict watchdog and heartbeat receiver to listen only on configured addresses Thread-Topic: Proposal: Restrict watchdog and heartbeat receiver to listen only on configured addresses Thread-Index: AQHcD3pbiW4sOp9hV0y22Zf/gc0aOg== Date: Mon, 18 Aug 2025 00:30:00 +0000 Message-ID: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sraoss.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYWP286MB2633:EE_|OS3P286MB2677:EE_ x-ms-office365-filtering-correlation-id: 8a741b92-2f74-42b8-3a95-08ddddee5f1d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|4053099003|3613699012|38070700018; x-microsoft-antispam-message-info: =?iso-2022-jp?B?YnBGY0FCQ1kwbENaU0h0eWYyQ1M4dHpKbTJYZ2JFR3EzSHMzNk1PcTV4?= =?iso-2022-jp?B?YXlRY0FEZTJQMHBhQ2NORjlyeGNYQVkxc0RTRkhZUmQrcGc1VmFCQkht?= =?iso-2022-jp?B?K205eXJoUzAwVUllWWpMY09sTEprOTZQRUcwbVh2Z3NpYXR2dzc0WklW?= =?iso-2022-jp?B?akJ0RDFhbktYSkRiVXBmc3pmQ3NoYVV6cnlmNEpzKy80TEpndTZmYTNJ?= =?iso-2022-jp?B?Mmx6VXJobXFZTFlOWlp6S1hCQU9UUGFCeVFmMDFzVkEvWGw4NWd0MzRQ?= =?iso-2022-jp?B?b0VxMUZ1dTVqRDZQbjZndjRGNi9TU0tsV0pYbFF0MGdkWHBXNlNzOXo4?= =?iso-2022-jp?B?ZlA3UHZscXFqK0VMWXNKYjIrRmd3N2hoUFZ4YzVBQ1pGRjBOa0pzcXBi?= =?iso-2022-jp?B?WHNXNjRWQ05scWFRdWxrbTRkNTFpRzhCbzNab1FVeHVIczJZUW9BNm9X?= =?iso-2022-jp?B?Zjd2ZE5sVURiUDNWeTlBdS9NOHQ1SGpDbXNxYUZwenQxVCtHZERENE1W?= =?iso-2022-jp?B?Zlp2cjg3dHVkcGxvSE1nd1VUUWJTeEN5OVlhaDNHU01TZGttT1ZLY0VO?= =?iso-2022-jp?B?QWRDa0VLTDlBb0NKRmlJZlRlYi8rSkRjRjFNcDVVenY5ZDVXc0xmRHB5?= =?iso-2022-jp?B?RHRhUFh5bmoxOSsyd3RHaEROKzNSWHBGYkVZSlFpZUovRmRXTWVGR3gv?= =?iso-2022-jp?B?ZktXeWNaL0d0bEd4QXNwNFAzNnprbDlaL0NNZ3kxOTJFbUo4SW5DdFZs?= =?iso-2022-jp?B?RWVydHhjVjY1V2hiS3NQdTRVY1FaNmptVTBBZnd3SlJrU1pjUTd6Q3hX?= =?iso-2022-jp?B?NlNUZEVuME53dnZZVllyM3ViM1hiSVlYYXdEVW5jaGJ5SzFpUmdBZ3V1?= =?iso-2022-jp?B?SFppUTJ1MytJMFcra2FxWWt2U1hCQVlCVzJXbGtFbUszaCtlM013K0dw?= =?iso-2022-jp?B?K0xuZWV2ZFpVOXYzT3E4RnZCSnM5ekt5dTl0ejZSUStXZ3NyOHY0QVE3?= =?iso-2022-jp?B?RzN5VlgyTHFhVCtBRWdJMkRPclljb3J4YVVNVFZwY05PdHY5MjRUVXpm?= =?iso-2022-jp?B?cmdUakwrbndNN1lxNEh3aENlWndOZmt6b01zb0o3b2NFak4ycUhQUmVy?= =?iso-2022-jp?B?QkkyNFZma0NSdXBFQWI2TTFBUU9MTHhVejJ2Z1k1MlZkYXM5cU9EUmtU?= =?iso-2022-jp?B?ZHJ3LzFrcDU3NGpCNHRzSUY4cWc2N0plb25lanNRT1haNnh4Yk9Ec0g2?= =?iso-2022-jp?B?TnBMUjc5aWhVWmdpS2hzQUZweUI1VmVLNGhKQ3QvY2F5WEtYMWNEbEN6?= =?iso-2022-jp?B?VGkxMTZJWFFiMXRwWUdoa1NjbHQ3NEZoZGUvM3F5VU9XeWJYclRXM3pv?= =?iso-2022-jp?B?Rk5FUEYzOXFyMytzdUJ3aWhuZlhHT05FME0rVk1aWjlNNXVrUDh6bkEz?= =?iso-2022-jp?B?Q2ZhOVRsTnlkM2xhWWduNm41ZitqZ3hubW5ZeE50b2ZPZUtBTiswbHda?= =?iso-2022-jp?B?MklRaldpUXNjZ0tTQWZUZ3pIaElHOWpCTXFaYXI3VVExbkJ3YXJHUDdT?= =?iso-2022-jp?B?dmgwVFVqTjJ6dlF6Z0RUblVXSG5ESjRRN3p5Z3E1NVJscXE1dGwvY200?= =?iso-2022-jp?B?VDRYbkV5M2g2SUdNd2dyOHlXMTNUR1ZvSTlQRGVxeUUvM3FyMnZ0MGY5?= =?iso-2022-jp?B?UmYzU1U5emtETzRteXJvY0ozeGpSbmhoU1BzUndJY1pKaW5qL2RxN2dS?= =?iso-2022-jp?B?T0p6WWp3Y2RGV0JLV3lNalpNdHJ1SXhBTEp1M0FXV0p1eDhDUE44aDR3?= =?iso-2022-jp?B?UVpSSlNFUVkzS0RZYldSWjNrc1J1SmZoSm0vUEFkNzFrL2lOTFROUmI3?= =?iso-2022-jp?B?dTNrVHZPaC9qZC9tOHY1T3ZKNXM3L1J5S3BVZDFtOTA4R0RaTVlyOTdC?= =?iso-2022-jp?B?aUhJN2pySm5ZNk5rOENMOU9UOHNOUVMxTitwcUVTMkpMazMzU2syOGR4?= =?iso-2022-jp?B?Rjd5ZlJXcGtwVmlxRWYyNkFXbVNLanJCTlozakhTWGMzZE4wSkFnQVhp?= =?iso-2022-jp?B?RGRUby8wNGMyUmx2THhpL0w2eGtoWUVQODVUeFdPeWdiL0xmVXdTaWxW?= =?iso-2022-jp?B?Qmg=?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWP286MB2633.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(4053099003)(3613699012)(38070700018);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?VjlMczhFNDhXOEtkUTFXMVY4aGJEMEZTRHhNcVlSL0JiWjRscVYvOWhE?= =?iso-2022-jp?B?RHYrWXlnNWlrZXU2UFNSdEJQMHMwY1ZMdkV6dEVDdG1STjM2Y1Nsbm5Z?= =?iso-2022-jp?B?TlBFNEhwcXkzcWhHT2I0ZzdhNGF1MVFwNHYvMEN2dlRjejdNK1pHNENm?= =?iso-2022-jp?B?Nm10ejZtT1NBejd0enlKcExCMEFsaUloUkMrWVRHL2NSMFI0WmEzMksr?= =?iso-2022-jp?B?SG5peEhoTTNaenNGTUp4bm1KU3RrT2thR3ZKSmdoV3I1bkMyT3I1ckhS?= =?iso-2022-jp?B?SmEwZnFxa1IyK2hsQzU2Rjl2MWs4ZkI5QnRrT2hYSGJ6blluODU3ZWxS?= =?iso-2022-jp?B?UGtueUkwNnVTWlg5SW50MklEY2J3ZDhWVkNkTTJqYUFZSUJEUmowUmIy?= =?iso-2022-jp?B?QXgwS05mRFk2K1ZCRmRac0Rsd2VBMzhDVTdkVkZiWVVkNDZiOUVhUkhG?= =?iso-2022-jp?B?dytRS2hLaFAyQ2ZJWVhHQWNieGc0R0p3clhGMm1LNCtJOGlMK280bjd3?= =?iso-2022-jp?B?U0JIeDRkWHdvTjVuM1FnZWhZeGE3dXZXVDhnT2NDNWpjaHZ6cHp4Q2Nj?= =?iso-2022-jp?B?WGtDd3BESy9BV3hFd1BEbUE1enYxYjhjRVZncUVwcnhNSVlLbURCUFl0?= =?iso-2022-jp?B?dkZFcExNWlNFNm94eWQwNm10cTludGQrWE1sVVI5Y2pESWZFQkZkZFYy?= =?iso-2022-jp?B?OG9RVDVmckQ4VTM0QlFLSmhOSEVwOU5pRXhNREVNQ2M2dmYvWmhJUVFY?= =?iso-2022-jp?B?K3c2SUJ5QVhSaEV6M1BuMEVXTEhnNExCVkZKTi9GemRtbDNjSE5halVx?= =?iso-2022-jp?B?RitFQ2RMcjhMY1JwNjdnNGZkbkR1VDFsVTV3VTJaRU1YKzRVNjZiMkMw?= =?iso-2022-jp?B?alJ5RFR1MnU0UnFrZytXMTdhUkp3NlBhT2lBamxXVDVkV3dqYUx5RlVk?= =?iso-2022-jp?B?bUw3TnZxZzZuNk9pSTZsSEIrN0JIejFSWEp5NmVZSHFWcVB1WDRiWUI4?= =?iso-2022-jp?B?aFltaFpKUCt3dW1ROUN2c0F4emQ4R00ycWZjZFZyc2JVUGlnbTVvckpw?= =?iso-2022-jp?B?bk5ITTB5SnBCSEJtNDRjRmZXUjlhMnJSVzhZL01aUTllOFhON1VtcDEv?= =?iso-2022-jp?B?ZmpWUkRraUlIUFpTSGZsYWV2L2JrLzkyM2tuYjRSS0J0Z3BUOHZMdER5?= =?iso-2022-jp?B?alM4K0I0Nk9BMGt4TytsaWErS1hlaW5XUEhqanFwY0VGbHNUR3k3d3hD?= =?iso-2022-jp?B?ZE1FWmVpSWNPcDBuUXRxbzRoeUZncUFxQXdlRHAwVkZjMTVTSXlCUzVk?= =?iso-2022-jp?B?TStodWNpS1JwT08xMVA3VjYrT2h5TkRJdXRZTHB3QmVqVTlXdWFKSS9l?= =?iso-2022-jp?B?K1hKQnpkbUFQSjhTV2M5bU9LYW1iMjMzaTl3WkNVSjh6TEw1dnZYMTZq?= =?iso-2022-jp?B?d09VQkQrcWdJS0s3Yyt6WjdpdGpuUGpud1RFWkwyVktrcnNkN3lqR3Vx?= =?iso-2022-jp?B?ZndMcWJzUFJXU3BhQ2FBMVhLY1JtL29uWUJHRU10ZVNTZ0pOSU5zb1hN?= =?iso-2022-jp?B?MVpydFhJOXk2WnNDWEovN01TVTFpZ1pWUXBONEQ2aWtIWnlsZHhsWHNQ?= =?iso-2022-jp?B?Y1dKWUQ0WWpvdXFOSythYldLRXNHa3FoVWJqUjZFK0MwWTZIWlRUL0cx?= =?iso-2022-jp?B?V3hleldYOGhWbHJjL1FlWVVPU3d3MzNTZFNBZjB1K25xWlpvRUQ2Zm5D?= =?iso-2022-jp?B?TlNJNVhlNXNMTTZZTDkvekVlWGtuTDVSamVISGJhdTNiNWFwRzJmekcy?= =?iso-2022-jp?B?NzRnN25OaGttcGE5R20xekxlUGV2bUlRdktyb0dnWVhyKytSVkU1YStH?= =?iso-2022-jp?B?R0xVTGZrQmZTNFJwWlMyRnBFU2d1VkVxZkNGbHl4SSt1WHNqaGZuZkVX?= =?iso-2022-jp?B?enV3MnB5dWtyUzJjMVJvZ1ZmT2F5UVdmeHExSW5yajlSZmVuU3dqVjNr?= =?iso-2022-jp?B?cmZpVFUvb1RZTXBZazNnWFFCVUErR1FUUlVNcHY5RVArbm9uYlorS0pQ?= =?iso-2022-jp?B?VVFKZDNlNkk0SW9kM21mc2JhL2xseVJnczc1REtuOTV1UE5mZndManpl?= =?iso-2022-jp?B?bi9SbU95ZzlkVURnSUQ2VlJWcU02SERyVWtLdFo4cldCSThhOGUvS21X?= =?iso-2022-jp?B?NTg1bC9rWGlHQVhzZ2VRdlBwWlRRSXVtRDBBb0JlSEdlRWN1cmp4bGxa?= =?iso-2022-jp?B?WXEwdGJEOTRLcWpPN2UwNTlrTkp4QnJwRE82QmpCMjNVOHJUKzhDbU1S?= =?iso-2022-jp?B?dUVjSw==?= Content-Type: multipart/mixed; boundary="_002_TYWP286MB2633B3C651030A0A658D2597F236ATYWP286MB2633JPNP_" MIME-Version: 1.0 X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYWP286MB2633.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 8a741b92-2f74-42b8-3a95-08ddddee5f1d X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2025 00:30:02.3745 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 75db6c32-352e-4063-ae79-cafb8623f6db X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QVKapJkLQFE60hrVuqWURnUuXbYnsU4lnIdSqNCmvkSqU93h5KKQf3bMFi4peJkqNS/Q7fgMSKOvL54WzTDpHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3P286MB2677 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYWP286MB2633B3C651030A0A658D2597F236ATYWP286MB2633JPNP_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Currently, both the watchdog and heartbeat receiver processes listen on all= interfaces.=0A= =0A= tcp 0 0 0.0.0.0:9000 0.0.0.0:* LI= STEN 1428/pgpool: watchd =0A= udp 0 0 0.0.0.0:9694 0.0.0.0:* = 1453/pgpool: heartb =0A= udp 0 0 0.0.0.0:9694 0.0.0.0:* = 1444/pgpool: heartb=0A= =0A= For security reasons, I propose to change this behavior so that they listen= only on the addresses=0A= specified by hostname and heartbeat_hostname.=0A= =0A= tcp 0 0 192.168.101.101:9000 0.0.0.0:* = LISTEN 727648/pgpool: watc=0A= udp 0 0 192.168.101.101:9694 0.0.0.0:* = 727664/pgpool: hear =0A= udp 0 0 192.168.101.101:9694 0.0.0.0:* = 727660/pgpool: hear=0A= =0A= Patch is attached.=0A= ---=0A= Bo Peng =0A= SRA OSS K.K.=0A= TEL: 03-5979-2701 FAX: 03-5979-2702=0A= Mobile: 080-7752-0749=0A= URL: https://www.sraoss.co.jp/= --_002_TYWP286MB2633B3C651030A0A658D2597F236ATYWP286MB2633JPNP_ Content-Type: application/octet-stream; name="watchdog_lifecheck_listen_addr_v1.patch" Content-Description: watchdog_lifecheck_listen_addr_v1.patch Content-Disposition: attachment; filename="watchdog_lifecheck_listen_addr_v1.patch"; size=11417; creation-date="Sun, 17 Aug 2025 13:38:14 GMT"; modification-date="Sun, 17 Aug 2025 13:38:14 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9jb25maWcvcG9vbF9jb25maWdfdmFyaWFibGVzLmMgYi9zcmMvY29u ZmlnL3Bvb2xfY29uZmlnX3ZhcmlhYmxlcy5jCmluZGV4IGQ3ZDVmZTQ5Zi4uNWJiZTQ2ZDNhIDEw MDY0NAotLS0gYS9zcmMvY29uZmlnL3Bvb2xfY29uZmlnX3ZhcmlhYmxlcy5jCisrKyBiL3NyYy9j b25maWcvcG9vbF9jb25maWdfdmFyaWFibGVzLmMKQEAgLTUzMzUsMTQgKzUzMzUsMTcgQEAgU2V0 UGdwb29sTm9kZUlkKGludCBlbGV2ZWwpCiBzdGF0aWMgYm9vbAogU2V0SEJEZXN0SWZGdW5jKGlu dCBlbGV2ZWwpCiB7Ci0JaW50CQkJaWR4ID0gMDsKKwlpbnQJCQlkZXN0X2lmX2lkeCA9IDA7CisJ aW50CQkJbG9jYWxfaWZfaWR4ID0gMDsKIAljaGFyCSAgKiphZGRyczsKIAljaGFyCSAgKippZl9u YW1lczsKIAlpbnQJCQlpLAogCQkJCWosCisJCQkJaywKIAkJCQluX2FkZHIsCiAJCQkJbl9pZl9u YW1lOwogCisJZ19wb29sX2NvbmZpZy5udW1faGJfbG9jYWxfaWYgPSAwOwogCWdfcG9vbF9jb25m aWcubnVtX2hiX2Rlc3RfaWYgPSAwOwogCiAJaWYgKGdfcG9vbF9jb25maWcud2RfbGlmZWNoZWNr X21ldGhvZCAhPSBMSUZFQ0hFQ0tfQllfSEIpCkBAIC01MzUyLDIyICs1MzU1LDE0IEBAIFNldEhC RGVzdElmRnVuYyhpbnQgZWxldmVsKQogCiAJLyoKIAkgKiBnX3Bvb2xfY29uZmlnLmhiX2lmcyBp cyB0aGUgaW5mb3JtYXRpb24gZm9yIHNlbmRpbmcvcmVjZWl2aW5nIGhlYXJ0YmVhdAotCSAqIGZv ciBhbGwgbm9kZXMgc3BlY2lmaWVkIGluIHBncG9vbC5jb25mLiBJZiBpdCBpcyBsb2NhbCBwZ3Bv b2wgbm9kZQotCSAqIGluZm9ybWF0aW9uLCBzZXQgZGVzdF9wb3J0IHRvIGdfcG9vbF9jb25maWcu d2RfaGVhcnRiZWF0X3BvcnQgYW5kCi0JICogaWdub3JlIGFkZHIgYW5kIGlmX25hbWUuIGdfcG9v bF9jb25maWcuaGJfZGVzdF9pZiBpcyB0aGUgaGVhcnRiZWF0CisJICogZm9yIGFsbCBub2RlcyBz cGVjaWZpZWQgaW4gcGdwb29sLmNvbmYuIGdfcG9vbF9jb25maWcuaGJfbG9jYWxfaWYgaXMKKwkg KiB0aGUgbG9jYWwgbm9kZSBpbmZvcm1hdGlvbi4gZ19wb29sX2NvbmZpZy5oYl9kZXN0X2lmIGlz IHRoZSBoZWFydGJlYXQKIAkgKiBkZXN0aW5hdGlvbiBpbmZvcm1hdGlvbi4KIAkgKi8KIAlmb3Ig KGkgPSAwOyBpIDwgV0RfTUFYX0lGX05VTTsgaSsrKQogCXsKIAkJaWYgKGdfcG9vbF9jb25maWcu aGJfaWZzW2ldLmRlc3RfcG9ydCA+IDApCiAJCXsKLQkJCS8qIElnbm9yZSBsb2NhbCBwZ3Bvb2wg bm9kZSAqLwotCQkJaWYgKGkgPT0gZ19wb29sX2NvbmZpZy5wZ3Bvb2xfbm9kZV9pZCkKLQkJCXsK LQkJCQlnX3Bvb2xfY29uZmlnLndkX2hlYXJ0YmVhdF9wb3J0ID0gZ19wb29sX2NvbmZpZy5oYl9p ZnNbaV0uZGVzdF9wb3J0OwotCQkJCWNvbnRpbnVlOwotCQkJfQotCiAJCQlXZEhiSWYJICAgKmhi Tm9kZUluZm8gPSAmZ19wb29sX2NvbmZpZy5oYl9pZnNbaV07CiAKIAkJCWFkZHJzID0gZ2V0X2xp c3RfZnJvbV9zdHJpbmcoaGJOb2RlSW5mby0+YWRkciwgIjsiLCAmbl9hZGRyKTsKQEAgLTUzNzUs NyArNTM3MCwxMCBAQCBTZXRIQkRlc3RJZkZ1bmMoaW50IGVsZXZlbCkKIAogCQkJaWYgKCFhZGRy cyB8fCBuX2FkZHIgPCAwKQogCQkJewotCQkJCWdfcG9vbF9jb25maWcuaGJfZGVzdF9pZltpZHhd LmFkZHJbMF0gPSAnXDAnOworCQkJCWlmIChpID09IGdfcG9vbF9jb25maWcucGdwb29sX25vZGVf aWQpCisJCQkJCWdfcG9vbF9jb25maWcuaGJfbG9jYWxfaWZbbG9jYWxfaWZfaWR4XS5hZGRyWzBd ID0gJ1wwJzsKKwkJCQllbHNlCisJCQkJCWdfcG9vbF9jb25maWcuaGJfZGVzdF9pZltkZXN0X2lm X2lkeF0uYWRkclswXSA9ICdcMCc7CiAKIAkJCQlpZiAoYWRkcnMpCiAJCQkJCXBmcmVlKGFkZHJz KTsKQEAgLTUzOTEsMTkgKzUzODksNDYgQEAgU2V0SEJEZXN0SWZGdW5jKGludCBlbGV2ZWwpCiAK IAkJCWZvciAoaiA9IDA7IGogPCBuX2FkZHI7IGorKykKIAkJCXsKLQkJCQlzdHJsY3B5KGdfcG9v bF9jb25maWcuaGJfZGVzdF9pZltpZHhdLmFkZHIsIGFkZHJzW2pdLCBXRF9NQVhfSE9TVF9OQU1F TEVOIC0gMSk7Ci0JCQkJZ19wb29sX2NvbmZpZy5oYl9kZXN0X2lmW2lkeF0uZGVzdF9wb3J0ID0g aGJOb2RlSW5mby0+ZGVzdF9wb3J0OwotCQkJCWlmIChuX2lmX25hbWUgPiBqKQorCQkJCS8qIGxv Y2FsIHBncG9vbCBub2RlICovCisJCQkJaWYgKGkgPT0gZ19wb29sX2NvbmZpZy5wZ3Bvb2xfbm9k ZV9pZCkKIAkJCQl7Ci0JCQkJCXN0cmxjcHkoZ19wb29sX2NvbmZpZy5oYl9kZXN0X2lmW2lkeF0u aWZfbmFtZSwgaWZfbmFtZXNbal0sIFdEX01BWF9JRl9OQU1FX0xFTiAtIDEpOwotCQkJCQlwZnJl ZShpZl9uYW1lc1tqXSk7CisJCQkJCWZvciAoayA9IDA7IGsgPCBnX3Bvb2xfY29uZmlnLndkX25v ZGVzLm51bV93ZCAtIDE7IGsrKykKKwkJCQkJeworCQkJCQkJc3RybGNweShnX3Bvb2xfY29uZmln LmhiX2xvY2FsX2lmW2xvY2FsX2lmX2lkeF0uYWRkciwgYWRkcnNbal0sIFdEX01BWF9IT1NUX05B TUVMRU4gLSAxKTsKKwkJCQkJCWdfcG9vbF9jb25maWcuaGJfbG9jYWxfaWZbbG9jYWxfaWZfaWR4 XS5kZXN0X3BvcnQgPSBoYk5vZGVJbmZvLT5kZXN0X3BvcnQ7CisKKwkJCQkJCWlmIChuX2lmX25h bWUgPiBqICkKKwkJCQkJCQlzdHJsY3B5KGdfcG9vbF9jb25maWcuaGJfbG9jYWxfaWZbbG9jYWxf aWZfaWR4XS5pZl9uYW1lLCBpZl9uYW1lc1tqXSwgV0RfTUFYX0lGX05BTUVfTEVOIC0gMSk7CisJ CQkJCQllbHNlCisJCQkJCQkJZ19wb29sX2NvbmZpZy5oYl9sb2NhbF9pZltsb2NhbF9pZl9pZHhd LmlmX25hbWVbMF0gPSAnXDAnOworCisJCQkJCQlnX3Bvb2xfY29uZmlnLm51bV9oYl9sb2NhbF9p ZiA9IGxvY2FsX2lmX2lkeCArIDE7CisJCQkJCQlsb2NhbF9pZl9pZHgrKzsKKwkJCQkJfQorCisJ CQkJCWlmIChuX2lmX25hbWUgPiBqICkKKwkJCQkJCXBmcmVlKGlmX25hbWVzW2pdKTsKKworCQkJ CQlwZnJlZShhZGRyc1tqXSk7CisKIAkJCQl9CisJCQkJLyogZGVzdGluYXRpb24gcGdwb29sIG5v ZGUgKi8KIAkJCQllbHNlCi0JCQkJCWdfcG9vbF9jb25maWcuaGJfZGVzdF9pZltpZHhdLmlmX25h bWVbMF0gPSAnXDAnOworCQkJCXsKKwkJCQkJc3RybGNweShnX3Bvb2xfY29uZmlnLmhiX2Rlc3Rf aWZbZGVzdF9pZl9pZHhdLmFkZHIsIGFkZHJzW2pdLCBXRF9NQVhfSE9TVF9OQU1FTEVOIC0gMSk7 CisJCQkJCWdfcG9vbF9jb25maWcuaGJfZGVzdF9pZltkZXN0X2lmX2lkeF0uZGVzdF9wb3J0ID0g aGJOb2RlSW5mby0+ZGVzdF9wb3J0OworCQkJCQlpZiAobl9pZl9uYW1lID4gaikKKwkJCQkJewor CQkJCQkJc3RybGNweShnX3Bvb2xfY29uZmlnLmhiX2Rlc3RfaWZbZGVzdF9pZl9pZHhdLmlmX25h bWUsIGlmX25hbWVzW2pdLCBXRF9NQVhfSUZfTkFNRV9MRU4gLSAxKTsKKwkJCQkJCXBmcmVlKGlm X25hbWVzW2pdKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlnX3Bvb2xfY29uZmlnLmhiX2Rl c3RfaWZbZGVzdF9pZl9pZHhdLmlmX25hbWVbMF0gPSAnXDAnOwogCi0JCQkJZ19wb29sX2NvbmZp Zy5udW1faGJfZGVzdF9pZiA9IGlkeCArIDE7Ci0JCQkJaWR4Kys7Ci0JCQkJcGZyZWUoYWRkcnNb al0pOworCQkJCQlnX3Bvb2xfY29uZmlnLm51bV9oYl9kZXN0X2lmID0gZGVzdF9pZl9pZHggKyAx OworCQkJCQlkZXN0X2lmX2lkeCsrOworCQkJCQlwZnJlZShhZGRyc1tqXSk7CisJCQkJfQogCQkJ fQogCiAJCQlpZiAoYWRkcnMpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb29sX2NvbmZpZy5o IGIvc3JjL2luY2x1ZGUvcG9vbF9jb25maWcuaAppbmRleCAzZDEyYzBhOWYuLmJlODI3NTBlNSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9vbF9jb25maWcuaAorKysgYi9zcmMvaW5jbHVkZS9w b29sX2NvbmZpZy5oCkBAIC02NjUsMTYgKzY2NSwxNyBAQCB0eXBlZGVmIHN0cnVjdAogCQkJCQkJ CQkJCSAqIGxpZmVjaGVjayAqLwogCWNoYXIJICAgKndkX2xpZmVjaGVja191c2VyOwkvKiBQb3N0 Z3JlU1FMIHVzZXIgbmFtZSBmb3Igd2F0Y2hkb2cgKi8KIAljaGFyCSAgICp3ZF9saWZlY2hlY2tf cGFzc3dvcmQ7CS8qIHBhc3N3b3JkIGZvciB3YXRjaGRvZyB1c2VyICovCi0JaW50CQkJd2RfaGVh cnRiZWF0X3BvcnQ7CS8qIFBvcnQgbnVtYmVyIGZvciBoZWFydGJlYXQgbGlmZWNoZWNrICovCiAJ aW50CQkJd2RfaGVhcnRiZWF0X2tlZXBhbGl2ZTsgLyogSW50ZXJ2YWwgdGltZSBvZiBzZW5kaW5n IGhlYXJ0YmVhdAogCQkJCQkJCQkJCSAqIHNpZ25hbCAoc2VjKSAqLwogCWludAkJCXdkX2hlYXJ0 YmVhdF9kZWFkdGltZTsJLyogRGVhZHRpbWUgaW50ZXJ2YWwgZm9yIGhlYXJ0YmVhdAogCQkJCQkJ CQkJCSAqIHNpZ25hbCAoc2VjKSAqLwogCVdkSGJJZgkJaGJfaWZzW1dEX01BWF9JRl9OVU1dOwkv KiBoZWFydGJlYXQgaW50ZXJmYWNlcyBvZiBhbGwKIAkJCQkJCQkJCQkgKiB3YXRjaGRvZyBub2Rl cyAqLworCVdkSGJJZgkJaGJfbG9jYWxfaWZbV0RfTUFYX0lGX05VTV07ICAgICAvKiBsb2NhbCBo ZWFydGJlYXQgaW50ZXJmYWNlcyAqLworCWludAkJCW51bV9oYl9sb2NhbF9pZjsgICAgICAgICAg ICAgICAgLyogbnVtYmVyIG9mIGxvY2FsIGludGVyZmFjZSAqLwogCVdkSGJJZgkJaGJfZGVzdF9p ZltXRF9NQVhfSUZfTlVNXTsJLyogaGVhcnRiZWF0IGRlc3RpbmF0aW9uCiAJCQkJCQkJCQkJCSAq IGludGVyZmFjZXMgKi8KLQlpbnQJCQludW1faGJfZGVzdF9pZjsgLyogbnVtYmVyIG9mIGludGVy ZmFjZSBkZXZpY2VzICovCisJaW50CQkJbnVtX2hiX2Rlc3RfaWY7IC8qIG51bWJlciBvZiBkZXN0 aW5hdGlvbiBpbnRlcmZhY2UgKi8KIAljaGFyCSAgKip3ZF9tb25pdG9yaW5nX2ludGVyZmFjZXNf bGlzdDsJLyogbmV0d29yayBpbnRlcmZhY2UgbmFtZSBsaXN0CiAJCQkJCQkJCQkJCQkgKiB0byBi ZSBtb25pdG9yZWQgYnkgd2F0Y2hkb2cgKi8KIAlib29sCQloZWFsdGhfY2hlY2tfdGVzdDsJLyog aWYgb24sIGVuYWJsZSBoZWFsdGggY2hlY2sgdGVzdGluZyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3dh dGNoZG9nL3dhdGNoZG9nLmMgYi9zcmMvd2F0Y2hkb2cvd2F0Y2hkb2cuYwppbmRleCAzOTEzZDY5 MmQuLmZmZDFjZWY1MCAxMDA2NDQKLS0tIGEvc3JjL3dhdGNoZG9nL3dhdGNoZG9nLmMKKysrIGIv c3JjL3dhdGNoZG9nL3dhdGNoZG9nLmMKQEAgLTU5MCw3ICs1OTAsNyBAQCBzdGF0aWMgYm9vbCBn ZXRfYXV0aGhhc2hfZm9yX25vZGUoV2F0Y2hkb2dOb2RlICp3ZE5vZGUsIGNoYXIgKmF1dGhoYXNo KTsKIHN0YXRpYyBib29sIHZlcmlmeV9hdXRoaGFzaF9mb3Jfbm9kZShXYXRjaGRvZ05vZGUgKndk Tm9kZSwgY2hhciAqYXV0aGhhc2gpOwogCiBzdGF0aWMgdm9pZCBwcmludF93YXRjaGRvZ19ub2Rl X2luZm8oV2F0Y2hkb2dOb2RlICp3ZE5vZGUpOwotc3RhdGljIExpc3QgKndkX2NyZWF0ZV9yZWN2 X3NvY2tldChpbnQgcG9ydCk7CitzdGF0aWMgTGlzdCAqd2RfY3JlYXRlX3JlY3Zfc29ja2V0KGNo YXIgKmhvc3RuYW1lLCBpbnQgcG9ydCk7CiBzdGF0aWMgdm9pZCB3ZF9jaGVja19jb25maWcodm9p ZCk7CiBzdGF0aWMgcGlkX3Qgd2F0Y2hkb2dfbWFpbih2b2lkKTsKIHN0YXRpYyBwaWRfdCBmb3Jr X3dhdGNoZG9nX2NoaWxkKHZvaWQpOwpAQCAtODY1LDcgKzg2NSw3IEBAIGNsZWFyX2NvbW1hbmRf bm9kZV9yZXN1bHQoV0RDb21tYW5kTm9kZVJlc3VsdCAqbm9kZVJlc3VsdCkKIH0KIAogc3RhdGlj IExpc3QgKgotd2RfY3JlYXRlX3JlY3Zfc29ja2V0KGludCBwb3J0KQord2RfY3JlYXRlX3JlY3Zf c29ja2V0KGNoYXIgKmhvc3RuYW1lLCBpbnQgcG9ydCkKIHsKIAlpbnQJCQlvbmUgPSAxOwogCWlu dAkJCXNvY2sgPSAtMTsKQEAgLTg4Niw3ICs4ODYsNyBAQCB3ZF9jcmVhdGVfcmVjdl9zb2NrZXQo aW50IHBvcnQpCiAJaGludHMuYWlfcHJvdG9jb2wgPSAwOwogCWhpbnRzLmFpX2ZsYWdzID0gQUlf TlVNRVJJQ1NFUlYgfCBBSV9QQVNTSVZFOwogCi0JaWYgKChnYWlfcmV0ID0gZ2V0YWRkcmluZm8o TlVMTCwgcG9ydHN0ciwgJmhpbnRzLCAmcmVzKSkgIT0gMCkKKwlpZiAoKGdhaV9yZXQgPSBnZXRh ZGRyaW5mbyghaG9zdG5hbWUgPyBOVUxMIDogaG9zdG5hbWUsIHBvcnRzdHIsICZoaW50cywgJnJl cykpICE9IDApCiAJewogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJtc2coImdldGFkZHJpbmZv IGZhaWxlZCB3aXRoIGVycm9yIFwiJXNcIiIsIGdhaV9zdHJlcnJvcihnYWlfcmV0KSkpKTsKQEAg LTEyOTksNyArMTI5OSw3IEBAIHdhdGNoZG9nX21haW4odm9pZCkKIAkvKiBpbml0aWFsaXplIGFs bCB0aGUgbG9jYWwgc3RydWN0dXJlcyBmb3Igd2F0Y2hkb2cgKi8KIAl3ZF9jbHVzdGVyX2luaXRp YWxpemUoKTsKIAkvKiBjcmVhdGUgYSBzZXJ2ZXIgc29ja2V0IGZvciBpbmNvbWluZyB3YXRjaGRv ZyBjb25uZWN0aW9ucyAqLwotCWdfd2RfcmVjdl9zb2NrcyA9IHdkX2NyZWF0ZV9yZWN2X3NvY2tl dChnX2NsdXN0ZXIubG9jYWxOb2RlLT53ZF9wb3J0KTsKKwlnX3dkX3JlY3Zfc29ja3MgPSB3ZF9j cmVhdGVfcmVjdl9zb2NrZXQoZ19jbHVzdGVyLmxvY2FsTm9kZS0+aG9zdG5hbWUsIGdfY2x1c3Rl ci5sb2NhbE5vZGUtPndkX3BvcnQpOwogCiAJLyogb3BlbiB0aGUgY29tbWFuZCBzZXJ2ZXIgKi8K IAlnX2NsdXN0ZXIuY29tbWFuZF9zZXJ2ZXJfc29jayA9IHdkX2NyZWF0ZV9jb21tYW5kX3NlcnZl cl9zb2NrZXQoKTsKZGlmZiAtLWdpdCBhL3NyYy93YXRjaGRvZy93ZF9oZWFydGJlYXQuYyBiL3Ny Yy93YXRjaGRvZy93ZF9oZWFydGJlYXQuYwppbmRleCBhOWU5OWRlYzkuLmFjZWNlY2MxYSAxMDA2 NDQKLS0tIGEvc3JjL3dhdGNoZG9nL3dkX2hlYXJ0YmVhdC5jCisrKyBiL3NyYy93YXRjaGRvZy93 ZF9oZWFydGJlYXQuYwpAQCAtMjYyLDcgKzI2Miw3IEBAIHdkX2NyZWF0ZV9oYl9yZWN2X3NvY2tl dChXZEhiSWYgKmhiX2lmKQogCQkJICAgKndhbGssCiAJCQkgICAqcmVzID0gTlVMTDsKIAotCXBv cnRzdHIgPSBwc3ByaW50ZigiJWQiLCBwb29sX2NvbmZpZy0+d2RfaGVhcnRiZWF0X3BvcnQpOwor CXBvcnRzdHIgPSBwc3ByaW50ZigiJWQiLCBoYl9pZi0+ZGVzdF9wb3J0KTsKIAogCW1lbXNldCgm aGludHMsIDB4MDAsIHNpemVvZihoaW50cykpOwogCWhpbnRzLmFpX2ZhbWlseSA9IEFGX1VOU1BF QzsKQEAgLTI3MCw3ICsyNzAsNyBAQCB3ZF9jcmVhdGVfaGJfcmVjdl9zb2NrZXQoV2RIYklmICpo Yl9pZikKIAloaW50cy5haV9wcm90b2NvbCA9IDA7CiAJaGludHMuYWlfZmxhZ3MgPSBBSV9OVU1F UklDU0VSViB8IEFJX1BBU1NJVkU7CiAKLQlpZiAoKGdhaV9yZXQgPSBnZXRhZGRyaW5mbyhOVUxM LCBwb3J0c3RyLCAmaGludHMsICZyZXMpKSAhPSAwKQorCWlmICgoZ2FpX3JldCA9IGdldGFkZHJp bmZvKCFoYl9pZi0+YWRkciA/IE5VTEwgOiBoYl9pZi0+YWRkciwgcG9ydHN0ciwgJmhpbnRzLCAm cmVzKSkgIT0gMCkKIAl7CiAJCWVyZXBvcnQoV0FSTklORywKIAkJCQkoZXJybXNnKCJnZXRhZGRy aW5mbygpIGZhaWxlZCB3aXRoIGVycm9yIFwiJXNcIiIsIGdhaV9zdHJlcnJvcihnYWlfcmV0KSkp KTsKQEAgLTI4NSw3ICsyODUsNyBAQCB3ZF9jcmVhdGVfaGJfcmVjdl9zb2NrZXQoV2RIYklmICpo Yl9pZikKIAlpZiAobiA9PSAwKQogCXsKIAkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiZmFpbGVk IHRvIGNyZWF0ZSB3YXRjaGRvZyBoZWFydGJlYXQgcmVjZWl2ZSBzb2NrZXQiKSwKLQkJCQkJCWVy cmRldGFpbCgiZ2V0YWRkcmluZm8oKSByZXN1bHQgaXMgZW1wdHk6IG5vIHNvY2tldHMgY2FuIGJl IGNyZWF0ZWQgYmVjYXVzZSBubyBhdmFpbGFibGUgbG9jYWwgYWRkcmVzcyB3aXRoIHBvcnQ6JWQi LCBwb29sX2NvbmZpZy0+d2RfaGVhcnRiZWF0X3BvcnQpKSk7CisJCQkJCQllcnJkZXRhaWwoImdl dGFkZHJpbmZvKCkgcmVzdWx0IGlzIGVtcHR5OiBubyBzb2NrZXRzIGNhbiBiZSBjcmVhdGVkIGJl Y2F1c2Ugbm8gYXZhaWxhYmxlIGxvY2FsIGFkZHJlc3Mgd2l0aCBwb3J0OiVkIiwgaGJfaWYtPmRl c3RfcG9ydCkpKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCWVsc2UKQEAgLTM4MCw3ICszODAsNyBA QCB3ZF9jcmVhdGVfaGJfcmVjdl9zb2NrZXQoV2RIYklmICpoYl9pZikKIAkJfQogCQllcmVwb3J0 KExPRywKIAkJCQkoZXJybXNnKCJjcmVhdGluZyB3YXRjaGRvZyBoZWFydGJlYXQgcmVjZWl2ZSBz b2NrZXQuIiksCi0JCQkJIGVycmRldGFpbCgiY3JlYXRpbmcgc29ja2V0IG9uICVzOiVkIiwgYnVm LCBwb29sX2NvbmZpZy0+d2RfaGVhcnRiZWF0X3BvcnQpKSk7CisJCQkJIGVycmRldGFpbCgiY3Jl YXRpbmcgc29ja2V0IG9uICVzOiVkIiwgYnVmLCBoYl9pZi0+ZGVzdF9wb3J0KSkpOwogCiAJCWJp bmRfaXNfZG9uZSA9IDA7CiAJCWZvciAoYmluZF90cmllcyA9IDA7ICFiaW5kX2lzX2RvbmUgJiYg YmluZF90cmllcyA8IE1BWF9CSU5EX1RSSUVTOyBiaW5kX3RyaWVzKyspCmRpZmYgLS1naXQgYS9z cmMvd2F0Y2hkb2cvd2RfbGlmZWNoZWNrLmMgYi9zcmMvd2F0Y2hkb2cvd2RfbGlmZWNoZWNrLmMK aW5kZXggMDY5NGEyMjI4Li5hMmVlMTE0M2MgMTAwNjQ0Ci0tLSBhL3NyYy93YXRjaGRvZy93ZF9s aWZlY2hlY2suYworKysgYi9zcmMvd2F0Y2hkb2cvd2RfbGlmZWNoZWNrLmMKQEAgLTEzMywxMSAr MTMzLDE0IEBAIGxpZmVjaGVja19jaGlsZF9uYW1lKHBpZF90IHBpZCkKIHsKIAlpbnQJCQlpOwog Ci0JZm9yIChpID0gMDsgaSA8IHBvb2xfY29uZmlnLT5udW1faGJfZGVzdF9pZjsgaSsrKQorCWZv ciAoaSA9IDA7IGkgPCBwb29sX2NvbmZpZy0+bnVtX2hiX2xvY2FsX2lmOyBpKyspCiAJewogCQlp ZiAoZ19oYl9yZWNlaXZlcl9waWQgJiYgcGlkID09IGdfaGJfcmVjZWl2ZXJfcGlkW2ldKQogCQkJ cmV0dXJuICJoZWFydEJlYXQgcmVjZWl2ZXIiOwotCQllbHNlIGlmIChnX2hiX3NlbmRlcl9waWQg JiYgcGlkID09IGdfaGJfc2VuZGVyX3BpZFtpXSkKKwl9CisJZm9yIChpID0gMDsgaSA8IHBvb2xf Y29uZmlnLT5udW1faGJfZGVzdF9pZjsgaSsrKQorCXsKKwkJaWYgKGdfaGJfc2VuZGVyX3BpZCAm JiBwaWQgPT0gZ19oYl9zZW5kZXJfcGlkW2ldKQogCQkJcmV0dXJuICJoZWFydEJlYXQgc2VuZGVy IjsKIAl9CiAJLyogQ2hlY2sgaWYgaXQgd2FzIGEgcGluZyB0byB0cnVzdGVkIHNlcnZlciBwcm9j ZXNzICovCkBAIC0yMTEsMTMgKzIxNCwxMyBAQCB3ZF9yZWFwZXJfbGlmZWNoZWNrKHBpZF90IHBp ZCwgaW50IHN0YXR1cykKIAlpZiAoZ19oYl9yZWNlaXZlcl9waWQgPT0gTlVMTCAmJiBnX2hiX3Nl bmRlcl9waWQgPT0gTlVMTCkKIAkJcmV0dXJuIC0xOwogCi0JZm9yIChpID0gMDsgaSA8IHBvb2xf Y29uZmlnLT5udW1faGJfZGVzdF9pZjsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBwb29sX2NvbmZp Zy0+bnVtX2hiX2xvY2FsX2lmOyBpKyspCiAJewogCQlpZiAoZ19oYl9yZWNlaXZlcl9waWQgJiYg cGlkID09IGdfaGJfcmVjZWl2ZXJfcGlkW2ldKQogCQl7CiAJCQlpZiAocmVzdGFydF9jaGlsZCkK IAkJCXsKLQkJCQlnX2hiX3JlY2VpdmVyX3BpZFtpXSA9IHdkX2hiX3JlY2VpdmVyKDEsICYocG9v bF9jb25maWctPmhiX2Rlc3RfaWZbaV0pKTsKKwkJCQlnX2hiX3JlY2VpdmVyX3BpZFtpXSA9IHdk X2hiX3JlY2VpdmVyKDEsICYocG9vbF9jb25maWctPmhiX2xvY2FsX2lmW2ldKSk7CiAJCQkJZXJl cG9ydChMT0csCiAJCQkJCQkoZXJybXNnKCJmb3JrIGEgbmV3ICVzIHByb2Nlc3Mgd2l0aCBwaWQ6 ICVkIiwgcHJvY19uYW1lLCBnX2hiX3JlY2VpdmVyX3BpZFtpXSkpKTsKIAkJCX0KQEAgLTIyNiw4 ICsyMjksMTEgQEAgd2RfcmVhcGVyX2xpZmVjaGVjayhwaWRfdCBwaWQsIGludCBzdGF0dXMpCiAK IAkJCXJldHVybiBnX2hiX3JlY2VpdmVyX3BpZFtpXTsKIAkJfQorCX0KIAotCQllbHNlIGlmIChn X2hiX3NlbmRlcl9waWQgJiYgcGlkID09IGdfaGJfc2VuZGVyX3BpZFtpXSkKKwlmb3IgKGkgPSAw OyBpIDwgcG9vbF9jb25maWctPm51bV9oYl9kZXN0X2lmOyBpKyspCisJeworCQlpZiAoZ19oYl9z ZW5kZXJfcGlkICYmIHBpZCA9PSBnX2hiX3NlbmRlcl9waWRbaV0pCiAJCXsKIAkJCWlmIChyZXN0 YXJ0X2NoaWxkKQogCQkJewpAQCAtMjUzLDE3ICsyNTksMjEgQEAgbGlmZWNoZWNrX2tpbGxfYWxs X2NoaWxkcmVuKGludCBzaWcpCiAJCSYmIGdfaGJfcmVjZWl2ZXJfcGlkICYmIGdfaGJfc2VuZGVy X3BpZCkKIAl7CiAJCWludAkJCWk7CisJCXBpZF90CQlwaWRfY2hpbGQ7CiAKLQkJZm9yIChpID0g MDsgaSA8IHBvb2xfY29uZmlnLT5udW1faGJfZGVzdF9pZjsgaSsrKQorCQlmb3IgKGkgPSAwOyBp IDwgcG9vbF9jb25maWctPm51bV9oYl9sb2NhbF9pZjsgaSsrKQogCQl7Ci0JCQlwaWRfdAkJcGlk X2NoaWxkID0gZ19oYl9yZWNlaXZlcl9waWRbaV07CisJCQlwaWRfY2hpbGQgPSBnX2hiX3JlY2Vp dmVyX3BpZFtpXTsKIAogCQkJaWYgKHBpZF9jaGlsZCA+IDApCiAJCQl7CiAJCQkJa2lsbChwaWRf Y2hpbGQsIHNpZyk7CiAJCQkJcmV0ID0gdHJ1ZTsKIAkJCX0KKwkJfQogCisJCWZvciAoaSA9IDA7 IGkgPCBwb29sX2NvbmZpZy0+bnVtX2hiX2Rlc3RfaWY7IGkrKykKKwkJewogCQkJcGlkX2NoaWxk ID0gZ19oYl9zZW5kZXJfcGlkW2ldOwogCiAJCQlpZiAocGlkX2NoaWxkID4gMCkKQEAgLTQ3Nywx NCArNDg3LDE3IEBAIHNwYXduX2xpZmVjaGVja19jaGlsZHJlbih2b2lkKQogCXsKIAkJaW50CQkJ aTsKIAotCQlnX2hiX3JlY2VpdmVyX3BpZCA9IHBhbGxvYzAoc2l6ZW9mKHBpZF90KSAqIHBvb2xf Y29uZmlnLT5udW1faGJfZGVzdF9pZik7CisJCWdfaGJfcmVjZWl2ZXJfcGlkID0gcGFsbG9jMChz aXplb2YocGlkX3QpICogcG9vbF9jb25maWctPm51bV9oYl9sb2NhbF9pZik7CiAJCWdfaGJfc2Vu ZGVyX3BpZCA9IHBhbGxvYzAoc2l6ZW9mKHBpZF90KSAqIHBvb2xfY29uZmlnLT5udW1faGJfZGVz dF9pZik7CiAKLQkJZm9yIChpID0gMDsgaSA8IHBvb2xfY29uZmlnLT5udW1faGJfZGVzdF9pZjsg aSsrKQorCQlmb3IgKGkgPSAwOyBpIDwgcG9vbF9jb25maWctPm51bV9oYl9sb2NhbF9pZjsgaSsr KQogCQl7Ci0JCQkvKiBoZWFydGJlYXQgcmVjZWl2ZXIgcHJvY2VzcyAqLwotCQkJZ19oYl9yZWNl aXZlcl9waWRbaV0gPSB3ZF9oYl9yZWNlaXZlcigxLCAmKHBvb2xfY29uZmlnLT5oYl9kZXN0X2lm W2ldKSk7CisJCQkJLyogaGVhcnRiZWF0IHJlY2VpdmVyIHByb2Nlc3MgKi8KKwkJCQlnX2hiX3Jl Y2VpdmVyX3BpZFtpXSA9IHdkX2hiX3JlY2VpdmVyKDEsICYocG9vbF9jb25maWctPmhiX2xvY2Fs X2lmW2ldKSk7CisJCX0KIAorCQlmb3IgKGkgPSAwOyBpIDwgcG9vbF9jb25maWctPm51bV9oYl9k ZXN0X2lmOyBpKyspCisJCXsKIAkJCS8qIGhlYXJ0YmVhdCBzZW5kZXIgcHJvY2VzcyAqLwogCQkJ Z19oYl9zZW5kZXJfcGlkW2ldID0gd2RfaGJfc2VuZGVyKDEsICYocG9vbF9jb25maWctPmhiX2Rl c3RfaWZbaV0pKTsKIAkJfQo= --_002_TYWP286MB2633B3C651030A0A658D2597F236ATYWP286MB2633JPNP_--