From patchwork Wed Feb 15 07:44:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 57417 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp56867wrn; Tue, 14 Feb 2023 23:44:42 -0800 (PST) X-Google-Smtp-Source: AK7set8prr71I4NrlFxT0dmBZwsQLQeZh9kXMHiZ9i12emzO1vOKCnZfjCKuFBBC/2lXXd4+U447 X-Received: by 2002:a50:8711:0:b0:4ab:1006:d3d3 with SMTP id i17-20020a508711000000b004ab1006d3d3mr1588535edb.6.1676447082478; Tue, 14 Feb 2023 23:44:42 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id d8-20020a50ea88000000b004aaa51b36e2si21274710edo.38.2023.02.14.23.44.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Feb 2023 23:44:42 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=YYdTumPc; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 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 0AF643858C39 for ; Wed, 15 Feb 2023 07:44:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0AF643858C39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676447081; bh=Rxl0tlMciuXjg+d0qTJs1g3CWkwKzmVAw0IAV9yxRw4=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=YYdTumPcjPxSZmv5nzPBZJIyc3zjC/W/hBr6xNcvhIyf9Av32ayZBirLgs08AQURj LZasdKT0MBPyhMnHCQakTA1+N9mhD3RY6O/ryP9ke1U4do/f7X8AafYTFT8/8OKyJP qljjxcxT8zJR2fcxy50iu6El3XJwzqZtkfShpMP0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2082.outbound.protection.outlook.com [40.107.7.82]) by sourceware.org (Postfix) with ESMTPS id 057173858D1E for ; Wed, 15 Feb 2023 07:44:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 057173858D1E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GJO4Mtlt3pvfpGi7a7RubMN4POWYmnr1r55dcx60hHUyR/tEXS5UUA4NIM8YVLovQI1f8kQits0T7W01FwcaHBuAgeMQMOlIrsQAm90DK96rl0x6UHjR/8xUB51VxuDncqU3mmwobb8f3QHHersCzT92suLmdN+xfPWA4rHdoGNMLx4e44nmbBZ0M+dn8cA82TPOxGiZs5o+Yn/yTcQMdhRt1srIvohgrK8gsoPaGhadP7tLQojz93yioRXTvBsGl2ypWv1AQtGjX3IV+LxnMvX84oC6ymjFldCpf04SFpaaaLyzH3Oe7jx5uJ5hSMEFUrGYU9ass5A7fhHpqbVmQw== 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=Rxl0tlMciuXjg+d0qTJs1g3CWkwKzmVAw0IAV9yxRw4=; b=an0OQIpE9Q/2fqpaJK4OT+aouAfPzrdV10k/FwUtovpOTzL0wqevWO4smVlhlVyK8dCxiLZ6/PccTo5xonFii0CSMPmPC5YoHwjtM0KkgWQpVH2W2xU7qcUPc4uA3M1pxMKaBXZP1Vz/3XaDMXA9fM/gpaaFZ7gNncTcHIpu5bqjBzfB0wtFbtdY5YxUnEFFIXca0ZE0KwwVX5a3f0Ut6vmeXPnxSfz1diWnGqgEwnCa+PO6Q8ClKCmObxKiJ4ULKyER77xep1e+Ag0VK/g0mUMAkZO8szk0vMFfcyvg4VxOzLBMkC7pAgb9cPvZKj5019MKXJcvoSKadWQ+txmatw== 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 AM7PR04MB6920.eurprd04.prod.outlook.com (2603:10a6:20b:101::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Wed, 15 Feb 2023 07:44:26 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::e138:4fc3:705c:d178%7]) with mapi id 15.20.6086.026; Wed, 15 Feb 2023 07:44:26 +0000 Message-ID: <56cd41d5-c0ba-d076-bf09-06612a2b54c3@suse.com> Date: Wed, 15 Feb 2023 08:44:24 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Content-Language: en-US To: Binutils Cc: "H.J. Lu" , Alan Modra Subject: [PATCH] x86/gas: replace inappropriate assertion when parsing registers X-ClientProxiedBy: FRYP281CA0011.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::21) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM7PR04MB6920:EE_ X-MS-Office365-Filtering-Correlation-Id: 2b3ba147-c8a5-43ae-ffaa-08db0f28760e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: joWkv6UTpMUDgzNsJ2yw8BJw1mQuruZ0OFilUCuSWIcGMbYp7bDzaInlqIjivLWhWd7y9E4M226sAgj4uqoeROCcFITdcOMJ/qQw8wq2rqmz+IwnFrYGACsNzSaJz+F/40DiZYatCsQXAFvdI8WZnFaH5s2U7Nj3gk974SMN09YgUmLmt9o4FfkDMngmqkwPWF2Ss6fNq35JbF5+CMMD5Y8qVbx2Tvuar1QohEM/+PySsybVPngwlE6kXIWe9GjZL9LFpZ3bTc+AAYaTQkp95DbgTy6qmE7LqAt+7Gay5LU1Zxs25gRGDVOnpS3ou0U8OlYUDtiwVV4PGXlJ/xVIJHCdMIMVXrC2vJMj1NUxQ+1EOCZfPuadf5veH38mM8e7tScDXIsIfcYjAFRsW2v+2JV4kOKCQKfcsXlraftE+wwzqibt+hAXKMaVFNiYsgYZXkal/4fArMbOj/sF6Bnn4t0PABWIDamUrYnLqt+5wMzk02x/hv/qcjASFSFPpDdc8hkpBHyrVKEMpOHC0TKrfV+XBBSFK7/WaVcjDTdcxo6lUxpKrCmOIr3uEYQoFLj9jp6v7xIjqlL6uMOYvpcrDpALrtLt4vmenFfXfSZ+rTq8VRwr4GycJLG7vobDfB7RKE4NOjeEYoBO5SD06vetlnDJ/yugyBnvW3bQo4VcwS1JD/cmzqeoya3ykmjGMmH6V6+0aMwEpcNu6Pq0hCT65jXxEpy9KoTQlvncFnQzD78= 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:(13230025)(39850400004)(136003)(346002)(376002)(396003)(366004)(451199018)(66899018)(31686004)(36756003)(31696002)(86362001)(38100700002)(186003)(2616005)(6506007)(26005)(54906003)(6512007)(478600001)(6486002)(316002)(66946007)(66476007)(8676002)(66556008)(4326008)(41300700001)(6916009)(8936002)(5660300002)(2906002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?TC8M7dJF6t2RkOy6yvP1Ya5da5Li?= =?utf-8?q?mVj2xBlpa50pgBRXqUO8VKdadu7AchwZuGLCVd2UadUmBqDOR3kJ/IrqF1Cgv45K6?= =?utf-8?q?MVEZ6T81XMFsWDkxkMmnk03xNxhy7nYzBOLKE8rtQS0q0qjMeDKF3XQ512yeBEl7/?= =?utf-8?q?KtQstMG5EIt640rtTwft4kM76GDkE+8r3MX/O19Oo7JT1bnSOrVfyKM6etyln3n/L?= =?utf-8?q?OCqRpos0BoqJkhGhU6bZi0JbOT3JNWpLoQmfUFdjLrXaZMiPUzHEdt131/XetsPH+?= =?utf-8?q?DsL9COyA8N+X4RbWICx7+3FqcBYTdv5zaicMnI8zKyQtbGiOq8bAJO2KXpX4OP9OS?= =?utf-8?q?sdMzsZCGS0/LC18wQ/WB36WXEAHjuANIYb8aW5xUfuehlbLnflSqfJHLmgi/JFJlh?= =?utf-8?q?J51iAUvxblRKUG0nJlfkGprpn8TSfw3Z7iNjh1qrluVXSNQ5F/50+QWXxmyxEJvLo?= =?utf-8?q?D5pDwcELx6tfrQT9PpKExGl/DApWGAe2Evz7o+ckw2mmhpk9jOKAxMKq2Rg6Cyfx3?= =?utf-8?q?tEiW5+8BQjQ4h8KoAhMyh7dDS49ApA56D4QK50I16FbrPJZQU3QNBwj/u71EwdRUx?= =?utf-8?q?C3tPoknLpay8ZcYgiQwCjRz590zxK3JTehMHVpa7H66u+t7PvLR/nZxFxI9Xd7CLw?= =?utf-8?q?R59auUsWyFUPN6UL1hwSVe87FUknZWZR0I/Z/2C7gyaWVVUnIa5tPcNNzswvMk46N?= =?utf-8?q?+qvFvD6YgVKcIsR7UM6nBoffEsDdE5O0H7SMbJ6nG/C6yCnyL7IAdvXt70RVQrXFP?= =?utf-8?q?MzaOkp2kK0lGEtHHGOL+4wHFtzv2Ld2aU7yYQhvn4OdHDSlpYV/KEKit+SaiQNdGY?= =?utf-8?q?o7J11AccUNCoH21O4IE2UZEVju2k+COrOLkCtEdCwunOcDtIhQuvY1NOWruzUuhYT?= =?utf-8?q?AWnxjUvLuUUiCiIY+3DZCCkiCTxc3hLPe9WK7SwViDnrB7nsrjSgTDaS4DsYqKgMO?= =?utf-8?q?xXU+A+r65kNwZJvuJgYUjIzy22qSvuvpN+DM1M3KPf7X8AwFfSxikp9dv/thwrZR6?= =?utf-8?q?dF+MUgsE01Km96xZei/k+WrGbOMlM7wXk9oz8xAXzPV9E9JAv9ztGQg7H278cyyPp?= =?utf-8?q?86KkCBCGALYAFHDiZICyTIoB2zrCD7QlnbkgGoaKq3FC6GFtkrLWiSLNaNrWzj0LT?= =?utf-8?q?ttENJaJScEhnEjD09KlNndcKHPuAcvEXj1MjJVR1Lc7uca/aO89vJqpb+BqFa+/dr?= =?utf-8?q?C8lJPttXIGkE3/d/yW8pf5JEgqd8X0cdsgLqtLeM/C+SIN+f1auf8DB+8PNebvQ2x?= =?utf-8?q?DAItz8fW3tQbAS+m3Me+xjxBHgEG6Sn1S35d9vEaTE6JK2uNm4LmdXDwqcmBmC+As?= =?utf-8?q?H7hdpa+ib8I019V85iduvDsiFUS27f/NPwl3Vp0pTBgugdjdxksjp7sx47PAS1Lr8?= =?utf-8?q?sY8BPzzFm3os6usNisI+jeDHt0B+Yy8FQMyZ8R0SdBc2y4zXbdryN1S65DLZjWpZf?= =?utf-8?q?exOXArexvcOLyPwbfcj6BNsq9bNcniU+r+cl7cc2UCMk2KANtAPQ320jpmV+YxYVj?= =?utf-8?q?Wg4jvTRskYqI?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b3ba147-c8a5-43ae-ffaa-08db0f28760e X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2023 07:44:25.8110 (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: /G4tEb9E2en/J3eS0RQ9ntNvIRM0H0DGx2gVQjQSLbloQZZFLegB9p+JNFZlSRjrxaR2jgp1+WddEu1Poy/Aiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6920 X-Spam-Status: No, score=-3028.5 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 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?1757882175759885318?= X-GMAIL-MSGID: =?utf-8?q?1757882175759885318?= PR gas/30117 Once a symbol had its expression evaluated, the "segment" of the symbol may be reg_section if a register is merely involved in the expression, not just when the expression references a "plain" register. Therefore the first of the assertions put in place by 4d1bb7955a8b was too strict. Convert it to an if() to deal with situations like this one found by fuzzing: x=s s=%eax+0 y=s or $6,x In non-debug builds this also avoids potentially silently generating bad code. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -13057,17 +13057,19 @@ parse_register (char *reg_string, char * { const expressionS *e = symbol_get_value_expression (symbolP); - know (e->X_op == O_register); - know (e->X_add_number >= 0 - && (valueT) e->X_add_number < i386_regtab_size); - r = i386_regtab + e->X_add_number; - if (!check_register (r)) + if (e->X_op == O_register) + { + know (e->X_add_number >= 0 + && (valueT) e->X_add_number < i386_regtab_size); + r = i386_regtab + e->X_add_number; + *end_op = input_line_pointer; + } + if (r && !check_register (r)) { as_bad (_("register '%s%s' cannot be used here"), register_prefix, r->reg_name); r = &bad_reg; } - *end_op = input_line_pointer; } *input_line_pointer = c; input_line_pointer = save;