From patchwork Sun Mar 31 10:45:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bernd Edlinger X-Patchwork-Id: 87863 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6D1C33858D38 for ; Sun, 31 Mar 2024 10:43:59 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2080.outbound.protection.outlook.com [40.92.64.80]) by sourceware.org (Postfix) with ESMTPS id E81053858D1E for ; Sun, 31 Mar 2024 10:43:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E81053858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=hotmail.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hotmail.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E81053858D1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.92.64.80 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1711881817; cv=pass; b=S17O6Hm/bZ1ImjlqS7vDHfe6LDIMaT0U/r9fP86njHSssYd2ctvI+yG7F68igimdD7yQgAyJi/6xafbuysJoePbkNrURuj/URPharXAVKkfrW3cAcdWNLaMKQlscpx0hdCJ/iwq+uBIDptrrlFRakmCYlGmAWbadLJe8PM8tJao= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1711881817; c=relaxed/simple; bh=J576vkLn2RsTixhsAZ9Hx5pJJkz7VWlvBXQPnaWJt+8=; h=DKIM-Signature:Message-ID:Date:To:From:Subject:MIME-Version; b=TNkeYfPpKtT+bzRnu6ALzW6bJS/yFjGfmK4CCr2sTpfzmHtrxuGc1NiehCGxSsdF0GLHHPQS6TOAsiP3XrhmYdWF+oq3vQCxu6inHrfw457dU6g8zVD2vsiFD4Qv6HcjEUa2FI2ktcsFTir8sCZ5x2Aj/VT3ebf4pmrRmcT5fvc= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XPu1wsm04AujpUzZ5+bFsdzmc+wKKkC3qPYciimJnsrwiGffTHuZativbjYhuUUDxTUp97zTu+xSiKrHRPv2xc5pLIC2rBPD+BU6295qjsmEP3zsLj23BEXo9PJm9t/acjz1dyWJUCOnkaGvAWlS5sPt3nbEnwvozu57JVdBO8TcYDkPs79ON7v++WBaiGPxKhY19HXM48AhCpkD8nKp2NracvpxSLBVfsouJh+txdUoABhHWfjEmwjwjy2rCWUc6CI7sQs9/eJet/vWAv4jAYYhQhGkg83Y8SvQh00C9rKHHq01r3VUMlgSBdgw7Fh5aOIfHhe6skhhB8iuTWzJKA== 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=kwUJmVATY0ihq119qTqRnIWpZLFMAP/KncVWGe81Kgk=; b=FYIzr/Q6xWo6No9yu1tw9zYMZdV9nm/j7dg2Mz+xvTsaAzY3/MsfefK3XbJtSibepkLxSnQ2yAIHiEL8X9yZD1cLR11uWnkOOnEfMMXRuuE+pXcC+ujj+Uredv7Kfgihu+k7PPShrkUj1VSR0Srgq2HwGcRnzU6+sJO0RfrJoNMDEmA05ll0eteHGOQkQfvcC8gsfa7h8o7JrIW8/LcpR4lyJNrN7vY4+b2T8+Icf+58RGX6AtWKyb0dgHihlmwB6x+foFbjq6sl8eVuxBSxiwx90e6kx+thmPNDDbKUfrsq4iscT8rxan+I4A74ZyCGyE7HW+1aDfMYAdcAcDGPYQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=HOTMAIL.DE; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kwUJmVATY0ihq119qTqRnIWpZLFMAP/KncVWGe81Kgk=; b=q9l/H5bjpTfeYRQ58Bq39NWMB/9VyYGRmWM19Z59uAnlA8Y+340XPpEMQlrI5ViGUDu+x+qV7buAZaMlU3G+rThxLg8VNfYjD1CmBEnH2+PqLiCXIAvDJlHru2NjDEn+EM+fj5JtdTkGkIuikL9EbSWq3JSrJAgGiLUufm9ZwsGE/Pu/kNQ21WhZ9OlLsLq/jbgHiqZeYkVibAKQHEpSMt+svVrj/rk/ipjtsB8uluSaiOBBTZ/LP/7ERQ+mS1B3IOBssd1AM9D/3lknMBeBeonOI3bGr7bLqYpRMKeOlsx29g1nrPjr5U1Q6uhk6TIG4HmkvCAk/6TvsSlJ6ZaLag== Received: from AS8P193MB1285.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:333::21) by AS8P193MB1351.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:39f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Sun, 31 Mar 2024 10:43:34 +0000 Received: from AS8P193MB1285.EURP193.PROD.OUTLOOK.COM ([fe80::5403:f1ad:efaf:1f71]) by AS8P193MB1285.EURP193.PROD.OUTLOOK.COM ([fe80::5403:f1ad:efaf:1f71%4]) with mapi id 15.20.7409.042; Sun, 31 Mar 2024 10:43:34 +0000 Message-ID: Date: Sun, 31 Mar 2024 12:45:16 +0200 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gdb-patches@sourceware.org From: Bernd Edlinger Subject: [PATCH] Fix an out of bounds array access in, find_epilogue_using_linetable X-TMN: [Dg1wJHKRVECjfydiozrnziVFbPptf3bDoE3E+oALYhiWHwWs+q5UHh0MZmYcQXog] X-ClientProxiedBy: FR0P281CA0062.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::23) To AS8P193MB1285.EURP193.PROD.OUTLOOK.COM (2603:10a6:20b:333::21) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P193MB1285:EE_|AS8P193MB1351:EE_ X-MS-Office365-Filtering-Correlation-Id: a777854f-159a-4704-68b4-08dc516f6989 X-MS-Exchange-SLBlob-MailProps: znQPCv1HvwVY+Zl2ZxumVPGezp+0VS7SJ8WC7rtKxFyqDfb+FJ8qKjXyPQPNXrawBI8ESwOxbdTIhPKubfU85mtLmo88CeeI7OebpFBVLh9WDwnGpNtDiXBlPNkgVO4RV+vSVMIKEN3BXxg7F12ac1iP4HxYw8VOjDgWPPZaFLELaVrUnsii6vnLGI9VHbtgoCggAywAVkILVTgkvsQxiKa7QQwJBq34EERhWfFNGudpQg4aTdTb4gs6THV9Ew0r2EQtMdcwLhIMXjHkg99+SbKQBs0k+njgMOYI5SoHBsbANFSLOgCu3xr8ZKGD4nIoRoYMGyEd2W0pykc2DoJvTsDznCFhabuqfFoF8pBlt39ZZjPpoU74whrWqADiwbd/0v9aBbZmnBYxi6ybu9o0pzlCwsrNPXrzTFIooPwc69WGyiPEiqOYafVEaiu0J3+bJLm2bTlm6Q73uQAq/AoXf/iBGQa3ROXL0Zfv0q1tELRZ8wKaKYCrVaXZuJyBh1Nst0VZvMCV2clvvJL1PQL3gFaguaLWKecChiyO8jJIYYLfdb3bvVZc8OX5y6buAIXpCTgj3DmlYaPWKDyiTXIDTGyDmjF1DiZPE/X/97wEDHT0vlfKvheSZm7zeBxWWXgkAkEvQb4n1BKW5VXyNxvmj7KHnvDZo5ax0FL+yLVTD+vrdf3EtowgNrbzkDvGNhwLaS3qYacbPKUZLweZMOt0YcM6lrqWxpahWxbZbJEbVj4iOad9p+Yq/ZK0HgbX6Vy6JdKtCbgEYp0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pe7ubA4e8lgn+WFJDbyPYNsNnT2yHTYUE1MZZZcdfkPJhjYPUIqhwJHfxGOBonX8JMWg99CwQfyVaFnEixYav9BipUGAioxFX10bKddADEpUHGBZ/wXanPPjhpaPNh4nGOXrNSH+AbrMc+zvGLd10gIF2maCNTsg93nsFfM1RG6sI9mx8+1vAFeWS7LfBRJMkWR/vwlyUB0D193pTukdxBFS2qyc4Kg8UnRSzIOv7VFuj/Cl6oMTrYEhoEDiATRsIrj8TMRRPfpd2NjFYTM74AAbCyaBF16+KOGRIp8BdoWM926FNNhX+1ZM24USoOquWWraPSYdv9l57wSncfXoVrrgfQhtVUO4Psfo3I+Yv0/SqyLQ0IxW0v3q9Jrc/SI4ryKIjjUkmKB66b9r2TP/X66Z10MLjcBef/L9Vtd9Dqoc0CfVhuDmZvA2clwY+0QlKLHivyDLzcB89kGnqkFfKTcRnQqJsu0GLWkRJPN3Vc0xf+vyfqVLgNfOZ/+tzpm3OhUCk5gfhdr1c7DRxboQeCSEr4t7jKMVq6fNLKYcnWHT5v9lRK4voSajmkQVxvgd6oi1QmKlg7zTzalaSWWkDWC8gdsz816IdC0yd0/MS0ME8PyuDKY4YgFaDowa8nxyzF6jt1C9RVFus6wVhagycVYSDi4qd3mNiocHbYJd5d0= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?8Y/WeSLh/W7o2PgYnDiagGyT1F9Y?= =?utf-8?q?ojIDZCte2gVEz0BTaGngFuor9lOJLDRT1SP0S3DTZ6A37Md+HHsNKqeAzz/FLGkUm?= =?utf-8?q?ARWJuk56XNmzLoUrF1GJuoTTx/swCWZEp1rKuCmvkv/9AYclTM+r4XJInMf5Wuk00?= =?utf-8?q?tXwq/Dn/6s70noHApNx/gbEVL8pFjd7XfCkpDkj/RVuceAXvyj2I5ytIrd4nkzS8q?= =?utf-8?q?Ga+SIZTtR+0MY4rza7Jeueey7RQ/Ysn55QCIGqquPt+Xvj2oqLj3CbJbtqjHS3GcM?= =?utf-8?q?IldTAfJq+v3Yu15TjXwHK2/PMt7nsJ69JR5TQLwQOm0V595D/IcHmMQqJJvEnDI/i?= =?utf-8?q?Ib5dSHNIY3OxaiSUH8NeqL8YTdD5cvVTNshWmlfhiYdMIOPojqdEzumDeRL+F0SYT?= =?utf-8?q?lmRaHsvMZFRFJggJHAjAFPK/QOaFuHKXl7eZQliSwGvodubtDd1vxiq3FG+lxI6m2?= =?utf-8?q?Pq7ZicnZiZJY2rviaPV45ipy4UW3o0LQKME1KWA60paua52eA8uJgpbx43dJWk2YO?= =?utf-8?q?m6Z8KNw/LrrTU0xXZKIRsD030W8Yb6nj7+zfljvv00tU48Cr3wrw7VCx6G9JZRswu?= =?utf-8?q?lTsq2BIEoys+XZPoFQBp80aZgB/zeh468s9Qom/tAx7fYMN9i4t9Zt/uS0KyYQiyR?= =?utf-8?q?YnxeR7wbPWJYQdzpertnRtNKclpBiANygDUkiWQUUcE+XT4tfCpdtLOi9hL+BEv+U?= =?utf-8?q?z9cTam0OV30LC24rEgF9KOd/35307IQmc6YUcFIuKwDh+KHfg2Z9pFv/gIhzO7HKC?= =?utf-8?q?wBGrP1pVo4iRmkKk7FEeHnxpa40awuULlvQYGAOpXcC7zeatKZZxRwuVLG/0uoPdj?= =?utf-8?q?QgGg7Zu5qIAdTP7mUlsWGeYtXD1Js6u10a5MPQApv8gFv8psbKJZ62TQbKl9T8IpG?= =?utf-8?q?CMvUVR0Fbx3OuTRllq+Gbizb7iSgp49c6uO9xVSTWWofGZW6zup0TCNpNx+Byjqu3?= =?utf-8?q?/y55+aLjOIE5wxbhUQ2galnYy1tFTctcQkJiJfFXXocoLcwOE8PV/H++ABAA7+zXZ?= =?utf-8?q?viMxAQ9BttFSUKE591LH1UAK9NmgihIJueluO4qFpH4gCVZCNho8NRL6yLkNecqkl?= =?utf-8?q?irU86/4ijAd7LPQm2OR83zQh7VXA4TL2US5VhAl5kdtfCHl9Od7XR6GArWIQWWvhb?= =?utf-8?q?o6VrLzmzzZPgxBThS5+BAXBZst659/YNDwIvFcRVlv9KMpp6R3ZSJvl+uWHNeANTH?= =?utf-8?q?BRCLICcATQBdzsHACiTMu3zpWNW66shJBQG5Plxer6+srPSfvna8WLsl8Ub8WjZZl?= =?utf-8?q?ycpYmiuzM3QCwoha?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-80ceb.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: a777854f-159a-4704-68b4-08dc516f6989 X-MS-Exchange-CrossTenant-AuthSource: AS8P193MB1285.EURP193.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2024 10:43:34.0947 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8P193MB1351 X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org This causes random test failures like these: FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: $fba_value == $fn_fba FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: check frame-id matches FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: bt 2 FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: up FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: $sp_value == $::main_sp FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: $fba_value == $::main_fba FAIL: gdb.base/unwind-on-each-insn-amd64.exp: foo: instruction 6: [string equal $fid $::main_fid] Here the read happens below the first element of the line table, and the test failure depends on the value that is read from there. Theoretically it is also possible that std::lower_bound returns a pointer exactly at the upper bound of the line table, also here the read value is undefined, that happens in this test: FAIL: gdb.dwarf2/dw2-epilogue-begin.exp: confirm watchpoint doesn't trigger Fixes: 528b729be1a2 ("gdb/dwarf2: Add support for DW_LNS_set_epilogue_begin in line-table") --- gdb/symtab.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gdb/symtab.c b/gdb/symtab.c index 86603dfebc3..2fc8e819932 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -4177,11 +4177,10 @@ find_epilogue_using_linetable (CORE_ADDR func_addr) return lte.unrelocated_pc () < pc; }); - while (it->unrelocated_pc () >= unrel_start) + while (it > linetable->item && (--it)->unrelocated_pc () >= unrel_start) { if (it->epilogue_begin) return {it->pc (objfile)}; - it --; } } return {};