From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id CE2E73858D20 for ; Mon, 7 Nov 2022 11:00:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CE2E73858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2A79L4bK011926; Mon, 7 Nov 2022 11:00:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : content-type : mime-version; s=pp1; bh=6tWf1HInEo2OLkhrq0MuaT2A+bE4OEDX2+jDRvV8nlE=; b=QxPmIZGFd8tRYH0xX1Nq/Zng/ZwXCMzGNtFcgeoxbKvDvnwL98sG2NcIydMirfrnT1q4 dkC3M/YIcEyVIcqyu6wincKDstVdaDEA1bQqooVmiAM8V7aQLIl1NG23Uv4AYW35lQVN EGOxyez38h3Z5TpdOq+P5C/7HiOUzetNYGwZRcJ8S2gVcqEWC/PTJtxNyC7ehPsKx/ki o5xcHTHrkijk1NwwFyuaX46A0YP5lKQ8bfThBaXeTf2jGVNqb7KajTJAFju9mT2+nXAv FdX/MHtRWSgAGUTB9HntJy/7FjESR8QEQD7LWK5CAvY0OUVoXoowfo+A/wCqDtwjM0YF oQ== Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2168.outbound.protection.outlook.com [104.47.73.168]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kp1teya6e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Nov 2022 11:00:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=coZDxxjk/T3E3lTUQtGpPxt/dTpT2vEqpkz+wqj4RYUUySf95oYqz1lMxyyLZGInHoFmyNQQ8SHXb7biQ8udHgQzusPHcx5nSsqgxhc/xf08ciLDmEtjj33JnCXKBDcy7Yt62Tw7BAPo+d7Zde4Ev6KY9tnVHK22u4vsG85YVXy3wpVckws1JVC2ae4Q/j0LhZIKFClBV2HLJSqNamf/Rj7ffQkibTaAMyhk5UVgynBkWtNEuorM/nGq4h0jeA8sNK6oEb0zZnsUj9m33rhQSB52cUT9TrzXFIDsnLKquE/WoszfYzRtGAr80bZLF0H+L0Y7CoAn28DA7iDvEc2BdQ== 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=6tWf1HInEo2OLkhrq0MuaT2A+bE4OEDX2+jDRvV8nlE=; b=N1blVMfSTy6t4DdFFbGVABv9TXfHAmJyobODaB/upiSOamUTytLNOVFP1sNU/0Dcwi5DHd7CzgVg5KZn09TFDDj9QZZrFifKupbZG1fGXnuFiA8B7v2QPIKCqqGLLpfblD13r7SzGJjQgSkrVzMVpUfgDICOLJrN2/xaIC7seLunlUayqQHvuMdHSQMEKRrlJqLXmecvkSn57O9o31vdb/FVgUlKcub4crYmPe7nyIxfkIjHb6a7KUZGTVDQbOYttgrDsHDWdNmHZmi/Cqh759VEQLQVPH4w1uGC8JA5LJjEdPMPn0m4iAeZ21uicHWeL0Gu/64EGtPOfR+2/uKytw== 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 BL3PR15MB5434.namprd15.prod.outlook.com (2603:10b6:208:3b5::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.25; Mon, 7 Nov 2022 11:00:06 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::4b0:172e:c48:151d]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::4b0:172e:c48:151d%7]) with mapi id 15.20.5791.026; Mon, 7 Nov 2022 11:00:06 +0000 From: Aditya Kamath1 To: Aditya Kamath1 via Gdb-patches , Ulrich Weigand , "simon.marchi@efficios.com" CC: Sangamesh Mallayya Subject: [PATCH] Fix call functions command bug in 64-bit programs for AIX Thread-Topic: [PATCH] Fix call functions command bug in 64-bit programs for AIX Thread-Index: AQHY8o8oLBa0QEnD0kK130AZD8l+9A== Date: Mon, 7 Nov 2022 11:00:05 +0000 Message-ID: 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_|BL3PR15MB5434:EE_ x-ms-office365-filtering-correlation-id: c09ed314-f91f-4185-85ff-08dac0af3a86 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V90V82600nbH9R3SuhYChT1zSgyZrgLyV5kVZSsv1o5mp2NYfFK1xWXg1T/3EchMPoFMQVgyY100htw5BJEMqWPPhasUMLFGOHV8srdU572nns+tn8foqcrrksL7j1ogLc+yqvsafd3PmhQHCsAjmOshQg3XZSmpdY569sznyCE38FJrOBG3NvdDUJNGhyINsGNfoRnbP4ZJhRZfLFQUIP2TMNScgxrs2/I8yk6VXutrwLiQRzvZy1FAKSRbHQgBDjjFpGQ3kijOWHstwVOk13T3YnQBk1YxlnzHlCi+mlPET0mB1BRJK/ad1MJwSKb0BW77bEruxJ8DIp6jM03J9vkZ3jlW0nlN8mWo//dfzIdJi7ft0hZgmfOGUdYFoNoAFBa4EeDuNFTp4k9i6gsjJLUVpDu9EkKYyAhxah//Ps69GdyjrKcvVb91/xKpWcyEfOqopcZLvWAhsttWNG5TjaaAdlhkuXkRNs7wXP473fsMgqfRqoTss92N6/czoWoMuf4zGAKSlzWjsBKPtRi2qjCeCQVuyJOdO7JCYane8tihSMCLEFROWZs4yP/nXvtWBNADWZZciHVFT/ENl1VqseuMEGTcrl3lBojQRQPDTmlQRCwCX8SW+x7g9pAbbd/kMqseaisBLl4ToFfJYP1kFyLIYIHj5En7cS5GndGDue7cqNDk6nPxaj25DWnRLuRj7buPqNb5bkvnz1XgEimHNqOsTuogqwnmyrWHyxzjMK2x9sxa0FMMhQ4mvZJtBXdnJD22phDE9oI3EIgb2WOBnA== 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)(376002)(136003)(396003)(366004)(39860400002)(346002)(451199015)(38070700005)(64756008)(38100700002)(55016003)(86362001)(33656002)(2906002)(478600001)(71200400001)(8676002)(66946007)(4326008)(316002)(76116006)(66476007)(66556008)(66446008)(8936002)(41300700001)(91956017)(52536014)(5660300002)(110136005)(99936003)(122000001)(186003)(6506007)(7696005)(9686003)(19627405001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?I2eWD93wWV/JZtZFNmHwHzqpscPnz2qv9osXtbOYGvYznNw80YCCsbXtZe?= =?iso-8859-1?Q?crwLAdX4FFODc/A+E6Az276c/mXI6VHbAaAyupLi7ZoEeeEXSQkDbjQcLZ?= =?iso-8859-1?Q?eMG2iFXyegcXNIE3/j+Wtar2TLJ4vdpc5ZkbTcc5qu8Qr0/TV3V2rMWuvb?= =?iso-8859-1?Q?uPjjvQJVRtaotpYdyndUb81R1E8R9+8i/jMgJZKXlnTT388kH3DwdCFn1c?= =?iso-8859-1?Q?85TMqiMDWbAMr0K9AKjAQsruyImXF3Dy2fKKCpeVYvF06cq3A/8434fbBr?= =?iso-8859-1?Q?egCQR6HQ5ZPJ24RDto1UV8GomU5fieFSq7HLQ1n2HbDYFrZ+vVfoSVV4cl?= =?iso-8859-1?Q?LQ8fDawcolZZH7fXN4kZO89xCGxb+v7rmql+n8GbsASY97QJhgc9bKSC0C?= =?iso-8859-1?Q?joRLuqXPdCzpBR8iv9SmEPUS4AR8ZSJt3eGp9/OM5fRxRxpABpG2aXhv2J?= =?iso-8859-1?Q?ERWu5nPkH/VefOkVDYGo3ebTtCKMLrCyNFcXIZFjQs6A+7GGKzl3z0m4C4?= =?iso-8859-1?Q?Lp+bobn0f+PVgawwXL3jgvMnoMcufIzCoSbm2p9GGLpsvNBHMFJ6q1/hFP?= =?iso-8859-1?Q?ktmvBt8i9DY3iSEEEfPu+ZrIKZg1wXerHP+3u1KXOP77nLjYrCQQItWHmL?= =?iso-8859-1?Q?ScanIKMHOUQusBvm5GonI9e88D7RgH6TZNQ6cnsGe+xxfoqgqzEBjOlnhF?= =?iso-8859-1?Q?vnk5hv8AxIe8CevUwqRzq37igyFzVuM8L/hLWRtqpfaE3dnP+ugLpYtoPt?= =?iso-8859-1?Q?6pjMMl4elwOPS+/mhFiGlgeRIDa/n2l7co0q+Wub71/qzvIpkMHnNVrCTz?= =?iso-8859-1?Q?i9geHq3n8kOG/ywm7rD9Z/QEf7RLGsXUQpcr6cIepGnWcvbLsW0ik6vtTj?= =?iso-8859-1?Q?xnlBlMj8J00jQlwmXKUgE8TA7QZZGQjCIaDbLep6gR+7Sp1/pKSjOoGXCK?= =?iso-8859-1?Q?x5iMvyLxn32+hOn5Y/szrghtry66zWDyFzvWsfRXI8MAe3XGHZs3HpxdQI?= =?iso-8859-1?Q?SCJQ9cc+91ZQbslMqbv1EPXJXorvdvanZw0Qrh4yNY8qCiqprkhJalZn2+?= =?iso-8859-1?Q?dG1QwvJ+7wZnmZdOh1hW3We236pzUrXFnwDKWRoCgi22cGnDOCq8+AuaZe?= =?iso-8859-1?Q?dzInSgdzGDa7dLVCovP8z5HX1tfabszY6AJt1xUvNu4Xq1LfeVx1mCxm4A?= =?iso-8859-1?Q?xk3U+HtWVt642OyoLJNkcgt9Y6t6nfZZTU/ozVKN6gsjzQ3rwDKGbBrjID?= =?iso-8859-1?Q?MVL1q6gHggvaGBrHP7+JHwoDb96J4sjvSsNJqxFc17mzMFjOGI/KM/2Zi6?= =?iso-8859-1?Q?HgqE7vSmg3MPbywrY6MytZrsDsx9EYTwaP4RP6+NGMZbsSADSvsqEISPq9?= =?iso-8859-1?Q?k5CuMi05NXB063pnxNAcOAaCJyS84vWZwbZlJ9EOwNghJ4TD5F/w+apLmz?= =?iso-8859-1?Q?iIh3XHl9cC9oZ2LeheYHpxihJ5f59wnCsL3vliQgKhbem753Z91xJPypPq?= =?iso-8859-1?Q?gsFB34PNrEtXToDA8epgaiiuFPcB4y9HTy8XaGBCL+xQYL/rLh9mc/jvaB?= =?iso-8859-1?Q?0ru0LDRLgv7vbpBZEpk/vPm9VEyZ6U5knz0w5cKQfa1bP5AHh0YhoQWIkq?= =?iso-8859-1?Q?sHDV4BhC47GAIQV2sB6FVd5fQHQ/LbtGDaW4tMwC0aJagnT/C2D9AJEPZ4?= =?iso-8859-1?Q?jo+gT1Mq7SVOCtOrNDX4yr2zMc3tk76bRpNx8RWw?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_" 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: c09ed314-f91f-4185-85ff-08dac0af3a86 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Nov 2022 11:00:05.9894 (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: HqQUN2hDLoUOsJ3u9R7UMH3FwaGuXVSsqDHn/FSYu877HDRj1ks+PgIG+X7S7y75QItSlz4CXDP3k9dgN3MDww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR15MB5434 X-Proofpoint-GUID: uIxor0lAnXG5B2bq3GYm5566KvB2EpI5 X-Proofpoint-ORIG-GUID: uIxor0lAnXG5B2bq3GYm5566KvB2EpI5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-07_04,2022-11-03_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxscore=0 lowpriorityscore=0 spamscore=0 malwarescore=0 mlxlogscore=993 suspectscore=0 phishscore=0 priorityscore=1501 adultscore=0 bulkscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211070088 X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham 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_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_ Content-Type: multipart/alternative; boundary="_000_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_" --_000_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi all, AIX folks while attempting to debug 64-bit programs using the call command = are unable to receive and send the correct return value and parameter info = in the program. The issue can be replicated in the below program:- #include long longit (long a) { printf ("long val =3D %ld \n", a); return a; } int intit (int a) { printf ("int val =3D %d \n", a); return a; } int main () { intit (27); longit (33); } The output before the patch is Reading symbols from /home/xyz/gdb_tests/callfuncs... (gdb) b main Breakpoint 1 at 0x10000780: file /home/xyz/gdb_tests/callfuncs.c, line 19. (gdb) r Starting program: /home/xyz/gdb_tests/callfuncs BFD: /usr/lib/libc.a(/usr/lib/libc.a(shr_64.o)): wrong auxtype 0xff for sto= rage class 0x2 BFD: /usr/lib/libc.a(/usr/lib/libc.a(shr_64.o)): wrong auxtype 0xff for sto= rage class 0x6b Breakpoint 1, main () at /home/xyz/gdb_tests/callfuncs.c:19 19 intit (27); (gdb) call intit (21) int val =3D 0 $1 =3D 0 (gdb) q The output should have been 21 but is not. The output after applying this patch:- Reading symbols from /home/XYZ/gdb_tests/callfuncs... (gdb) b main Breakpoint 1 at 0x100005f0: file /home/XYZ/gdb_tests/callfuncs.c, line 19. (gdb) r Starting program: /home/XYZ/gdb_tests/callfuncs Breakpoint 1, main () at /home/XYZ/gdb_tests/callfuncs.c:19 19 intit (27); (gdb) call intit (21) int val =3D 21 $1 =3D 21 (gdb) q Why does this happen?? The issue is that when a user attempts to test the return type or print sta= tements via the call "FUNC_NAME (parameter A, parameter B)" command, any in= put be it parameter A or B is taken in little endian format from the GDB ca= che. But AIX is using Big endian format. For example, if we have a value 21 as type long then the higher 32 bits [ w= hich is 0 in number 21] were stored in lower 32 bits and lower 32 bits [ re= present 21 in the number 21] is stored in higher 32 bits. Please find attached the patch. [See:- 0001-Fix-call-functions-command-bug-= in-64-bit-programs.patch] In the patch I have written comments on further details. Kindly let us know if this solution works, if not let us know a better way = to handle the same. Have a nice day ahead. Thanks and regards, Aditya. --_000_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_-- --_004_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Fix-call-functions-command-bug-in-64-bit-programs.patch" Content-Description: 0001-Fix-call-functions-command-bug-in-64-bit-programs.patch Content-Disposition: attachment; filename="0001-Fix-call-functions-command-bug-in-64-bit-programs.patch"; size=6727; creation-date="Mon, 07 Nov 2022 10:58:54 GMT"; modification-date="Mon, 07 Nov 2022 10:59:24 GMT" Content-Transfer-Encoding: base64 RnJvbSA3ZDg0MmI2Yzk1Njg0MGY3ODg3MTU3MDIwN2YxNWNmNzZhNGIyMzU0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogTW9u LCA3IE5vdiAyMDIyIDA0OjUzOjE1IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0g Rml4IGNhbGwgZnVuY3Rpb25zIGNvbW1hbmQgYnVnIGluIDY0LWJpdCBwcm9n cmFtcyBmb3IgQUlYCgpUaGUgaXNzdWUgaXMgdGhhdCB3aGVuIGEgdXNlciBh dHRlbXB0cyB0byB0ZXN0IHRoZSByZXR1cm4gdHlwZSBvciBwcmludCBzdGF0 ZW1lbnRzIHZpYSB0aGUKCmNhbGwgRlVOQ05BTUUgd2l0aCBwYXJhbWV0ZXJz IGNvbW1hbmQKCmFueSBpbnB1dCBiZSBpdCBwYXJhbWV0ZXIgQSBvciBCIGlz IHRha2VuIGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0IGZyb20gdGhlIEdEQiBj YWNoZQoKIEJ1dCBBSVggaXMgdXNpbmcgQmlnIGVuZGlhbiBmb3JtYXQKClRo aXMgcGF0Y2ggZml4ZXMgdGhlIHNhbWUgaXNzdWUKLS0tCiBnZGIvcnM2MDAw LWFpeC1uYXQuYyB8IDE0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTA4IGluc2VydGlv bnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9yczYw MDAtYWl4LW5hdC5jIGIvZ2RiL3JzNjAwMC1haXgtbmF0LmMKaW5kZXggY2Ix NDE0Mjc2OTYuLjk5ZThhZjAzODc3IDEwMDY0NAotLS0gYS9nZGIvcnM2MDAw LWFpeC1uYXQuYworKysgYi9nZGIvcnM2MDAwLWFpeC1uYXQuYwpAQCAtMTk0 LDYgKzE5NCw3IEBAIGZldGNoX3JlZ2lzdGVyIChzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLCBpbnQgcmVnbm8pCiB7CiAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7CiAgIGludCBhZGRyW1BQQ19N QVhfUkVHSVNURVJfU0laRV07CisgIGxvbmcgbG9uZyBhZGRyNjRbUFBDX01B WF9SRUdJU1RFUl9TSVpFXTsKICAgaW50IG5yLCBpc2Zsb2F0OwogICBwaWRf dCBwaWQgPSByZWdjYWNoZS0+cHRpZCAoKS5waWQgKCk7CiAKQEAgLTIyOCwx NCArMjI5LDE5IEBAIGZldGNoX3JlZ2lzdGVyIChzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLCBpbnQgcmVnbm8pCiAJICBsb25nIGxvbmcgYnVmOwogCSAg cnM2MDAwX3B0cmFjZTY0IChQVF9SRUFEX0dQUiwgcGlkLCBuciwgMCwgJmJ1 Zik7CiAJICBpZiAocmVnaXN0ZXJfc2l6ZSAoZ2RiYXJjaCwgcmVnbm8pID09 IDgpCi0JICAgIG1lbWNweSAoYWRkciwgJmJ1ZiwgOCk7CisJICAgIG1lbWNw eSAoYWRkcjY0LCAmYnVmLCA4KTsKIAkgIGVsc2UKLQkgICAgKmFkZHIgPSBi dWY7CisJICAgICphZGRyNjQgPSBidWY7CiAJfQogICAgIH0KIAogICBpZiAo IWVycm5vKQotICAgIHJlZ2NhY2hlLT5yYXdfc3VwcGx5IChyZWdubywgKGNo YXIgKikgYWRkcik7CisgIHsKKyAgICBpZiAoIUFSQ0g2NCAoKSkKKyAgICAg IHJlZ2NhY2hlLT5yYXdfc3VwcGx5IChyZWdubywgKGNoYXIgKikgYWRkcik7 CisgICAgZWxzZQorICAgICAgcmVnY2FjaGUtPnJhd19zdXBwbHkgKHJlZ25v LCAoY2hhciAqKSBhZGRyNjQpOworICB9CiAgIGVsc2UKICAgICB7CiAjaWYg MApAQCAtMjUyLDU3ICsyNTgsMTIxIEBAIHN0YXRpYyB2b2lkCiBzdG9yZV9y ZWdpc3RlciAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25v KQogewogICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHJlZ2NhY2hlLT5h cmNoICgpOwotICBpbnQgYWRkcltQUENfTUFYX1JFR0lTVEVSX1NJWkVdOwot ICBpbnQgbnIsIGlzZmxvYXQ7Ci0gIHBpZF90IHBpZCA9IHJlZ2NhY2hlLT5w dGlkICgpLnBpZCAoKTsKLQotICAvKiBGZXRjaCB0aGUgcmVnaXN0ZXIncyB2 YWx1ZSBmcm9tIHRoZSByZWdpc3RlciBjYWNoZS4gICovCi0gIHJlZ2NhY2hl LT5yYXdfY29sbGVjdCAocmVnbm8sIGFkZHIpOwotCi0gIC8qIC0xIGNhbiBi ZSBhIHN1Y2Nlc3NmdWwgcmV0dXJuIHZhbHVlLCBzbyBpbmZlciBlcnJvcnMg ZnJvbSBlcnJuby4gICovCisgIGludCBhZGRyMzJbUFBDX01BWF9SRUdJU1RF Ul9TSVpFXTsKKyAgbG9uZyBhZGRyNjRbUFBDX01BWF9SRUdJU1RFUl9TSVpF XTsKKyAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOworICBDT1JFX0FERFIgYWRkcjsKKyAgQ09S RV9BRERSIG9yaWdpbmFsX2FkZHI7CisgIHNpemVfdCBzaXplOworICBnZGJf Ynl0ZSAqbGl0dGxlX2VuZF9idWY7CisgIHBpZF90IHBpZDsKKyAgaW50IGk7 CisgIGludCBpc2Zsb2F0OworICBsb25nIGJpZ19lbmRfYnVmID0gSU5UX01J TjsKICAgZXJybm8gPSAwOwogCi0gIG5yID0gcmVnbWFwIChnZGJhcmNoLCBy ZWdubywgJmlzZmxvYXQpOworICAvKiBHZXQgdGhlIGFkZHJlc3Mgb2YgdGhl IHJlZ2lzdGVyLiAgKi8KKyAgYWRkciA9IHJlZ21hcCAoZ2RiYXJjaCwgcmVn bm8sICZpc2Zsb2F0KTsKKworICBpZiAoYWRkciA9PSAoQ09SRV9BRERSKS0x CisgICAgICB8fCBnZGJhcmNoX2Nhbm5vdF9zdG9yZV9yZWdpc3RlciAoZ2Ri YXJjaCwgcmVnbm8pKQorICAgIHJldHVybjsKKyAKKyAgcGlkID0gcmVnY2Fj aGUtPnB0aWQgKCkucGlkICgpOworCisgIHNpemUgPSByZWdpc3Rlcl9zaXpl IChnZGJhcmNoLCByZWdubyk7CisgIGxpdHRsZV9lbmRfYnVmID0gKGdkYl9i eXRlICopIGFsbG9jYSAoc2l6ZSk7CisKKyAgLyogUmVnaXN0ZXIgbnVtYmVy IFIzIHRvIFIxMCBpbiBBSVggYmVsb25ncyB0byAKKyAgICAgZnVuY3Rpb24g cGFyYW1ldGVycy4gSWYgYSB1c2VyIGF0dGVtcHRzIHRvIAorICAgICBnaXZl IGlucHV0IHZpYSBjYWxsIGNvbW1hbmQgYW5kIGluIDY0IGJpdCBtb2RlCisg ICAgIHRoZSB2YWx1ZSBpbiB0aGUgYnVmZmVyIGlzIGxpdHRsZSBlbmRpYW4g YnV0CisgICAgIGluIEFJWCB3ZSB1c2UgYmlnIGVuZGlhbi4gIEhlbmNlIGlm IFIzIHRvIFIxMAorICAgICByZWdpc3RlcnMgYXJlIHVzZWQgaW4gNjQgYml0 IG1vZGUgd2UgbmVlZCB0byAKKyAgICAgcmUgYWxpZ24gZnJvbSBsaXR0bGUg ZW5kaWFuIHRvIGJpZyBlbmRpYW4uCisgICAgIE90aGVyd2lzZSBpdCBjYW4g YmUgaW4gYSA2NCBiaXQgb3IgMzIgYml0IGJ1ZmZlcgorICAgICBkZXBlbmRp bmcgb24gdGhlIGFyY2hpdGVjdHVyZSBiaXQgbW9kZSBvZiB0aGUgCisgICAg IHVzZXIgcHJvZ3JhbS4gICovCisKKyAgaWYgKHJlZ25vIDw9IDEwICYmIHJl Z25vID49IDMgJiYgQVJDSDY0ICgpKSAKKyAgICByZWdjYWNoZS0+cmF3X2Nv bGxlY3QgKHJlZ25vLCBsaXR0bGVfZW5kX2J1Zik7CisgIGVsc2UgaWYgKEFS Q0g2NCAoKSkKKyAgICByZWdjYWNoZS0+cmF3X2NvbGxlY3QgKHJlZ25vLCBh ZGRyNjQpOworICBlbHNlCisgICAgcmVnY2FjaGUtPnJhd19jb2xsZWN0IChy ZWdubywgYWRkcjMyKTsKKyAKKyAgLyogU2F2ZSB0aGUgb3JpZ2luYWwgYWRk cmVzcyBvZiB0aGUgcmVnaXN0ZXIuICAqLworICBvcmlnaW5hbF9hZGRyID0g YWRkcjsKIAogICAvKiBGbG9hdGluZy1wb2ludCByZWdpc3RlcnMuICAqLwog ICBpZiAoaXNmbG9hdCkKLSAgICByczYwMDBfcHRyYWNlMzIgKFBUX1dSSVRF X0ZQUiwgcGlkLCBhZGRyLCBuciwgMCk7CisgICAgcnM2MDAwX3B0cmFjZTMy IChQVF9XUklURV9GUFIsIHBpZCwgKmxpdHRsZV9lbmRfYnVmLCBhZGRyLCAw KTsKIAogICAvKiBCb2d1cyByZWdpc3RlciBudW1iZXIuICAqLwotICBlbHNl IGlmIChuciA8IDApCisgIGlmIChhZGRyIDwgMCkKICAgICB7CiAgICAgICBp ZiAocmVnbm8gPj0gZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkpCi0JZ2Ri X3ByaW50ZiAoZ2RiX3N0ZGVyciwKLQkJICAgICJnZGIgZXJyb3I6IHJlZ2lz dGVyIG5vICVkIG5vdCBpbXBsZW1lbnRlZC5cbiIsCi0JCSAgICByZWdubyk7 CisgICAgICAgIGdkYl9wcmludGYgKGdkYl9zdGRlcnIsCisgICAgICAgICAg ICAgICAgICAgICJnZGIgZXJyb3I6IHJlZ2lzdGVyIG5vICVkIG5vdCBpbXBs ZW1lbnRlZC5cbiIsCisgICAgICAgICAgICAgICAgICAgIHJlZ25vKTsKICAg ICB9CisgIC8qIEZpeGVkLXBvaW50IHJlZ2lzdGVycyBpbiAzMiBiaXQgbW9k ZS4gICovCisgIGVsc2UgaWYgKCFBUkNINjQgKCkpCisgICAgcnM2MDAwX3B0 cmFjZTMyIChQVF9XUklURV9HUFIsIHBpZCwgKGludCAqKSBhZGRyLCAqYWRk cjMyLCAwKTsKIAotICAvKiBGaXhlZC1wb2ludCByZWdpc3RlcnMuICAqLwor ICAvKiBGaXhlZC1wb2ludCByZWdpc3RlcnMgaW4gNjQgYml0IG1vZGUuICAq LwogICBlbHNlCisgIHsKKyAgICAvKiBGdW5jdGlvbiBwYXJhbWV0ZXJzIHRv IGJlIGNoYW5nZWQgZnJvbSBsaXR0bGUgdG8gYmlnIGVuZGlhbi4gICovCisg ICAgaWYgKHJlZ25vIDw9IDEwICYmIHJlZ25vID49IDMpCiAgICAgeworICAg ICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkgKz0gc2l6ZW9mIChQVFJBQ0Vf VFlQRV9SRVQpKQorICAgICAgeworICAgICAgICBzaXplX3QgY2h1bmsgPSBz dGQ6Om1pbiAoc2l6ZW9mIChQVFJBQ0VfVFlQRV9SRVQpLCBzaXplIC0gaSk7 CisgICAgICAgIFBUUkFDRV9UWVBFX1JFVCB2YWw7CisKKyAgICAgICAgdmFs ID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIChsaXR0bGVfZW5kX2J1ZiAr IGksIGNodW5rLCBieXRlX29yZGVyKTsKKyAgICAgICAgZXJybm8gPSAwOwor ICAgICAgICAgCisgICAgICAgIC8qIFJlYWxpZ24gY2h1bmNrIGJ5IGNodW5r IGluIDggYml0cy4gICovCisgICAKKyAgICAgICAgaWYgKHJlZ2lzdGVyX3Np emUgKGdkYmFyY2gsIHJlZ25vKSA9PSA4KQorICAgICAgICB7CisgICAgICAg ICAgaWYgKHZhbCAhPSAwKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIC8q IEVpdGhlciBoaWdoZXIgMzIgYml0cyBvciBoaWdoZXIgMzIgYml0cyBhcmUg MC4gICovCisgICAgICAgICAgICBpZiAoYmlnX2VuZF9idWYgPT0gSU5UX01J TiB8fCBiaWdfZW5kX2J1ZiA9PSAwKQorICAgICAgICAgICAgICBiaWdfZW5k X2J1ZiA9IHZhbDsKKworICAgICAgICAgICAgLyogTG93ZXIgMzIgYml0cy4g ICovCisgICAgICAgICAgICBlbHNlIGlmIChiaWdfZW5kX2J1ZiAhPSBJTlRf TUlOKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBiaWdfZW5kX2J1 ZiA8PD0gODsKKyAgICAgICAgICAgICAgYmlnX2VuZF9idWYgfD0gdmFsOwor ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIC8qIENv cHkgMCBvbmx5IGlmIHRoZSBhY3R1YWwgdmFsdWUgaXMgIDAuICAqLworICAg ICAgICAgIGVsc2UgaWYgKHZhbCA9PSAwICYmIGJpZ19lbmRfYnVmID09IElO VF9NSU4pCisgICAgICAgICAgICBiaWdfZW5kX2J1ZiA9IHZhbDsKKyAgICAg ICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgYmlnX2VuZF9idWYgPSB2 YWw7CisgICAgICAgIGFkZHIgKz0gc2l6ZW9mIChQVFJBQ0VfVFlQRV9SRVQp OworICAgICAgfQorCiAgICAgICAvKiBUaGUgUFRfV1JJVEVfR1BSIG9wZXJh dGlvbiBpcyByYXRoZXIgb2RkLiAgRm9yIDMyLWJpdCBpbmZlcmlvcnMsCi0J IHRoZSByZWdpc3RlcidzIHZhbHVlIGlzIHBhc3NlZCBieSB2YWx1ZSwgYnV0 IGZvciA2NC1iaXQgaW5mZXJpb3JzLAotCSB0aGUgYWRkcmVzcyBvZiBhIGJ1 ZmZlciBjb250YWluaW5nIHRoZSB2YWx1ZSBpcyBwYXNzZWQuICAqLwotICAg ICAgaWYgKCFBUkNINjQgKCkpCi0JcnM2MDAwX3B0cmFjZTMyIChQVF9XUklU RV9HUFIsIHBpZCwgKGludCAqKSBuciwgKmFkZHIsIDApOwotICAgICAgZWxz ZQotCXsKLQkgIC8qIFBUX1dSSVRFX0dQUiByZXF1aXJlcyB0aGUgYnVmZmVy IHBhcmFtZXRlciB0byBwb2ludCB0byBhbiA4LWJ5dGUKLQkgICAgIGFyZWEs IGV2ZW4gaWYgdGhlIHJlZ2lzdGVyIGlzIHJlYWxseSBvbmx5IDMyIGJpdHMu ICAqLwotCSAgbG9uZyBsb25nIGJ1ZjsKLQkgIGlmIChyZWdpc3Rlcl9zaXpl IChnZGJhcmNoLCByZWdubykgPT0gOCkKLQkgICAgbWVtY3B5ICgmYnVmLCBh ZGRyLCA4KTsKLQkgIGVsc2UKLQkgICAgYnVmID0gKmFkZHI7Ci0JICByczYw MDBfcHRyYWNlNjQgKFBUX1dSSVRFX0dQUiwgcGlkLCBuciwgMCwgJmJ1Zik7 Ci0JfQotICAgIH0KKyAgICAgICAgIHRoZSByZWdpc3RlcidzIHZhbHVlIGlz IHBhc3NlZCBieSB2YWx1ZSwgYnV0IGZvciA2NC1iaXQgaW5mZXJpb3JzLAor ICAgICAgICAgdGhlIGFkZHJlc3Mgb2YgYSBidWZmZXIgY29udGFpbmluZyB0 aGUgdmFsdWUgaXMgcGFzc2VkLiAgKi8KIAotICBpZiAoZXJybm8pCi0gICAg ewotICAgICAgcGVycm9yIChfKCJwdHJhY2Ugd3JpdGUiKSk7Ci0gICAgICBl cnJubyA9IDA7CisgICAgICAvKiBQVF9XUklURV9HUFIgcmVxdWlyZXMgdGhl IGJ1ZmZlciBwYXJhbWV0ZXIgdG8gcG9pbnQgdG8gYW4gOC1ieXRlCisgICAg ICAgICBhcmVhLCBldmVuIGlmIHRoZSByZWdpc3RlciBpcyByZWFsbHkgb25s eSAzMiBiaXRzLiAgKi8KKworICAgICAgcnM2MDAwX3B0cmFjZTY0IChQVF9X UklURV9HUFIsIHBpZCwgKGxvbmcgKilvcmlnaW5hbF9hZGRyLCAwLCAmYmln X2VuZF9idWYpOwogICAgIH0KKyAgICBlbHNlCisgICAgICByczYwMDBfcHRy YWNlNjQgKFBUX1dSSVRFX0dQUiwgcGlkLCAobG9uZyAqKW9yaWdpbmFsX2Fk ZHIsIDAsIGFkZHI2NCk7CisgIH0KIH0KIAogLyogUmVhZCBmcm9tIHRoZSBp bmZlcmlvciBhbGwgcmVnaXN0ZXJzIGlmIFJFR05PID09IC0xIGFuZCBqdXN0 IHJlZ2lzdGVyCi0tIAoyLjMxLjEKCg== --_004_CH2PR15MB3544D542ED323A24D731DF8BD63C9CH2PR15MB3544namp_--