From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.129.114]) by sourceware.org (Postfix) with ESMTPS id DF5F13858D37 for ; Mon, 9 Jan 2023 21:20:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DF5F13858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=labware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=labware.com Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2169.outbound.protection.outlook.com [104.47.57.169]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-79-sKuRKZK7PCe3aiH0xwUi3g-1; Mon, 09 Jan 2023 16:20:21 -0500 X-MC-Unique: sKuRKZK7PCe3aiH0xwUi3g-1 Received: from DM6PR17MB3113.namprd17.prod.outlook.com (2603:10b6:5:6::10) by SA0PR17MB4298.namprd17.prod.outlook.com (2603:10b6:806:e8::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 21:20:17 +0000 Received: from DM6PR17MB3113.namprd17.prod.outlook.com ([fe80::1729:3f69:5d95:b768]) by DM6PR17MB3113.namprd17.prod.outlook.com ([fe80::1729:3f69:5d95:b768%7]) with mapi id 15.20.5986.018; Mon, 9 Jan 2023 21:20:17 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [PATCH] gdb: care for dynamic objfiles in build_id_bfd_get () Date: Mon, 9 Jan 2023 21:19:48 +0000 Message-ID: <20230109211948.604669-1-jan.vrany@labware.com> X-Mailer: git-send-email 2.39.0 X-ClientProxiedBy: LNXP265CA0018.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5e::30) To DM6PR17MB3113.namprd17.prod.outlook.com (2603:10b6:5:6::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR17MB3113:EE_|SA0PR17MB4298:EE_ X-MS-Office365-Filtering-Correlation-Id: 56362b27-fb8b-4b66-f695-08daf2874e20 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: bzY7xFDdLiRoqxIb/41/aTsIZVFN64VCSGTpPCqIECrGRNG8WX0MFxAfpKdoYs3CTewXDuuF1VmS+b+OlASszbo0RdI3cO0IfJ4/XZd+gvgdFJD4LwL81aFR/w2wCBDqpmu676+upkw83dr22sArhYEfUFad3ort0DkQrpaXP7bap2KYH/xo4RmbWc9sCd7hMEewpJ16NMxv8GPeJBLd6lFfQItMb2Bq/VxWrdvEpXSUaXipw8gsjkIk9GaGVKlJEXrq56facO7TRStsyGEIJeRX/rkrY0Lj8j7JAOoFc8diSFfEW7Hl5n9oXX6Ls/9LWHqECWe+UE9/Ko/kluo7kWe9bU4HY1pqFoyBC5ttEB35qFQrFxsmrSt5wmRifr+RpjDVODIPDRAw7KWSQnFMHErwrjqHwnI4Y/tLnk+olN5or5QTC6BlrQUtP1gm4eD+AtcGBO67mtmjfcUminkt7g+bCvaoCw6YShtqGaOeH9bJzwtxZa/O4BYJXdJWYuaT1j2AhB59tMj8kQhzNcGI3OlD0QpjBYkbt1N/wGfjgcGWXIUR9oUt/QFmf3YI8qDIS0dGpCFXCRV2BAOKa+wnpQpnS71H/hC9uxIWYTHm7dDNrXJPeULgXTAPiw6MXAMBYx3Q1D7eHiRTWkjStMQC0OrDBClyOley96c6GGBqsVx3xFBAPfa6ZG84pUsZjH9P X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR17MB3113.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(39850400004)(346002)(136003)(366004)(396003)(451199015)(478600001)(6506007)(6486002)(107886003)(6666004)(2616005)(1076003)(4326008)(186003)(26005)(66476007)(66556008)(6512007)(8676002)(6916009)(316002)(86362001)(38100700002)(83380400001)(41300700001)(66946007)(36756003)(5660300002)(2906002)(44832011)(8936002)(403724002);DIR:OUT;SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XYlTgiG7ODVDtrgKUMAJsNr9ho8tSeLcI/yYINTqWzdolCAr/s94F5UKGSaX?= =?us-ascii?Q?avg3BzMsazgwpTINMbaXm/dj8UB8mqT7y4hvJiYPnqtJFlR3HZT4Vm2h8xUg?= =?us-ascii?Q?W3DlZPFCI8a0Vju1ZYEFPSqBzYbezxCCztp2/XP+yL2/MhcptnuY3hL8Ip7P?= =?us-ascii?Q?hRxLC7sgdzCNyXz/bqwKzM60mlPJ1NGSdyOc+IRwna16CbLJcTWr8C2xiNuJ?= =?us-ascii?Q?+pO5n1PsZRUGCn0yIMbmXLUvqFIBh6n+qrWm8dbtjQs9Hau7sL1OR4LEs+4O?= =?us-ascii?Q?85hiFDWOfZQFRT6NECR/1AlZluKWzzYgeEnThxBpc6NuIjQooONjFmMWWnbN?= =?us-ascii?Q?rKgUFahdetUtu73/QZVeANXMBLZMQiZWz9GO4Fo4I1J/aJeCs4473tLmAbeT?= =?us-ascii?Q?ODvam9q3+KWV3mnZUylgOz5Mi9UYGr2hNt+v381Bpq2+4N0ZGN7MUBbS/Mls?= =?us-ascii?Q?WwtOtknAEkocTCMRAS9haWaRXSg0qJM80kadLnu1whOwDNimocCrIijGZmGz?= =?us-ascii?Q?gYEeXoqTnLAALYX+KkQUt8wPUkSct6fkZQiB0bEbOqI0CBIwASZbYF4tyVTb?= =?us-ascii?Q?x9mOZEWfs2lXNwZJ8ilrgaHLHnLZnjEGrdaeFKEo/Cq6V4e1MgVtKwFopbEY?= =?us-ascii?Q?ZMgowuKKEaXaze2hXJsr/b3aNyEJPxRH8m7WrZzOgvfezjpIn2fi8a5RwkSW?= =?us-ascii?Q?Op485aW5rbkxG52ER10gKvPMWTKE6WJjXb8kN7uLmuRQdkUUjZpgiwV6UfD0?= =?us-ascii?Q?09VeRWVIvFDSGSLULEZFgPeeigEQHklmniPGb0nO9rSffmZlQ7CZe3hhAwwe?= =?us-ascii?Q?nIrQ/MBFa/6f6jz3U3mqAUwhtm/nYuD3T4Nh4EsanzKy+nrHPWJLBvfzkvvq?= =?us-ascii?Q?kR7TuwJIaKkxc9IWLRUu0r6G+1iHLxEyH5VkUqRnksd9KH/BOl1qpviPNOs6?= =?us-ascii?Q?k0v7d4X2bgZD2nkZGKGLHwWcG1djvBidhlPzDsxhj7+CytxbeCyw9geAYEzl?= =?us-ascii?Q?l5QMWczOTTjlkvU/9ucLVEWQ5cBSCfQUEEqHjbaI7ctKgZZCWF8akFWlWURT?= =?us-ascii?Q?tkKm72d0BiIMkSLxK/fMx/ihzxlLb/XGbHiTXOhQ6m1m5kDm2nBIUKb1/3D7?= =?us-ascii?Q?I5S4yt7Vqtu2OuEKcDVYTGB4nMv/inKPVHv8EI6KJ6WVMKmNZ8o1XnQy65Jx?= =?us-ascii?Q?RHt+3s91iwnH23SfYkIa3uJwwKT9n9zzilC7xfO88wAhgL/Fd7TOoa8/1T6D?= =?us-ascii?Q?xZjIwendNI986kMpjIxVCXDI+M9Q/RqJKtWz2HF4XIQyMUrS/DyBgO74nPAZ?= =?us-ascii?Q?YoP1osX0uRtynAkdPU86tL0vdSHGiqBA9EhA8JeznuG30nq+tGG2MDYj29Qs?= =?us-ascii?Q?d0CvdL5VLC+ejr5+Qf7AodaeP+FE9APFOOsMPoKlHtDn1aZTzhGGBdDBH+g7?= =?us-ascii?Q?DauHtGEFHvf7XE3cAP3w84sINZ7NVqdYF9BjEXzOT8ssNeogo4RhB6a6A2qH?= =?us-ascii?Q?wbB3aiPINfCNZGyshp11BhFegBwO2x3Qb+NTZwkRTSO6IpiklrTYiO2NyZAP?= =?us-ascii?Q?LKB79U/5/MZB9CqTuU6j2olk5tAju4Iesh3cSm0V?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56362b27-fb8b-4b66-f695-08daf2874e20 X-MS-Exchange-CrossTenant-AuthSource: DM6PR17MB3113.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 21:20:17.3823 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WhBNj8dItcY2DbjnmvjKjcpMZj8VoOU0FyhVGnu5M4l9Jp6eW6nKIiscYJPTxivDSWitW6+bAiCxu4SZ66302A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR17MB4298 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: labware.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=WINDOWS-1252 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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: Accessing gdb.Objfile.build_id caused GDB to crash when objfile is dynamic, that is created by JIT reader API. Similarly, invoking gdb.Symtab.fullname() caused a crash. Possibly there are other paths that may trigger the crash. The issue was NULL-pointer dereferencing in build_id_bfd_get () because dynamic objfiles have no underlaying BFD structure. This commit fixes the problem by a NULL-check in build_id_bfd_get (). --- gdb/build-id.c | 6 ++++++ gdb/testsuite/gdb.base/jit-reader.exp | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/gdb/build-id.c b/gdb/build-id.c index c82f96402c8..671cbc1b545 100644 --- a/gdb/build-id.c +++ b/gdb/build-id.c @@ -32,6 +32,12 @@ const struct bfd_build_id * build_id_bfd_get (bfd *abfd) { + /* Dynamic objfiles such as ones created by JIT reader API + have no underlaying bfd structure (that is, objfile->obfd + is NULL). */ + if (abfd =3D=3D nullptr) + return NULL; + if (!bfd_check_format (abfd, bfd_object) && !bfd_check_format (abfd, bfd_core)) return NULL; diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base= /jit-reader.exp index 5f8b6b0343c..d8d561cd4df 100644 --- a/gdb/testsuite/gdb.base/jit-reader.exp +++ b/gdb/testsuite/gdb.base/jit-reader.exp @@ -233,6 +233,10 @@ proc jit_reader_test {} { =09=09gdb_test "python print(list(map(lambda objf : objf.filename, gdb.obj= files())))" \ =09=09 "$any'<< JIT compiled code at $hex >>'$any" \ =09=09 "python gdb.Objfile.filename" + +=09=09gdb_test "python print( \[o for o in gdb.objfiles() if o.filename.st= artswith('<< JIT compiled code')\]\[0\].build_id )" \ +=09=09 "None" \ +=09=09 "python gdb.Objfile.build_id" =09 } =09} } --=20 2.39.0