From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id DA3383858C00 for ; Fri, 27 Jan 2023 14:40:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DA3383858C00 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30REMe5n030691; Fri, 27 Jan 2023 14:40:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=pp1; bh=Qr+nzbwQ/8jJpECqeCTmOjSy6Cs4Nqti6dhqlwjPymQ=; b=HPHfVh5vjhmpxgfH78j14hvBtqShxDBNPPrDe5Q+dCWAXLWawyYOn+dz5zupf1jD1fyo ckydv29Hy/pma8/bpCmnIM/IgC9ozRU3jMofWWotAmn+Agv4p2Dr9hhkWiWMzG0in9Ir f/eXtiuA7+6eOYJFwvebp3XrWELSOVdy2NQVFxAchXaHqL9Jk9v3RJzzuc/wXPsh/ec4 nOevwk00cYp4sfOSRsYIv76OScV92eOOTroZqRWh/JCIauQZlyVta8v3vs30JAs+/uE+ CsyqzJEjgw+C9AROfqm4KX+UmeVG9x5BFMcKjg31KJbGyLdLRSmFosRDaKDdTWsVrl8y lg== Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2047.outbound.protection.outlook.com [104.47.66.47]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3ncgau8g0x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 14:40:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GNqdlf8XSpGMVw5z2XxH0MiYQZqJ31IkMG/FXK8xuryaafol3r9p2aK/09jBgFKISA0WibryFYDXUfK+28ePMmIR8vMRyV9sj4I/6FzkztnHm1/tmdgn+MK1u7hZjIuaCndFUHgmtd0TWRrMgXlTsc0hOvF4YhP0nOFMOMN1J0+ewBBhT464YXxslCHx5G/FfWKgj9bUFVBxHosRS7vbdA2E8UyF9hU2/ZM1boGdB8Lw5jxj09KJpV5ETfgTlDWzSeIkzsvy+SxD8fI1RLglW1NkuJv4CupRXuUFzMekbowJS2aZMfi5JJiCk4Lsg86KxaS443cP08rBeYiT7D4RBw== 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=Qr+nzbwQ/8jJpECqeCTmOjSy6Cs4Nqti6dhqlwjPymQ=; b=FOfHzyIyEHGtjl9yGqxrDopFyOtr3sX25SV63TYGlO+Ff39vdDk+hyIjeMAz5Abl70nvB0UqrYWloL0I1XC1J525Shdb1ot2sz6hA37fj87BcZE1Ce20soaczOfN2miAZuUjR8HC9JQ9OzT1A7uv/b9dZ0yFGRYNAP6smX49jMEBIXHPDCHVRl/ogxvKdCqWJNwD2fc7ObKGmMcwe7V1GdbQlXhg8XK/pFbqNTnmZiqwXhKFlnvP0F5dpPdbSUWxSVGCY/Pn7wcv5euty+FUvcP8l+ba0RJZ7EKqkwkoK7h+ZwqejNY7CCa46PcbJcPkS/AQamFBW/M1wOC0+cR84Q== 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 CH3PR15MB6045.namprd15.prod.outlook.com (2603:10b6:610:165::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.22; Fri, 27 Jan 2023 14:40:30 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::1e54:c91e:9426:8880]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::1e54:c91e:9426:8880%5]) with mapi id 15.20.6002.033; Fri, 27 Jan 2023 14:40:30 +0000 From: Aditya Kamath1 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/fgAUxEICABkBkK4AWHiQAgAFvY+iAAawUgIADF3ySgAshzACACvn7Hg== Date: Fri, 27 Jan 2023 14:40:30 +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> <5324a4027099ed44a32b3de8db71df875e034deb.camel@de.ibm.com> <37f1252e8d8bc1bad3f7a4ac9b38749ee6791e17.camel@de.ibm.com> In-Reply-To: <37f1252e8d8bc1bad3f7a4ac9b38749ee6791e17.camel@de.ibm.com> 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_|CH3PR15MB6045:EE_ x-ms-office365-filtering-correlation-id: 10ef58f3-87ca-4c1f-357e-08db00747026 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5H7lFBCUO73lwFoFJXv8YUYSLoP1AaKDtxebvuZ5s7y08qH43KFB2sF1wfDHsj2Nqa23gQ/odsk1dTqqXIvfMNJ5u8ScB2xMnMr6PFfSJIgD/W3NH9FDdOaL3+0ng1zwGYSBTfAiFv4eNWzwHMiYmYxaUhWBUWI4rmMBQ3PaRG9ksmHCbQnnpRehF/b4J/o9NN+E4Q10EH0XV8n5xx5O6Bz8fXHUivuuB9i8tzHcMbx8OXyO1xdpVXvs6Wu23JaEI9o/2pY9/HFePa/iSAx6YrDx0qwUVAKSlFwpmXye9TS+zUYRiZkYS7HEUWdj90jqzBSWxAokoSsJme4kBsdTiMUrmhbgBEkdRMOPvflFlHkJlnN2HXpD5NhMgrHVcoX3c+BgslnSS0/nvKRGte/O3tX//uEFyYlgM31Pg2RWrOtpQyDhylJ6mBa7aUarXgFT62PUA1gotG/1Gh9O9l81uXP6q4vQ6iqGQJgo5ngvlSG1fW+mXfxTXNplSRfFuqHWh97vYgABN51YjdFKk88FouzJXHihrxdfKcLbfv+4PUfTFdV+E4/fU5kMEslQjgXbFgYcS7YJaymFiIhAut0EZ2THc+0SJ48mQWxVKOKDrnQvJ1vYttBOLeT4V7836req5MnraP7w8Uxb3IGDMjIwPhtRmT2aNiv7aU/RDxn4lHCuWnBRMNeBe1wLH+l8cGmIFPD/goyVXT/97h4YHPXoNQ== 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:(13230025)(376002)(136003)(39860400002)(366004)(396003)(346002)(451199018)(19627405001)(2906002)(5660300002)(55016003)(38070700005)(52536014)(83380400001)(86362001)(122000001)(6506007)(53546011)(66446008)(71200400001)(66556008)(66946007)(478600001)(64756008)(66476007)(76116006)(7696005)(99936003)(33656002)(38100700002)(186003)(9686003)(316002)(8936002)(110136005)(41300700001)(4326008)(91956017)(8676002)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?UUd19aU5VpL0HNQkvxUObtrYen/ity4pBYmCIPNA2vYwf+rUYhR1U7uXQ3f+?= =?us-ascii?Q?D2fydoY/2hLkZiMw4xz6G1K7I4oL0i0RQaOnHrNvvL64JTQ3pOIxPW3l4T7d?= =?us-ascii?Q?yqDEd1FJePlCqiVERgSuA8KU/+W8jaLzT9Gk/UNha9rTnQH6hJfcoEdVa8Dc?= =?us-ascii?Q?ShqPqJcWxx5u+1ddMXpTfVv5Fgi8pFhAFHUbi220CKovBG8kQHmzVqhiglWB?= =?us-ascii?Q?0E/KnjpFvB3J1pQQB/FGlTvonJiFrZdBPWMWlC16dIobYbk5AMaEjGJsDzLa?= =?us-ascii?Q?LjukNOA8rGDC6WnkNZzf04Xegz4KS87hq6qC2F2w9RKBU39j77sTX/vzTXTX?= =?us-ascii?Q?WtUJdp9443sHKYhoVfTaNj4WB/ZKMUSJSFkzbczBzjkmfopALWD+hG8VxjCI?= =?us-ascii?Q?PUhFIabwnG8uNtU8mRW2Aq58OakfZuqTuzMYMrJTpfgVRXnuL91BiCpNjkSu?= =?us-ascii?Q?Xhl2SlBhVPPVeC+cqq7FAIk19dGopB4xIVbpXaY8X+9KoPB40WezMwkgx7cd?= =?us-ascii?Q?YczaU36ztuksKydm4nTmvwwG/3myjA3ADlTky4gL8LzZFaKj5V9/I98ugLK+?= =?us-ascii?Q?uiSS3MLGypHOWk1+7GQm9jtKxiG/PkI+Tzwoz0SRFQaZMzf3HWuriEenHHb6?= =?us-ascii?Q?+0lLtiFop9Jw7P2wMqSE8ryV6EW/1MCRiERJGdpSn9ctTzMW36vcsI5f7EFW?= =?us-ascii?Q?iZfAer1PY4SkPaVYX0KcagDv5rFW0obD+9YIb6oGZvPK1ZOPg5y3FkN6Jdw5?= =?us-ascii?Q?CGQLzT0yKYNWSWlXGgLyr+uvR1PLAV40zjyuJnqK9lkNxSR7wvW76hHReMe5?= =?us-ascii?Q?ZrMlIXvFlYvjBI1p3Pk083sYzxkF5eXpSVxqKWmnYkkkoJ0XLKnbdHx2D2hD?= =?us-ascii?Q?hTV0Y3vGN1i8BsofW1cdZngBl6RZVoLK13DvTJ/gtF8KLYkKKGb4Fiyyy0Uk?= =?us-ascii?Q?REU0meX/WP47zXeOtIthzhS+tFFnQqvbBPbPNomkJHNcM1ianf0+3BrAiJav?= =?us-ascii?Q?IZ4hze2KMpFHOIT67+u41IfHZ+TYLHLCH4fpDzvGowds/kH9/JnOS04KxXjY?= =?us-ascii?Q?Lr+n8x72kLfvYCzh8rQhb0Qe4kbs8+gVwvU3MTntN9llJCN3hnzkDREe7IXI?= =?us-ascii?Q?fZJ4d3AEdjGn7ATL1sXysLBN8peVjm64w+lfakgBJbBlgGxnLcuOpJdeOYmT?= =?us-ascii?Q?WYfmZn9J6COvAS2yBUk1NGE2sps1mAM13S6BZzcUS/noj94ZoHKRLHMZ7SLN?= =?us-ascii?Q?lfanbjmybVlwHw0xr+y6/vuykrtzVzqg+wf28+8cYtSxZbOHsHo+ZXLWBbYo?= =?us-ascii?Q?SrktE7H/Scx5YTQ4CiU3EbIQjX6hZ/EzJUlsIKWZ8NR0Sll252WR2PBXKKCY?= =?us-ascii?Q?L41K7eWdSEizDtdDzBbm/x4juX3lTzJhFP4Sdz5jR9ERMWMo1HL+fu4dRPxf?= =?us-ascii?Q?kFboNxKrbs2oSt4bNxim9jFnzUU/TwEgDI98tPaGfdFAlw9iW0gpF6kAzeEC?= =?us-ascii?Q?/sxXdlBOCo2TZLFl1hciFD4A94T+aSpeACRgiePMOscGlM4+0hvIvZh3h1mK?= =?us-ascii?Q?HDN8hSgNCCx8OlzwFyaMXf8CBWgtXpfwXU1l3oOyslQjDtblJrV23KqwWJjG?= =?us-ascii?Q?cQTmp5D0xDXPM7bIY8yHY0XaSCFjzVv2pzlrXUSZe4ol?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_" 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: 10ef58f3-87ca-4c1f-357e-08db00747026 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jan 2023 14:40:30.0503 (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: tqP37af9jV+pHODabcECYK0wzyIN6rQs/2kjAsJUxr+pvagGgjDsvFSx2yF/HpK65xLUvQvFdZFq5PFCoV4Xjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR15MB6045 X-Proofpoint-ORIG-GUID: C9RbETXSdtiT03mCj7704OM0hY95Umxf X-Proofpoint-GUID: C9RbETXSdtiT03mCj7704OM0hY95Umxf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-27_08,2023-01-27_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 clxscore=1011 mlxscore=0 phishscore=0 malwarescore=0 priorityscore=1501 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301270133 X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,MANY_SPAN_IN_TEXT,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_004_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_ Content-Type: multipart/alternative; boundary="_000_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_" --_000_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ulrich and community, Thank you for the feedback for the fix of this bug. Please find attached th= e patch. {See: 0001-Fix-multi-thread-debug-bug-in-AIX.patch} So, I have fixed the bug and it works alright. Please find the test program= , output with patch and without patch pasted below this email. >+ if (s.find (member_name) !=3D std::string::npos) >+ { >+ return object_bfd; >+ } >This matches the member name *anywhere* in the full >filename, >which could lead to spurious matches, I think. The test >should be more specific. This I have taken care in the patch. There are a few changes for which I want to explain below. We now have all variables {pd_able, pd_active and pd_session} now in a map = of process ID and structure. This will help us make AIX GDB code easy to ma= nage them per process in the aix-thread.c file. Secondly, in the function pid_to_str () there is a beneath () call, which i= s why I had to put this function in rs6000-aix-nat.c file. Third thing is previously if there was no object file, we would use pd_disa= ble () to disable thread debugging. This is incorrect now that we support m= ultiple inferiors. Since we rely on inferior_ptid with new object file func= tion till a point, we must disable only when we mourn the inferior or a pro= cess dies. Otherwise, there is every chance we will disable thread debuggin= g for a wrong inferior that can be currently inferior_ptid. It also creates= a mess disabling the pd_active for the wrong inferior in cases where a new= inferior is born who object file is being loaded. This change can be seen = in the patch. I have written comments for the remaining changes in the patch. Kindly give me feedback if we can do anything better or is incorrect. If no= t, kindly push this patch so that AIX folks can have a better debugging exp= erience. Have a nice day ahead. Thanks and regards, Aditya. ------------------------------------------- Code:- #include #include #include #include #include pthread_barrier_t barrier; #define NUM_THREADS 2 void * thread_function (void *arg) { /* This ensures that the breakpoint is only hit after both threads are created, so the test can always switch to the non-event thread when the breakpoint triggers. */ pthread_barrier_wait (&barrier); pid_t child; child =3D fork (); if (child > 0) printf ("I am parent \n"); else { child =3D fork (); if (child > 0) printf ("I am child \n"); else printf ("I am grandchild \n"); } while (1); /* break here */ } int main (void) { int i; pthread_t thread[NUM_THREADS]; alarm (300); pthread_barrier_init (&barrier, NULL, NUM_THREADS); for (i =3D 0; i < NUM_THREADS; i++) { int res; res =3D pthread_create (&thread[i], NULL, thread_function, NULL); assert (res =3D=3D 0); } while (1) { sleep (15); } return 0; } --------------------------------------------------- Output with patch applied:- Reading symbols from /home/aditya/gdb_tests/ultimate-multi-thread-fork... (gdb) set detach-on-fork off (gdb) r Starting program: /home/aditya/gdb_tests/ultimate-multi-thread-fork [New Thread 258] [New Thread 515] [New inferior 2 (Process 17498448)] I am parent [New inferior 3 (Process 11731454)] I am parent ^C Thread 1.1 received signal SIGINT, Interrupt. [Switching to Thread 1] 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) (gdb) inferior 2 [Switching to inferior 2 [Process 17498448] (/home/aditya/gdb_tests/ultimat= e-multi-thread-fork)] [Switching to thread 2.1 (Process 17498448)] #0 0xd0594fc8 in _sigsetmask () from /usr/lib/libpthread.a(shr_xpg5.o) (gdb) info threads Id Target Id Frame 1.1 Thread 1 (tid 25231849, running) 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) 1.2 Thread 258 (tid 33227061, running) thread_function (arg=3D0x0) at /home/aditya/gdb_tests/ultimate-multi-thread-fork.c:32 1.3 Thread 515 (tid 23069149, running) thread_function (arg=3Dwarning: (= Internal error: pc 0x0 in read in psymtab, but not in symtab.) 0x0) at /home/aditya/gdb_tests/ultimate-multi-thread-fork.c:32 * 2.1 Process 17498448 0xd0594fc8 in _sigsetmask () from /usr/lib/libpthread.a(shr_xpg5.o) 3.1 Process 11731454 0xd0594fc8 in _sigsetmask () from /usr/lib/libpthread.a(shr_xpg5.o) (gdb) info sharedlibrary =46rom To Syms Read Shared Object Library 0xd05bc124 0xd05bf194 Yes (*) /usr/lib/libpthreads.a(shr_comm.o) 0xd05bb240 0xd05bb9a1 Yes (*) /usr/lib/libcrypt.a(shr.o) 0xd0576180 0xd05ba731 Yes (*) /usr/lib/libpthread.a(shr_xpg5.o) 0xd0100e00 0xd0575123 Yes (*) /usr/lib/libc.a(shr.o) (*): Shared library is missing debugging information. -------------------------------------------------------- Output without patch:- Reading symbols from /home/aditya/gdb_tests/ultimate-multi-thread-fork... (gdb) set detach-on-fork off (gdb) r Starting program: /home/aditya/gdb_tests/ultimate-multi-thread-fork [New Thread 1] [New Thread 258] [New Thread 515] [New inferior 2 (process 11731200)] I am parent [New inferior 3 (process 16843200)] I am parent ^C Thread 1.1 received signal SIGINT, Interrupt. 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) (gdb) inferior 2 [Switching to inferior 2 [process 11731200] (/home/aditya/gdb_tests/ultimat= e-multi-thread-fork)] [Switching to thread 2.1 (process 11731200)] #0 0xd0594fc8 in ?? () (gdb) info threads Id Target Id Frame 1.1 process 15270316 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) 1.2 process 15270316 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) 1.3 process 15270316 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) 1.4 process 15270316 0xd0595fb0 in _p_nsleep () from /usr/lib/libpthread.a(shr_xpg5.o) * 2.1 process 11731200 0xd0594fc8 in ?? () 3.1 process 16843200 0xd0594fc8 in ?? () (gdb) info sharedlibrary warning: "/usr/lib/libpthreads.a": member "shr_comm.o" missing. warning: "/usr/lib/libcrypt.a": member "shr.o" missing. warning: "/usr/lib/libpthread.a": member "shr_xpg5.o" missing. warning: "/usr/lib/libc.a": member "shr.o" missing. warning: Could not load shared library symbols for 4 libraries, e.g. /usr/l= ib/libpthreads.a(shr_comm.o). Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"? =46rom To Syms Read Shared Object Library No /usr/lib/libpthreads.a(shr_comm.o) No /usr/lib/libcrypt.a(shr.o) No /usr/lib/libpthread.a(shr_xpg5.o) No /usr/lib/libc.a(shr.o) (gdb) ________________________________ From: Ulrich Weigand Sent: 20 January 2023 20:14 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: >Inorder to resolve the same I request for one information. How can we iter= ate_over_threads >of a particular process. What is that function. Is there any built-in avai= lable?? >Kindly let me know and that should solve this issue. Instead of iterate_over_threads you could use the all_threads() iterator di= rectly; this can be specialized to only return threads of one inferior like this: for (thread_info *tp : all_threads (proc_target, ptid_t (pid))) { ... } >Also kindly give me feedback on this patch if I need to change anything. I think this change in solib-aix.c is not quite correct: + std::string s =3D bfd_get_filename (object_bfd.get ()); + if (s.find (member_name) !=3D std::string::npos) + { + return object_bfd; + } This matches the member name *anywhere* in the full filename, which could lead to spurious matches, I think. The test should be more specific. Bye, Ulrich --_000_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_-- --_004_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_ 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=17098; creation-date="Fri, 27 Jan 2023 14:34:43 GMT"; modification-date="Fri, 27 Jan 2023 14:34:56 GMT" Content-Transfer-Encoding: base64 RnJvbSAxNzgzYmUxYzkxNjE0NzlhMTU4YTRlNTJkZDA2NjNmNDVlNmI5MmU5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogRnJp LCAyNyBKYW4gMjAyMyAwODoxOTo1NiAtMDYwMApTdWJqZWN0OiBbUEFUQ0hd IEZpeCBtdWx0aS10aHJlYWQgZGVidWcgYnVnIGluIEFJWAoKLS0tCiBnZGIv YWl4LXRocmVhZC5jICAgICB8IDE4OSArKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tCiBnZGIvcnM2MDAwLWFpeC1uYXQuYyB8 ICAxMCArKysKIGdkYi9zb2xpYi1haXguYyAgICAgIHwgIDE1ICsrKysKIDMg ZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDczIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2dkYi9haXgtdGhyZWFkLmMgYi9nZGIvYWl4 LXRocmVhZC5jCmluZGV4IGU1NTZjMTUzNTc2Li5jNjIzMWU5MmY5MSAxMDA2 NDQKLS0tIGEvZ2RiL2FpeC10aHJlYWQuYworKysgYi9nZGIvYWl4LXRocmVh ZC5jCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8c3lzL3JlZy5oPgog I2luY2x1ZGUgPHNjaGVkLmg+CiAjaW5jbHVkZSA8c3lzL3B0aGRlYnVnLmg+ CisjaW5jbHVkZSA8bWFwPgogCiAjaWYgIUhBVkVfREVDTF9HRVRUSFJEUwog ZXh0ZXJuIGludCBnZXR0aHJkcyAocGlkX3QsIHN0cnVjdCB0aHJkc2luZm82 NCAqLCBpbnQsIHRpZF90ICosIGludCk7CkBAIC03MCw3ICs3MSw3IEBAIHN0 YXRpYyBib29sIGRlYnVnX2FpeF90aHJlYWQ7CiAKIC8qIFJldHVybiB3aGV0 aGVyIHRvIHRyZWF0IFBJRCBhcyBhIGRlYnVnZ2FibGUgdGhyZWFkIGlkLiAg Ki8KIAotI2RlZmluZSBQRF9USUQocHRpZCkJKHBkX2FjdGl2ZSAmJiBwdGlk LnRpZCAoKSAhPSAwKQorI2RlZmluZSBQRF9USUQocHRpZCkJKHRtYXBbcHRp ZC5waWQgKCldLnBkX2FjdGl2ZSAmJiBwdGlkLnRpZCAoKSAhPSAwKQogCiAv KiBTdWNjZXNzIGFuZCBmYWlsdXJlIHZhbHVlcyByZXR1cm5lZCBieSBwdGhk YiBjYWxsYmFja3MuICAqLwogCkBAIC0xNDksMTQgKzE1MCw2IEBAIHN0YXRp YyBhaXhfdGhyZWFkX3RhcmdldCBhaXhfdGhyZWFkX29wczsKIAogc3RhdGlj IENPUkVfQUREUiBwZF9icmtfYWRkcjsKIAotLyogV2hldGhlciB0aGUgY3Vy cmVudCBhcHBsaWNhdGlvbiBpcyBkZWJ1Z2dhYmxlIGJ5IHB0aGRiLiAgKi8K LQotc3RhdGljIGludCBwZF9hYmxlID0gMDsKLQotLyogV2hldGhlciBhIHRo cmVhZGVkIGFwcGxpY2F0aW9uIGlzIGJlaW5nIGRlYnVnZ2VkLiAgKi8KLQot c3RhdGljIGludCBwZF9hY3RpdmUgPSAwOwotCiAvKiBXaGV0aGVyIHRoZSBj dXJyZW50IGFyY2hpdGVjdHVyZSBpcyA2NC1iaXQuICAKICAgIE9ubHkgdmFs aWQgd2hlbiBwZF9hYmxlIGlzIHRydWUuICAqLwogCkBAIC0xOTEsOSArMTg0 LDIxIEBAIHN0YXRpYyBwdGhkYl9jYWxsYmFja3NfdCBwZF9jYWxsYmFja3Mg PSB7CiAgIE5VTEwKIH07CiAKLS8qIEN1cnJlbnQgcHRoZGIgc2Vzc2lvbi4g ICovCisvKiBBaXggdmFyaWFibGUgc3RydWN0dXJlLiAgKi8KK3N0cnVjdCBh aXhfdGhyZWFkX3ZhcmlhYmxlcyAKK3sKKyAgLyogV2hldGhlciB0aGUgY3Vy cmVudCBhcHBsaWNhdGlvbiBpcyBkZWJ1Z2dhYmxlIGJ5IHB0aGRiLiAgKi8K KyAgaW50IHBkX2FibGU7CiAKLXN0YXRpYyBwdGhkYl9zZXNzaW9uX3QgcGRf c2Vzc2lvbjsKKyAgLyogV2hldGhlciBhIHRocmVhZGVkIGFwcGxpY2F0aW9u IGlzIGJlaW5nIGRlYnVnZ2VkLiAgKi8KKyAgaW50IHBkX2FjdGl2ZTsKKwor ICAvKiBDdXJyZW50IHB0aGRiIHNlc3Npb24uICAqLworICBwdGhkYl9zZXNz aW9uX3QgcGRfc2Vzc2lvbjsKK307CisKKy8qIENvbGxlY3Rpb24gb2YgQWl4 IHZhcmlhYmxlcyBwZXIgaW5mZXJpb3IuICAqLworc3RhdGljIHN0ZDo6bWFw PHBpZF90LCBhaXhfdGhyZWFkX3ZhcmlhYmxlcz4gdG1hcDsKIAogLyogUmV0 dXJuIGEgcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHB0aGRlYnVnIGZ1 bmN0aW9uIHJldHVybgogICAgU1RBVFVTLiAgKi8KQEAgLTUwOCwxNCArNTEz LDEzIEBAIHBkY19yZWFkX2RhdGEgKHB0aGRiX3VzZXJfdCB1c2VyX2N1cnJl bnRfcGlkLCB2b2lkICpidWYsCiAgIC8qIFRoaXMgaXMgbmVlZGVkIHRvIGVs aW1pbmF0ZSB0aGUgZGVwZW5kZW5jeSBvZiBjdXJyZW50IHRocmVhZAogICAg ICB3aGljaCBpcyBudWxsIHNvIHRoYXQgdGhyZWFkIHJlYWRzIHRoZSBjb3Jy ZWN0IHRhcmdldCBtZW1vcnkuICAqLwogICB7Ci0gICAgc2NvcGVkX3Jlc3Rv cmVfY3VycmVudF90aHJlYWQgcmVzdG9yZV9jdXJyZW50X3RocmVhZDsKKyAg ICBzY29wZWRfcmVzdG9yZSBzYXZlX2luZmVyaW9yX3B0aWQgPSBtYWtlX3Nj b3BlZF9yZXN0b3JlICgmaW5mZXJpb3JfcHRpZCk7CiAgICAgLyogQmVmb3Jl IHRoZSBmaXJzdCBpbmZlcmlvciBpcyBhZGRlZCwgd2UgcGFzcyBpbmZlcmlv cl9wdGlkLnBpZCAoKQogICAgICAgIGZyb20gcGRfZW5hYmxlICgpIHdoaWNo IGlzIDAuICBUaGVyZSBpcyBubyBuZWVkIHRvIHN3aXRjaCB0aHJlYWRzCiAg ICAgICAgZHVyaW5nIGZpcnN0IGluaXRpYWxpc2F0aW9uLiAgSW4gdGhlIHJl c3Qgb2YgdGhlIGNhbGxiYWNrcyB0aGUKICAgICAgICBjdXJyZW50IHRocmVh ZCBuZWVkcyB0byBiZSBjb3JyZWN0LiAgKi8KICAgICBpZiAodXNlcl9jdXJy ZW50X3BpZCAhPSAwKQotICAgICAgc3dpdGNoX3RvX3RocmVhZCAoY3VycmVu dF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksCi0JCQlwdGlkX3Qg KHVzZXJfY3VycmVudF9waWQpKTsKKyAgICAgIGluZmVyaW9yX3B0aWQgPSBw dGlkX3QgKHVzZXJfY3VycmVudF9waWQpOwogICAgIHN0YXR1cyA9IHRhcmdl dF9yZWFkX21lbW9yeSAoYWRkciwgKGdkYl9ieXRlICopIGJ1ZiwgbGVuKTsK ICAgfQogICByZXQgPSBzdGF0dXMgPT0gMCA/IFBEQ19TVUNDRVNTIDogUERD X0ZBSUxVUkU7CkBAIC02MzksMzYgKzY0MywzMiBAQCBwY21wIChjb25zdCB2 b2lkICpwMXYsIGNvbnN0IHZvaWQgKnAydikKICAgcmV0dXJuIHAxLT5wdGhp ZCA8IHAyLT5wdGhpZCA/IC0xIDogcDEtPnB0aGlkID4gcDItPnB0aGlkOwog fQogCi0vKiBpdGVyYXRlX292ZXJfdGhyZWFkcygpIGNhbGxiYWNrIGZvciBj b3VudGluZyBHREIgdGhyZWFkcy4KLQotICAgRG8gbm90IGNvdW50IHRoZSBt YWluIHRocmVhZCAod2hvc2UgdGlkIGlzIHplcm8pLiAgVGhpcyBtYXRjaGVz Ci0gICB0aGUgbGlzdCBvZiB0aHJlYWRzIHByb3ZpZGVkIGJ5IHRoZSBwdGhy ZWFkZGVidWcgbGlicmFyeSwgd2hpY2gKLSAgIGRvZXMgbm90IGluY2x1ZGUg dGhhdCBtYWluIHRocmVhZCBlaXRoZXIsIGFuZCB0aHVzIGFsbG93cyB1cwot ICAgdG8gY29tcGFyZSB0aGUgdHdvIGxpc3RzLiAgKi8KKy8qIENhbGxiYWNr IGZvciBjb3VudGluZyBHREIgdGhyZWFkcyBmb3IgcHJvY2VzcyBwaWQuICAq LwogCiBzdGF0aWMgaW50Ci1naXRlcl9jb3VudCAoc3RydWN0IHRocmVhZF9p bmZvICp0aHJlYWQsIHZvaWQgKmNvdW50cCkKK2dpdGVyX2NvdW50IChwaWRf dCBwaWQpCiB7Ci0gIGlmIChQRF9USUQgKHRocmVhZC0+cHRpZCkpCi0gICAg KCooaW50ICopIGNvdW50cCkrKzsKLSAgcmV0dXJuIDA7CisgIGludCBnY291 bnQgPSAwOworICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3Rhcmdl dAorICAgID0gY3VycmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQg KCk7CisgIGZvciAodGhyZWFkX2luZm8gKnRwIDogYWxsX3RocmVhZHMgKHBy b2NfdGFyZ2V0LCBwdGlkX3QgKHBpZCkpKQorICAgIGdjb3VudCsrOworICBy ZXR1cm4gZ2NvdW50OwogfQogCi0vKiBpdGVyYXRlX292ZXJfdGhyZWFkcygp IGNhbGxiYWNrIGZvciBhY2N1bXVsYXRpbmcgR0RCIHRocmVhZCBwaWRzLgot Ci0gICBEbyBub3QgaW5jbHVkZSB0aGUgbWFpbiB0aHJlYWQgKHdob3NlIHRp ZCBpcyB6ZXJvKS4gIFRoaXMgbWF0Y2hlcwotICAgdGhlIGxpc3Qgb2YgdGhy ZWFkcyBwcm92aWRlZCBieSB0aGUgcHRocmVhZGRlYnVnIGxpYnJhcnksIHdo aWNoCi0gICBkb2VzIG5vdCBpbmNsdWRlIHRoYXQgbWFpbiB0aHJlYWQgZWl0 aGVyLCBhbmQgdGh1cyBhbGxvd3MgdXMKLSAgIHRvIGNvbXBhcmUgdGhlIHR3 byBsaXN0cy4gICovCisvKiBDYWxsYmFjayBmb3IgYWNjdW11bGF0aW5nIEdE QiB0aHJlYWQgcGlkcy4gICovCiAKIHN0YXRpYyBpbnQKLWdpdGVyX2FjY3Vt IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRocmVhZCwgdm9pZCAqYnVmcCkKK2dp dGVyX2FjY3VtICh2b2lkICpidWZwLCBwaWRfdCBwaWQpCiB7Ci0gIGlmIChQ RF9USUQgKHRocmVhZC0+cHRpZCkpCi0gICAgewotICAgICAgKiooc3RydWN0 IHRocmVhZF9pbmZvICoqKikgYnVmcCA9IHRocmVhZDsKLSAgICAgICgqKHN0 cnVjdCB0aHJlYWRfaW5mbyAqKiopIGJ1ZnApKys7Ci0gICAgfQorICBwcm9j ZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAorICAgID0gY3VycmVu dF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCk7CisgIGZvciAodGhy ZWFkX2luZm8gKnRwIDogYWxsX3RocmVhZHMgKHByb2NfdGFyZ2V0LCBwdGlk X3QgKHBpZCkpKQorICB7CisgICAgKiooc3RydWN0IHRocmVhZF9pbmZvICoq KikgYnVmcCA9IHRwOworICAgICgqKHN0cnVjdCB0aHJlYWRfaW5mbyAqKiop IGJ1ZnApKys7CisgIH0KKwogICByZXR1cm4gMDsKIH0KIApAQCAtNzE5LDcg KzcxOSwxMCBAQCBnZXRfc2lnbmFsZWRfdGhyZWFkIChpbnQgcGlkKQogCQkg ICAgc2l6ZW9mICh0aHJpbmYpLCAma3RpZCwgMSkgIT0gMSkKIAlicmVhazsK IAotICAgICAgaWYgKHRocmluZi50aV9jdXJzaWcgPT0gU0lHVFJBUCkKKyAg ICAgIC8qIFdlIGFsc28gbmVlZCB0byBrZWVwIGluIG1pbmQgVHJhcCBhbmQg aW50ZXJydXB0IG9yIGFueQorICAgICAgICAgc2lnbmFsIHRoYXQgbmVlZHMg dG8gYmUgaGFuZGxlZCBpbiBwZF91cGRhdGUgKCkuICAqLworCisgICAgICBp ZiAodGhyaW5mLnRpX2N1cnNpZykKIAlyZXR1cm4gdGhyaW5mLnRpX3RpZDsK ICAgICB9CiAKQEAgLTc1MCw2ICs3NTMsOSBAQCBzeW5jX3RocmVhZGxpc3Rz IChpbnQgcGlkKQogICBwdGhkYl9wdGhyZWFkX3QgcGR0aWQ7CiAgIHB0aHJl YWRfdCBwdGhpZDsKICAgcHRoZGJfdGlkX3QgdGlkOworICBwcm9jZXNzX3N0 cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAorICAgICAgICAgICAgPSBjdXJy ZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAoKTsKKyAgdGhyZWFk X2luZm8gICp0cDsKIAogICAvKiBBY2N1bXVsYXRlIGFuIGFycmF5IG9mIGxp YnB0aGRlYnVnIHRocmVhZHMgc29ydGVkIGJ5IHB0aHJlYWQgaWQuICAqLwog CkBAIC03NTksMTEgKzc2NSwxMSBAQCBzeW5jX3RocmVhZGxpc3RzIChpbnQg cGlkKQogCiAgIGZvciAoY21kID0gUFRIREJfTElTVF9GSVJTVDs7IGNtZCA9 IFBUSERCX0xJU1RfTkVYVCkKICAgICB7Ci0gICAgICBzdGF0dXMgPSBwdGhk Yl9wdGhyZWFkIChwZF9zZXNzaW9uLCAmcGR0aWQsIGNtZCk7CisgICAgICBz dGF0dXMgPSBwdGhkYl9wdGhyZWFkICh0bWFwW3BpZF0ucGRfc2Vzc2lvbiwg JnBkdGlkLCBjbWQpOwogICAgICAgaWYgKHN0YXR1cyAhPSBQVEhEQl9TVUND RVNTIHx8IHBkdGlkID09IFBUSERCX0lOVkFMSURfUFRIUkVBRCkKIAlicmVh azsKIAotICAgICAgc3RhdHVzID0gcHRoZGJfcHRocmVhZF9wdGlkIChwZF9z ZXNzaW9uLCBwZHRpZCwgJnB0aGlkKTsKKyAgICAgIHN0YXR1cyA9IHB0aGRi X3B0aHJlYWRfcHRpZCAodG1hcFtwaWRdLnBkX3Nlc3Npb24sIHBkdGlkLCAm cHRoaWQpOwogICAgICAgaWYgKHN0YXR1cyAhPSBQVEhEQl9TVUNDRVNTIHx8 IHB0aGlkID09IFBUSERCX0lOVkFMSURfUFRJRCkKIAljb250aW51ZTsKIApA QCAtNzgwLDcgKzc4Niw3IEBAIHN5bmNfdGhyZWFkbGlzdHMgKGludCBwaWQp CiAKICAgZm9yIChwaSA9IDA7IHBpIDwgcGNvdW50OyBwaSsrKQogICAgIHsK LSAgICAgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfdGlkIChwZF9zZXNzaW9u LCBwYnVmW3BpXS5wZHRpZCwgJnRpZCk7CisgICAgICBzdGF0dXMgPSBwdGhk Yl9wdGhyZWFkX3RpZCAodG1hcFtwaWRdLnBkX3Nlc3Npb24sIHBidWZbcGld LnBkdGlkLCAmdGlkKTsKICAgICAgIGlmIChzdGF0dXMgIT0gUFRIREJfU1VD Q0VTUykKIAl0aWQgPSBQVEhEQl9JTlZBTElEX1RJRDsKICAgICAgIHBidWZb cGldLnRpZCA9IHRpZDsKQEAgLTc5MCwxMCArNzk2LDExIEBAIHN5bmNfdGhy ZWFkbGlzdHMgKGludCBwaWQpCiAKICAgLyogQWNjdW11bGF0ZSBhbiBhcnJh eSBvZiBHREIgdGhyZWFkcyBzb3J0ZWQgYnkgcGlkLiAgKi8KIAotICBnY291 bnQgPSAwOwotICBpdGVyYXRlX292ZXJfdGhyZWFkcyAoZ2l0ZXJfY291bnQs ICZnY291bnQpOworICAvKiBnY291bnQgaXMgR0RCIHRocmVhZCBjb3VudCBh bmQgcGNvdW50IGlzIHB0aHJlYWRsaWIgdGhyZWFkIGNvdW50LiAgKi8KKwor ICBnY291bnQgPSBnaXRlcl9jb3VudCAocGlkKTsKICAgZyA9IGdidWYgPSBY TkVXVkVDIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiwgZ2NvdW50KTsKLSAgaXRl cmF0ZV9vdmVyX3RocmVhZHMgKGdpdGVyX2FjY3VtLCAmZyk7CisgIGdpdGVy X2FjY3VtICgmZywgcGlkKTsKICAgcXNvcnQgKGdidWYsIGdjb3VudCwgc2l6 ZW9mICpnYnVmLCBnY21wKTsKIAogICAvKiBBcHBseSBkaWZmZXJlbmNlcyBi ZXR3ZWVuIHRoZSB0d28gYXJyYXlzIHRvIEdEQidzIHRocmVhZCBsaXN0LiAg Ki8KQEAgLTgxMCw4ICs4MTcsNiBAQCBzeW5jX3RocmVhZGxpc3RzIChpbnQg cGlkKQogCSAgcHJpdi0+cGR0aWQgPSBwYnVmW3BpXS5wZHRpZDsKIAkgIHBy aXYtPnRpZCA9IHBidWZbcGldLnRpZDsKIAotCSAgcHJvY2Vzc19zdHJhdHVt X3RhcmdldCAqcHJvY190YXJnZXQKLQkgICAgPSBjdXJyZW50X2luZmVyaW9y ICgpLT5wcm9jZXNzX3RhcmdldCAoKTsKIAkgIHRocmVhZCA9IGFkZF90aHJl YWRfd2l0aF9pbmZvIChwcm9jX3RhcmdldCwKIAkJCQkJIHB0aWRfdCAocGlk LCAwLCBwYnVmW3BpXS5wdGhpZCksCiAJCQkJCSBwcml2KTsKQEAgLTgzMCw2 ICs4MzUsMjMgQEAgc3luY190aHJlYWRsaXN0cyAoaW50IHBpZCkKIAogCSAg Y21wX3Jlc3VsdCA9IHB0aWRfY21wIChwcHRpZCwgZ3B0aWQpOwogCisJICAv KiBJZiB0aGVyZSBpcyBvbmx5IG9uZSB0aHJlYWQgdGhlbiB3ZSBuZWVkIG5v dCBtYWtlIHRoZSBtYWluIAorCSAgICAgdGhyZWFkIGxvb2sgbGlrZSBhIHRo cmVhZC4gIEl0IGNhbiBzdGF5IGFzIGEgcHJvY2Vzcy4gVGhpcworCSAgICAg aXMgdXNlZnVsIHdoZW4gd2UgaGF2ZSBtdWx0aXBsZSBpbmZlcmlvcnMsIGJ1 dCBvbmx5IG9uZSBpcworCSAgICAgdGhyZWFkZWQuICBTbyB3ZSBuZWVkIG5v dCBtYWtlIHRoZSBvdGhlciBpbmZlcmlvcnMgd2l0aCBvbmx5CisJICAgICBt YWluIHRocmVhZCwgbG9vayBsaWtlIGEgdGhyZWFkZWQgb25lLiAgRm9yIGV4 YW1wbGUsIFRocmVhZAorCSAgICAgMS4xLCAxLjIsIDIuMSwgMy4xIGV4aXN0 cyB0aGVuIGl0IGlzIHVzZWZ1bCB0byBza2lwIHRoaXMgZm9yCisJICAgICBs b29wIGZvciAyLjEgYW5kIDMuMSBsZWF2aW5nIHRoZW0gYXMgbWFpbiBwcm9j ZXNzIHRocmVhZCB3aXRoCisJICAgICBhIGR1bW15IHByaXYgc2V0LiAgKi8K KworCSAgaWYgKHBjb3VudCA9PSAxICYmIGdjb3VudCA9PSAxKQorCSAgewor CSAgICBhaXhfdGhyZWFkX2luZm8gKnByaXYgPSBuZXcgYWl4X3RocmVhZF9p bmZvOworCSAgICB0cCA9IGZpbmRfdGhyZWFkX3B0aWQgKHByb2NfdGFyZ2V0 LCBncHRpZCk7CisJICAgIHRwLT5wcml2LnJlc2V0IChwcml2KTsKKwkgICAg YnJlYWs7CisJICB9CisKIAkgIGlmIChjbXBfcmVzdWx0ID09IDApCiAJICAg IHsKIAkgICAgICBhaXhfdGhyZWFkX2luZm8gKnByaXYgPSBnZXRfYWl4X3Ro cmVhZF9pbmZvIChnYnVmW2dpXSk7CkBAIC04NDEsOCArODYzLDI1IEBAIHN5 bmNfdGhyZWFkbGlzdHMgKGludCBwaWQpCiAJICAgIH0KIAkgIGVsc2UgaWYg KGNtcF9yZXN1bHQgPiAwKQogCSAgICB7Ci0JICAgICAgZGVsZXRlX3RocmVh ZCAoZ2J1ZltnaV0pOwotCSAgICAgIGdpKys7CisJICAgICAgLyogVGhpcyBp cyB0byBtYWtlIHRoZSBtYWluIHByb2Nlc3MgdGhyZWFkIG5vdyBsb29rCisJ CSBsaWtlIGEgdGhyZWFkLiAgKi8KKworCSAgICAgIGlmIChncHRpZC5pc19w aWQgKCkgJiYgZ3B0aWQucGlkICgpID09IHBwdGlkLnBpZCAoKSkKKwkgICAg ICB7CisJCXRocmVhZF9jaGFuZ2VfcHRpZCAocHJvY190YXJnZXQsIGdwdGlk LCBwcHRpZCk7CisJCWFpeF90aHJlYWRfaW5mbyAqcHJpdiA9IG5ldyBhaXhf dGhyZWFkX2luZm87CisJCXByaXYtPnBkdGlkID0gcGJ1ZltwaV0ucGR0aWQ7 CisJCXByaXYtPnRpZCA9IHBidWZbcGldLnRpZDsKKwkJdHAgPSBmaW5kX3Ro cmVhZF9wdGlkIChwcm9jX3RhcmdldCwgcHB0aWQpOworCQl0cC0+cHJpdi5y ZXNldCAocHJpdik7CisJCXBpKys7CisJCWdpKys7CisJICAgICAgfQorCSAg ICAgIGVsc2UKKwkgICAgICB7CisJCWRlbGV0ZV90aHJlYWQgKGdidWZbZ2ld KTsKKwkJZ2krKzsKKwkgICAgICB9CiAJICAgIH0KIAkgIGVsc2UKIAkgICAg ewpAQCAtODg4LDEwICs5MjcsMTAgQEAgcGRfdXBkYXRlIChpbnQgcGlkKQog ICBwdGhkYl90aWRfdCB0aWQ7CiAgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdGhy ZWFkID0gTlVMTDsKIAotICBpZiAoIXBkX2FjdGl2ZSkKKyAgaWYgKCF0bWFw W3BpZF0ucGRfYWN0aXZlKQogICAgIHJldHVybiBwdGlkX3QgKHBpZCk7CiAK LSAgc3RhdHVzID0gcHRoZGJfc2Vzc2lvbl91cGRhdGUgKHBkX3Nlc3Npb24p OworICBzdGF0dXMgPSBwdGhkYl9zZXNzaW9uX3VwZGF0ZSAodG1hcFtwaWRd LnBkX3Nlc3Npb24pOwogICBpZiAoc3RhdHVzICE9IFBUSERCX1NVQ0NFU1Mp CiAgICAgcmV0dXJuIHB0aWRfdCAocGlkKTsKIApAQCAtOTIxLDEyICs5NjAs MTIgQEAgcGRfYWN0aXZhdGUgKGludCBwaWQpCiAJCQogICBzdGF0dXMgPSBw dGhkYl9zZXNzaW9uX2luaXQgKHBpZCwgYXJjaDY0ID8gUEVNXzY0QklUIDog UEVNXzMyQklULAogCQkJICAgICAgIFBUSERCX0ZMQUdfUkVHUywgJnBkX2Nh bGxiYWNrcywgCi0JCQkgICAgICAgJnBkX3Nlc3Npb24pOworCQkJICAgICAg ICZ0bWFwW3BpZF0ucGRfc2Vzc2lvbik7CiAgIGlmIChzdGF0dXMgIT0gUFRI REJfU1VDQ0VTUykKICAgICB7CiAgICAgICByZXR1cm4gcHRpZF90IChwaWQp OwogICAgIH0KLSAgcGRfYWN0aXZlID0gMTsKKyAgdG1hcFtwaWRdLnBkX2Fj dGl2ZSA9IDE7CiAgIHJldHVybiBwZF91cGRhdGUgKHBpZCk7CiB9CiAKQEAg LTkzNSwxMiArOTc0LDEyIEBAIHBkX2FjdGl2YXRlIChpbnQgcGlkKQogc3Rh dGljIHZvaWQKIHBkX2RlYWN0aXZhdGUgKHZvaWQpCiB7Ci0gIGlmICghcGRf YWN0aXZlKQorICBpZiAoIXRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBk X2FjdGl2ZSkKICAgICByZXR1cm47Ci0gIHB0aGRiX3Nlc3Npb25fZGVzdHJv eSAocGRfc2Vzc2lvbik7CisgIHB0aGRiX3Nlc3Npb25fZGVzdHJveSAodG1h cFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfc2Vzc2lvbik7CiAgIAogICBw aWRfdG9fcHJjICgmaW5mZXJpb3JfcHRpZCk7Ci0gIHBkX2FjdGl2ZSA9IDA7 CisgIHRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBkX2FjdGl2ZSA9IDA7 CiB9CiAKIC8qIEFuIG9iamVjdCBmaWxlIGhhcyBqdXN0IGJlZW4gbG9hZGVk LiAgQ2hlY2sgd2hldGhlciB0aGUgY3VycmVudApAQCAtOTUzLDggKzk5Miwx NSBAQCBwZF9lbmFibGUgKHZvaWQpCiAgIGNoYXIgKnN0dWJfbmFtZTsKICAg c3RydWN0IGJvdW5kX21pbmltYWxfc3ltYm9sIG1zOwogCisgIC8qIENyZWF0 ZSBzZXQgb2YgdmFyaWFibGVzIGZvciB0aGlzIGluZmVyaW9yLiAgKi8KKyAg aWYgKHRtYXAuZmluZCAoaW5mZXJpb3JfcHRpZC5waWQgKCkpID09IHRtYXAu ZW5kICgpKQorICB7CisgICAgc3RydWN0IGFpeF90aHJlYWRfdmFyaWFibGVz IHogPSB7MCwgMH07CisgICAgdG1hcC5pbnNlcnQgKHtpbmZlcmlvcl9wdGlk LnBpZCAoKSwgen0pOworICB9CisKICAgLyogRG9uJ3QgaW5pdGlhbGl6ZSB0 d2ljZS4gICovCi0gIGlmIChwZF9hYmxlKQorICBpZiAodG1hcFtpbmZlcmlv cl9wdGlkLnBpZCAoKV0ucGRfYWJsZSkKICAgICByZXR1cm47CiAKICAgLyog Q2hlY2sgYXBwbGljYXRpb24gd29yZCBzaXplLiAgKi8KQEAgLTk3OCw3ICsx MDI0LDcgQEAgcGRfZW5hYmxlICh2b2lkKQogCiAgIC8qIFByZXBhcmUgZm9y IHRocmVhZCBkZWJ1Z2dpbmcuICAqLwogICBjdXJyZW50X2luZmVyaW9yICgp LT5wdXNoX3RhcmdldCAoJmFpeF90aHJlYWRfb3BzKTsKLSAgcGRfYWJsZSA9 IDE7CisgIHRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBkX2FibGUgPSAx OyAKIAogICAvKiBJZiB3ZSdyZSBkZWJ1Z2dpbmcgYSBjb3JlIGZpbGUgb3Ig YW4gYXR0YWNoZWQgaW5mZXJpb3IsIHRoZQogICAgICBwdGhyZWFkIGxpYnJh cnkgbWF5IGFscmVhZHkgaGF2ZSBiZWVuIGluaXRpYWxpemVkLCBzbyB0cnkg dG8KQEAgLTk5MSwyOCArMTAzNywyNSBAQCBwZF9lbmFibGUgKHZvaWQpCiBz dGF0aWMgdm9pZAogcGRfZGlzYWJsZSAodm9pZCkKIHsKLSAgaWYgKCFwZF9h YmxlKQorICBpZiAoIXRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBkX2Fi bGUpCiAgICAgcmV0dXJuOwotICBpZiAocGRfYWN0aXZlKQorICBpZiAodG1h cFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfYWN0aXZlKQogICAgIHBkX2Rl YWN0aXZhdGUgKCk7Ci0gIHBkX2FibGUgPSAwOworICB0bWFwW2luZmVyaW9y X3B0aWQucGlkICgpXS5wZF9hYmxlID0gMDsKICAgY3VycmVudF9pbmZlcmlv ciAoKS0+dW5wdXNoX3RhcmdldCAoJmFpeF90aHJlYWRfb3BzKTsKKyAgdG1h cC5lcmFzZSAoaW5mZXJpb3JfcHRpZC5waWQgKCkpOwogfQogCiAvKiBuZXdf b2JqZmlsZSBvYnNlcnZlciBjYWxsYmFjay4KIAogICAgSWYgT0JKRklMRSBp cyBub24tbnVsbCwgY2hlY2sgd2hldGhlciBhIHRocmVhZGVkIGFwcGxpY2F0 aW9uIGlzCi0gICBiZWluZyBkZWJ1Z2dlZCwgYW5kIGlmIHNvLCBwcmVwYXJl IGZvciB0aHJlYWQgZGVidWdnaW5nLgotCi0gICBJZiBPQkpGSUxFIGlzIG51 bGwsIHN0b3AgZGVidWdnaW5nIHRocmVhZHMuICAqLworICAgYmVpbmcgZGVi dWdnZWQsIGFuZCBpZiBzbywgcHJlcGFyZSBmb3IgdGhyZWFkIGRlYnVnZ2lu Zy4gICovCiAKIHN0YXRpYyB2b2lkCiBuZXdfb2JqZmlsZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUpCiB7CiAgIGlmIChvYmpmaWxlKQogICAgIHBkX2Vu YWJsZSAoKTsKLSAgZWxzZQotICAgIHBkX2Rpc2FibGUgKCk7CiB9CiAKIC8q IEF0dGFjaCB0byBwcm9jZXNzIHNwZWNpZmllZCBieSBBUkdTLiAgKi8KQEAg LTEwOTYsNyArMTEzOSw3IEBAIGFpeF90aHJlYWRfdGFyZ2V0Ojp3YWl0IChw dGlkX3QgcHRpZCwgc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICpzdGF0dXMs CiAgIGdkYl9hc3NlcnQgKHB0aWQuaXNfcGlkICgpKTsKIAogICAvKiBDaGVj ayB3aGV0aGVyIGxpYnB0aGRlYnVnIG1pZ2h0IGJlIHJlYWR5IHRvIGJlIGlu aXRpYWxpemVkLiAgKi8KLSAgaWYgKCFwZF9hY3RpdmUgJiYgc3RhdHVzLT5r aW5kICgpID09IFRBUkdFVF9XQUlUS0lORF9TVE9QUEVECisgIGlmICghdG1h cFtwdGlkLnBpZCAoKV0ucGRfYWN0aXZlICYmIHN0YXR1cy0+a2luZCAoKSA9 PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBFRAogICAgICAgJiYgc3RhdHVzLT5z aWcgKCkgPT0gR0RCX1NJR05BTF9UUkFQKQogICAgIHsKICAgICAgIHByb2Nl c3Nfc3RyYXR1bV90YXJnZXQgKnByb2NfdGFyZ2V0CkBAIC0xMjMzLDcgKzEy NzYsNyBAQCBmZXRjaF9yZWdzX3VzZXJfdGhyZWFkIChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBwdGhkYl9wdGhyZWFkX3QgcGR0aWQpCiAgIGlmIChk ZWJ1Z19haXhfdGhyZWFkKQogICAgIGdkYl9wcmludGYgKGdkYl9zdGRsb2cs IAogCQkiZmV0Y2hfcmVnc191c2VyX3RocmVhZCAlbHhcbiIsIChsb25nKSBw ZHRpZCk7Ci0gIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfY29udGV4dCAocGRf c2Vzc2lvbiwgcGR0aWQsICZjdHgpOworICBzdGF0dXMgPSBwdGhkYl9wdGhy ZWFkX2NvbnRleHQgKHRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBkX3Nl c3Npb24sIHBkdGlkLCAmY3R4KTsKICAgaWYgKHN0YXR1cyAhPSBQVEhEQl9T VUNDRVNTKQogICAgIGVycm9yIChfKCJhaXgtdGhyZWFkOiBmZXRjaF9yZWdp c3RlcnM6IHB0aGRiX3B0aHJlYWRfY29udGV4dCByZXR1cm5lZCAlcyIpLAog CSAgIHBkX3N0YXR1czJzdHIgKHN0YXR1cykpOwpAQCAtMTUxOCw3ICsxNTYx LDcgQEAgc3RvcmVfcmVnc191c2VyX3RocmVhZCAoY29uc3Qgc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgcHRoZGJfcHRocmVhZF90IHBkdGlkKQogCiAg IC8qIFJldHJpZXZlIHRoZSB0aHJlYWQncyBjdXJyZW50IGNvbnRleHQgZm9y IGl0cyBub24tcmVnaXN0ZXIKICAgICAgdmFsdWVzLiAgKi8KLSAgc3RhdHVz ID0gcHRoZGJfcHRocmVhZF9jb250ZXh0IChwZF9zZXNzaW9uLCBwZHRpZCwg JmN0eCk7CisgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfY29udGV4dCAodG1h cFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfc2Vzc2lvbiwgcGR0aWQsICZj dHgpOwogICBpZiAoc3RhdHVzICE9IFBUSERCX1NVQ0NFU1MpCiAgICAgZXJy b3IgKF8oImFpeC10aHJlYWQ6IHN0b3JlX3JlZ2lzdGVyczogcHRoZGJfcHRo cmVhZF9jb250ZXh0IHJldHVybmVkICVzIiksCiAJICAgcGRfc3RhdHVzMnN0 ciAoc3RhdHVzKSk7CkBAIC0xNTc2LDcgKzE2MTksNyBAQCBzdG9yZV9yZWdz X3VzZXJfdGhyZWFkIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hl LCBwdGhkYl9wdGhyZWFkX3QgcGR0aWQpCiAJY3R4LmZwc2NyID0gdG1wX2Zw c2NyOwogICAgIH0KIAotICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX3NldGNv bnRleHQgKHBkX3Nlc3Npb24sIHBkdGlkLCAmY3R4KTsKKyAgc3RhdHVzID0g cHRoZGJfcHRocmVhZF9zZXRjb250ZXh0ICh0bWFwW2luZmVyaW9yX3B0aWQu cGlkICgpXS5wZF9zZXNzaW9uLCBwZHRpZCwgJmN0eCk7CiAgIGlmIChzdGF0 dXMgIT0gUFRIREJfU1VDQ0VTUykKICAgICBlcnJvciAoXygiYWl4LXRocmVh ZDogc3RvcmVfcmVnaXN0ZXJzOiAiCiAJICAgICAicHRoZGJfcHRocmVhZF9z ZXRjb250ZXh0IHJldHVybmVkICVzIiksCkBAIC0xNzQxLDcgKzE3ODQsNyBA QCBhaXhfdGhyZWFkX3RhcmdldDo6bW91cm5faW5mZXJpb3IgKCkKIHsKICAg dGFyZ2V0X29wcyAqYmVuZWF0aCA9IHRoaXMtPmJlbmVhdGggKCk7CiAKLSAg cGRfZGVhY3RpdmF0ZSAoKTsKKyAgcGRfZGlzYWJsZSAoKTsKICAgYmVuZWF0 aC0+bW91cm5faW5mZXJpb3IgKCk7CiB9CiAKQEAgLTE4MDAsMjQgKzE4NDMs MjQgQEAgYWl4X3RocmVhZF90YXJnZXQ6OmV4dHJhX3RocmVhZF9pbmZvIChz dHJ1Y3QgdGhyZWFkX2luZm8gKnRocmVhZCkKICAgICAvKiBpMThuOiBMaWtl ICJ0aHJlYWQtaWRlbnRpZmllciAlZCwgW3N0YXRlXSBydW5uaW5nLCBzdXNw ZW5kZWQiICovCiAgICAgYnVmLnByaW50ZiAoXygidGlkICVkIiksIChpbnQp dGlkKTsKIAotICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX3N0YXRlIChwZF9z ZXNzaW9uLCBwZHRpZCwgJnN0YXRlKTsKKyAgc3RhdHVzID0gcHRoZGJfcHRo cmVhZF9zdGF0ZSAodG1hcFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfc2Vz c2lvbiwgcGR0aWQsICZzdGF0ZSk7CiAgIGlmIChzdGF0dXMgIT0gUFRIREJf U1VDQ0VTUykKICAgICBzdGF0ZSA9IFBTVF9OT1RTVVA7CiAgIGJ1Zi5wcmlu dGYgKCIsICVzIiwgc3RhdGUyc3RyIChzdGF0ZSkpOwogCi0gIHN0YXR1cyA9 IHB0aGRiX3B0aHJlYWRfc3VzcGVuZHN0YXRlIChwZF9zZXNzaW9uLCBwZHRp ZCwgCisgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfc3VzcGVuZHN0YXRlICh0 bWFwW2luZmVyaW9yX3B0aWQucGlkICgpXS5wZF9zZXNzaW9uLCBwZHRpZCwg CiAJCQkJICAgICAgICZzdXNwZW5kc3RhdGUpOwogICBpZiAoc3RhdHVzID09 IFBUSERCX1NVQ0NFU1MgJiYgc3VzcGVuZHN0YXRlID09IFBTU19TVVNQRU5E RUQpCiAgICAgLyogaTE4bjogTGlrZSAiVGhyZWFkLUlkICVkLCBbc3RhdGVd IHJ1bm5pbmcsIHN1c3BlbmRlZCIgKi8KICAgICBidWYucHJpbnRmIChfKCIs IHN1c3BlbmRlZCIpKTsKIAotICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX2Rl dGFjaHN0YXRlIChwZF9zZXNzaW9uLCBwZHRpZCwgCisgIHN0YXR1cyA9IHB0 aGRiX3B0aHJlYWRfZGV0YWNoc3RhdGUgKHRtYXBbaW5mZXJpb3JfcHRpZC5w aWQgKCldLnBkX3Nlc3Npb24sIHBkdGlkLCAKIAkJCQkgICAgICAmZGV0YWNo c3RhdGUpOwogICBpZiAoc3RhdHVzID09IFBUSERCX1NVQ0NFU1MgJiYgZGV0 YWNoc3RhdGUgPT0gUERTX0RFVEFDSEVEKQogICAgIC8qIGkxOG46IExpa2Ug IlRocmVhZC1JZCAlZCwgW3N0YXRlXSBydW5uaW5nLCBkZXRhY2hlZCIgKi8K ICAgICBidWYucHJpbnRmIChfKCIsIGRldGFjaGVkIikpOwogCi0gIHB0aGRi X3B0aHJlYWRfY2FuY2VscGVuZCAocGRfc2Vzc2lvbiwgcGR0aWQsICZjYW5j ZWxwZW5kKTsKKyAgcHRoZGJfcHRocmVhZF9jYW5jZWxwZW5kICh0bWFwW2lu ZmVyaW9yX3B0aWQucGlkICgpXS5wZF9zZXNzaW9uLCBwZHRpZCwgJmNhbmNl bHBlbmQpOwogICBpZiAoc3RhdHVzID09IFBUSERCX1NVQ0NFU1MgJiYgY2Fu Y2VscGVuZCkKICAgICAvKiBpMThuOiBMaWtlICJUaHJlYWQtSWQgJWQsIFtz dGF0ZV0gcnVubmluZywgY2FuY2VsIHBlbmRpbmciICovCiAgICAgYnVmLnBy aW50ZiAoXygiLCBjYW5jZWwgcGVuZGluZyIpKTsKZGlmZiAtLWdpdCBhL2dk Yi9yczYwMDAtYWl4LW5hdC5jIGIvZ2RiL3JzNjAwMC1haXgtbmF0LmMKaW5k ZXggMmFjMWY2ZTcwYjYuLmQxZmVjZTZmYWE3IDEwMDY0NAotLS0gYS9nZGIv cnM2MDAwLWFpeC1uYXQuYworKysgYi9nZGIvcnM2MDAwLWFpeC1uYXQuYwpA QCAtOTUsNiArOTUsOCBAQCBjbGFzcyByczYwMDBfbmF0X3RhcmdldCBmaW5h bCA6IHB1YmxpYyBpbmZfcHRyYWNlX3RhcmdldAogCiAgIHB0aWRfdCB3YWl0 IChwdGlkX3QsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqLCB0YXJnZXRf d2FpdF9mbGFncykgb3ZlcnJpZGU7CiAKKyAgc3RkOjpzdHJpbmcgcGlkX3Rv X3N0ciAocHRpZF90KSBvdmVycmlkZTsKKwogICAvKiBGb3JrIGRldGVjdGlv biByZWxhdGVkIGZ1bmN0aW9ucywgRm9yIGFkZGluZyBtdWx0aSBwcm9jZXNz IGRlYnVnZ2luZwogICAgICBzdXBwb3J0LiAgKi8KICAgdm9pZCBmb2xsb3df Zm9yayAoaW5mZXJpb3IgKiwgcHRpZF90LCB0YXJnZXRfd2FpdGtpbmQsIGJv b2wsIGJvb2wpIG92ZXJyaWRlOwpAQCAtNjE5LDYgKzYyMSwxNCBAQCByczYw MDBfbmF0X3RhcmdldDo6eGZlcl9wYXJ0aWFsIChlbnVtIHRhcmdldF9vYmpl Y3Qgb2JqZWN0LAogICAgIH0KIH0KIAorc3RkOjpzdHJpbmcgCityczYwMDBf bmF0X3RhcmdldDo6cGlkX3RvX3N0ciAocHRpZF90IHB0aWQpCit7CisgIGlm ICghcHRpZC50aWQgKCkpCisgICAgcmV0dXJuIHN0cmluZ19wcmludGYgKF8o IlByb2Nlc3MgJXMiKSwgcHVsb25nZXN0IChwdGlkLnBpZCAoKSkpOyAKKwor ICByZXR1cm4gc3RyaW5nX3ByaW50ZiAoXygiVGhyZWFkICVzIiksIHB1bG9u Z2VzdCAocHRpZC50aWQgKCkpKTsKK30KIC8qIFdhaXQgZm9yIHRoZSBjaGls ZCBzcGVjaWZpZWQgYnkgUFRJRCB0byBkbyBzb21ldGhpbmcuICBSZXR1cm4g dGhlCiAgICBwcm9jZXNzIElEIG9mIHRoZSBjaGlsZCwgb3IgTUlOVVNfT05F X1BUSUQgaW4gY2FzZSBvZiBlcnJvcjsgc3RvcmUKICAgIHRoZSBzdGF0dXMg aW4gKk9VUlNUQVRVUy4gICovCmRpZmYgLS1naXQgYS9nZGIvc29saWItYWl4 LmMgYi9nZGIvc29saWItYWl4LmMKaW5kZXggZjQ4M2Y1NGRlMTMuLjc0Njc2 Y2JmYTUwIDEwMDY0NAotLS0gYS9nZGIvc29saWItYWl4LmMKKysrIGIvZ2Ri L3NvbGliLWFpeC5jCkBAIC01NTAsNiArNTUwLDEwIEBAIHNvbGliX2FpeF9p bl9keW5zeW1fcmVzb2x2ZV9jb2RlIChDT1JFX0FERFIgcGMpCiAgIHJldHVy biAwOwogfQogCisvKiBGb3IgbXVsdGkgaW5mZXJpb3JzLCBwb3N0IG9iamVj dCBmaWxlIG5hbWUgY2hhbmdlCisgICB3ZSBzdG9yZSB0aGUgbmV3IG5hbWVz IGluIHRoaXMgdmVjdG9yLiAgKi8KK3N0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n PiBhaXhfc2xpYl9uYW1lOworCiAvKiBJbXBsZW1lbnQgdGhlICJiZmRfb3Bl biIgdGFyZ2V0X3NvX29wcyBtZXRob2QuICAqLwogCiBzdGF0aWMgZ2RiX2Jm ZF9yZWZfcHRyCkBAIC02MTgsNiArNjIyLDE2IEBAIHNvbGliX2FpeF9iZmRf b3BlbiAoY29uc3QgY2hhciAqcGF0aG5hbWUpCiAgICAgICBpZiAobWVtYmVy X25hbWUgPT0gYmZkX2dldF9maWxlbmFtZSAob2JqZWN0X2JmZC5nZXQgKCkp KQogCWJyZWFrOwogCisgICAgICBzdGQ6OnN0cmluZyBzID0gYmZkX2dldF9m aWxlbmFtZSAob2JqZWN0X2JmZC5nZXQgKCkpOworICAgICAgYXV0byBpdCA9 IGFpeF9zbGliX25hbWUuYmVnaW4gKCk7CisgICAgICB3aGlsZSAoaXQgIT0g YWl4X3NsaWJfbmFtZS5lbmQgKCkpCisgICAgICB7CisJc3RkOjpzdHJpbmcg czEgPSAqaXQ7CisJaWYgKHMxLmNvbXBhcmUocykgPT0gMCkKKwkgIHJldHVy biBvYmplY3RfYmZkOworCWl0Kys7CisgICAgICB9CisKICAgICAgIG9iamVj dF9iZmQgPSBnZGJfYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYXJj aGl2ZV9iZmQuZ2V0ICgpLAogCQkJCQkJICAgICBvYmplY3RfYmZkLmdldCAo KSk7CiAgICAgfQpAQCAtNjQ0LDYgKzY1OCw3IEBAIHNvbGliX2FpeF9iZmRf b3BlbiAoY29uc3QgY2hhciAqcGF0aG5hbWUpCiAgIHN0ZDo6c3RyaW5nIGZu YW1lID0gc3RyaW5nX3ByaW50ZiAoIiVzJXMiLAogCQkJCSAgICAgYmZkX2dl dF9maWxlbmFtZSAoYXJjaGl2ZV9iZmQuZ2V0ICgpKSwKIAkJCQkgICAgIHNl cCk7CisgIGFpeF9zbGliX25hbWUucHVzaF9iYWNrIChmbmFtZSk7CiAgIGJm ZF9zZXRfZmlsZW5hbWUgKG9iamVjdF9iZmQuZ2V0ICgpLCBmbmFtZS5jX3N0 ciAoKSk7CiAKICAgcmV0dXJuIG9iamVjdF9iZmQ7Ci0tIAoyLjMxLjEKCg== --_004_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_--