From patchwork Mon Feb 19 19:51:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 203251 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:693c:2685:b0:108:e6aa:91d0 with SMTP id mn5csp7922dyc; Mon, 19 Feb 2024 11:52:23 -0800 (PST) X-Forwarded-Encrypted: i=4; AJvYcCU5vBWpH6N6FTFM3WZYP6ey2XpZwBMG1cCmbmRS0Exbtj6vjfnPNk4qN04MmhYDgpUSsf4JTxIhnOOydoU2SzHnQwTg6w== X-Google-Smtp-Source: AGHT+IEep/BTgnGO3kHQFJe5M4eHO2yXoRWJW7a9yxFh/xF8wd1DEbp+Kf8E23sNR8W4NjJnuLk3 X-Received: by 2002:ac8:5c0a:0:b0:42e:8be:b74a with SMTP id i10-20020ac85c0a000000b0042e08beb74amr6447002qti.49.1708372342904; Mon, 19 Feb 2024 11:52:22 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1708372342; cv=pass; d=google.com; s=arc-20160816; b=lLzH6GMh49pEzHD+cB8bEA86K5dhgRrKxnF3SSKbmZhRuxBpIq0CuwO/nO5WRV7g37 PhQBCEU5vdMvq2YIz6PejVhxnRXWHLWtwGDKeoP5qzhFqg8McMfXK1+Os3LB/dC8N9D/ 9IRRtiJoeNS3lpgxUw7JzCCzm53RKtV6CEN7sMolq3k5PmRl6RVMTQA04zh9NZGIvhHl i4Le2cfu0c6Hkq1BqIq9STIz8GTBuu+Al6If73Jvnt9k4AU5Q9XO97DdffD5vMGl3/Ds 4uaG/EkbMjd7GHRKxdPwjAa+716vEQZ0LQYOD/k08M4xj90QPiWXmB62RLyKBKwIWPxT NJ+A== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version :content-transfer-encoding:message-id:date:subject:to:from :dkim-signature:dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=sU8fuDUCyLs7B1MLu5dfeiRlfcvkrAO+BmoH8ousbCo=; fh=NLxAvL/bDfPg4AGOtxqvQlND8vazkZrNzKLY8+LAbBY=; b=qDfutCjnJ8UhvQE7+yHLKhLvxFO3L8Zzb2GFDw6F04o8tYw1eCnrQEuoT7gENzgUU7 qoah9O5VKeVR7qfk2rFGdk7Hmm0nXP1rGIKNTzmBc85DepFw/WYpAWew89ysWRk3n1jY 5tdMKI9Re/1f+SaSvgt1bJL1edenPs/TP1d4S8whN8VNgBESYbvv6UdAz2walyQFhfZw LK4AYBU2wkU73z0eOab27UAjZG7xFryclaixtgGr0xXuHpBhav+57peAFiiTcxqUG1jZ 3jQBSbcwXseY8dVRQxiCD+unI8XGziTEztlGzFCFOvCBj7SdxNC+xSZsoevZR0cpw0aW 9XfQ==; dara=google.com ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2023-11-20 header.b=UKP9zvYi; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=WBCzar6W; arc=pass (i=2); 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=oracle.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id bb16-20020a05622a1b1000b0042e20d4750esi1221919qtb.174.2024.02.19.11.52.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Feb 2024 11:52:22 -0800 (PST) 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=@oracle.com header.s=corp-2023-11-20 header.b=UKP9zvYi; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=WBCzar6W; arc=pass (i=2); 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=oracle.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 765A73858D39 for ; Mon, 19 Feb 2024 19:52:22 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id A8E2B3858D32 for ; Mon, 19 Feb 2024 19:52:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A8E2B3858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A8E2B3858D32 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708372333; cv=pass; b=uOK0rRfWNpcw0rg7QM0hTPSV3sy5j6Rx3oPAUBPDTs8t0A9mt7qxZV+wNI3+aYP8Ky55XNRmNdest763plYORekJejMbvx+9HgYaCMqnOJBt+WEC2viTmdKwvOtfF6ayHji3T3gaCeNTv437muuZYDFvGVBKuaMgLIi0POuigQI= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708372333; c=relaxed/simple; bh=ijIeXS46P2ZPYJyhUgt6cJNc6DxNtE25LEUl4Noe4SI=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id: MIME-Version; b=uHu5RbGDeB/gECb3gp9zEhdq0fvSNsmguWAYYWD0d1B/RnJD9rLSaN5f18FHcdyrQsDBXAs1FzQtlCMdIopmaAV6oZLZ7mYrXZBV6tYOIV6WrPDmnJZq6RDCHoOXspu0MkUfyKWdyG782a8w2S2FEG9ZuuetNIf2vU1FzEEcJHM= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41JIJelh006569 for ; Mon, 19 Feb 2024 19:52:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=sU8fuDUCyLs7B1MLu5dfeiRlfcvkrAO+BmoH8ousbCo=; b=UKP9zvYiYIwkR4+L9eY9zT1A4TJ1PMTqVhooPnwge/HqxAhGzr10x+raeP/M9PyMvbJH aU+QijamA56A7yfFETmPI6+2baMVeEb5q1ySDHZb5BZAYryBUsa70xAec0q49Jw4nepo JBZTuLP2qxU6xZxi4J3nUQqkLLtrhuCVuvjCL9OkZybg0ydWtfbVrviIqy7iIdif0Opc g4dDEjVXTYgV+/zIkAcoaadCsiN0Uq8PIJuEwYG4Neo5znCfYsLwJf3D1x80xQ1/oxFD ycP+VFN6ZlYv6xfkcEEVPbRP3UYwoBdq+zCmtDXOqpA4Pygblvep9rDYtvmnX15jonId Mg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3wanbvcwep-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 19 Feb 2024 19:52:09 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 41JIFYGJ032559 for ; Mon, 19 Feb 2024 19:52:08 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3wak86aphe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 19 Feb 2024 19:52:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=apgOhmIe2wJeWUD4i1r0hD4kBjkvPmdiFCH3OR2orhWVeNOAhdZDqmJk9PJugkuq0SNKHOOn3EwSRMCteWlP3Wk3hbVY07mtG79hgY8vOQq9PkZ4tN+qlPNBOzYdE+aqUOvxU1I8iPSRVKvoPb8cXNu9QYweDAHBUfZxVDrPRctoa+O8KAbpHlzBvXWgZAvELRf1ryZJmn7Qa4jnJXTQpicsvGT5FvoBaB8moPaSLRY02BigGbqmtOoPoLUPXpLlbYh/oT5yzC9fi1VMiNRZfItX9vRdVtXHbXVk1psfi8NrVIdHYrJtB07UcgUqKPJNedfk+Xu5NAl7bQQbaP54/g== 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=sU8fuDUCyLs7B1MLu5dfeiRlfcvkrAO+BmoH8ousbCo=; b=YEtLkVZ3HgB8fYf35nxNH8euirNOuDJDwLUo+Juzo7pdwfZH9KXDjJ+MJ1HtMplS1BlAPsVKAU1dzDFyZ048q7mGeCQF+zyiKO88XdsNfRsKulNu9Asu4ssznoB56TmwJKZXG8a/M0Z3Ox3siJBxx7lUiu+FOq5ujIl793MqQWI6BvUTSeYyyRFE8uqsTStfvPToIuZfNGUXvZ9YKI880+KkQswaT38NGnM1zys9AQmYXLBLnd92XqkJcoKdg80ZM35s57pcrMtXorvMew+Rl/XVsjzZELhEiedVGku2Et8UmZxou+LxWOkO0xUOfmWD13SknP4EL3AjTp30GqDX3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sU8fuDUCyLs7B1MLu5dfeiRlfcvkrAO+BmoH8ousbCo=; b=WBCzar6WeorGnM4yclymnZ1tSsT5FkRyt5TnQ3ShX2hn+TzBqiF1UUoAoH/QR4B9EzBz2T8oN2QPIbooLYiQjwsBblE4B1UKzIQSm2oEqNkw+A1sT4eTDWnfQf0eHdEWVQNTYSkQBto7s7DEDSP4oqYqjN6VRVdnpa78EcJkPWY= Received: from DM6PR10MB3113.namprd10.prod.outlook.com (2603:10b6:5:1a7::12) by PH0PR10MB4629.namprd10.prod.outlook.com (2603:10b6:510:31::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.38; Mon, 19 Feb 2024 19:52:06 +0000 Received: from DM6PR10MB3113.namprd10.prod.outlook.com ([fe80::cafd:c8d6:e2c3:3a1]) by DM6PR10MB3113.namprd10.prod.outlook.com ([fe80::cafd:c8d6:e2c3:3a1%4]) with mapi id 15.20.7292.036; Mon, 19 Feb 2024 19:52:06 +0000 From: "Jose E. Marchesi" To: binutils@sourceware.org Subject: [COMMITTED] bpf: gas: avoid UB in pointer subtraction Date: Mon, 19 Feb 2024 20:51:59 +0100 Message-Id: <20240219195159.21385-1-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: FR0P281CA0056.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::6) To DM6PR10MB3113.namprd10.prod.outlook.com (2603:10b6:5:1a7::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR10MB3113:EE_|PH0PR10MB4629:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a22d104-be96-4699-3460-08dc31844008 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wOImJ47Yzf4nK09zUWCRhOKiqSc6W6IXN7NY9+qZPi4DwKFeBGdeDZVJFMDGg4IUKCxkErZ64dRrbobkWhEaWjNEnnmeVgAtDUyaO9UugzAHwoi27GvvNJW2imWcQKdXokU3zS5dVpoH9zgEfwiA4459ZpUkbW4JoHpUzdclNQ8cu6eHfvl9NI5q9U4rfxk7+P81y9Qxdw1oYxi7gI9YkVnOhhjEFmF6HaWOVVJ5v6Perv6RyDmX7AL9Y662zzuVZd9aX713RgrgvFSThlX4nRdzUqLrUWWH08wB2+uTt3WABT4FkJBa3dGBh+oNxELu+iP3XiGyTEhJ4IuwTEqKkEnKUWpxBwinDO0xjydMHLHcHYRZKNnZEe3O7xKbI2MI2eAbmNP7sClnAh/0bOLNzXy4uwIZGOsTTOgd/tkS8kKX32KclTvHXTtV45bnKjqwyrEZOEWOesKmeNVJ3bjaG/YyK7BYe6Pq/Aal9wd19fkazfaVHl8L3YMeRgUhbEvoL2xXDyBx4mx+IHfWG6CUOYL4t97GSi4OL7KaSiZG45Q= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR10MB3113.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Z+ZBSvWAYRI4YHWURcewg1Am2oImfr9+nFJypyzQtMn/zlZgvCh/DzzUx/nL6yD7b+oPatrZ1StLfbMOcewVJUWnxHukmf7dUtSr/6az3DOIM6W3eVmgq6484gSYi75/ZDX+s8yPg6NE4RqT8ZwmUhdLAijNHXF91+1IdfmVuTIHk+2mAKdIU3TJGhy0pWU/83p0i0waefdibuZg4rMQ2cGBCY0udTDfe+hWc489gZobxfPrwILALnACsjDGWi9YdpqZxt/spUgKtrUTaqqp7aEveIx0pgtkAMr+ESsJQBId0y2rh9A8XTVSVn6Qu2OwOzDVGwqliss6oUz/k8ZmcEVQeixBb8yddlJEHK0H4BV42hoKaJDYsxnr5DsQB3ssEi1Flq1+xSAciSHbBSuZ9I0XlSSli9sDgy/Nf0SSYpSSgV6Tx06IYCdYrF1EeeoHimmC8XaTU2r1kZR6KEd9w7ZQMQhF6IBJeO/6j/DJp6byjCI9deA0UwnFGwbgZbFWbqImUk+hcMNkS/Hw2XGM3Pg1yCxAWcC7gybZUkvjyTVgTNCDA11kUALlqKbM6rpV+d6kQA0K4Kfxg3Hk+50ht+DM/5u59eBGApk1/A4QBgNKb5zph7YCWJ6JsbnhtZyhUAsoVpvzEU92Ff6G3qgTXUCufh6FNgED0iyiMNxrHFErsrauAjxf28oKA+YAh6yK3Hnaoa6V+x8HjWYSG7EjUb83X8ONUlscsxc+9fVP3GtYHgn8zkAm/9SQAg1hVMXndnwH4W3PKuj+InQMasbdLbG1DwblhsUJ6Nev+9TfxmrzmgyA7ehQeM71tium2DTFUJRULJvb9fKK3ImKYBk3fbFJlsDzkWNpDCrWyQ7zFWAzeJcby5/4dI3T46O/vKZzVuioJsY0orYf+qI4Vk6SAgvqX5ThaFW8G6oMG8biJre3IEdhMV4DW87dx31/dwmN4rNQxanfJfdbH2gp0OuvRkgntC9BaXX9XEptO1dYd60y0AK8dB646PejbbGeJPgDSWtBZ2QT8RCJ3DfFGzkG8Bjb+AgfLQAoDlDBK1QUYaINi3zKDZVfjy4rgmAOtK1Enb/hrp2oq62YhdVDz9V5tGjeKkBnXGMafgU1vz97oy2uOaDbtb+I0zeWi8oNS3v9xaVjmKn7ARH6/5szZTUW2y8Kt7RrYdtNix/72VuDvjR91vKe8A5sWXDoJ0RouS9/8XznjuOKtxelgQaJM+d9SMAwZBbA0WxWu/Wd54J3MOX5LzAVcqPZ0nFWmMKIJhiBZHkJ6eh3/xoU4Y1T3eS58kdufC6BHualmJw1p4pv78+DqO+CcQJ9GYJbaR8AR2+zFb/lNQhNa72TIaIEksfL76ps5CMS2F5sqs/GlH8w3j4mSCCAMzLVvFhnkr5DS4FR6h5/8tzOEXok93MNX++mAquD4vc/jSdBqJCqNF2DwhLqBQSUO2Dqye3uELkqI8BJ/MnfNmb+f+frEyaZVJLAUQlCn3IIA9grp/qkV9vby6CrdtsVkDizeFEduFKviY2yKkZsLIJX1GFunSAXEJrGvOhRW4wtKhYsx5bNBf9xMoPwesjM5Zg/+5EkWiWXXQUq/kXQCvWmSnq0FAWtEEws6w== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PrHvOjc0aVqIz/1KO/6+SBGRXrx/wyMWTvqTr7FoShOHEp6ChAjH/zc5JkTOkdUS/3lOwAXMosjJiCg6s3yrihfma1a1AO9FPbh7OX0LYXr56N6OqQTbxedJrShlffzMw+bPtiS0BGdQpl5hucdOH2wev/Q3yHJbcuG2pQj+WEv4a5bqL+4XyBU7ZSsCEvh6io/KwuzJPup87oD9v247vosB2j9nK2oYgatzi/7OeQyLBRmoP9j23RcA10uL8FLVNciH7eyuxCvB2hHUvyGMF8r0+4x0jspfP//QawGdYYprCgTwaVfslPvfBqbkKXFt/d35++Y/YTlNgyWG3IcMoczHUucXGGHu6+EGsHHFmBT09yw7cUXGstoUxOWHgDFpUro5qf8hf3gAglpRDOcAzPQEyC4IURKXDm5ceVUctgjoMKiu2Fb8PIFx95VLVt1pQEBpdtxdH+FpM1WNHLox18dyCPEG8IbrC3cXssxzJAdSadYLwur4mSsb52YnMfukV30Ci3ijFceBWU90209yUCDPDXdtUvjiNsuV49fzDaMmWTJp0Vzh4TcdbCzmOMiOnCc2WY2oWsElCczAxfeSqOZXfUr3IGfNT/cFb54X+Ic= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a22d104-be96-4699-3460-08dc31844008 X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB3113.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 19:52:06.0495 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aVI74Xp144ZVs8jRlq3a0wAOrpOeGF5vYBdGtw1s/ThKvkqpVbGc8WkYMCouhWtznKWOoTj1M0TpMZ/Yd6GNU0aH1Tz4VlsWXTLRwQ2TjMk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4629 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-19_18,2024-02-19_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 malwarescore=0 bulkscore=0 adultscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402190150 X-Proofpoint-GUID: WDaC1SIgXqRoKhIFDHqUhaRjVOFnBpfn X-Proofpoint-ORIG-GUID: WDaC1SIgXqRoKhIFDHqUhaRjVOFnBpfn X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, 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.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791358238147435524 X-GMAIL-MSGID: 1791358238147435524 The PARSE_ERROR macro in md_assemble performs pointer subtraction. If parse_expression returns NULL then the later will be part of the subtraction and therefore UB will be incurred. This patch changes md_assemble to: 1. Accommodate all invocations to parse_expression to the fact it will return NULL when a parse error occurs. 2. Avoid UB in PARSE_ERROR. Tested in bpf-unknown-none target / x86_64-linux-gnu host. gas/ChangeLog: * config/tc-bpf.c (md_assemble): Fix to take into account that parse_expression can return NULL. (PARSE_ERROR): Avoid passing invalid length to parse_error. --- gas/ChangeLog | 6 ++++++ gas/config/tc-bpf.c | 37 +++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 8be29915d8d..3ae1d777359 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2024-02-19 Jose E. Marchesi + + * config/tc-bpf.c (md_assemble): Fix to take into account that + parse_expression can return NULL. + (PARSE_ERROR): Avoid passing invalid length to parse_error. + 2024-02-15 Will Hawkins * testsuite/gas/bpf/indcall-1-pseudoc.d: Do not select xbpf cpu diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c index 43e098c2a86..e23de4e0d19 100644 --- a/gas/config/tc-bpf.c +++ b/gas/config/tc-bpf.c @@ -935,7 +935,7 @@ encode_insn (struct bpf_insn *insn, char *bytes, if (immediate_overflow (imm, 32)) as_bad (_("immediate out of range, shall fit in 32 bits")); else - encode_int32 (insn->imm32.X_add_number, bytes + 4); + encode_int32 (insn->imm32.X_add_number, bytes + 4); } if (insn->has_disp32 && insn->disp32.X_op == O_constant) @@ -1454,7 +1454,7 @@ md_assemble (char *str ATTRIBUTE_UNUSED) partial_match_length = 0; errmsg = NULL; -#define PARSE_ERROR(...) parse_error (s - str, __VA_ARGS__) +#define PARSE_ERROR(...) parse_error (s > str ? s - str : 0, __VA_ARGS__) while ((opcode = bpf_get_opcode (idx++)) != NULL) { @@ -1590,6 +1590,8 @@ md_assemble (char *str ATTRIBUTE_UNUSED) else if (strncmp (p, "%i32", 4) == 0 || strncmp (p, "%I32", 4) == 0) { + char *exp = NULL; + if (p[1] == 'I') { while (*s == ' ' || *s == '\t') @@ -1601,17 +1603,20 @@ md_assemble (char *str ATTRIBUTE_UNUSED) } } - s = parse_expression (s, &insn.imm32); - if (s == NULL) + exp = parse_expression (s, &insn.imm32); + if (exp == NULL) { PARSE_ERROR ("expected signed 32-bit immediate"); break; } + s = exp; insn.has_imm32 = 1; p += 4; } else if (strncmp (p, "%o16", 4) == 0) { + char *exp = NULL; + while (*s == ' ' || *s == '\t') s += 1; if (*s != '+' && *s != '-') @@ -1620,46 +1625,53 @@ md_assemble (char *str ATTRIBUTE_UNUSED) break; } - s = parse_expression (s, &insn.offset16); - if (s == NULL) + exp = parse_expression (s, &insn.offset16); + if (exp == NULL) { PARSE_ERROR ("expected signed 16-bit offset"); break; } + s = exp; insn.has_offset16 = 1; p += 4; } else if (strncmp (p, "%d16", 4) == 0) { - s = parse_expression (s, &insn.disp16); - if (s == NULL) + char *exp = parse_expression (s, &insn.disp16); + + if (exp == NULL) { PARSE_ERROR ("expected signed 16-bit displacement"); break; } + s = exp; insn.has_disp16 = 1; insn.is_relaxable = (insn.disp16.X_op != O_constant); p += 4; } else if (strncmp (p, "%d32", 4) == 0) { - s = parse_expression (s, &insn.disp32); - if (s == NULL) + char *exp = parse_expression (s, &insn.disp32); + + if (exp == NULL) { PARSE_ERROR ("expected signed 32-bit displacement"); break; } + s = exp; insn.has_disp32 = 1; p += 4; } else if (strncmp (p, "%i64", 4) == 0) { - s = parse_expression (s, &insn.imm64); - if (s == NULL) + char *exp = parse_expression (s, &insn.imm64); + + if (exp == NULL) { PARSE_ERROR ("expected signed 64-bit immediate"); break; } + s = exp; insn.has_imm64 = 1; insn.size = 16; p += 4; @@ -1717,6 +1729,7 @@ md_assemble (char *str ATTRIBUTE_UNUSED) { as_bad ("%s", errmsg); free (errmsg); + errmsg = NULL; } return;