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 DB6A1C3DA7F for ; Wed, 31 Jul 2024 21:54:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 032366B007B; Wed, 31 Jul 2024 17:54:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EFE886B0082; Wed, 31 Jul 2024 17:54:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC48A6B0083; Wed, 31 Jul 2024 17:54:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C107D6B007B for ; Wed, 31 Jul 2024 17:54:36 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 72A371C1CBC for ; Wed, 31 Jul 2024 21:54:36 +0000 (UTC) X-FDA: 82401402552.02.5570392 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf22.hostedemail.com (Postfix) with ESMTP id A5918C0023 for ; Wed, 31 Jul 2024 21:54:34 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Iy/KEmew"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722462812; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A/rXO4mCik4v5ZM/0xrXVb6srv7OeLYb0n97FVaS0Jg=; b=qcd1b1L1EUPHLC5IQOVQHPbW3zbY1/U0oQZdGFHi60cdi4qyAFlnH+b3yvaijBuTQT8c96 zTQ7bFICy2r3VWx2cmKfld//05rw7PilgN0Xk8HXiP1mUixoXH5BIwWO/mL+hxHR6UqzYj WBIRGTrjOmXz1HbilVTcTlTGfv59R0E= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722462812; a=rsa-sha256; cv=none; b=1+rGoVElECvgNmYre01n4jXS1AhEsPSJfEm/9rFrsQfal8lzZVZoHomMVxWAj4ef4ovT+Y GXxsQGkHp6NV6wJ9ihxxJUsRqvq+8fXbB0Bnb6Lsp0nHdwe5QeY54FcvzrNUbrQ1jahXQJ QpuRziqzJKD1J9bECcK0/EtEtuGg/3I= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="Iy/KEmew"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf22.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-2cb566d528aso4808875a91.1 for ; Wed, 31 Jul 2024 14:54:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722462873; x=1723067673; darn=kvack.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=A/rXO4mCik4v5ZM/0xrXVb6srv7OeLYb0n97FVaS0Jg=; b=Iy/KEmewcm5Ahmb7UOveQQkRlzg0XwtjdsE1mldIgAyuyny0SUyZwxlFTeofgk8mVX l1aC/B4f8fVN5nJY/6cXNz1czntr4pe+3rxmp6VO1S6xW8DcF+sPyfiietorLRS3sQQC kb6L80Wjyelc6csJAIrOLJxr1My0v6zDtcwg5jn7upxZdUlFSPPsx3i8G28gcMrGCwQi NNNuqa8EGcYn81EBS0S3OWnDmbszICraep2X0TTobtp6VzxYT/IXWGjW5SMF5K/sI1Ub ULSRC74U+6DKonDQNtVzby2Q990gunP6CA//R3uI22/TdwHnu52zS3eDVXF9Z/g1BKdx br9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722462873; x=1723067673; 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=A/rXO4mCik4v5ZM/0xrXVb6srv7OeLYb0n97FVaS0Jg=; b=m23NIhP6lj8dEOh2yFoYXsSmpfOWuC8PhbYqycM/Qr9EOzBHCRa21fmJF4jaT2Gfez OeTHye1zrrxJrhXhey0VwWruE8JPhuufZy84a8PhBisYA5RMMdrwdANx3ZWA8Qs8EXOH SNmLDnudOvMJAL13w78F/9t0Pa7xVO1SK9KI5zJW14zksIgq1WM8GM6MXEgR0Nz9aWZh uIwg9h0zIRysfKp0K8Jmy5INH7Te9vC0xjLTZVfbLOfO67SbrrB+oKJD8XWvYzxi/KhD ofJGuGcSM43VHNEMVipdcZZFBnHBJvev3svi66GXJifrF4bbmnZkpKQmz05Ql6HXGlhz H6Yw== X-Forwarded-Encrypted: i=1; AJvYcCWa39cziikOw6WcZZNi+JQtz4ShSxFckeIGiz+12eH+c9diCcWloKrbUSOxBZ1W+Xx5v+PMIvgDaC/IM4cHKVsr8FE= X-Gm-Message-State: AOJu0YzFgLx0Rs3F82oER8xaYQesr/ZfWqG5vVLnbpcuk/BKhephsoY0 LUpOHmnmh+ynvAs+Nq3NCL+4dUqVM12n+DotvnnNz5zdI0ceCuL72z73qEaK/wcQCD/E0wCLsgY MlmUL8t62NG+xbFFj4WPpJUd0RO0= X-Google-Smtp-Source: AGHT+IGQC+31dROEL7EphsN+jLKU8mH4eZi+7nR71Ehyw4gI3lDIvQYh6tWRJrUn7bQGlvPKXHV0IisNvT2+2wqfbdA= X-Received: by 2002:a17:90b:33d0:b0:2c9:754d:2cba with SMTP id 98e67ed59e1d1-2cfe7755473mr753669a91.3.1722462873010; Wed, 31 Jul 2024 14:54:33 -0700 (PDT) MIME-Version: 1.0 References: <20240730203914.1182569-1-andrii@kernel.org> <20240730203914.1182569-2-andrii@kernel.org> In-Reply-To: From: Andrii Nakryiko Date: Wed, 31 Jul 2024 14:54:20 -0700 Message-ID: Subject: Re: [PATCH v3 bpf-next 01/10] lib/buildid: harden build ID parsing logic To: Andi Kleen Cc: Andrii Nakryiko , bpf@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, adobriyan@gmail.com, shakeel.butt@linux.dev, hannes@cmpxchg.org, osandov@osandov.com, song@kernel.org, jannh@google.com, stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A5918C0023 X-Stat-Signature: 7nf84wf8p4rq5uopxkouqnjqjsir7n98 X-Rspam-User: X-HE-Tag: 1722462874-275533 X-HE-Meta: U2FsdGVkX18C/GAzQjSnbyYFGKj84q/wo7x6iur3xTDFO7sfNuAhKdtDL3OtndDSeCpERNVxN5+CRcU6pjjyven7qcCUnfvtg9NnUCPyTvRVJVfWPFbg0pMMQJl+OyX76HOo/ac5SW0wvEDjyNDX1CqMD1/QnSIsJaoVTU8kQenu8hLuZuNXEwh2J6GQd4dpcdMfITeFtcPPE6J+ZSyIRoXM0WmRcrQn3DVJVX4xn/2eu0HqgKE5K59N1QS9XbU2OsUjuGTjy7LnfbM6X/Gr1v0FipGFUlYGjZkBzSKzWkJRaOSPE0i23IumrKl+USkJNsRoSGzUJ95vk6wG8LPLY5bHjESsaB+gaxuE8p+J7zDGqRtGKdKBjfMvDt0MhkoO32iuldtACbms/xACSzjOxcuFG9BNrKtPLDeZG5vegkHkTceyhiS1p/F2MH54/5or0niWZwlYcGXesGQQbERGeWwxoQaBrdbkyOdkQnhPhQOm4KiDzzCKT4oJNQ1VW0mGv/H+omNbniWeGMAKuQR2XqBVRNR5MO8RD1Q7mcXYVyIV3dQKtdRWjRW6Tmfu4bWseoV7csyxm//Jg7CT1ToRVJfIRrbudFrlT/6fXysxC1Uji9bH6C2pGa4Id/a9QasBhlh5yA4J+8mVeiARTJPmIq3JvGZCjT4k0g9o5gcEEr3Pc9cEO0Kjqa3xS1VfKUBB9Ayv/3DGjoNM67M/7D5X3DpL4a+OsZ7Nv2jE1En9sbcqcoX0DrvFlYDzD6Vyt8HsUgeGQy8mWPOgyrWooYyXBYLRAWqExSyjn1BThO9+usuqbnV2QuQutEKhqVjE66mGKbySCPXgE/bDbEqPfVsaq5bSeQU418wYc7T8AAfI+0IU715CweObjrK4Aduml3Lc7To3dBBZoZqQGIyJmipoxamBEgNtVvAzHc/D+t1eVpG0pcLiVJoB+KDyFBjy5qmOWlHyLfV5orlFgd6ZGoz E1BVx8lU O8PjafAvCumvsTVZ1iGy0r8y/8BkqtnlH2BFzngEQRhq9sdPSIPwHZN1sen2YXByVQ6uxo0HUtkIWOLYhPXybyl1TzHdrypLi0eGivLX/KYSMisqLbP+IjEmJM0n+R2WqSrJl/m+cCCRsrmDDkYJXy+9AnYeldTqr0fXpOpkZrfzUMUU+S7X/UJjkPg3pcRS5K7ankkEZq6I4XIzU2/1NNAt55q3kadyQcTGrpgR4onAqspRS7kW1uvPvbO6ACK5ZOsu6UFGV2bn17bDa6vcRs1+ZrWeRHnBAXmNXmbz9RPZv+ft3wSqzsRPBjQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.008661, 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 Tue, Jul 30, 2024 at 9:05=E2=80=AFPM Andi Kleen wro= te: > > > while (note_offs + sizeof(Elf32_Nhdr) < note_size) { > > Elf32_Nhdr *nhdr =3D (Elf32_Nhdr *)(note_start + note_off= s); > > > > + name_sz =3D READ_ONCE(nhdr->n_namesz); > > + desc_sz =3D READ_ONCE(nhdr->n_descsz); > > if (nhdr->n_type =3D=3D BUILD_ID && > > - nhdr->n_namesz =3D=3D sizeof("GNU") && > > - !strcmp((char *)(nhdr + 1), "GNU") && > > - nhdr->n_descsz > 0 && > > - nhdr->n_descsz <=3D BUILD_ID_SIZE_MAX) { > > - memcpy(build_id, > > - note_start + note_offs + > > - ALIGN(sizeof("GNU"), 4) + sizeof(Elf32_Nhd= r), > > - nhdr->n_descsz); > > - memset(build_id + nhdr->n_descsz, 0, > > - BUILD_ID_SIZE_MAX - nhdr->n_descsz); > > + name_sz =3D=3D note_name_sz && > > + strcmp((char *)(nhdr + 1), note_name) =3D=3D 0 && > > Doesn't the strcmp need a boundary check to be inside note_size too? > > Other it may read into the next page, which could be unmapped, causing a = fault. > Given it's unlikely that this happen, and the end has guard pages, > but there are some users of set_memory_np. > > You could just move the later checks earlier. Yep, good catch! I'll move the overflow check and will add a note_size check to it, thanks! > > The rest looks good to me. > > -Andi >