From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id aDQwKXvi02M/3CIAWB0awg (envelope-from ) for ; Fri, 27 Jan 2023 09:40:59 -0500 Received: by simark.ca (Postfix, from userid 112) id A4F881E128; Fri, 27 Jan 2023 09:40:59 -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=CrxHmWkk; 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=-8.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (server2.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 C21241E110 for ; Fri, 27 Jan 2023 09:40:58 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6C3A13857365 for ; Fri, 27 Jan 2023 14:40:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6C3A13857365 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1674830458; bh=YOMSYupX6OPXJXNYlsRUxR0r2KQQ3amJ8MpOZ6IoJis=; 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=CrxHmWkkrdz4pZPVYuQxgWMcNveYUbN/h62/9hd0HctlQODeZKx7djmGHhm/meP4L mYi/t+t1q08qS054tQQ8YLZZu0uxhWZgm0q+O0PkGxOp3bJQZ7KATcw5WS1g9KP7eA MeHwd3vJHXHipviDRlEr0NYZawnmdgZiyR3hBTJU= 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 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 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 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-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_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 >From 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"? >From 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 --_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 RnJvbSAxNzgzYmUxYzkxNjE0NzlhMTU4YTRlNTJkZDA2NjNmNDVlNmI5MmU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFkaGFyIEthbWF0aCA8QWRpdHlhLkthbWF0 aDFAaWJtLmNvbT4KRGF0ZTogRnJpLCAyNyBKYW4gMjAyMyAwODoxOTo1NiAtMDYwMApTdWJqZWN0 OiBbUEFUQ0hdIEZpeCBtdWx0aS10aHJlYWQgZGVidWcgYnVnIGluIEFJWAoKLS0tCiBnZGIvYWl4 LXRocmVhZC5jICAgICB8IDE4OSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tCiBnZGIvcnM2MDAwLWFpeC1uYXQuYyB8ICAxMCArKysKIGdkYi9zb2xpYi1haXguYyAg ICAgIHwgIDE1ICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDczIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9haXgtdGhyZWFkLmMgYi9nZGIvYWl4LXRocmVh ZC5jCmluZGV4IGU1NTZjMTUzNTc2Li5jNjIzMWU5MmY5MSAxMDA2NDQKLS0tIGEvZ2RiL2FpeC10 aHJlYWQuYworKysgYi9nZGIvYWl4LXRocmVhZC5jCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVk ZSA8c3lzL3JlZy5oPgogI2luY2x1ZGUgPHNjaGVkLmg+CiAjaW5jbHVkZSA8c3lzL3B0aGRlYnVn Lmg+CisjaW5jbHVkZSA8bWFwPgogCiAjaWYgIUhBVkVfREVDTF9HRVRUSFJEUwogZXh0ZXJuIGlu dCBnZXR0aHJkcyAocGlkX3QsIHN0cnVjdCB0aHJkc2luZm82NCAqLCBpbnQsIHRpZF90ICosIGlu dCk7CkBAIC03MCw3ICs3MSw3IEBAIHN0YXRpYyBib29sIGRlYnVnX2FpeF90aHJlYWQ7CiAKIC8q IFJldHVybiB3aGV0aGVyIHRvIHRyZWF0IFBJRCBhcyBhIGRlYnVnZ2FibGUgdGhyZWFkIGlkLiAg Ki8KIAotI2RlZmluZSBQRF9USUQocHRpZCkJKHBkX2FjdGl2ZSAmJiBwdGlkLnRpZCAoKSAhPSAw KQorI2RlZmluZSBQRF9USUQocHRpZCkJKHRtYXBbcHRpZC5waWQgKCldLnBkX2FjdGl2ZSAmJiBw dGlkLnRpZCAoKSAhPSAwKQogCiAvKiBTdWNjZXNzIGFuZCBmYWlsdXJlIHZhbHVlcyByZXR1cm5l ZCBieSBwdGhkYiBjYWxsYmFja3MuICAqLwogCkBAIC0xNDksMTQgKzE1MCw2IEBAIHN0YXRpYyBh aXhfdGhyZWFkX3RhcmdldCBhaXhfdGhyZWFkX29wczsKIAogc3RhdGljIENPUkVfQUREUiBwZF9i cmtfYWRkcjsKIAotLyogV2hldGhlciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBpcyBkZWJ1Z2dh YmxlIGJ5IHB0aGRiLiAgKi8KLQotc3RhdGljIGludCBwZF9hYmxlID0gMDsKLQotLyogV2hldGhl ciBhIHRocmVhZGVkIGFwcGxpY2F0aW9uIGlzIGJlaW5nIGRlYnVnZ2VkLiAgKi8KLQotc3RhdGlj IGludCBwZF9hY3RpdmUgPSAwOwotCiAvKiBXaGV0aGVyIHRoZSBjdXJyZW50IGFyY2hpdGVjdHVy ZSBpcyA2NC1iaXQuICAKICAgIE9ubHkgdmFsaWQgd2hlbiBwZF9hYmxlIGlzIHRydWUuICAqLwog CkBAIC0xOTEsOSArMTg0LDIxIEBAIHN0YXRpYyBwdGhkYl9jYWxsYmFja3NfdCBwZF9jYWxsYmFj a3MgPSB7CiAgIE5VTEwKIH07CiAKLS8qIEN1cnJlbnQgcHRoZGIgc2Vzc2lvbi4gICovCisvKiBB aXggdmFyaWFibGUgc3RydWN0dXJlLiAgKi8KK3N0cnVjdCBhaXhfdGhyZWFkX3ZhcmlhYmxlcyAK K3sKKyAgLyogV2hldGhlciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBpcyBkZWJ1Z2dhYmxlIGJ5 IHB0aGRiLiAgKi8KKyAgaW50IHBkX2FibGU7CiAKLXN0YXRpYyBwdGhkYl9zZXNzaW9uX3QgcGRf c2Vzc2lvbjsKKyAgLyogV2hldGhlciBhIHRocmVhZGVkIGFwcGxpY2F0aW9uIGlzIGJlaW5nIGRl YnVnZ2VkLiAgKi8KKyAgaW50IHBkX2FjdGl2ZTsKKworICAvKiBDdXJyZW50IHB0aGRiIHNlc3Np b24uICAqLworICBwdGhkYl9zZXNzaW9uX3QgcGRfc2Vzc2lvbjsKK307CisKKy8qIENvbGxlY3Rp b24gb2YgQWl4IHZhcmlhYmxlcyBwZXIgaW5mZXJpb3IuICAqLworc3RhdGljIHN0ZDo6bWFwPHBp ZF90LCBhaXhfdGhyZWFkX3ZhcmlhYmxlcz4gdG1hcDsKIAogLyogUmV0dXJuIGEgcHJpbnRhYmxl IHJlcHJlc2VudGF0aW9uIG9mIHB0aGRlYnVnIGZ1bmN0aW9uIHJldHVybgogICAgU1RBVFVTLiAg Ki8KQEAgLTUwOCwxNCArNTEzLDEzIEBAIHBkY19yZWFkX2RhdGEgKHB0aGRiX3VzZXJfdCB1c2Vy X2N1cnJlbnRfcGlkLCB2b2lkICpidWYsCiAgIC8qIFRoaXMgaXMgbmVlZGVkIHRvIGVsaW1pbmF0 ZSB0aGUgZGVwZW5kZW5jeSBvZiBjdXJyZW50IHRocmVhZAogICAgICB3aGljaCBpcyBudWxsIHNv IHRoYXQgdGhyZWFkIHJlYWRzIHRoZSBjb3JyZWN0IHRhcmdldCBtZW1vcnkuICAqLwogICB7Ci0g ICAgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQgcmVzdG9yZV9jdXJyZW50X3RocmVhZDsK KyAgICBzY29wZWRfcmVzdG9yZSBzYXZlX2luZmVyaW9yX3B0aWQgPSBtYWtlX3Njb3BlZF9yZXN0 b3JlICgmaW5mZXJpb3JfcHRpZCk7CiAgICAgLyogQmVmb3JlIHRoZSBmaXJzdCBpbmZlcmlvciBp cyBhZGRlZCwgd2UgcGFzcyBpbmZlcmlvcl9wdGlkLnBpZCAoKQogICAgICAgIGZyb20gcGRfZW5h YmxlICgpIHdoaWNoIGlzIDAuICBUaGVyZSBpcyBubyBuZWVkIHRvIHN3aXRjaCB0aHJlYWRzCiAg ICAgICAgZHVyaW5nIGZpcnN0IGluaXRpYWxpc2F0aW9uLiAgSW4gdGhlIHJlc3Qgb2YgdGhlIGNh bGxiYWNrcyB0aGUKICAgICAgICBjdXJyZW50IHRocmVhZCBuZWVkcyB0byBiZSBjb3JyZWN0LiAg Ki8KICAgICBpZiAodXNlcl9jdXJyZW50X3BpZCAhPSAwKQotICAgICAgc3dpdGNoX3RvX3RocmVh ZCAoY3VycmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksCi0JCQlwdGlkX3QgKHVz ZXJfY3VycmVudF9waWQpKTsKKyAgICAgIGluZmVyaW9yX3B0aWQgPSBwdGlkX3QgKHVzZXJfY3Vy cmVudF9waWQpOwogICAgIHN0YXR1cyA9IHRhcmdldF9yZWFkX21lbW9yeSAoYWRkciwgKGdkYl9i eXRlICopIGJ1ZiwgbGVuKTsKICAgfQogICByZXQgPSBzdGF0dXMgPT0gMCA/IFBEQ19TVUNDRVNT IDogUERDX0ZBSUxVUkU7CkBAIC02MzksMzYgKzY0MywzMiBAQCBwY21wIChjb25zdCB2b2lkICpw MXYsIGNvbnN0IHZvaWQgKnAydikKICAgcmV0dXJuIHAxLT5wdGhpZCA8IHAyLT5wdGhpZCA/IC0x IDogcDEtPnB0aGlkID4gcDItPnB0aGlkOwogfQogCi0vKiBpdGVyYXRlX292ZXJfdGhyZWFkcygp IGNhbGxiYWNrIGZvciBjb3VudGluZyBHREIgdGhyZWFkcy4KLQotICAgRG8gbm90IGNvdW50IHRo ZSBtYWluIHRocmVhZCAod2hvc2UgdGlkIGlzIHplcm8pLiAgVGhpcyBtYXRjaGVzCi0gICB0aGUg bGlzdCBvZiB0aHJlYWRzIHByb3ZpZGVkIGJ5IHRoZSBwdGhyZWFkZGVidWcgbGlicmFyeSwgd2hp Y2gKLSAgIGRvZXMgbm90IGluY2x1ZGUgdGhhdCBtYWluIHRocmVhZCBlaXRoZXIsIGFuZCB0aHVz IGFsbG93cyB1cwotICAgdG8gY29tcGFyZSB0aGUgdHdvIGxpc3RzLiAgKi8KKy8qIENhbGxiYWNr IGZvciBjb3VudGluZyBHREIgdGhyZWFkcyBmb3IgcHJvY2VzcyBwaWQuICAqLwogCiBzdGF0aWMg aW50Ci1naXRlcl9jb3VudCAoc3RydWN0IHRocmVhZF9pbmZvICp0aHJlYWQsIHZvaWQgKmNvdW50 cCkKK2dpdGVyX2NvdW50IChwaWRfdCBwaWQpCiB7Ci0gIGlmIChQRF9USUQgKHRocmVhZC0+cHRp ZCkpCi0gICAgKCooaW50ICopIGNvdW50cCkrKzsKLSAgcmV0dXJuIDA7CisgIGludCBnY291bnQg PSAwOworICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAorICAgID0gY3VycmVu dF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCk7CisgIGZvciAodGhyZWFkX2luZm8gKnRw IDogYWxsX3RocmVhZHMgKHByb2NfdGFyZ2V0LCBwdGlkX3QgKHBpZCkpKQorICAgIGdjb3VudCsr OworICByZXR1cm4gZ2NvdW50OwogfQogCi0vKiBpdGVyYXRlX292ZXJfdGhyZWFkcygpIGNhbGxi YWNrIGZvciBhY2N1bXVsYXRpbmcgR0RCIHRocmVhZCBwaWRzLgotCi0gICBEbyBub3QgaW5jbHVk ZSB0aGUgbWFpbiB0aHJlYWQgKHdob3NlIHRpZCBpcyB6ZXJvKS4gIFRoaXMgbWF0Y2hlcwotICAg dGhlIGxpc3Qgb2YgdGhyZWFkcyBwcm92aWRlZCBieSB0aGUgcHRocmVhZGRlYnVnIGxpYnJhcnks IHdoaWNoCi0gICBkb2VzIG5vdCBpbmNsdWRlIHRoYXQgbWFpbiB0aHJlYWQgZWl0aGVyLCBhbmQg dGh1cyBhbGxvd3MgdXMKLSAgIHRvIGNvbXBhcmUgdGhlIHR3byBsaXN0cy4gICovCisvKiBDYWxs YmFjayBmb3IgYWNjdW11bGF0aW5nIEdEQiB0aHJlYWQgcGlkcy4gICovCiAKIHN0YXRpYyBpbnQK LWdpdGVyX2FjY3VtIChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRocmVhZCwgdm9pZCAqYnVmcCkKK2dp dGVyX2FjY3VtICh2b2lkICpidWZwLCBwaWRfdCBwaWQpCiB7Ci0gIGlmIChQRF9USUQgKHRocmVh ZC0+cHRpZCkpCi0gICAgewotICAgICAgKiooc3RydWN0IHRocmVhZF9pbmZvICoqKikgYnVmcCA9 IHRocmVhZDsKLSAgICAgICgqKHN0cnVjdCB0aHJlYWRfaW5mbyAqKiopIGJ1ZnApKys7Ci0gICAg fQorICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAorICAgID0gY3VycmVudF9p bmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCk7CisgIGZvciAodGhyZWFkX2luZm8gKnRwIDog YWxsX3RocmVhZHMgKHByb2NfdGFyZ2V0LCBwdGlkX3QgKHBpZCkpKQorICB7CisgICAgKiooc3Ry dWN0IHRocmVhZF9pbmZvICoqKikgYnVmcCA9IHRwOworICAgICgqKHN0cnVjdCB0aHJlYWRfaW5m byAqKiopIGJ1ZnApKys7CisgIH0KKwogICByZXR1cm4gMDsKIH0KIApAQCAtNzE5LDcgKzcxOSwx MCBAQCBnZXRfc2lnbmFsZWRfdGhyZWFkIChpbnQgcGlkKQogCQkgICAgc2l6ZW9mICh0aHJpbmYp LCAma3RpZCwgMSkgIT0gMSkKIAlicmVhazsKIAotICAgICAgaWYgKHRocmluZi50aV9jdXJzaWcg PT0gU0lHVFJBUCkKKyAgICAgIC8qIFdlIGFsc28gbmVlZCB0byBrZWVwIGluIG1pbmQgVHJhcCBh bmQgaW50ZXJydXB0IG9yIGFueQorICAgICAgICAgc2lnbmFsIHRoYXQgbmVlZHMgdG8gYmUgaGFu ZGxlZCBpbiBwZF91cGRhdGUgKCkuICAqLworCisgICAgICBpZiAodGhyaW5mLnRpX2N1cnNpZykK IAlyZXR1cm4gdGhyaW5mLnRpX3RpZDsKICAgICB9CiAKQEAgLTc1MCw2ICs3NTMsOSBAQCBzeW5j X3RocmVhZGxpc3RzIChpbnQgcGlkKQogICBwdGhkYl9wdGhyZWFkX3QgcGR0aWQ7CiAgIHB0aHJl YWRfdCBwdGhpZDsKICAgcHRoZGJfdGlkX3QgdGlkOworICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0 ICpwcm9jX3RhcmdldAorICAgICAgICAgICAgPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNz X3RhcmdldCAoKTsKKyAgdGhyZWFkX2luZm8gICp0cDsKIAogICAvKiBBY2N1bXVsYXRlIGFuIGFy cmF5IG9mIGxpYnB0aGRlYnVnIHRocmVhZHMgc29ydGVkIGJ5IHB0aHJlYWQgaWQuICAqLwogCkBA IC03NTksMTEgKzc2NSwxMSBAQCBzeW5jX3RocmVhZGxpc3RzIChpbnQgcGlkKQogCiAgIGZvciAo Y21kID0gUFRIREJfTElTVF9GSVJTVDs7IGNtZCA9IFBUSERCX0xJU1RfTkVYVCkKICAgICB7Ci0g ICAgICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkIChwZF9zZXNzaW9uLCAmcGR0aWQsIGNtZCk7Cisg ICAgICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkICh0bWFwW3BpZF0ucGRfc2Vzc2lvbiwgJnBkdGlk LCBjbWQpOwogICAgICAgaWYgKHN0YXR1cyAhPSBQVEhEQl9TVUNDRVNTIHx8IHBkdGlkID09IFBU SERCX0lOVkFMSURfUFRIUkVBRCkKIAlicmVhazsKIAotICAgICAgc3RhdHVzID0gcHRoZGJfcHRo cmVhZF9wdGlkIChwZF9zZXNzaW9uLCBwZHRpZCwgJnB0aGlkKTsKKyAgICAgIHN0YXR1cyA9IHB0 aGRiX3B0aHJlYWRfcHRpZCAodG1hcFtwaWRdLnBkX3Nlc3Npb24sIHBkdGlkLCAmcHRoaWQpOwog ICAgICAgaWYgKHN0YXR1cyAhPSBQVEhEQl9TVUNDRVNTIHx8IHB0aGlkID09IFBUSERCX0lOVkFM SURfUFRJRCkKIAljb250aW51ZTsKIApAQCAtNzgwLDcgKzc4Niw3IEBAIHN5bmNfdGhyZWFkbGlz dHMgKGludCBwaWQpCiAKICAgZm9yIChwaSA9IDA7IHBpIDwgcGNvdW50OyBwaSsrKQogICAgIHsK LSAgICAgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfdGlkIChwZF9zZXNzaW9uLCBwYnVmW3BpXS5w ZHRpZCwgJnRpZCk7CisgICAgICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX3RpZCAodG1hcFtwaWRd LnBkX3Nlc3Npb24sIHBidWZbcGldLnBkdGlkLCAmdGlkKTsKICAgICAgIGlmIChzdGF0dXMgIT0g UFRIREJfU1VDQ0VTUykKIAl0aWQgPSBQVEhEQl9JTlZBTElEX1RJRDsKICAgICAgIHBidWZbcGld LnRpZCA9IHRpZDsKQEAgLTc5MCwxMCArNzk2LDExIEBAIHN5bmNfdGhyZWFkbGlzdHMgKGludCBw aWQpCiAKICAgLyogQWNjdW11bGF0ZSBhbiBhcnJheSBvZiBHREIgdGhyZWFkcyBzb3J0ZWQgYnkg cGlkLiAgKi8KIAotICBnY291bnQgPSAwOwotICBpdGVyYXRlX292ZXJfdGhyZWFkcyAoZ2l0ZXJf Y291bnQsICZnY291bnQpOworICAvKiBnY291bnQgaXMgR0RCIHRocmVhZCBjb3VudCBhbmQgcGNv dW50IGlzIHB0aHJlYWRsaWIgdGhyZWFkIGNvdW50LiAgKi8KKworICBnY291bnQgPSBnaXRlcl9j b3VudCAocGlkKTsKICAgZyA9IGdidWYgPSBYTkVXVkVDIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiwg Z2NvdW50KTsKLSAgaXRlcmF0ZV9vdmVyX3RocmVhZHMgKGdpdGVyX2FjY3VtLCAmZyk7CisgIGdp dGVyX2FjY3VtICgmZywgcGlkKTsKICAgcXNvcnQgKGdidWYsIGdjb3VudCwgc2l6ZW9mICpnYnVm LCBnY21wKTsKIAogICAvKiBBcHBseSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gYXJyYXlz IHRvIEdEQidzIHRocmVhZCBsaXN0LiAgKi8KQEAgLTgxMCw4ICs4MTcsNiBAQCBzeW5jX3RocmVh ZGxpc3RzIChpbnQgcGlkKQogCSAgcHJpdi0+cGR0aWQgPSBwYnVmW3BpXS5wZHRpZDsKIAkgIHBy aXYtPnRpZCA9IHBidWZbcGldLnRpZDsKIAotCSAgcHJvY2Vzc19zdHJhdHVtX3RhcmdldCAqcHJv Y190YXJnZXQKLQkgICAgPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAoKTsK IAkgIHRocmVhZCA9IGFkZF90aHJlYWRfd2l0aF9pbmZvIChwcm9jX3RhcmdldCwKIAkJCQkJIHB0 aWRfdCAocGlkLCAwLCBwYnVmW3BpXS5wdGhpZCksCiAJCQkJCSBwcml2KTsKQEAgLTgzMCw2ICs4 MzUsMjMgQEAgc3luY190aHJlYWRsaXN0cyAoaW50IHBpZCkKIAogCSAgY21wX3Jlc3VsdCA9IHB0 aWRfY21wIChwcHRpZCwgZ3B0aWQpOwogCisJICAvKiBJZiB0aGVyZSBpcyBvbmx5IG9uZSB0aHJl YWQgdGhlbiB3ZSBuZWVkIG5vdCBtYWtlIHRoZSBtYWluIAorCSAgICAgdGhyZWFkIGxvb2sgbGlr ZSBhIHRocmVhZC4gIEl0IGNhbiBzdGF5IGFzIGEgcHJvY2Vzcy4gVGhpcworCSAgICAgaXMgdXNl ZnVsIHdoZW4gd2UgaGF2ZSBtdWx0aXBsZSBpbmZlcmlvcnMsIGJ1dCBvbmx5IG9uZSBpcworCSAg ICAgdGhyZWFkZWQuICBTbyB3ZSBuZWVkIG5vdCBtYWtlIHRoZSBvdGhlciBpbmZlcmlvcnMgd2l0 aCBvbmx5CisJICAgICBtYWluIHRocmVhZCwgbG9vayBsaWtlIGEgdGhyZWFkZWQgb25lLiAgRm9y IGV4YW1wbGUsIFRocmVhZAorCSAgICAgMS4xLCAxLjIsIDIuMSwgMy4xIGV4aXN0cyB0aGVuIGl0 IGlzIHVzZWZ1bCB0byBza2lwIHRoaXMgZm9yCisJICAgICBsb29wIGZvciAyLjEgYW5kIDMuMSBs ZWF2aW5nIHRoZW0gYXMgbWFpbiBwcm9jZXNzIHRocmVhZCB3aXRoCisJICAgICBhIGR1bW15IHBy aXYgc2V0LiAgKi8KKworCSAgaWYgKHBjb3VudCA9PSAxICYmIGdjb3VudCA9PSAxKQorCSAgewor CSAgICBhaXhfdGhyZWFkX2luZm8gKnByaXYgPSBuZXcgYWl4X3RocmVhZF9pbmZvOworCSAgICB0 cCA9IGZpbmRfdGhyZWFkX3B0aWQgKHByb2NfdGFyZ2V0LCBncHRpZCk7CisJICAgIHRwLT5wcml2 LnJlc2V0IChwcml2KTsKKwkgICAgYnJlYWs7CisJICB9CisKIAkgIGlmIChjbXBfcmVzdWx0ID09 IDApCiAJICAgIHsKIAkgICAgICBhaXhfdGhyZWFkX2luZm8gKnByaXYgPSBnZXRfYWl4X3RocmVh ZF9pbmZvIChnYnVmW2dpXSk7CkBAIC04NDEsOCArODYzLDI1IEBAIHN5bmNfdGhyZWFkbGlzdHMg KGludCBwaWQpCiAJICAgIH0KIAkgIGVsc2UgaWYgKGNtcF9yZXN1bHQgPiAwKQogCSAgICB7Ci0J ICAgICAgZGVsZXRlX3RocmVhZCAoZ2J1ZltnaV0pOwotCSAgICAgIGdpKys7CisJICAgICAgLyog VGhpcyBpcyB0byBtYWtlIHRoZSBtYWluIHByb2Nlc3MgdGhyZWFkIG5vdyBsb29rCisJCSBsaWtl IGEgdGhyZWFkLiAgKi8KKworCSAgICAgIGlmIChncHRpZC5pc19waWQgKCkgJiYgZ3B0aWQucGlk ICgpID09IHBwdGlkLnBpZCAoKSkKKwkgICAgICB7CisJCXRocmVhZF9jaGFuZ2VfcHRpZCAocHJv Y190YXJnZXQsIGdwdGlkLCBwcHRpZCk7CisJCWFpeF90aHJlYWRfaW5mbyAqcHJpdiA9IG5ldyBh aXhfdGhyZWFkX2luZm87CisJCXByaXYtPnBkdGlkID0gcGJ1ZltwaV0ucGR0aWQ7CisJCXByaXYt PnRpZCA9IHBidWZbcGldLnRpZDsKKwkJdHAgPSBmaW5kX3RocmVhZF9wdGlkIChwcm9jX3Rhcmdl dCwgcHB0aWQpOworCQl0cC0+cHJpdi5yZXNldCAocHJpdik7CisJCXBpKys7CisJCWdpKys7CisJ ICAgICAgfQorCSAgICAgIGVsc2UKKwkgICAgICB7CisJCWRlbGV0ZV90aHJlYWQgKGdidWZbZ2ld KTsKKwkJZ2krKzsKKwkgICAgICB9CiAJICAgIH0KIAkgIGVsc2UKIAkgICAgewpAQCAtODg4LDEw ICs5MjcsMTAgQEAgcGRfdXBkYXRlIChpbnQgcGlkKQogICBwdGhkYl90aWRfdCB0aWQ7CiAgIHN0 cnVjdCB0aHJlYWRfaW5mbyAqdGhyZWFkID0gTlVMTDsKIAotICBpZiAoIXBkX2FjdGl2ZSkKKyAg aWYgKCF0bWFwW3BpZF0ucGRfYWN0aXZlKQogICAgIHJldHVybiBwdGlkX3QgKHBpZCk7CiAKLSAg c3RhdHVzID0gcHRoZGJfc2Vzc2lvbl91cGRhdGUgKHBkX3Nlc3Npb24pOworICBzdGF0dXMgPSBw dGhkYl9zZXNzaW9uX3VwZGF0ZSAodG1hcFtwaWRdLnBkX3Nlc3Npb24pOwogICBpZiAoc3RhdHVz ICE9IFBUSERCX1NVQ0NFU1MpCiAgICAgcmV0dXJuIHB0aWRfdCAocGlkKTsKIApAQCAtOTIxLDEy ICs5NjAsMTIgQEAgcGRfYWN0aXZhdGUgKGludCBwaWQpCiAJCQogICBzdGF0dXMgPSBwdGhkYl9z ZXNzaW9uX2luaXQgKHBpZCwgYXJjaDY0ID8gUEVNXzY0QklUIDogUEVNXzMyQklULAogCQkJICAg ICAgIFBUSERCX0ZMQUdfUkVHUywgJnBkX2NhbGxiYWNrcywgCi0JCQkgICAgICAgJnBkX3Nlc3Np b24pOworCQkJICAgICAgICZ0bWFwW3BpZF0ucGRfc2Vzc2lvbik7CiAgIGlmIChzdGF0dXMgIT0g UFRIREJfU1VDQ0VTUykKICAgICB7CiAgICAgICByZXR1cm4gcHRpZF90IChwaWQpOwogICAgIH0K LSAgcGRfYWN0aXZlID0gMTsKKyAgdG1hcFtwaWRdLnBkX2FjdGl2ZSA9IDE7CiAgIHJldHVybiBw ZF91cGRhdGUgKHBpZCk7CiB9CiAKQEAgLTkzNSwxMiArOTc0LDEyIEBAIHBkX2FjdGl2YXRlIChp bnQgcGlkKQogc3RhdGljIHZvaWQKIHBkX2RlYWN0aXZhdGUgKHZvaWQpCiB7Ci0gIGlmICghcGRf YWN0aXZlKQorICBpZiAoIXRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBkX2FjdGl2ZSkKICAg ICByZXR1cm47Ci0gIHB0aGRiX3Nlc3Npb25fZGVzdHJveSAocGRfc2Vzc2lvbik7CisgIHB0aGRi X3Nlc3Npb25fZGVzdHJveSAodG1hcFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfc2Vzc2lvbik7 CiAgIAogICBwaWRfdG9fcHJjICgmaW5mZXJpb3JfcHRpZCk7Ci0gIHBkX2FjdGl2ZSA9IDA7Cisg IHRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCldLnBkX2FjdGl2ZSA9IDA7CiB9CiAKIC8qIEFuIG9i amVjdCBmaWxlIGhhcyBqdXN0IGJlZW4gbG9hZGVkLiAgQ2hlY2sgd2hldGhlciB0aGUgY3VycmVu dApAQCAtOTUzLDggKzk5MiwxNSBAQCBwZF9lbmFibGUgKHZvaWQpCiAgIGNoYXIgKnN0dWJfbmFt ZTsKICAgc3RydWN0IGJvdW5kX21pbmltYWxfc3ltYm9sIG1zOwogCisgIC8qIENyZWF0ZSBzZXQg b2YgdmFyaWFibGVzIGZvciB0aGlzIGluZmVyaW9yLiAgKi8KKyAgaWYgKHRtYXAuZmluZCAoaW5m ZXJpb3JfcHRpZC5waWQgKCkpID09IHRtYXAuZW5kICgpKQorICB7CisgICAgc3RydWN0IGFpeF90 aHJlYWRfdmFyaWFibGVzIHogPSB7MCwgMH07CisgICAgdG1hcC5pbnNlcnQgKHtpbmZlcmlvcl9w dGlkLnBpZCAoKSwgen0pOworICB9CisKICAgLyogRG9uJ3QgaW5pdGlhbGl6ZSB0d2ljZS4gICov Ci0gIGlmIChwZF9hYmxlKQorICBpZiAodG1hcFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfYWJs ZSkKICAgICByZXR1cm47CiAKICAgLyogQ2hlY2sgYXBwbGljYXRpb24gd29yZCBzaXplLiAgKi8K QEAgLTk3OCw3ICsxMDI0LDcgQEAgcGRfZW5hYmxlICh2b2lkKQogCiAgIC8qIFByZXBhcmUgZm9y IHRocmVhZCBkZWJ1Z2dpbmcuICAqLwogICBjdXJyZW50X2luZmVyaW9yICgpLT5wdXNoX3Rhcmdl dCAoJmFpeF90aHJlYWRfb3BzKTsKLSAgcGRfYWJsZSA9IDE7CisgIHRtYXBbaW5mZXJpb3JfcHRp ZC5waWQgKCldLnBkX2FibGUgPSAxOyAKIAogICAvKiBJZiB3ZSdyZSBkZWJ1Z2dpbmcgYSBjb3Jl IGZpbGUgb3IgYW4gYXR0YWNoZWQgaW5mZXJpb3IsIHRoZQogICAgICBwdGhyZWFkIGxpYnJhcnkg bWF5IGFscmVhZHkgaGF2ZSBiZWVuIGluaXRpYWxpemVkLCBzbyB0cnkgdG8KQEAgLTk5MSwyOCAr MTAzNywyNSBAQCBwZF9lbmFibGUgKHZvaWQpCiBzdGF0aWMgdm9pZAogcGRfZGlzYWJsZSAodm9p ZCkKIHsKLSAgaWYgKCFwZF9hYmxlKQorICBpZiAoIXRtYXBbaW5mZXJpb3JfcHRpZC5waWQgKCld LnBkX2FibGUpCiAgICAgcmV0dXJuOwotICBpZiAocGRfYWN0aXZlKQorICBpZiAodG1hcFtpbmZl cmlvcl9wdGlkLnBpZCAoKV0ucGRfYWN0aXZlKQogICAgIHBkX2RlYWN0aXZhdGUgKCk7Ci0gIHBk X2FibGUgPSAwOworICB0bWFwW2luZmVyaW9yX3B0aWQucGlkICgpXS5wZF9hYmxlID0gMDsKICAg Y3VycmVudF9pbmZlcmlvciAoKS0+dW5wdXNoX3RhcmdldCAoJmFpeF90aHJlYWRfb3BzKTsKKyAg dG1hcC5lcmFzZSAoaW5mZXJpb3JfcHRpZC5waWQgKCkpOwogfQogCiAvKiBuZXdfb2JqZmlsZSBv YnNlcnZlciBjYWxsYmFjay4KIAogICAgSWYgT0JKRklMRSBpcyBub24tbnVsbCwgY2hlY2sgd2hl dGhlciBhIHRocmVhZGVkIGFwcGxpY2F0aW9uIGlzCi0gICBiZWluZyBkZWJ1Z2dlZCwgYW5kIGlm IHNvLCBwcmVwYXJlIGZvciB0aHJlYWQgZGVidWdnaW5nLgotCi0gICBJZiBPQkpGSUxFIGlzIG51 bGwsIHN0b3AgZGVidWdnaW5nIHRocmVhZHMuICAqLworICAgYmVpbmcgZGVidWdnZWQsIGFuZCBp ZiBzbywgcHJlcGFyZSBmb3IgdGhyZWFkIGRlYnVnZ2luZy4gICovCiAKIHN0YXRpYyB2b2lkCiBu ZXdfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiB7CiAgIGlmIChvYmpmaWxlKQog ICAgIHBkX2VuYWJsZSAoKTsKLSAgZWxzZQotICAgIHBkX2Rpc2FibGUgKCk7CiB9CiAKIC8qIEF0 dGFjaCB0byBwcm9jZXNzIHNwZWNpZmllZCBieSBBUkdTLiAgKi8KQEAgLTEwOTYsNyArMTEzOSw3 IEBAIGFpeF90aHJlYWRfdGFyZ2V0Ojp3YWl0IChwdGlkX3QgcHRpZCwgc3RydWN0IHRhcmdldF93 YWl0c3RhdHVzICpzdGF0dXMsCiAgIGdkYl9hc3NlcnQgKHB0aWQuaXNfcGlkICgpKTsKIAogICAv KiBDaGVjayB3aGV0aGVyIGxpYnB0aGRlYnVnIG1pZ2h0IGJlIHJlYWR5IHRvIGJlIGluaXRpYWxp emVkLiAgKi8KLSAgaWYgKCFwZF9hY3RpdmUgJiYgc3RhdHVzLT5raW5kICgpID09IFRBUkdFVF9X QUlUS0lORF9TVE9QUEVECisgIGlmICghdG1hcFtwdGlkLnBpZCAoKV0ucGRfYWN0aXZlICYmIHN0 YXR1cy0+a2luZCAoKSA9PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBFRAogICAgICAgJiYgc3RhdHVz LT5zaWcgKCkgPT0gR0RCX1NJR05BTF9UUkFQKQogICAgIHsKICAgICAgIHByb2Nlc3Nfc3RyYXR1 bV90YXJnZXQgKnByb2NfdGFyZ2V0CkBAIC0xMjMzLDcgKzEyNzYsNyBAQCBmZXRjaF9yZWdzX3Vz ZXJfdGhyZWFkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBwdGhkYl9wdGhyZWFkX3QgcGR0 aWQpCiAgIGlmIChkZWJ1Z19haXhfdGhyZWFkKQogICAgIGdkYl9wcmludGYgKGdkYl9zdGRsb2cs IAogCQkiZmV0Y2hfcmVnc191c2VyX3RocmVhZCAlbHhcbiIsIChsb25nKSBwZHRpZCk7Ci0gIHN0 YXR1cyA9IHB0aGRiX3B0aHJlYWRfY29udGV4dCAocGRfc2Vzc2lvbiwgcGR0aWQsICZjdHgpOwor ICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX2NvbnRleHQgKHRtYXBbaW5mZXJpb3JfcHRpZC5waWQg KCldLnBkX3Nlc3Npb24sIHBkdGlkLCAmY3R4KTsKICAgaWYgKHN0YXR1cyAhPSBQVEhEQl9TVUND RVNTKQogICAgIGVycm9yIChfKCJhaXgtdGhyZWFkOiBmZXRjaF9yZWdpc3RlcnM6IHB0aGRiX3B0 aHJlYWRfY29udGV4dCByZXR1cm5lZCAlcyIpLAogCSAgIHBkX3N0YXR1czJzdHIgKHN0YXR1cykp OwpAQCAtMTUxOCw3ICsxNTYxLDcgQEAgc3RvcmVfcmVnc191c2VyX3RocmVhZCAoY29uc3Qgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgcHRoZGJfcHRocmVhZF90IHBkdGlkKQogCiAgIC8qIFJl dHJpZXZlIHRoZSB0aHJlYWQncyBjdXJyZW50IGNvbnRleHQgZm9yIGl0cyBub24tcmVnaXN0ZXIK ICAgICAgdmFsdWVzLiAgKi8KLSAgc3RhdHVzID0gcHRoZGJfcHRocmVhZF9jb250ZXh0IChwZF9z ZXNzaW9uLCBwZHRpZCwgJmN0eCk7CisgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfY29udGV4dCAo dG1hcFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfc2Vzc2lvbiwgcGR0aWQsICZjdHgpOwogICBp ZiAoc3RhdHVzICE9IFBUSERCX1NVQ0NFU1MpCiAgICAgZXJyb3IgKF8oImFpeC10aHJlYWQ6IHN0 b3JlX3JlZ2lzdGVyczogcHRoZGJfcHRocmVhZF9jb250ZXh0IHJldHVybmVkICVzIiksCiAJICAg cGRfc3RhdHVzMnN0ciAoc3RhdHVzKSk7CkBAIC0xNTc2LDcgKzE2MTksNyBAQCBzdG9yZV9yZWdz X3VzZXJfdGhyZWFkIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBwdGhkYl9wdGhy ZWFkX3QgcGR0aWQpCiAJY3R4LmZwc2NyID0gdG1wX2Zwc2NyOwogICAgIH0KIAotICBzdGF0dXMg PSBwdGhkYl9wdGhyZWFkX3NldGNvbnRleHQgKHBkX3Nlc3Npb24sIHBkdGlkLCAmY3R4KTsKKyAg c3RhdHVzID0gcHRoZGJfcHRocmVhZF9zZXRjb250ZXh0ICh0bWFwW2luZmVyaW9yX3B0aWQucGlk ICgpXS5wZF9zZXNzaW9uLCBwZHRpZCwgJmN0eCk7CiAgIGlmIChzdGF0dXMgIT0gUFRIREJfU1VD Q0VTUykKICAgICBlcnJvciAoXygiYWl4LXRocmVhZDogc3RvcmVfcmVnaXN0ZXJzOiAiCiAJICAg ICAicHRoZGJfcHRocmVhZF9zZXRjb250ZXh0IHJldHVybmVkICVzIiksCkBAIC0xNzQxLDcgKzE3 ODQsNyBAQCBhaXhfdGhyZWFkX3RhcmdldDo6bW91cm5faW5mZXJpb3IgKCkKIHsKICAgdGFyZ2V0 X29wcyAqYmVuZWF0aCA9IHRoaXMtPmJlbmVhdGggKCk7CiAKLSAgcGRfZGVhY3RpdmF0ZSAoKTsK KyAgcGRfZGlzYWJsZSAoKTsKICAgYmVuZWF0aC0+bW91cm5faW5mZXJpb3IgKCk7CiB9CiAKQEAg LTE4MDAsMjQgKzE4NDMsMjQgQEAgYWl4X3RocmVhZF90YXJnZXQ6OmV4dHJhX3RocmVhZF9pbmZv IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRocmVhZCkKICAgICAvKiBpMThuOiBMaWtlICJ0aHJlYWQt aWRlbnRpZmllciAlZCwgW3N0YXRlXSBydW5uaW5nLCBzdXNwZW5kZWQiICovCiAgICAgYnVmLnBy aW50ZiAoXygidGlkICVkIiksIChpbnQpdGlkKTsKIAotICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFk X3N0YXRlIChwZF9zZXNzaW9uLCBwZHRpZCwgJnN0YXRlKTsKKyAgc3RhdHVzID0gcHRoZGJfcHRo cmVhZF9zdGF0ZSAodG1hcFtpbmZlcmlvcl9wdGlkLnBpZCAoKV0ucGRfc2Vzc2lvbiwgcGR0aWQs ICZzdGF0ZSk7CiAgIGlmIChzdGF0dXMgIT0gUFRIREJfU1VDQ0VTUykKICAgICBzdGF0ZSA9IFBT VF9OT1RTVVA7CiAgIGJ1Zi5wcmludGYgKCIsICVzIiwgc3RhdGUyc3RyIChzdGF0ZSkpOwogCi0g IHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfc3VzcGVuZHN0YXRlIChwZF9zZXNzaW9uLCBwZHRpZCwg CisgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfc3VzcGVuZHN0YXRlICh0bWFwW2luZmVyaW9yX3B0 aWQucGlkICgpXS5wZF9zZXNzaW9uLCBwZHRpZCwgCiAJCQkJICAgICAgICZzdXNwZW5kc3RhdGUp OwogICBpZiAoc3RhdHVzID09IFBUSERCX1NVQ0NFU1MgJiYgc3VzcGVuZHN0YXRlID09IFBTU19T VVNQRU5ERUQpCiAgICAgLyogaTE4bjogTGlrZSAiVGhyZWFkLUlkICVkLCBbc3RhdGVdIHJ1bm5p bmcsIHN1c3BlbmRlZCIgKi8KICAgICBidWYucHJpbnRmIChfKCIsIHN1c3BlbmRlZCIpKTsKIAot ICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX2RldGFjaHN0YXRlIChwZF9zZXNzaW9uLCBwZHRpZCwg CisgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfZGV0YWNoc3RhdGUgKHRtYXBbaW5mZXJpb3JfcHRp ZC5waWQgKCldLnBkX3Nlc3Npb24sIHBkdGlkLCAKIAkJCQkgICAgICAmZGV0YWNoc3RhdGUpOwog ICBpZiAoc3RhdHVzID09IFBUSERCX1NVQ0NFU1MgJiYgZGV0YWNoc3RhdGUgPT0gUERTX0RFVEFD SEVEKQogICAgIC8qIGkxOG46IExpa2UgIlRocmVhZC1JZCAlZCwgW3N0YXRlXSBydW5uaW5nLCBk ZXRhY2hlZCIgKi8KICAgICBidWYucHJpbnRmIChfKCIsIGRldGFjaGVkIikpOwogCi0gIHB0aGRi X3B0aHJlYWRfY2FuY2VscGVuZCAocGRfc2Vzc2lvbiwgcGR0aWQsICZjYW5jZWxwZW5kKTsKKyAg cHRoZGJfcHRocmVhZF9jYW5jZWxwZW5kICh0bWFwW2luZmVyaW9yX3B0aWQucGlkICgpXS5wZF9z ZXNzaW9uLCBwZHRpZCwgJmNhbmNlbHBlbmQpOwogICBpZiAoc3RhdHVzID09IFBUSERCX1NVQ0NF U1MgJiYgY2FuY2VscGVuZCkKICAgICAvKiBpMThuOiBMaWtlICJUaHJlYWQtSWQgJWQsIFtzdGF0 ZV0gcnVubmluZywgY2FuY2VsIHBlbmRpbmciICovCiAgICAgYnVmLnByaW50ZiAoXygiLCBjYW5j ZWwgcGVuZGluZyIpKTsKZGlmZiAtLWdpdCBhL2dkYi9yczYwMDAtYWl4LW5hdC5jIGIvZ2RiL3Jz NjAwMC1haXgtbmF0LmMKaW5kZXggMmFjMWY2ZTcwYjYuLmQxZmVjZTZmYWE3IDEwMDY0NAotLS0g YS9nZGIvcnM2MDAwLWFpeC1uYXQuYworKysgYi9nZGIvcnM2MDAwLWFpeC1uYXQuYwpAQCAtOTUs NiArOTUsOCBAQCBjbGFzcyByczYwMDBfbmF0X3RhcmdldCBmaW5hbCA6IHB1YmxpYyBpbmZfcHRy YWNlX3RhcmdldAogCiAgIHB0aWRfdCB3YWl0IChwdGlkX3QsIHN0cnVjdCB0YXJnZXRfd2FpdHN0 YXR1cyAqLCB0YXJnZXRfd2FpdF9mbGFncykgb3ZlcnJpZGU7CiAKKyAgc3RkOjpzdHJpbmcgcGlk X3RvX3N0ciAocHRpZF90KSBvdmVycmlkZTsKKwogICAvKiBGb3JrIGRldGVjdGlvbiByZWxhdGVk IGZ1bmN0aW9ucywgRm9yIGFkZGluZyBtdWx0aSBwcm9jZXNzIGRlYnVnZ2luZwogICAgICBzdXBw b3J0LiAgKi8KICAgdm9pZCBmb2xsb3dfZm9yayAoaW5mZXJpb3IgKiwgcHRpZF90LCB0YXJnZXRf d2FpdGtpbmQsIGJvb2wsIGJvb2wpIG92ZXJyaWRlOwpAQCAtNjE5LDYgKzYyMSwxNCBAQCByczYw MDBfbmF0X3RhcmdldDo6eGZlcl9wYXJ0aWFsIChlbnVtIHRhcmdldF9vYmplY3Qgb2JqZWN0LAog ICAgIH0KIH0KIAorc3RkOjpzdHJpbmcgCityczYwMDBfbmF0X3RhcmdldDo6cGlkX3RvX3N0ciAo cHRpZF90IHB0aWQpCit7CisgIGlmICghcHRpZC50aWQgKCkpCisgICAgcmV0dXJuIHN0cmluZ19w cmludGYgKF8oIlByb2Nlc3MgJXMiKSwgcHVsb25nZXN0IChwdGlkLnBpZCAoKSkpOyAKKworICBy ZXR1cm4gc3RyaW5nX3ByaW50ZiAoXygiVGhyZWFkICVzIiksIHB1bG9uZ2VzdCAocHRpZC50aWQg KCkpKTsKK30KIC8qIFdhaXQgZm9yIHRoZSBjaGlsZCBzcGVjaWZpZWQgYnkgUFRJRCB0byBkbyBz b21ldGhpbmcuICBSZXR1cm4gdGhlCiAgICBwcm9jZXNzIElEIG9mIHRoZSBjaGlsZCwgb3IgTUlO VVNfT05FX1BUSUQgaW4gY2FzZSBvZiBlcnJvcjsgc3RvcmUKICAgIHRoZSBzdGF0dXMgaW4gKk9V UlNUQVRVUy4gICovCmRpZmYgLS1naXQgYS9nZGIvc29saWItYWl4LmMgYi9nZGIvc29saWItYWl4 LmMKaW5kZXggZjQ4M2Y1NGRlMTMuLjc0Njc2Y2JmYTUwIDEwMDY0NAotLS0gYS9nZGIvc29saWIt YWl4LmMKKysrIGIvZ2RiL3NvbGliLWFpeC5jCkBAIC01NTAsNiArNTUwLDEwIEBAIHNvbGliX2Fp eF9pbl9keW5zeW1fcmVzb2x2ZV9jb2RlIChDT1JFX0FERFIgcGMpCiAgIHJldHVybiAwOwogfQog CisvKiBGb3IgbXVsdGkgaW5mZXJpb3JzLCBwb3N0IG9iamVjdCBmaWxlIG5hbWUgY2hhbmdlCisg ICB3ZSBzdG9yZSB0aGUgbmV3IG5hbWVzIGluIHRoaXMgdmVjdG9yLiAgKi8KK3N0ZDo6dmVjdG9y PHN0ZDo6c3RyaW5nPiBhaXhfc2xpYl9uYW1lOworCiAvKiBJbXBsZW1lbnQgdGhlICJiZmRfb3Bl biIgdGFyZ2V0X3NvX29wcyBtZXRob2QuICAqLwogCiBzdGF0aWMgZ2RiX2JmZF9yZWZfcHRyCkBA IC02MTgsNiArNjIyLDE2IEBAIHNvbGliX2FpeF9iZmRfb3BlbiAoY29uc3QgY2hhciAqcGF0aG5h bWUpCiAgICAgICBpZiAobWVtYmVyX25hbWUgPT0gYmZkX2dldF9maWxlbmFtZSAob2JqZWN0X2Jm ZC5nZXQgKCkpKQogCWJyZWFrOwogCisgICAgICBzdGQ6OnN0cmluZyBzID0gYmZkX2dldF9maWxl bmFtZSAob2JqZWN0X2JmZC5nZXQgKCkpOworICAgICAgYXV0byBpdCA9IGFpeF9zbGliX25hbWUu YmVnaW4gKCk7CisgICAgICB3aGlsZSAoaXQgIT0gYWl4X3NsaWJfbmFtZS5lbmQgKCkpCisgICAg ICB7CisJc3RkOjpzdHJpbmcgczEgPSAqaXQ7CisJaWYgKHMxLmNvbXBhcmUocykgPT0gMCkKKwkg IHJldHVybiBvYmplY3RfYmZkOworCWl0Kys7CisgICAgICB9CisKICAgICAgIG9iamVjdF9iZmQg PSBnZGJfYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYXJjaGl2ZV9iZmQuZ2V0ICgpLAog CQkJCQkJICAgICBvYmplY3RfYmZkLmdldCAoKSk7CiAgICAgfQpAQCAtNjQ0LDYgKzY1OCw3IEBA IHNvbGliX2FpeF9iZmRfb3BlbiAoY29uc3QgY2hhciAqcGF0aG5hbWUpCiAgIHN0ZDo6c3RyaW5n IGZuYW1lID0gc3RyaW5nX3ByaW50ZiAoIiVzJXMiLAogCQkJCSAgICAgYmZkX2dldF9maWxlbmFt ZSAoYXJjaGl2ZV9iZmQuZ2V0ICgpKSwKIAkJCQkgICAgIHNlcCk7CisgIGFpeF9zbGliX25hbWUu cHVzaF9iYWNrIChmbmFtZSk7CiAgIGJmZF9zZXRfZmlsZW5hbWUgKG9iamVjdF9iZmQuZ2V0ICgp LCBmbmFtZS5jX3N0ciAoKSk7CiAKICAgcmV0dXJuIG9iamVjdF9iZmQ7Ci0tIAoyLjMxLjEKCg== --_004_CH2PR15MB3544A44737D2C7BF3CDC9BAAD6CC9CH2PR15MB3544namp_--