From patchwork Mon Apr 24 07:35:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 86886 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2564113vqo; Mon, 24 Apr 2023 00:35:16 -0700 (PDT) X-Google-Smtp-Source: AKy350bDt7bI0F/yhmAGCBeJ49mFXYGu7r37a9gNyoy1IeJAeN4raGDhZWlMyvGnZtzIg4XphoV1 X-Received: by 2002:a17:906:4915:b0:94a:5d16:a280 with SMTP id b21-20020a170906491500b0094a5d16a280mr9784323ejq.9.1682321716125; Mon, 24 Apr 2023 00:35:16 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id b15-20020aa7cd0f000000b00506c3ce3b23si5843270edw.400.2023.04.24.00.35.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Apr 2023 00:35:16 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=CY2Cgc6P; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DA66F3857714 for ; Mon, 24 Apr 2023 07:35:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DA66F3857714 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1682321713; bh=KEGFJ0YIomtzMR1vye+IRM0ebSBNK1Saxi5XtiVuUgo=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=CY2Cgc6Pubr/LZXTVf4PjamcI7n9eV4lmo6dpou2UfwXBHVF9V9eA/kMHh5T4yjBL m8aUonRjw3mVmFwMpU7jha7a8U3kGb/LY7G2GsCWngrpbeLyKiGiQTNT7ioSIRzZaU Q2WGrU3wN9KqKIds9W8uXs8qQukfcxlAeZnfFSvQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2059.outbound.protection.outlook.com [40.107.6.59]) by sourceware.org (Postfix) with ESMTPS id 009283858426 for ; Mon, 24 Apr 2023 07:35:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 009283858426 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eXZBBr6z+MIN2O1RJbTOWAaoQaYqKBsry5N6SxxPQy02euN6llJnRjRrKmUoYbzcDG8VV0oGrIJx6jqSTQorD9Ic94IyoDYK5dl5rHz+S/S1TAWVmgzdXs7/hGsOgfQt6KuDWVkkOWkNioIaEc7TzzSulumBMDcy+MMUuw5lsWY5MtCGiLAw2gM+sJB972LZidUjs6MS5g4BznZme1jYLTqBRhhklZ8DdroD2+UH27DkTKzvPfyPz40jfI98Qi3bB+ephWo9f7xKrWXcHu8J3+2mmkRixZN7FU4o/noAInW6zl4cGFLXYVR8boVVVh7cYVOofZJL8T6tHqSHziitrg== 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=KEGFJ0YIomtzMR1vye+IRM0ebSBNK1Saxi5XtiVuUgo=; b=HGAjWPY8n2E6UyeB0q2PK3HEu0XRXbggzJPl7S3YaQ99QWDgHcrdiz1mmUSYw+rT6KH/Me0pOKtXUFU7JiVcnqUacQPH+/Lmjg9uz6utrTaTPDtkEwUzprmAF3zZjIQciqrxM+iIFH/vakHXOXBNmxx+joygHDynuIDhhGj5boyEh/2/UVYie5aNDFoXRrsnc5UZvDgXce33UU1KOuiowxXeKIE+H4ymAxXFf37uGSvM+LAfY/O6JgWxuObOwvAeGL4xkGHHKFX4/BHapeGIfv938um+mhEs1tqACCBKVst48m6xlDahB9yHqBtaB8QdB2Sgv/0ghxQgSfu8VGZzWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DB9PR04MB8156.eurprd04.prod.outlook.com (2603:10a6:10:246::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 07:35:04 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::52b2:f58:e19:56ae]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::52b2:f58:e19:56ae%2]) with mapi id 15.20.6319.033; Mon, 24 Apr 2023 07:35:04 +0000 Message-ID: Date: Mon, 24 Apr 2023 09:35:05 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: [PATCH 2/3] x86: limit data passed to prefix_name() Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <61597ebf-cc5e-2029-6520-31f7adfeea68@suse.com> In-Reply-To: <61597ebf-cc5e-2029-6520-31f7adfeea68@suse.com> X-ClientProxiedBy: FR2P281CA0107.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9c::10) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DB9PR04MB8156:EE_ X-MS-Office365-Filtering-Correlation-Id: b857a49d-751c-4253-5141-08db44966b3a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bz/8ih93+LZlnfDhd6tVR/bTquyIoiGoXNaukrPm8O4P49oAh7sKbyzT4+ZjnViYg/s0f01Nud/MNXBznfqRi7i6W5DK34SDGcz3mysPhnuM1N6UI+b/cUnnSq46ZVRTQyKDMR9Swc7dG8jeY5Po3V7M3eymEPr6FWc4pQOIiB4D4kwQppTE8iwMFXaF56UfVfVj8aJqLXl00y9Akud7/O1WzqHhp6nN7a31TjtxQxKWFwX05ojmw3cNYzcOWpxFdCcE2QTN19reQapjGc4BQsSYLZ/XxK+3BaqCeLIB44j6XbnFm5Kkzvu7uQrwXlFvAlOpvKwui4CTxpaxtHeEIOkfyLiKOJgZZqwMJepRX6Oh+fGtjU2GQDDzu14J4tboZM/nMAQF2dX/24uEk0vxKrdogTgaFqPBRyL4O8tzpOIsIpHG2gtvOWPJBWjOlGAu3+d44ZY+Ut8D/GezL5L0R82LAkC0deiZNfGoe07e842jPtEbaMjJGfcbzjLsSnYX19XaP/vNgGNPJ+htTUJfQnhmsKV0rWoaLPXykJeg9H/CLfBM8J4vKh6IESivljdL8pmGJQMwyOmqNwjsHUc8Z7hws5ClVNYOaOHVvM/Ub3S1S/Y9BD5n/iX/+X+qcmIppbaZ7kMn6Hi3ltV6B6zomg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(396003)(376002)(346002)(136003)(39860400002)(366004)(451199021)(2906002)(6486002)(2616005)(6512007)(6506007)(26005)(186003)(66946007)(66556008)(66476007)(8676002)(8936002)(316002)(41300700001)(6916009)(4326008)(478600001)(5660300002)(38100700002)(36756003)(86362001)(31696002)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?sUvfmF8Zwbj8BgemeIPtjyafW8wj?= =?utf-8?q?qywDVWDlJE3a8vvn76OWd8tfjtJLVsFP5zQHHWFqvRAnsK4y61HCYqAZW6XJ7pRcY?= =?utf-8?q?IoKWL79uMFP6fpZmA1HSav0/MLZoaGsmcfP4cR/VNIpxbW1kx6c+kELPlXj7ZYn5p?= =?utf-8?q?4b0XlHwrutvNJcItVTCkqptWzr7ps+I8aFc71IcMA9jNbf1bATuwMb+MNhdpGnrC9?= =?utf-8?q?ki535nZjsWDB9+SOje6AoC2WtUUXfQ7M2CS2bIlugAke0SI1kTXLVKaK//CXf0+Rn?= =?utf-8?q?BY9iolaJSa/YiamD+WhZWhiugo5KbHVpyqDsYTvcA29sBMFj/hkojrsVXer/ouCnx?= =?utf-8?q?fld/6AOZltlCqdbm7y36zCCILNvtP/mdegF828ku8dNYYPRtfAX3kFGI4iSx04i3J?= =?utf-8?q?u0sW8o1X2iNgR2o0Izneadx0yd77rCVAP/2iSddgkNPxQ0OxQGOJvmliSeMPaaNIt?= =?utf-8?q?UgC/9kOVX0WA4pZ+zQ2pehqF4NC5J4HU4bDPng3QcU3LS4k3okIZtCFydKrfsf9T+?= =?utf-8?q?OKclHKhm0HegSua2BewSfDW6BTK7gcndRsekwrnMkjiQwyK/W4r3Hqi03O9KqjPSd?= =?utf-8?q?+WjtEdWTpeTDI2TNsIpqqEs0mKndBqH/OC+zbM9EL7f3fVUFKvytG67pKSRwitTd9?= =?utf-8?q?Sfg3TMDuW43d0iJvdSEHK3IO4Y1rQ4XX9sytGWONkifFBvAfLHZDDFJGnSQofRUY7?= =?utf-8?q?jtG5iZJr3zE1Ka0nFoEE2gs2oyelNiSjOmLrMm/LFLX0uKGAbZvCzsxD9qrY+Rmnu?= =?utf-8?q?p8dkfFUYx6Iojm3bCzWlpWaABUpayv8AikWG9hW2XqwzF7LKaFUzsJbQIdAfEshlh?= =?utf-8?q?2wXKNhUczxIJsYafJAJXMu8xd/8+vxd/GXjWp3H1BG5HQzNuAdmOk5PFjcVfKqE09?= =?utf-8?q?tIMwzlgjHaAw1ieHMSs4gsqS63HLVMsSSQpyEyU2CFdeuWd7G6MWW7V5N+zMgEmxP?= =?utf-8?q?hxrfVu0u5owX7gBnS0cfggBdL/GO5c6+9vWXaWcsH1TyFdu+PLE8Khjg1aSmAOW7p?= =?utf-8?q?LTdD3bHmolVVCeID04p5/9p9ERl1EmI4mq9R8H/BQp8ePVFR3dmVLx9C9YFTLSF89?= =?utf-8?q?39ZlKXCjp8wPS8lIyFjAwCF5UwzVHCnbxBc5svWeAB99idiTx9mb9A7y4lGqtkWrX?= =?utf-8?q?dATXlgwucNxC5EEn/fu+VADplQ0GhOdZ/8XisPS6q8xBdPjMshR4HNhdUu7LnY5c5?= =?utf-8?q?c7jowkUn5ZzzDxUQV0apJCB42n5FPLqV0aWtdCPym3CNlZIEomI4hCKrANpg80Ie4?= =?utf-8?q?0hBZDul2nHsHW66640QxMadIwLdi0kfKrCjmu/xQH/1lNbpKyq0jncvSaq8vvOgiP?= =?utf-8?q?z2Jld4vl/I9KqzS3QYnTNqOmWwZdYpUWPB17Y19cNSqGdUSBHOAxRjR34B0SLzwol?= =?utf-8?q?8suYLhMtoZDb6oEnaKi75BRH/6WddKCbDzY7ZJzLOh9nLON0m+3I6vKV5GFpROlcX?= =?utf-8?q?qHYVYkIQgW3VFm1JlrDtuh1ft1MzOKGwZsA82vBXcoU+y00/q8T+Hb/o8JeEKA9ah?= =?utf-8?q?8UlZsRLvcD/W?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b857a49d-751c-4253-5141-08db44966b3a X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2023 07:35:04.0424 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3DwFlmpmEmr9fZr8JaLYzT1TOarPglT1UhtUjpJl3vWmNWJasASbZB06HGOWNNBiqJSnQwA6QDy5HyQflUQkNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8156 X-Spam-Status: No, score=-3028.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764042175907629304?= X-GMAIL-MSGID: =?utf-8?q?1764042175907629304?= Make apparent that neither what "ins" points to nor, in particular, that "ins->info->private_data" is actually used in the function. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -117,7 +117,6 @@ static bool PREFETCHI_Fixup (instr_info static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const instr_info *, enum disassembler_style, const char *, ...); -static const char *prefix_name (const instr_info *, int, int); /* This character is used to encode style information within the output buffers. See oappend_insert_style for more details. */ @@ -141,6 +140,8 @@ enum address_mode mode_64bit }; +static const char *prefix_name (enum address_mode, int, int); + enum x86_64_isa { amd64 = 1, @@ -355,7 +356,8 @@ fetch_error (const instr_info *ins) return -1; if (ins->prefixes || ins->fwait_prefix >= 0 || (ins->rex & REX_OPCODE)) - name = prefix_name (ins, priv->the_buffer[0], priv->orig_sizeflag); + name = prefix_name (ins->address_mode, priv->the_buffer[0], + priv->orig_sizeflag); if (name != NULL) i386_dis_printf (ins, dis_style_mnemonic, "%s", name); else @@ -8928,7 +8930,7 @@ ckprefix (instr_info *ins) prefix byte. */ static const char * -prefix_name (const instr_info *ins, int pref, int sizeflag) +prefix_name (enum address_mode mode, int pref, int sizeflag) { static const char *rexes [16] = { @@ -8991,7 +8993,7 @@ prefix_name (const instr_info *ins, int case 0x66: return (sizeflag & DFLAG) ? "data16" : "data32"; case 0x67: - if (ins->address_mode == mode_64bit) + if (mode == mode_64bit) return (sizeflag & AFLAG) ? "addr32" : "addr64"; else return (sizeflag & AFLAG) ? "addr16" : "addr32"; @@ -9767,7 +9769,8 @@ print_insn (bfd_vma pc, disassemble_info i++) i386_dis_printf (&ins, dis_style_mnemonic, "%s%s", (i == 0 ? "" : " "), - prefix_name (&ins, ins.all_prefixes[i], sizeflag)); + prefix_name (ins.address_mode, ins.all_prefixes[i], + sizeflag)); return i; case ckp_fetch_error: @@ -9788,7 +9791,8 @@ print_insn (bfd_vma pc, disassemble_info for (i = 0; i < ins.fwait_prefix && ins.all_prefixes[i]; i++) i386_dis_printf (&ins, dis_style_mnemonic, "%s ", - prefix_name (&ins, ins.all_prefixes[i], sizeflag)); + prefix_name (ins.address_mode, ins.all_prefixes[i], + sizeflag)); i386_dis_printf (&ins, dis_style_mnemonic, "fwait"); return i + 1; } @@ -10025,8 +10029,9 @@ print_insn (bfd_vma pc, disassemble_info for (i = 0; i < (int) ARRAY_SIZE (ins.all_prefixes); i++) if (ins.all_prefixes[i]) { - const char *name; - name = prefix_name (&ins, ins.all_prefixes[i], orig_sizeflag); + const char *name = prefix_name (ins.address_mode, ins.all_prefixes[i], + orig_sizeflag); + if (name == NULL) abort (); prefix_length += strlen (name) + 1;