From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2123C3DA5D for ; Thu, 25 Jul 2024 12:04:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 50B8F6B0088; Thu, 25 Jul 2024 08:04:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4BBD56B0089; Thu, 25 Jul 2024 08:04:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 383216B008C; Thu, 25 Jul 2024 08:04:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 17EF16B0088 for ; Thu, 25 Jul 2024 08:04:00 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id ABBBE1C224F for ; Thu, 25 Jul 2024 12:03:59 +0000 (UTC) X-FDA: 82378141398.19.98997E1 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by imf08.hostedemail.com (Postfix) with ESMTP id B97D4160006 for ; Thu, 25 Jul 2024 12:03:57 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jmPjwT5y; spf=pass (imf08.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721908990; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gFGqeF6p5yDrmaqSWYiTyir0PswadDEtpT/arBN8MS8=; b=Sps8KqcposS+AaPlst8n8gOHWhplzmdGH58XDub2ww6RyO6MYshnsgv3fXjGDnnJ0/ABDM N4oxX56/ZxmxW81bbZo1x8Rl9G//qYSrowL3igRXxS4lhHlP1JKBgo3zsxZ4xGu1+u549P YUSTovEyrABnUgWmbcVikDu5IDyhLsc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721908990; a=rsa-sha256; cv=none; b=dGOLfNwUgQOoIWTYsXrrr7Fv3VaLN7rMxkiKM3DbwtQok1bBjty2xyHnsT0ZFITN7aQ0uv M1238Sh83P7Itn0Mge0JghKVY0/Q76bUCDlHJOSnHRWttmivcCbZ4JbM9Ks+OD/jEYfCIO sG06mAwmEXOWgRnGywXoCf934sx/Zx4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=jmPjwT5y; spf=pass (imf08.hostedemail.com: domain of olsajiri@gmail.com designates 209.85.128.42 as permitted sender) smtp.mailfrom=olsajiri@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-427b1d4da32so11061225e9.0 for ; Thu, 25 Jul 2024 05:03:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721909036; x=1722513836; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=gFGqeF6p5yDrmaqSWYiTyir0PswadDEtpT/arBN8MS8=; b=jmPjwT5y52s1sk9DhC9e9SdUbM6MLM1Ns3d9O7tvwfC+yvGPbIPEU7qM+SvCv3N7yR /MoI+zGPgiq0R5evVEHcPnCosMu60PLEnItpaYATAGC6Tgw4O+7V0uzVUTBOMLKvX+bU QBP3XJXIDfisW1xz62tO5BmE5o2eldSfLOVmdArI8DYVPK6LZFNMUALu0rwcjn784geA qB8Ogw7yFdptartuoOSxEOyJCq4VBbosEJSlX9oNBvCBEbTn9+2YNIvgatqkvXWmdyXZ GQBdVWdtSLouUvW6BQaxR65Opdn1jYZrdMNiC0m6SKxdAENrAJPqA4q71vmZ7g4CV8f+ WX7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721909036; x=1722513836; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=gFGqeF6p5yDrmaqSWYiTyir0PswadDEtpT/arBN8MS8=; b=w+mQF6xZxQudE13ZhadO+OjEZyqFnh4mDSkVAlxpu0JGrHRGM6hejlL63htliB9hJZ rf/nxetouMObEYtAzG8bmYCmW8tnmKn/2mUSltR3mtD6W69B8BaQhZcfKvw6PP+P4Jsi E+r4YkC0JhlxqgaGVE6A4J4+z57jeKVQelKVELaGHd82e2tMe09F/oE/NUEfYvXu73KF SgVy76LM13ERzbesrFUZAceDo8c7Hqt0xiXRR/Y9+LsXXCA79BlWveveqRIi8PmdAjs0 +QbcuT/kC/82njWLZK+UXNS21PJRHc2oPdGbuc4l4kC2DHgngsdBAelp/cksxPYc9Z5o RK5Q== X-Forwarded-Encrypted: i=1; AJvYcCXp9hn3M6sTcnJ29Sn9vyJtR72EPZmO5wIkHjkY3U36hlgK0L1F0Zr6UTNqkmx1xp8/d904nGbs/vORCLb5U2hKrQI= X-Gm-Message-State: AOJu0YzwkUXnshW3Yawpjz2y4dafeZEF3VWv2vkmIupqLWoe4KaS9fbP dEP+KFKt0JAZr0BiXp/LcNtJ+lKwhnP6/f/fGf+YdEcB7xJGYznN X-Google-Smtp-Source: AGHT+IF2Y9vGGSxvcU23deEn/T62D35tC9vu+dIH2UtVlU4Cy0Ec4LLYYQvoqc8LhI9agIsmOtdn+w== X-Received: by 2002:adf:b19c:0:b0:360:70e3:ef2b with SMTP id ffacd0b85a97d-36b31b9c655mr1844761f8f.26.1721909035831; Thu, 25 Jul 2024 05:03:55 -0700 (PDT) Received: from krava (2001-1ae9-1c2-4c00-726e-c10f-8833-ff22.ip6.tmcz.cz. [2001:1ae9:1c2:4c00:726e:c10f:8833:ff22]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-36b36858229sm1981784f8f.82.2024.07.25.05.03.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jul 2024 05:03:55 -0700 (PDT) From: Jiri Olsa X-Google-Original-From: Jiri Olsa Date: Thu, 25 Jul 2024 14:03:53 +0200 To: Andrii Nakryiko Cc: bpf@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, adobriyan@gmail.com, shakeel.butt@linux.dev, hannes@cmpxchg.org, ak@linux.intel.com, osandov@osandov.com, song@kernel.org Subject: Re: [PATCH v2 bpf-next 02/10] lib/buildid: take into account e_phoff when fetching program headers Message-ID: References: <20240724225210.545423-1-andrii@kernel.org> <20240724225210.545423-3-andrii@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240724225210.545423-3-andrii@kernel.org> X-Rspamd-Queue-Id: B97D4160006 X-Stat-Signature: 753okxh13d36heiqt9e15pj8pgxcp9n9 X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1721909037-451259 X-HE-Meta: U2FsdGVkX1+bUsDJ7DaCf1a1B5wzYcJ/82ppJga9kX9xxhCMXGLEBU/gWDwQ6q16rlUBXBqWrfdFS/Q8+HCdOJ4OeE6Z9dTwOFNe0dyxEHkSHS1TtPANmH5TTWpN/6NZrR2qhrZLp+Jd6edmbLgXDLjNeQziX9XwcK9Nr92mmB3tR/TiOLk5Ppkr0GonkfGGePrmBT7cHe6eIbtPsuafdLK0BJF+NXlWbwh6Qa4ijNOk/NSmsMwWyzgU9P0wSTaf+zAXAmXT2619OWdCEvWrcRXLRSLerEaD56LXbkIcFipBPVwbldoOs90CZsdZdwSWHAD67Fm56IFTcDrZN6pggGFtidNNhVKCgjMYpBSbEljZMMfTBBUR13pEHeVUmVPHMSKFyOd+pIn0JZxxtYBgzyVPOQcUcpRG57jfqkZ6a30YD4m03hBPRIa+wcHf8D158j8GqLFiFgyq7t89j/O9LqNm/jkWcRSkynyqpyvhMtkgxB3KFAYC/3MsLZDTAjEccDIUV2Lc4BwZ9qr+tjwXUp6X91lm09CijVU2jefEcVj4rvRrjqklQBVFncRtVaaDI7P2Uvez5LBospME5Z8SxaF+VwBZCng842sN+cwBMpZN73ce/9ZjcM1YgwgPeYzo7iVcxzDnrRs8lrbtCRRtGbejF9aNDzBiZ8G8xm97QrMx1LJoahJhLLjHPVFX9LZbrW78Tg+XqP8OQ2uac0c9yW4HusiZ/7AKYkR8y09XoIcab6kfiClXpFJc+2xhY43iF/VvztagOUwrzJ63VbUIgf2/LKV26xOHDuCacGBDzs8rjTtFkGHF0rhaGPxOfD+HPwYyxfVHgVaSg9O3T56u5Z8R1YmP0vyYu+GizRCpEKGD7PJxYI6vuUKLQOMIUybT11+biDZrTCvKK5EwEbiNsUJ5HYfhiRQa/i7uqAgTO9oXPgQhYLeJ27tcDhvclGMPb27UYuXCG4vH54P+WhF b6hV+cq4 xVcLG0CDGCm7/u/1IRAxeLFTBuiFg4d/JTVd5iwXvICHjVWc4J1Yb9foNU1oKEJ88JEbvnCIuWh9L3HbT6EmbSQLNodR9sAR8ls0aZzc6NnN7yo2b1FcunX6LUc72SOg+oVyqqR9OhsQbMVHwvJlo5p/V0QQS9yC4UsICp/4tFse+kdKjHttnWpo1ZnOM5m9zQD1KpW7Fly2WGIF08u8ROaMLg1tc+JE6R0RICyVKrtQc01xgFiSih4DPuJhULipxgDYQX6WWvRj86iBUmioLkiAj5BeqgahMyS63GUzmQ59Sq/0feuz0Zwu4LBiMGS9Uc1wy/4QMS0T9Rro81sEcO7iB6D1LZMwmxOXnQeUwKx7QQDV1xn0mmunPfQdr0H+Q4CzbwuwgQlZSHU3SfPSs5fmrhBLNFAq8j0I1qfUIivLaauK3+8xkbIvSvT3l91yOt5KLf8R/NRTiW6t/cNA2A42onfmZH0otMH+G9mJaT+AW9wk= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Jul 24, 2024 at 03:52:02PM -0700, Andrii Nakryiko wrote: > Current code assumption is that program (segment) headers are following > ELF header immediately. This is a common case, but is not guaranteed. So > take into account e_phoff field of the ELF header when accessing program > headers. > > Reported-by: Alexey Dobriyan > Signed-off-by: Andrii Nakryiko looks like this one never got in right? https://lore.kernel.org/bpf/CAEf4BzaAKAwO=-=0qZQfkHhBodN0MQUHpL-RY7tCHdcFidjv-Q@mail.gmail.com/ I couldn't find the place where you remove that check ;-) jirka > --- > lib/buildid.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/lib/buildid.c b/lib/buildid.c > index 1442a2483a8b..ce48ffab4111 100644 > --- a/lib/buildid.c > +++ b/lib/buildid.c > @@ -206,7 +206,7 @@ static int get_build_id_32(struct freader *r, unsigned char *build_id, __u32 *si > { > const Elf32_Ehdr *ehdr; > const Elf32_Phdr *phdr; > - __u32 phnum, i; > + __u32 phnum, phoff, i; > > ehdr = freader_fetch(r, 0, sizeof(Elf32_Ehdr)); > if (!ehdr) > @@ -214,13 +214,14 @@ static int get_build_id_32(struct freader *r, unsigned char *build_id, __u32 *si > > /* subsequent freader_fetch() calls invalidate pointers, so remember locally */ > phnum = ehdr->e_phnum; > + phoff = READ_ONCE(ehdr->e_phoff); > > /* only supports phdr that fits in one page */ > if (phnum > (PAGE_SIZE - sizeof(Elf32_Ehdr)) / sizeof(Elf32_Phdr)) > return -EINVAL; > > for (i = 0; i < phnum; ++i) { > - phdr = freader_fetch(r, i * sizeof(Elf32_Phdr), sizeof(Elf32_Phdr)); > + phdr = freader_fetch(r, phoff + i * sizeof(Elf32_Phdr), sizeof(Elf32_Phdr)); > if (!phdr) > return r->err; > > @@ -237,6 +238,7 @@ static int get_build_id_64(struct freader *r, unsigned char *build_id, __u32 *si > const Elf64_Ehdr *ehdr; > const Elf64_Phdr *phdr; > __u32 phnum, i; > + __u64 phoff; > > ehdr = freader_fetch(r, 0, sizeof(Elf64_Ehdr)); > if (!ehdr) > @@ -244,13 +246,14 @@ static int get_build_id_64(struct freader *r, unsigned char *build_id, __u32 *si > > /* subsequent freader_fetch() calls invalidate pointers, so remember locally */ > phnum = ehdr->e_phnum; > + phoff = READ_ONCE(ehdr->e_phoff); > > /* only supports phdr that fits in one page */ > if (phnum > (PAGE_SIZE - sizeof(Elf64_Ehdr)) / sizeof(Elf64_Phdr)) > return -EINVAL; > > for (i = 0; i < phnum; ++i) { > - phdr = freader_fetch(r, i * sizeof(Elf64_Phdr), sizeof(Elf64_Phdr)); > + phdr = freader_fetch(r, phoff + i * sizeof(Elf64_Phdr), sizeof(Elf64_Phdr)); > if (!phdr) > return r->err; > > -- > 2.43.0 > >