From nobody Tue Nov 15 08:22:08 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NBK0f3cYnz4hJk7; Tue, 15 Nov 2022 08:22:10 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NBK0d5GgJz3vGc; Tue, 15 Nov 2022 08:22:09 +0000 (UTC) (envelope-from mjguzik@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ot1-x32a.google.com with SMTP id 46-20020a9d0631000000b00666823da25fso8162287otn.0; Tue, 15 Nov 2022 00:22:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AzwKKoIRhHZw1n1BTuW+qz4dqjfBGepk6jSQ3XiFT6U=; b=UBXQvYc2KFgy10ejrQmlio/CzESJs8D3DyaMTIW6PyAt+fIajzmzUlgLKu71ygbhyy 9RPv+z3JPPgM5eR/3AWcVlcSOQJC8GBSc2Po5bxROSkmo3iffSwB8Sl97KNSidF4p3kH RA/IcXU4F4R5rCBwSnnj6Z445J6rLcUCTfsRvb+9Qrv1hjxMxyML/imharln3crt6Sb3 8bmjgzkdnMNwGk1GDRvExso7CPMIg1Uk6jIYMAc7WIxSixrumAGnLWcNbs52hdhYFYDo ZaMfsVvGKcahwYegWh7yWq/IB+ny15vQlOWtVJo06qGgjpbZrXQ0mb8oTPbIX6GhE/lc 7eIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AzwKKoIRhHZw1n1BTuW+qz4dqjfBGepk6jSQ3XiFT6U=; b=WinIPZxWQ+SVP8t7OcYshMgypTdC/Ivmc05/wwBGK1GmgZMLbA/Bgx+5Sx1jxTg/tT 6ZHn3d8vNsKnrSrKd29uXJ7gLRGYmRKAmRnSQZo3gLBG+ThzAKgJiyOIItPzf0FJmuVu Hmd84x+7lLf1SCArhWuusR6ZTFmK2k7o0davBwnTylKwHhexyeeqMB7jQ62HZx8Vzxqc TcmjgCn7CH5ktWjyRtP5/KMN7O4LUwYMo9SBeUy6RpQH/l4TMJCY04KGCg+bCNvNh223 EgFOtsPDXvnPL0XvsA4XOWaX8imqfhCvBwsl7Yqp49mky83iHAyFb9dZBIWiudpWVnNi vtyg== X-Gm-Message-State: ANoB5plkcdNz5JqxXAYiR2f/OwvwwmCk/8PrkF4o+Z9I7m/I34Z7ptao Y8Lx8gQMIaf0Rxp0S7dki0Rg60HIvlb7fTWAQ9g0nubG X-Google-Smtp-Source: AA0mqf7RLDzjqW0mcPBrke6bB3mwn37phYqHOcehJnnmdXmKdY8YqkGswvu0Wj/yfBNPE0RBCjKme7qlh+2TVr3LVTw= X-Received: by 2002:a05:6830:14d9:b0:66d:960e:bc19 with SMTP id t25-20020a05683014d900b0066d960ebc19mr2653880otq.281.1668500528579; Tue, 15 Nov 2022 00:22:08 -0800 (PST) List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Received: by 2002:a8a:dd5:0:b0:47d:6a60:9dd0 with HTTP; Tue, 15 Nov 2022 00:22:08 -0800 (PST) In-Reply-To: <202211150026.2AF0Q9vH048757@gitrepo.freebsd.org> References: <202211150026.2AF0Q9vH048757@gitrepo.freebsd.org> From: Mateusz Guzik Date: Tue, 15 Nov 2022 09:22:08 +0100 Message-ID: Subject: Re: git: 40e0fa10f58d - main - Check alignment of fp in unwind_frame To: Brooks Davis Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4NBK0d5GgJz3vGc X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N this fails to build: /usr/src/sys/riscv/riscv/unwind.c:50:7: error: implicit declaration of function 'is_aligned' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if (!is_aligned(fp, sizeof(fp)) || ^ 1 error generated. On 11/15/22, Brooks Davis wrote: > The branch main has been updated by brooks: > > URL: > https://cgit.FreeBSD.org/src/commit/?id=40e0fa10f58d90744c2857b57adf0ddbce1a1e1c > > commit 40e0fa10f58d90744c2857b57adf0ddbce1a1e1c > Author: Dapeng Gao > AuthorDate: 2022-11-15 00:21:38 +0000 > Commit: Brooks Davis > CommitDate: 2022-11-15 00:25:46 +0000 > > Check alignment of fp in unwind_frame > > A misaligned frame pointer is certainly not a valid frame pointer and > with strict alignment enabled (as on CHERI) can cause panics when it is > loaded from later in the code. > > Reviewed By: jhb > Differential Revision: https://reviews.freebsd.org/D34646 > --- > sys/arm64/arm64/unwind.c | 3 ++- > sys/riscv/riscv/unwind.c | 3 ++- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/sys/arm64/arm64/unwind.c b/sys/arm64/arm64/unwind.c > index 470b64c00540..81431e109494 100644 > --- a/sys/arm64/arm64/unwind.c > +++ b/sys/arm64/arm64/unwind.c > @@ -41,7 +41,8 @@ unwind_frame(struct thread *td, struct unwind_state > *frame) > > fp = frame->fp; > > - if (!kstack_contains(td, fp, sizeof(uintptr_t) * 2)) > + if (!is_aligned(fp, sizeof(fp)) || > + !kstack_contains(td, fp, sizeof(fp) * 2)) > return (false); > > /* FP to previous frame (X29) */ > diff --git a/sys/riscv/riscv/unwind.c b/sys/riscv/riscv/unwind.c > index 9efb1fef9451..a66ffebcdc35 100644 > --- a/sys/riscv/riscv/unwind.c > +++ b/sys/riscv/riscv/unwind.c > @@ -47,7 +47,8 @@ unwind_frame(struct thread *td, struct unwind_state > *frame) > > fp = frame->fp; > > - if (!kstack_contains(td, fp - sizeof(fp) * 2, sizeof(fp) * 2)) > + if (!is_aligned(fp, sizeof(fp)) || > + !kstack_contains(td, fp - sizeof(fp) * 2, sizeof(fp) * 2)) > return (false); > > frame->sp = fp; > -- Mateusz Guzik