From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by sourceware.org (Postfix) with ESMTPS id 424E63858D1E for ; Fri, 30 Sep 2022 01:02:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 424E63858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pj1-x1033.google.com with SMTP id 8-20020a17090a0b8800b00205d8564b11so2857418pjr.5 for ; Thu, 29 Sep 2022 18:02:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :from:to:cc:subject:date; bh=PiBkjfIfzEGOAKQMyV8XReAgbF3TWBD3NtXWb0T3o0w=; b=WvSexIHBzsKq/EK/ToKVMlLy7MnvSNizwoXrzln+/gieHCU49d0mBfRnZTjkt5OlIO cV6Pxqk5Jh/L2REbllPprQL4h821d5DsifIft75j6BUMpp0zgXotyj1+CD3dGDFpTimT mT0h0MO/wQV791j/UXqJ7cP6MPTYiTGZPzJZgQGzCzemD/ZwjGSb0MBvRXGEgnuSGFRx x4pkmsE6u+8p9viGFHTTcaW6U4xGBGUFRF+U8QudeFrcadFXlkpZX5NDlvwyUuwZ3i9d woTY5ve4mvkkn5/OVK/RaRtSOTGmjuyy9w4QsFArbgKTvfF8Zu+SWOxvJLCqYe2uXvut 5YaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date; bh=PiBkjfIfzEGOAKQMyV8XReAgbF3TWBD3NtXWb0T3o0w=; b=Qd7So8/c8SkZYJz/qqDFsuKXRzbceTjIX7z6cJn8bidiAsA5TruYit4Etz13cCX9Js QJ4Uw+DPuNsVrGW2ZWpMjwGy6+m7etwUeAIik+JzBQV90a48RaVqQEcWLtY+Fe0vRQ9w sztRNalczV2micqQmRPJo38CyU7ciNOgFjjfMJNtHuVi5uemxk8liS8yMwCBKgDxSBZZ X6TxGhl+UHB+AFFVqn7CkqFX6yoVzXjFDjOsJ6oTBz8SKqOWKBLC3+XtZixxpUQEi68B kuiy22PvrmTzn+2U+SKaCmQElYzFsaw91KDByhpzPxiGp5r56MmKSJP+t0wyfFoG7xZt WptA== X-Gm-Message-State: ACrzQf3q3G7Fgds4FjzLoS8vl+P+1g68DRemiPqlsEGHX85kDuqsALxV 7gy5hZpMt/uVRRHOzBKmX0mNntXlOUM= X-Google-Smtp-Source: AMsMyM5SnijEdJ2BOnQ9kk92mnB2DssecAL+4xRQLEfPbNeNtRisSXLMaSIw2g2Vusz+SI6M5jRnOQ== X-Received: by 2002:a17:902:e54e:b0:178:5371:5199 with SMTP id n14-20020a170902e54e00b0017853715199mr6372248plf.59.1664499759883; Thu, 29 Sep 2022 18:02:39 -0700 (PDT) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id p3-20020a170902e74300b00176b0dec886sm550625plf.58.2022.09.29.18.02.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Sep 2022 18:02:39 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 5E74311404E6; Fri, 30 Sep 2022 10:32:36 +0930 (ACST) Date: Fri, 30 Sep 2022 10:32:36 +0930 From: Alan Modra To: binutils@sourceware.org Subject: PR29626, Segfault when disassembling ARM code Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3036.4 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,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: Note: -w diff shown. The actual patch applied reindents. PR 29626 * arm-dis.c (mapping_symbol_for_insn): Return false on zero symtab_size. Delete later symtab_size test. diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 684c74f7f20..caf3531ae3d 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -11865,14 +11865,13 @@ mapping_symbol_for_insn (bfd_vma pc, struct disassemble_info *info, struct arm_private_data *private_data; if (info->private_data == NULL + || info->symtab_size == 0 || bfd_asymbol_flavour (*info->symtab) != bfd_target_elf_flavour) return false; private_data = info->private_data; /* First, look for mapping symbols. */ - if (info->symtab_size != 0) - { if (pc <= private_data->last_mapping_addr) private_data->last_mapping_sym = -1; @@ -11884,8 +11883,8 @@ mapping_symbol_for_insn (bfd_vma pc, struct disassemble_info *info, are disassembling a different glob of bytes. As such the optimization would not be safe and we should start over. */ can_use_search_opt_p - = private_data->last_mapping_sym >= 0 - && info->stop_offset == private_data->last_stop_offset; + = (private_data->last_mapping_sym >= 0 + && info->stop_offset == private_data->last_stop_offset); if (n >= private_data->last_mapping_sym && can_use_search_opt_p) n = private_data->last_mapping_sym; @@ -11935,7 +11934,6 @@ mapping_symbol_for_insn (bfd_vma pc, struct disassemble_info *info, } } } - } /* If no mapping symbol was found, try looking up without a mapping symbol. This is done by walking up from the current PC to the nearest -- Alan Modra Australia Development Lab, IBM