From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id uPCUHD+fqWPcjQkAWB0awg (envelope-from ) for ; Mon, 26 Dec 2022 08:18:55 -0500 Received: by simark.ca (Postfix, from userid 112) id 71EA41E222; Mon, 26 Dec 2022 08:18:55 -0500 (EST) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=DcHjALrf; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id B8BCA1E0D3 for ; Mon, 26 Dec 2022 08:18:54 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0DB963858C83 for ; Mon, 26 Dec 2022 13:18:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0DB963858C83 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1672060734; bh=vn5oNS+lXmtl3qiGPO9ZrjqiOCcr3AqQ/tIvrjARU68=; h=To:CC:Subject:Date:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=DcHjALrfJkl+B1sPKHEjqnrSjB16WDclO3p5ChP6Ljks/HxsjX4POq5zaMtO7jzvi ekwCyH2dT9UVp9vb5oYronOgWF3uAu99C28wzk4OzaNRqhEwVEQIlFnV2siHb6jwc+ PdcxaV1bXDDgxCvJKVMdz+Br9iMxG0yv6YXsckpI= Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 601903858D32 for ; Mon, 26 Dec 2022 13:18:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 601903858D32 Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BQCg7Bq018880; Mon, 26 Dec 2022 13:18:29 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2106.outbound.protection.outlook.com [104.47.58.106]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3mqbuggth4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 26 Dec 2022 13:18:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y5e8m+obfVy2JUfjJYs2rWvBxyf0MdUXnuHftxxc+v/iq4Fb64+2q0tykjLY5Oeg+4qetnVUyWfD3RqpIgSPDc+QnHNHblWJTWN9pHS3bPXDH+n4LZJrN5JZJD9pbDMzsB/m78+LEKZBFCGHoLm2Nkto77bbk/3ARfQFETiqubA28jQ/gTi4Gb7yN0v6Yc39JmO3P0uJFgGbYfNXb5n7GcqnTmgnWjgYaqFG8vejksmqowUhylsgWCuG4sdcyhRA0xMs4IQWvIEwnofQCEftyvoXXdAwcFPZI6E5Y6jI5sj5Dg2nAu4ygvT8Op9TknmSW7GZRb6VROoB0env9CB/6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=H8ZCFbPO9Qc7lOpqTDM8Kj8zSBJj63GfnjBbl4iQJzs=; b=Xi6ZkAyhFIYx+LhvUpFJZR/vtOVP7wJinkFdbDAwMsTKsRqFfsHuvD/AHk1EYWy3FErtSstsuq4BSYH+3AkUu4pFZkoQ8vJidXXlLEkjvaXbDKA9KGStPQ76OxCKQyvEjaiZyUe2l0XfvYt3XU4J48d/nCeTu+wr9oVa/ComndcpMiWPHCOJwz3Gg1zl2T46xNgNGI1iqyZr87DMHmPuHf+WJxF/817GJ56y64619NFXOAM/1t90sd02oE7MpINDBdNy4RX26RW1Edgq2bX3MRJnecskzctqJ+wFTOC0KnH7sUea1RBDNsTmtz0y7b0ichMnX4RZ/2Z97pydiD6tJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from CH2PR15MB3544.namprd15.prod.outlook.com (2603:10b6:610:5::26) by DM6PR15MB3625.namprd15.prod.outlook.com (2603:10b6:5:1ff::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.16; Mon, 26 Dec 2022 13:18:27 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::7450:e71:7fd7:88df]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::7450:e71:7fd7:88df%3]) with mapi id 15.20.5944.016; Mon, 26 Dec 2022 13:18:27 +0000 To: Ulrich Weigand , "simark@simark.ca" , "gdb-patches@sourceware.org" CC: Sangamesh Mallayya Subject: Re: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Thread-Topic: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Thread-Index: AQHY6DximDPpCqTL9kGyFvcEZokFBq4jlIiAgBFljYeAAA2HgIAIORaygAMrdQCACMPAdYADi8KAgAAbf+aAABUYgIAADhDtgAjHItiAAgYnAIACq/WKgAVsGwCABC6K8oAAZcYAgAq8WQ+AADoMgIAFnB/fgAUxEICABkBkKw== Date: Mon, 26 Dec 2022 13:18:27 +0000 Message-ID: References: <0866c91331b08f2870fad6e6a13fbcd1a9823b48.camel@de.ibm.com> <5df6ab523034d1997ffda5bb06c3bd87777dcccb.camel@de.ibm.com> <0dba07cfad3da44c0281c53702d73f807bca7d06.camel@de.ibm.com> <5956432ab1e0eedc8f65e01d3793a80ccf3a3a1f.camel@de.ibm.com> <139ff3da5e35905c963869569bebf280733740c2.camel@de.ibm.com> <8302c3570292b864ab21176e58bdee546f6e4544.camel@de.ibm.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|DM6PR15MB3625:EE_ x-ms-office365-filtering-correlation-id: 78c7fc6a-ab0b-4107-74c9-08dae743acb0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 54D012Fp7viNYw/CRzjBso7ZH8dDAJOmE6zmnJXS6A3PvmWCyPx5d8+VUCFFq0Yh79xBl1X/bk11lSmR+nGgTNeq0BTT/whiZ1MiM4MXxRRsHBc/typSYfIMbjaTIt1n1lAeqHX2WfujkzBT1f1Pp697TOQ2k+VbtNpGNhHP7q99ZeUvfMahkfUZHedX8vH9XDWuV8KIQhirOIvtBPYkLhZSgg/l4k5lYJmKO/JAxDzjsjCbqBNfMWjL2upCcq1WQBxDG8LZvuOjiREsWV7cgVPFgwCNYPFrEMmElmphHDwjzgU2WA8LBlm9+q1knYvLnztmiWW2W9Nw9hOmcUPCY3NDQNkfyuzndApK5HtFzcxn4ZUc+zPJ+X1HG5BEi/1zLRjr/uoI1EwC60IHoNMTl5LlgZC4V1y08oXF8wcrKaY/s9i7iN3h2wyTVaC5DpSGQELJLXM4/bevt+nA66EPn/dHYMMq+adJj8nNXS6Y7mb6j2CP4Qusum9HU7N3CyB+heyJ9IemUg5L81/o91ThQWu0TR16fCBWxb8k5aSDOLo9dbDb8yaa7OpVVI+FR/LARQx+j+BTXPHNek82/m7RqkcgQ6MLFAz5HjeRx7GH4hsX19qmx7DJ8hczg0RAsssEJvMhJVxCYRMwbnxpsKjebRDA/Pm4b+m07GrEYDSABcJ9w95zXOJjiAeoG9Jk+kMgHHZW3is9WWLhhW/SOxPLsw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR15MB3544.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(346002)(366004)(136003)(376002)(39860400002)(451199015)(83380400001)(86362001)(38100700002)(99936003)(8936002)(122000001)(2906002)(4001150100001)(52536014)(5660300002)(41300700001)(55016003)(6506007)(7696005)(478600001)(186003)(53546011)(76116006)(9686003)(91956017)(4326008)(8676002)(66946007)(316002)(64756008)(71200400001)(66446008)(110136005)(66556008)(66476007)(38070700005)(19627405001)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?m2Jw5xAKZeQ33HY1F0tGM7C1lczvr6rDthKHaWi9gSbWGZkCy/KyUDvi4r1m?= =?us-ascii?Q?iHtWcFlBa2XOQE4g8V5E4ZoB+gW2WoSFoBWsTwb1WaGsc4HUihcRKXH2XEeX?= =?us-ascii?Q?1Ddag0JLHz1y+QKLwzxaT+MehrC9vJ10eMSeJNcnr8KPeCcuiVwB+DpuFef/?= =?us-ascii?Q?OSIms3FXyd3CvcKSNH1VJU7QxpUuwsCwVPsZpp7Ey+nwSO0gzVdSGpbgUaVu?= =?us-ascii?Q?svX5FWLgFF4FjyZGREGRRAApH2nLxo/4V7Bjos8kxmBA29U8UznXKrn6Qpqx?= =?us-ascii?Q?j6kbCcbRhWPxUoSAmVHKUGLbI5vjqogiiRDLvN1YnaoAqOS+OjY1oIfUUP1P?= =?us-ascii?Q?fZcNNoeFA+3l4gHBgG2GRtZ8WU0oLyaclgHfvw6G/LhdQyXbO6+mFhOJIHaw?= =?us-ascii?Q?c4Yu62LsXrRZ5cgq8BwtgqsTiuqaz1AFljqkA/6jtAX2stJhFXLlwULMdTwo?= =?us-ascii?Q?lcgqJDw+WVThQv6PhQwkkwGjj48WBUzG3qitwmbnNJEA1fG4Jh6/B0fji1a9?= =?us-ascii?Q?vmx9XCr4wW1PoOSzt9NO/TXVR8RkwyucqNIHWjzqvAGS1vrTxncwha+DLAMc?= =?us-ascii?Q?609x+RNLTiX6UiXnor/aWKVrX3mJKIaZ8xbssrj+O9WE7iLRHjMH1bNeqpd5?= =?us-ascii?Q?/GIjO+YpD4Wdn3IFoI/l63W1J87fHpTosbs7gfCxenu06FUhVg9ff/jL7Q+J?= =?us-ascii?Q?XNW89X0SojU+qEbeMVZzbatqDBxV10g6Kip6hIcHeF5kI3mhDk7Fzg1KeEnf?= =?us-ascii?Q?3jXydBQ2wLPH7VwiEqaMov+hS8y3kaGTtDaa7d3y4bjVI3Kz+Wb3YqkdTJgC?= =?us-ascii?Q?xhGYkUQgEPF+6mrMmY5fKBQRVjszwmj5JlHftAqgCnTBO1ZwHOXwXdc4Yjq2?= =?us-ascii?Q?AnMvO4/GCS0YZ+46aah685IquHtpcJ9qRazuw+GR/ifcvNrprU1gcO2eNu8D?= =?us-ascii?Q?tylJzT7W5zz0HHEss/MbeqCVkqvtuKkY+IPTi+RUQYkh2q90LjDIDJ1scVuu?= =?us-ascii?Q?IktbcKfMmP+fQ46gEYmfdlpJHYaJyPa9g75heBWZ8dMjW7xMH6NHlsPCGZNv?= =?us-ascii?Q?791UpL3iqTkuQ10cq+w+dE9iE9kZAd4EmxxWnzrSRxSdvd4ijjRnHmReTvjm?= =?us-ascii?Q?UYorOv8A3eI0xG6gJwpYZm95W0k1f0yquyQqgMsewVPwPs2cCEA0vYlQLrH8?= =?us-ascii?Q?YJ4z88kOwi0+GqoPL8q9huuiIi8353v6r89ubEM9Bge9gTOaWnC/3db87hGo?= =?us-ascii?Q?4biHl+RuGAg2CVd0VjR5DPbPzQf7c96gVUD6pt/5/0Gx5FQJvGatIJrRmRtx?= =?us-ascii?Q?++6YsDnS7aS7x/zSUrE2hOFBKX/w0gk7DuMQnrLPFgy/PP1Z8PV0Gb9ZJ5pu?= =?us-ascii?Q?tkhMilbB3PAIGpbFEQrf3PIn4SDDmQ0asrhFnLkd6XlX7uXlMgTUdN9aBuBa?= =?us-ascii?Q?benHjC46uXbNlzCOTacvInJxBBKQ1GmjLIn192SRe1nw07w4L9rnrj/vGlwe?= =?us-ascii?Q?kbIeDlvaiHyVXacRqnhsioErU7zizZRWg4bJOSG7iYPCLillR3oEKFALtp6d?= =?us-ascii?Q?urN3/2xvUz4LL0GPwlLEqYPHi5/LQKOx256j1AiiFWHLp6xMBtUAG7hBukjo?= =?us-ascii?Q?KtBmbbUk2IXJ8xost2Da8ROhQrgTdNK0kBdPNdFUFwfZ?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_" MIME-Version: 1.0 X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR15MB3544.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78c7fc6a-ab0b-4107-74c9-08dae743acb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Dec 2022 13:18:27.1791 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: SR3Add18bQ3Bn3pYXX4lq6+BGjuSUDsVeiIs2z/FXr+LXopfszZXJieyA6zzao6VHj5JnvYtJpNWi2daRy1x0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR15MB3625 X-Proofpoint-ORIG-GUID: bjuDO7JS8bhMvaQ2pWBLnucSqcVGk61G X-Proofpoint-GUID: bjuDO7JS8bhMvaQ2pWBLnucSqcVGk61G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-26_10,2022-12-23_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 mlxscore=0 lowpriorityscore=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212260114 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Aditya Kamath1 via Gdb-patches Reply-To: Aditya Kamath1 Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" --_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ulrich, >If not, are shared libraries actually detected correctly in the >second inferior (e.g. does "info sharedlibrary" show them correctly >in the second inferior)? If not, maybe solib-aix.c also needs to >be reviewed whether it handles multiple inferiors correctly You were right about this in the previous email. There are 4 shared librari= es all present in their respective archived files, we try to access when a = new inferior is created. They are:- /usr/lib/libpthreads.a(shr_comm.o) /usr/lib/libcrypt.a(shr.o) /usr/lib/libpthread.a(shr_xpg5.o) /usr/lib/libc.a(shr.o) Consider the patch for the analysis as shown below:- --- solib-aix.c_orig 2022-12-23 12:05:39 +0000 +++ solib-aix.c 2022-12-26 06:12:06 +0000 @@ -615,6 +615,7 @@ (gdb_bfd_openr_next_archived_file (archive_bfd.get (), NULL)); while (object_bfd !=3D NULL) { + printf ("object_bfd is %s --- compared with --- member_name is %s in= path %s \n", bfd_get_filename (object_bfd.get ()), member_name.c_str (), p= athname); if (member_name =3D=3D bfd_get_filename (object_bfd.get ())) break; Here I have added a print statement to ensure we are able to find the membe= r in the archive. What's interesting is for the first inferior this works fine for all shared= libraries. For the second one and every inferior thereafter the output is = as shown below in the next paragraph, object_bfd is shr.o --- compared with --- member_name is shr_comm.o in path= /usr/lib/libpthreads.a(shr_comm.o) object_bfd is /usr/lib/libpthreads.a(shr_comm.o) --- compared with --- memb= er_name is shr_comm.o in path /usr/lib/libpthreads.a(shr_comm.o) I was surprised that the bfd_get_filename (object_bfd.get ()) is returning = the pathname instead of the object file descriptor. Everything until here s= eems to correct in the solib_aix_bfd_open () function and this makes it har= d for me to understand what is going on. Even if I allow a pathname match t= o the member_name we end up losing all the information of our threads in th= e first process though we still have the process information. One more thing I want to share is that the inferior is getting correctly al= igned wherever current_inferior () is used to get the inferior's shared lib= rary list or information. So right now, I do not have answers to why the pathname is getting returned= and if I need to correct the same how I can. As a consequence, the Shared = libraries are missing for new inferior. Kindly guide me on how this can be= solved. The rest of the patch I am attempting to solve this remains unchanged. Have a nice day ahead. Thanks and regards, Aditya. ________________________________ From: Ulrich Weigand Sent: 22 December 2022 18:20 To: simark@simark.ca ; Aditya Kamath1 ; gdb-patches@sourceware.org Cc: Sangamesh Mallayya Subject: Re: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Aditya Kamath1 wrote: >So, I guess if we manage to do something similar just like for the >first inferior, we will get to the solution, but I did not understand >how Linux might be reading the symbol again and again for a new >inferior or AIX for that matter for the first inferior. Kindly let >me know how we can do something similar or are we missing something >here that I have not kept in mind in our attempt to solve this for >AIX and GDB community. So the way is works on Linux is that linux-thread-db.c registers both an inferior_created observer and a new_objfile observer. The inferior_created observer gets called immediately after the new inferior is noticed - at this point, only the main executable is detected by GDB, not any of the shared libraries. So this will only successfully detect a libpthread-linked executable if it was *statically* linked. For dynamically linked executables, the new_objfile observer will later get called as well, once for each shared library. As soon as this happens for the libpthread shared library, the fact that the inferior is multithreaded is detected. At first glance, this should actually work the same on AIX - the aix-thread.c file also registers both inferior_created and new_objfile observers. Not sure why this doesn't work ... Do you see the new_objfile observer being called for all the shared libraries in the second inferior? If not, are shared libraries actually detected correctly in the second inferior (e.g. does "info sharedlibrary" show them correctly in the second inferior)? If not, maybe solib-aix.c also needs to be reviewed whether it handles multiple inferiors correctly ... Bye, Ulrich --_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Fix-multi-thread-debug-bug-in-AIX.patch" Content-Description: 0001-Fix-multi-thread-debug-bug-in-AIX.patch Content-Disposition: attachment; filename="0001-Fix-multi-thread-debug-bug-in-AIX.patch"; size=9371; creation-date="Mon, 26 Dec 2022 13:01:29 GMT"; modification-date="Mon, 26 Dec 2022 13:02:17 GMT" Content-Transfer-Encoding: base64 RnJvbSA4YjFmMzRiN2Q2MmM5ZTZhMGYyMTZjMGUzYjM2ZmNlNzUyOTUyZWVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFkaGFyIEthbWF0aCA8QWRpdHlhLkthbWF0 aDFAaWJtLmNvbT4KRGF0ZTogU3VuLCAxOCBEZWMgMjAyMiAyMzoxOTowNCAtMDYwMApTdWJqZWN0 OiBbUEFUQ0hdIEZpeCBtdWx0aSB0aHJlYWQgZGVidWcgYnVnIGluIEFJWAoKLS0tCiBnZGIvYWl4 LXRocmVhZC5jIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZ2RiL2FpeC10aHJlYWQuYyBiL2dkYi9haXgtdGhyZWFkLmMKaW5kZXgg ZTU1NmMxNTM1NzYuLjNhMmFmYWQyNWExIDEwMDY0NAotLS0gYS9nZGIvYWl4LXRocmVhZC5jCisr KyBiL2dkYi9haXgtdGhyZWFkLmMKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDxzeXMvcmVn Lmg+CiAjaW5jbHVkZSA8c2NoZWQuaD4KICNpbmNsdWRlIDxzeXMvcHRoZGVidWcuaD4KKyNpbmNs dWRlIDx2ZWN0b3I+CiAKICNpZiAhSEFWRV9ERUNMX0dFVFRIUkRTCiBleHRlcm4gaW50IGdldHRo cmRzIChwaWRfdCwgc3RydWN0IHRocmRzaW5mbzY0ICosIGludCwgdGlkX3QgKiwgaW50KTsKQEAg LTcwLDcgKzcxLDcgQEAgc3RhdGljIGJvb2wgZGVidWdfYWl4X3RocmVhZDsKIAogLyogUmV0dXJu IHdoZXRoZXIgdG8gdHJlYXQgUElEIGFzIGEgZGVidWdnYWJsZSB0aHJlYWQgaWQuICAqLwogCi0j ZGVmaW5lIFBEX1RJRChwdGlkKQkocGRfYWN0aXZlICYmIHB0aWQudGlkICgpICE9IDApCisjZGVm aW5lIFBEX1RJRChwdGlkKQkoc3RkOjpmaW5kIChwZF9hY3RpdmUuYmVnaW4gKCksIHBkX2FjdGl2 ZS5lbmQgKCksIHB0aWQucGlkICgpKSAhPSBwZF9hY3RpdmUuZW5kICgpICYmIHB0aWQudGlkICgp ICE9IDApCiAKIC8qIFN1Y2Nlc3MgYW5kIGZhaWx1cmUgdmFsdWVzIHJldHVybmVkIGJ5IHB0aGRi IGNhbGxiYWNrcy4gICovCiAKQEAgLTE1MSwxMSArMTUyLDExIEBAIHN0YXRpYyBDT1JFX0FERFIg cGRfYnJrX2FkZHI7CiAKIC8qIFdoZXRoZXIgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gaXMgZGVi dWdnYWJsZSBieSBwdGhkYi4gICovCiAKLXN0YXRpYyBpbnQgcGRfYWJsZSA9IDA7CitzdGF0aWMg c3RkOjp2ZWN0b3I8cGlkX3Q+IHBkX2FibGU7CiAKIC8qIFdoZXRoZXIgYSB0aHJlYWRlZCBhcHBs aWNhdGlvbiBpcyBiZWluZyBkZWJ1Z2dlZC4gICovCiAKLXN0YXRpYyBpbnQgcGRfYWN0aXZlID0g MDsKK3N0YXRpYyBzdGQ6OnZlY3RvcjxwaWRfdD4gcGRfYWN0aXZlOwogCiAvKiBXaGV0aGVyIHRo ZSBjdXJyZW50IGFyY2hpdGVjdHVyZSBpcyA2NC1iaXQuICAKICAgIE9ubHkgdmFsaWQgd2hlbiBw ZF9hYmxlIGlzIHRydWUuICAqLwpAQCAtMzMxLDYgKzMzMiw5IEBAIHBkY19zeW1ib2xfYWRkcnMg KHB0aGRiX3VzZXJfdCB1c2VyX2N1cnJlbnRfcGlkLCBwdGhkYl9zeW1ib2xfdCAqc3ltYm9scywg aW50IGNvCiAgIHN0cnVjdCBib3VuZF9taW5pbWFsX3N5bWJvbCBtczsKICAgaW50IGk7CiAgIGNo YXIgKm5hbWU7CisgIHNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfcHJvZ3JhbV9zcGFjZSByZXN0b3Jl X3BzcGFjZTsgCisgIGluZmVyaW9yICppbmYgPSBmaW5kX2luZmVyaW9yX3BpZCAoY3VycmVudF9p bmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksIHVzZXJfY3VycmVudF9waWQpOworICBzZXRf Y3VycmVudF9wcm9ncmFtX3NwYWNlIChpbmYtPnBzcGFjZSk7CiAKICAgaWYgKGRlYnVnX2FpeF90 aHJlYWQpCiAgICAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywKQEAgLTUwOCwxNCArNTEyLDEzIEBA IHBkY19yZWFkX2RhdGEgKHB0aGRiX3VzZXJfdCB1c2VyX2N1cnJlbnRfcGlkLCB2b2lkICpidWYs CiAgIC8qIFRoaXMgaXMgbmVlZGVkIHRvIGVsaW1pbmF0ZSB0aGUgZGVwZW5kZW5jeSBvZiBjdXJy ZW50IHRocmVhZAogICAgICB3aGljaCBpcyBudWxsIHNvIHRoYXQgdGhyZWFkIHJlYWRzIHRoZSBj b3JyZWN0IHRhcmdldCBtZW1vcnkuICAqLwogICB7Ci0gICAgc2NvcGVkX3Jlc3RvcmVfY3VycmVu dF90aHJlYWQgcmVzdG9yZV9jdXJyZW50X3RocmVhZDsKKyAgICBzY29wZWRfcmVzdG9yZSBzYXZl X2luZmVyaW9yX3B0aWQgPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmaW5mZXJpb3JfcHRpZCk7CiAg ICAgLyogQmVmb3JlIHRoZSBmaXJzdCBpbmZlcmlvciBpcyBhZGRlZCwgd2UgcGFzcyBpbmZlcmlv cl9wdGlkLnBpZCAoKQogICAgICAgIGZyb20gcGRfZW5hYmxlICgpIHdoaWNoIGlzIDAuICBUaGVy ZSBpcyBubyBuZWVkIHRvIHN3aXRjaCB0aHJlYWRzCiAgICAgICAgZHVyaW5nIGZpcnN0IGluaXRp YWxpc2F0aW9uLiAgSW4gdGhlIHJlc3Qgb2YgdGhlIGNhbGxiYWNrcyB0aGUKICAgICAgICBjdXJy ZW50IHRocmVhZCBuZWVkcyB0byBiZSBjb3JyZWN0LiAgKi8KICAgICBpZiAodXNlcl9jdXJyZW50 X3BpZCAhPSAwKQotICAgICAgc3dpdGNoX3RvX3RocmVhZCAoY3VycmVudF9pbmZlcmlvciAoKS0+ cHJvY2Vzc190YXJnZXQgKCksCi0JCQlwdGlkX3QgKHVzZXJfY3VycmVudF9waWQpKTsKKyAgICAg IGluZmVyaW9yX3B0aWQgPSBwdGlkX3QgKHVzZXJfY3VycmVudF9waWQpOwogICAgIHN0YXR1cyA9 IHRhcmdldF9yZWFkX21lbW9yeSAoYWRkciwgKGdkYl9ieXRlICopIGJ1ZiwgbGVuKTsKICAgfQog ICByZXQgPSBzdGF0dXMgPT0gMCA/IFBEQ19TVUNDRVNTIDogUERDX0ZBSUxVUkU7CkBAIC02Mzks MzYgKzY0MiwyMyBAQCBwY21wIChjb25zdCB2b2lkICpwMXYsIGNvbnN0IHZvaWQgKnAydikKICAg cmV0dXJuIHAxLT5wdGhpZCA8IHAyLT5wdGhpZCA/IC0xIDogcDEtPnB0aGlkID4gcDItPnB0aGlk OwogfQogCi0vKiBpdGVyYXRlX292ZXJfdGhyZWFkcygpIGNhbGxiYWNrIGZvciBjb3VudGluZyBH REIgdGhyZWFkcy4KLQotICAgRG8gbm90IGNvdW50IHRoZSBtYWluIHRocmVhZCAod2hvc2UgdGlk IGlzIHplcm8pLiAgVGhpcyBtYXRjaGVzCi0gICB0aGUgbGlzdCBvZiB0aHJlYWRzIHByb3ZpZGVk IGJ5IHRoZSBwdGhyZWFkZGVidWcgbGlicmFyeSwgd2hpY2gKLSAgIGRvZXMgbm90IGluY2x1ZGUg dGhhdCBtYWluIHRocmVhZCBlaXRoZXIsIGFuZCB0aHVzIGFsbG93cyB1cwotICAgdG8gY29tcGFy ZSB0aGUgdHdvIGxpc3RzLiAgKi8KKy8qIGl0ZXJhdGVfb3Zlcl90aHJlYWRzKCkgY2FsbGJhY2sg Zm9yIGNvdW50aW5nIEdEQiB0aHJlYWRzLiAgKi8KIAogc3RhdGljIGludAogZ2l0ZXJfY291bnQg KHN0cnVjdCB0aHJlYWRfaW5mbyAqdGhyZWFkLCB2b2lkICpjb3VudHApCiB7Ci0gIGlmIChQRF9U SUQgKHRocmVhZC0+cHRpZCkpCi0gICAgKCooaW50ICopIGNvdW50cCkrKzsKKyAgKCooaW50ICop IGNvdW50cCkrKzsKICAgcmV0dXJuIDA7CiB9CiAKLS8qIGl0ZXJhdGVfb3Zlcl90aHJlYWRzKCkg Y2FsbGJhY2sgZm9yIGFjY3VtdWxhdGluZyBHREIgdGhyZWFkIHBpZHMuCi0KLSAgIERvIG5vdCBp bmNsdWRlIHRoZSBtYWluIHRocmVhZCAod2hvc2UgdGlkIGlzIHplcm8pLiAgVGhpcyBtYXRjaGVz Ci0gICB0aGUgbGlzdCBvZiB0aHJlYWRzIHByb3ZpZGVkIGJ5IHRoZSBwdGhyZWFkZGVidWcgbGli cmFyeSwgd2hpY2gKLSAgIGRvZXMgbm90IGluY2x1ZGUgdGhhdCBtYWluIHRocmVhZCBlaXRoZXIs IGFuZCB0aHVzIGFsbG93cyB1cwotICAgdG8gY29tcGFyZSB0aGUgdHdvIGxpc3RzLiAgKi8KKy8q IGl0ZXJhdGVfb3Zlcl90aHJlYWRzKCkgY2FsbGJhY2sgZm9yIGFjY3VtdWxhdGluZyBHREIgdGhy ZWFkIHBpZHMuICAqLwogCiBzdGF0aWMgaW50CiBnaXRlcl9hY2N1bSAoc3RydWN0IHRocmVhZF9p bmZvICp0aHJlYWQsIHZvaWQgKmJ1ZnApCiB7Ci0gIGlmIChQRF9USUQgKHRocmVhZC0+cHRpZCkp Ci0gICAgewotICAgICAgKiooc3RydWN0IHRocmVhZF9pbmZvICoqKikgYnVmcCA9IHRocmVhZDsK LSAgICAgICgqKHN0cnVjdCB0aHJlYWRfaW5mbyAqKiopIGJ1ZnApKys7Ci0gICAgfQorICAqKihz dHJ1Y3QgdGhyZWFkX2luZm8gKioqKSBidWZwID0gdGhyZWFkOworICAoKihzdHJ1Y3QgdGhyZWFk X2luZm8gKioqKSBidWZwKSsrOworCiAgIHJldHVybiAwOwogfQogCkBAIC03MTksNyArNzA5LDcg QEAgZ2V0X3NpZ25hbGVkX3RocmVhZCAoaW50IHBpZCkKIAkJICAgIHNpemVvZiAodGhyaW5mKSwg Jmt0aWQsIDEpICE9IDEpCiAJYnJlYWs7CiAKLSAgICAgIGlmICh0aHJpbmYudGlfY3Vyc2lnID09 IFNJR1RSQVApCisgICAgICBpZiAodGhyaW5mLnRpX2N1cnNpZykKIAlyZXR1cm4gdGhyaW5mLnRp X3RpZDsKICAgICB9CiAKQEAgLTc1MCw2ICs3NDAsOSBAQCBzeW5jX3RocmVhZGxpc3RzIChpbnQg cGlkKQogICBwdGhkYl9wdGhyZWFkX3QgcGR0aWQ7CiAgIHB0aHJlYWRfdCBwdGhpZDsKICAgcHRo ZGJfdGlkX3QgdGlkOworICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAorICAg ICAgICAgICAgPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAoKTsKKyAgdGhy ZWFkX2luZm8gICp0cDsKIAogICAvKiBBY2N1bXVsYXRlIGFuIGFycmF5IG9mIGxpYnB0aGRlYnVn IHRocmVhZHMgc29ydGVkIGJ5IHB0aHJlYWQgaWQuICAqLwogCkBAIC04MTAsOCArODAzLDYgQEAg c3luY190aHJlYWRsaXN0cyAoaW50IHBpZCkKIAkgIHByaXYtPnBkdGlkID0gcGJ1ZltwaV0ucGR0 aWQ7CiAJICBwcml2LT50aWQgPSBwYnVmW3BpXS50aWQ7CiAKLQkgIHByb2Nlc3Nfc3RyYXR1bV90 YXJnZXQgKnByb2NfdGFyZ2V0Ci0JICAgID0gY3VycmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190 YXJnZXQgKCk7CiAJICB0aHJlYWQgPSBhZGRfdGhyZWFkX3dpdGhfaW5mbyAocHJvY190YXJnZXQs CiAJCQkJCSBwdGlkX3QgKHBpZCwgMCwgcGJ1ZltwaV0ucHRoaWQpLAogCQkJCQkgcHJpdik7CkBA IC04NDEsOCArODMyLDIyIEBAIHN5bmNfdGhyZWFkbGlzdHMgKGludCBwaWQpCiAJICAgIH0KIAkg IGVsc2UgaWYgKGNtcF9yZXN1bHQgPiAwKQogCSAgICB7Ci0JICAgICAgZGVsZXRlX3RocmVhZCAo Z2J1ZltnaV0pOwotCSAgICAgIGdpKys7CisgICAgICAgICAgICAgIGlmIChncHRpZC5pc19waWQg KCkgJiYgZ3B0aWQucGlkICgpID09IHBwdGlkLnBpZCAoKSkKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICB0aHJlYWRfY2hhbmdlX3B0aWQgKHByb2NfdGFyZ2V0LCBncHRpZCwg cHB0aWQpOworICAgICAgICAgICAgICAgICAgYWl4X3RocmVhZF9pbmZvICpwcml2ID0gbmV3IGFp eF90aHJlYWRfaW5mbzsKKyAgICAgICAgICAgICAgICAgIHByaXYtPnBkdGlkID0gcGJ1ZltwaV0u cGR0aWQ7CisgICAgICAgICAgICAgICAgICBwcml2LT50aWQgPSBwYnVmW3BpXS50aWQ7CisgICAg ICAgICAgICAgICAgICB0cCA9IGZpbmRfdGhyZWFkX3B0aWQgKHByb2NfdGFyZ2V0LCBwcHRpZCk7 CisgICAgICAgICAgICAgICAgICB0cC0+cHJpdi5yZXNldCAocHJpdik7CisgICAgICAgICAgICAg ICAgICBwaSsrOworICAgICAgICAgICAgICAgICAgZ2krKzsKKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBk ZWxldGVfdGhyZWFkIChnYnVmW2dpXSk7CisgICAgICAgICAgICAgICAgICBnaSsrOworICAgICAg ICAgICAgICAgIH0KIAkgICAgfQogCSAgZWxzZQogCSAgICB7CkBAIC04ODgsNyArODkzLDggQEAg cGRfdXBkYXRlIChpbnQgcGlkKQogICBwdGhkYl90aWRfdCB0aWQ7CiAgIHN0cnVjdCB0aHJlYWRf aW5mbyAqdGhyZWFkID0gTlVMTDsKIAotICBpZiAoIXBkX2FjdGl2ZSkKKyAgaWYgKHN0ZDo6Zmlu ZCAocGRfYWN0aXZlLmJlZ2luICgpLCBwZF9hY3RpdmUuZW5kICgpLCBwaWQpCisgICAgPT0gcGRf YWN0aXZlLmVuZCAoKSkKICAgICByZXR1cm4gcHRpZF90IChwaWQpOwogCiAgIHN0YXR1cyA9IHB0 aGRiX3Nlc3Npb25fdXBkYXRlIChwZF9zZXNzaW9uKTsKQEAgLTkyNiw3ICs5MzIsNyBAQCBwZF9h Y3RpdmF0ZSAoaW50IHBpZCkKICAgICB7CiAgICAgICByZXR1cm4gcHRpZF90IChwaWQpOwogICAg IH0KLSAgcGRfYWN0aXZlID0gMTsKKyAgcGRfYWN0aXZlLnB1c2hfYmFjayAocGlkKTsKICAgcmV0 dXJuIHBkX3VwZGF0ZSAocGlkKTsKIH0KIApAQCAtOTM1LDI2ICs5NDEsMjkgQEAgcGRfYWN0aXZh dGUgKGludCBwaWQpCiBzdGF0aWMgdm9pZAogcGRfZGVhY3RpdmF0ZSAodm9pZCkKIHsKLSAgaWYg KCFwZF9hY3RpdmUpCisgIGlmIChzdGQ6OmZpbmQgKHBkX2FjdGl2ZS5iZWdpbiAoKSwgcGRfYWN0 aXZlLmVuZCAoKSwgaW5mZXJpb3JfcHRpZC5waWQgKCkpCisgICAgPT0gcGRfYWN0aXZlLmVuZCAo KSkKICAgICByZXR1cm47CiAgIHB0aGRiX3Nlc3Npb25fZGVzdHJveSAocGRfc2Vzc2lvbik7CiAg IAogICBwaWRfdG9fcHJjICgmaW5mZXJpb3JfcHRpZCk7Ci0gIHBkX2FjdGl2ZSA9IDA7CisgIHBk X2FjdGl2ZS5lcmFzZSAoc3RkOjpmaW5kIChwZF9hY3RpdmUuYmVnaW4gKCksIHBkX2FjdGl2ZS5l bmQgKCksIGluZmVyaW9yX3B0aWQucGlkICgpKSk7CiB9CiAKIC8qIEFuIG9iamVjdCBmaWxlIGhh cyBqdXN0IGJlZW4gbG9hZGVkLiAgQ2hlY2sgd2hldGhlciB0aGUgY3VycmVudAogICAgYXBwbGlj YXRpb24gaXMgcHRocmVhZGVkLCBhbmQgaWYgc28sIHByZXBhcmUgZm9yIHRocmVhZCBkZWJ1Z2dp bmcuICAqLwogCiBzdGF0aWMgdm9pZAotcGRfZW5hYmxlICh2b2lkKQorcGRfZW5hYmxlIChpbmZl cmlvciAqaW5mKQogewogICBpbnQgc3RhdHVzOwogICBjaGFyICpzdHViX25hbWU7CiAgIHN0cnVj dCBib3VuZF9taW5pbWFsX3N5bWJvbCBtczsKKyAgcGlkX3QgcGlkID0gKGluZiA9PSBOVUxMP2lu ZmVyaW9yX3B0aWQucGlkICgpOmluZi0+cGlkKTsKIAogICAvKiBEb24ndCBpbml0aWFsaXplIHR3 aWNlLiAgKi8KLSAgaWYgKHBkX2FibGUpCisgIGlmIChzdGQ6OmZpbmQgKHBkX2FibGUuYmVnaW4g KCksIHBkX2FibGUuZW5kICgpLCBwaWQpIAorCSE9IHBkX2FibGUuZW5kICgpKQogICAgIHJldHVy bjsKIAogICAvKiBDaGVjayBhcHBsaWNhdGlvbiB3b3JkIHNpemUuICAqLwpAQCAtOTYyLDcgKzk3 MSw3IEBAIHBkX2VuYWJsZSAodm9pZCkKIAogICAvKiBDaGVjayB3aGV0aGVyIHRoZSBhcHBsaWNh dGlvbiBpcyBwdGhyZWFkZWQuICAqLwogICBzdHViX25hbWUgPSBOVUxMOwotICBzdGF0dXMgPSBw dGhkYl9zZXNzaW9uX3B0aHJlYWRlZCAoaW5mZXJpb3JfcHRpZC5waWQgKCksIFBUSERCX0ZMQUdf UkVHUywKKyAgc3RhdHVzID0gcHRoZGJfc2Vzc2lvbl9wdGhyZWFkZWQgKHBpZCwgUFRIREJfRkxB R19SRUdTLAogCQkJCSAgICAmcGRfY2FsbGJhY2tzLCAmc3R1Yl9uYW1lKTsKICAgaWYgKChzdGF0 dXMgIT0gUFRIREJfU1VDQ0VTUwogICAgICAgICYmIHN0YXR1cyAhPSBQVEhEQl9OT1RfUFRIUkVB REVEKSB8fCAhc3R1Yl9uYW1lKQpAQCAtOTc4LDEyICs5ODcsMTIgQEAgcGRfZW5hYmxlICh2b2lk KQogCiAgIC8qIFByZXBhcmUgZm9yIHRocmVhZCBkZWJ1Z2dpbmcuICAqLwogICBjdXJyZW50X2lu ZmVyaW9yICgpLT5wdXNoX3RhcmdldCAoJmFpeF90aHJlYWRfb3BzKTsKLSAgcGRfYWJsZSA9IDE7 CisgIHBkX2FibGUucHVzaF9iYWNrIChwaWQpOwogCiAgIC8qIElmIHdlJ3JlIGRlYnVnZ2luZyBh IGNvcmUgZmlsZSBvciBhbiBhdHRhY2hlZCBpbmZlcmlvciwgdGhlCiAgICAgIHB0aHJlYWQgbGli cmFyeSBtYXkgYWxyZWFkeSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQsIHNvIHRyeSB0bwogICAgICBh Y3RpdmF0ZSB0aHJlYWQgZGVidWdnaW5nLiAgKi8KLSAgcGRfYWN0aXZhdGUgKGluZmVyaW9yX3B0 aWQucGlkICgpKTsKKyAgcGRfYWN0aXZhdGUgKHBpZCk7CiB9CiAKIC8qIFVuZG8gdGhlIGVmZmVj dHMgb2YgcGRfZW5hYmxlKCkuICAqLwpAQCAtOTkxLDExICsxMDAwLDE0IEBAIHBkX2VuYWJsZSAo dm9pZCkKIHN0YXRpYyB2b2lkCiBwZF9kaXNhYmxlICh2b2lkKQogewotICBpZiAoIXBkX2FibGUp CisgIGlmIChzdGQ6OmZpbmQgKHBkX2FibGUuYmVnaW4gKCksIHBkX2FibGUuZW5kICgpLCAKKwlp bmZlcmlvcl9wdGlkLnBpZCAoKSkgPT0gcGRfYWJsZS5lbmQgKCkpCiAgICAgcmV0dXJuOwotICBp ZiAocGRfYWN0aXZlKQorICBpZiAoc3RkOjpmaW5kIChwZF9hY3RpdmUuYmVnaW4gKCksIHBkX2Fj dGl2ZS5lbmQgKCksCisgICAgICAgIGluZmVyaW9yX3B0aWQucGlkICgpKSAhPSBwZF9hY3RpdmUu ZW5kICgpKQogICAgIHBkX2RlYWN0aXZhdGUgKCk7Ci0gIHBkX2FibGUgPSAwOworICBwZF9hYmxl LmVyYXNlIChzdGQ6OmZpbmQgKHBkX2FibGUuYmVnaW4gKCksIHBkX2FibGUuZW5kICgpLCAKKwlp bmZlcmlvcl9wdGlkLnBpZCAoKSkpOwogICBjdXJyZW50X2luZmVyaW9yICgpLT51bnB1c2hfdGFy Z2V0ICgmYWl4X3RocmVhZF9vcHMpOwogfQogCkBAIC0xMDEwLDcgKzEwMjIsNyBAQCBzdGF0aWMg dm9pZAogbmV3X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogewogICBpZiAob2Jq ZmlsZSkKLSAgICBwZF9lbmFibGUgKCk7CisgICAgcGRfZW5hYmxlIChOVUxMKTsKICAgZWxzZQog ICAgIHBkX2Rpc2FibGUgKCk7CiB9CkBAIC0xMDIwLDcgKzEwMzIsNyBAQCBuZXdfb2JqZmlsZSAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiBzdGF0aWMgdm9pZAogYWl4X3RocmVhZF9pbmZlcmlv cl9jcmVhdGVkIChpbmZlcmlvciAqaW5mKQogewotICBwZF9lbmFibGUgKCk7CisgIHBkX2VuYWJs ZSAoaW5mKTsKIH0KIAogLyogRGV0YWNoIGZyb20gdGhlIHByb2Nlc3MgYXR0YWNoZWQgdG8gYnkg YWl4X3RocmVhZF9hdHRhY2goKS4gICovCkBAIC0xMDk2LDcgKzExMDgsOCBAQCBhaXhfdGhyZWFk X3RhcmdldDo6d2FpdCAocHRpZF90IHB0aWQsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqc3Rh dHVzLAogICBnZGJfYXNzZXJ0IChwdGlkLmlzX3BpZCAoKSk7CiAKICAgLyogQ2hlY2sgd2hldGhl ciBsaWJwdGhkZWJ1ZyBtaWdodCBiZSByZWFkeSB0byBiZSBpbml0aWFsaXplZC4gICovCi0gIGlm ICghcGRfYWN0aXZlICYmIHN0YXR1cy0+a2luZCAoKSA9PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBF RAorICBpZiAoc3RkOjpmaW5kIChwZF9hY3RpdmUuYmVnaW4gKCksIHBkX2FjdGl2ZS5lbmQgKCks IHB0aWQucGlkICgpKSA9PSBwZF9hY3RpdmUuZW5kICgpCisgICAgICAmJiBzdGF0dXMtPmtpbmQg KCkgPT0gVEFSR0VUX1dBSVRLSU5EX1NUT1BQRUQKICAgICAgICYmIHN0YXR1cy0+c2lnICgpID09 IEdEQl9TSUdOQUxfVFJBUCkKICAgICB7CiAgICAgICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpw cm9jX3RhcmdldAotLSAKMi4zMS4xCgo= --_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_--