From patchwork Mon Jan 9 21:19:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Vrany X-Patchwork-Id: 62856 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 E56783858438 for ; Mon, 9 Jan 2023 21:20:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E56783858438 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1673299246; bh=1Djj7Dy9Rc2sJnSJin2NQlZFycLZrWnTyYuUmMzr5Ts=; h=To:CC:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=elKXVg/Sl72UMmIu38jyIoni0wmgW2ft2pD0v8p22e5LP4Ms5l+/XMstQTy5rRic0 UCWMkAq5z2JPxbWZmH/mni3i8ZgIgSMPjOMN143aZg3dlH/qurQjYd2srH0iopUh6/ 4dEStCvL3DgwceZRVosfkS9HQUQZzlT4LN668Qkg= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org 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 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 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: XYlTgiG7ODVDtrgKUMAJsNr9ho8tSeLcI/yYINTqWzdolCAr/s94F5UKGSaXavg3BzMsazgwpTINMbaXm/dj8UB8mqT7y4hvJiYPnqtJFlR3HZT4Vm2h8xUgW3DlZPFCI8a0Vju1ZYEFPSqBzYbezxCCztp2/XP+yL2/MhcptnuY3hL8Ip7PhRxLC7sgdzCNyXz/bqwKzM60mlPJ1NGSdyOc+IRwna16CbLJcTWr8C2xiNuJ+pO5n1PsZRUGCn0yIMbmXLUvqFIBh6n+qrWm8dbtjQs9Hau7sL1OR4LEs+4O85hiFDWOfZQFRT6NECR/1AlZluKWzzYgeEnThxBpc6NuIjQooONjFmMWWnbNrKgUFahdetUtu73/QZVeANXMBLZMQiZWz9GO4Fo4I1J/aJeCs4473tLmAbeTODvam9q3+KWV3mnZUylgOz5Mi9UYGr2hNt+v381Bpq2+4N0ZGN7MUBbS/MlsWwtOtknAEkocTCMRAS9haWaRXSg0qJM80kadLnu1whOwDNimocCrIijGZmGzgYEeXoqTnLAALYX+KkQUt8wPUkSct6fkZQiB0bEbOqI0CBIwASZbYF4tyVTbx9mOZEWfs2lXNwZJ8ilrgaHLHnLZnjEGrdaeFKEo/Cq6V4e1MgVtKwFopbEYZMgowuKKEaXaze2hXJsr/b3aNyEJPxRH8m7WrZzOgvfezjpIn2fi8a5RwkSWOp485aW5rbkxG52ER10gKvPMWTKE6WJjXb8kN7uLmuRQdkUUjZpgiwV6UfD009VeRWVIvFDSGSLULEZFgPeeigEQHklmniPGb0nO9rSffmZlQ7CZe3hhAwwenIrQ/MBFa/6f6jz3U3mqAUwhtm/nYuD3T4Nh4EsanzKy+nrHPWJLBvfzkvvqkR7TuwJIaKkxc9IWLRUu0r6G+1iHLxEyH5VkUqRnksd9KH/BOl1qpviPNOs6k0v7d4X2bgZD2nkZGKGLHwWcG1djvBidhlPzDsxhj7+CytxbeCyw9geAYEzll5QMWczOTTjlkvU/9ucLVEWQ5cBSCfQUEEqHjbaI7ctKgZZCWF8akFWlWURTtkKm72d0BiIMkSLxK/fMx/ihzxlLb/XGbHiTXOhQ6m1m5kDm2nBIUKb1/3D7I5S4yt7Vqtu2OuEKcDVYTGB4nMv/inKPVHv8EI6KJ6WVMKmNZ8o1XnQy65JxRHt+3s91iwnH23SfYkIa3uJwwKT9n9zzilC7xfO88wAhgL/Fd7TOoa8/1T6DxZjIwendNI986kMpjIxVCXDI+M9Q/RqJKtWz2HF4XIQyMUrS/DyBgO74nPAZYoP1osX0uRtynAkdPU86tL0vdSHGiqBA9EhA8JeznuG30nq+tGG2MDYj29Qsd0CvdL5VLC+ejr5+Qf7AodaeP+FE9APFOOsMPoKlHtDn1aZTzhGGBdDBH+g7DauHtGEFHvf7XE3cAP3w84sINZ7NVqdYF9BjEXzOT8ssNeogo4RhB6a6A2qHwbB3aiPINfCNZGyshp11BhFegBwO2x3Qb+NTZwkRTSO6IpiklrTYiO2NyZAPLKB79U/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 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 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: , X-Patchwork-Original-From: Jan Vrany via Gdb-patches From: Jan Vrany Reply-To: Jan Vrany Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" 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 == 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 {} { gdb_test "python print(list(map(lambda objf : objf.filename, gdb.objfiles())))" \ "$any'<< JIT compiled code at $hex >>'$any" \ "python gdb.Objfile.filename" + + gdb_test "python print( \[o for o in gdb.objfiles() if o.filename.startswith('<< JIT compiled code')\]\[0\].build_id )" \ + "None" \ + "python gdb.Objfile.build_id" } } }