From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com [IPv6:2607:f8b0:4864:20::f36]) by sourceware.org (Postfix) with ESMTPS id 6B52D3858C41 for ; Wed, 7 Aug 2024 17:19:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B52D3858C41 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=obs.cr Authentication-Results: sourceware.org; spf=none smtp.mailfrom=obs.cr ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6B52D3858C41 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::f36 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1723051185; cv=none; b=VeFRBbQ+ykJrtu3EqqJVxa2ObE8W32oLKMuUhUgSOadaz4v/BP01NrZo38dbF/Yga9jsmqVFu73cxFQUJlASm/HCbs3YgvJsFwFLyrX32v8i3ijZRaoJJoyJwzkaQd3la3kKBjKc5N/Z26q85wZxlWBCK5yYhdEng0po9uPhq7U= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1723051185; c=relaxed/simple; bh=NkWAujmaf+B6mJ1hxb7rxF0OvofjXTN3yd4HJJdNMoU=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=mbZiNq8qsUNftMCJq64eTHrEprcXUpZ5wPe9Elgrq2St3M8Cc27tUB8eILwhkMxbLgFnXAvRv06E/xx6fRVnIDj6d+CXnxZX1ItmLo7Oc3gea3qEPjTA5VN3ByXSjbXcqqXYT5Q0YMs2k5SlHKAJGvv/29I8ioQsG4No82KpdtE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-qv1-xf36.google.com with SMTP id 6a1803df08f44-6b78c980981so783446d6.2 for ; Wed, 07 Aug 2024 10:19:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=obs-cr.20230601.gappssmtp.com; s=20230601; t=1723051182; x=1723655982; darn=gcc.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=p/IzgN3pLlFETiWsUHDFKmrwbjtmwAOZRPey2Xv7sKQ=; b=WPDsAw9BNq20siKEgLQUJkNm4+Dox9fmsB5aWF7CsRoG4GjF2GtOrsNtlfxV6jli6V E+vkH4jvHdmM1vKR988gGJmqEZu+Vd3cpnBwSSTwQc6eT7NnHmlc+nbLlEYzM/HE16Og nnV22mq4Rlc+m4RUMiG+jRjaZZJTmOOXvaIcE/OyXRnnbK49oGUAZaym+jiWozwPrlYN gG17UoOGHDaHF/Yh9RllsHr9d2NbAQb8zjdn0mdURHXTYba7J1d3n7GkPwVca3lygVaD oV6K4RA3gTi9bbvlzPALBGGWlbuAfptvCp/GILUcmeQyIUOjOOZ8gkFo6RyIV1Zqh6M3 wfmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723051182; x=1723655982; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p/IzgN3pLlFETiWsUHDFKmrwbjtmwAOZRPey2Xv7sKQ=; b=RqItZeGOhSjFco/E9ixMflw/SldLu7TQX2V2dcOv5feggMti5ajMxdDcjHQ0z915R6 gx5pNAd7Dgt+mDZKagNlcMgVMmMXTruu5dXI7JMwxmtJtjq5ahGGxEsnaYtVJO8URxNG pIrBCMKHrFyv8DI4FzXHf2WcsPC6BaPHgZ3EeqxJUg+qVymZqwAOc9hL1h7amNksd90N EVpGhrpG8w2+wFhl+9A4zX3pGxEw9fzpFZMrokpy7tqjclYXsDzuSDd7VC2nIAMC4uxX 4UFjSkH6DfF/em/pTX2q0ED/sAQFEBf+UvbpQ6+n1JfcmxJLGFd/cxpIqfjLPGOllY5N Z3Ng== X-Gm-Message-State: AOJu0YyBEyGbe701cnFOVOgDJ6+fVQEj6/1fSBiRYTZqipFVxUSKUBTG V8FU2+YRAVN/BPYa6zPzMwGSDiW2+cThqcd+sZ7TRyjZHF2SsxOROnrprT/efOCYHcJQXaMqPjf w887Y04BmtJZdChoRIx4xHbX5P5k7TBwFNvenSA== X-Google-Smtp-Source: AGHT+IG3cRS06SgHbycY2WEkiMeHk0L6jAartogInVKU9lzDAZS48L2YPXeh7Vs4bKJfPDIxUhjSmjfxiRHRyfDZzmA= X-Received: by 2002:a05:6214:4881:b0:6b5:e60c:76dc with SMTP id 6a1803df08f44-6bb983a5437mr267850286d6.19.1723051182561; Wed, 07 Aug 2024 10:19:42 -0700 (PDT) MIME-Version: 1.0 References: <20240729144248.911058-1-hawkinsw@obs.cr> <4836e015-5833-4284-addb-3f85e8c118c2@oracle.com> In-Reply-To: <4836e015-5833-4284-addb-3f85e8c118c2@oracle.com> From: Will Hawkins Date: Wed, 7 Aug 2024 13:19:34 -0400 Message-ID: Subject: Re: [PATCH] btf: Protect BTF_KIND_INFO against invalid kind To: David Faust Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE,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: On Mon, Jul 29, 2024 at 2:14=E2=80=AFPM David Faust wrote: > > > On 7/29/24 07:42, Will Hawkins wrote: > > If the user provides a kind value that is more than 5 bits, the > > BTF_KIND_INFO macro would emit incorrect values for info (by clobbering > > values of the kind flag). > > > > Tested on x86_64-redhat-linux. > > OK, thanks. Just let me know if there is anything else that you need from me! Will > > > > > include/ChangeLog: > > > > * btf.h (BTF_TYPE_INFO): Protect against user providing invalid > > kind. > > > > Signed-off-by: Will Hawkins > > --- > > > > Notes: > > I have a small out-of-tree test but was not sure whether a) it sho= uld > > be included and/or b) where it should be included. If yo= u would > > like me to include it, please just let me know where it = should go! > > > > include/btf.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/include/btf.h b/include/btf.h > > index 3f45ffb0b6b..0c3e1a1cf51 100644 > > --- a/include/btf.h > > +++ b/include/btf.h > > @@ -82,7 +82,7 @@ struct btf_type > > }; > > }; > > > > -/* The folloing macros access the information encoded in btf_type.info= . */ > > +/* The following macros access the information encoded in btf_type.inf= o. */ > > /* Type kind. See below. */ > > #define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f) > > /* Number of entries of variable length data following certain type ki= nds. > > @@ -95,7 +95,7 @@ struct btf_type > > > > /* Encoding for struct btf_type.info. */ > > #define BTF_TYPE_INFO(kind, kflag, vlen) \ > > - ((((kflag) ? 1 : 0 ) << 31) | ((kind) << 24) | ((vlen) & 0xffff)) > > + ((((kflag) ? 1 : 0 ) << 31) | ((kind & 0x1f) << 24) | ((vlen) & 0xff= ff)) > > > > #define BTF_KIND_UNKN 0 /* Unknown or invalid. *= / > > #define BTF_KIND_INT 1 /* Integer. */