From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05B722DF133 for ; Tue, 20 Jan 2026 08:29:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768897774; cv=none; b=OagPCn8r8ZvH/mnv+2hrPDn/nL0siFMHoPnE3jTbg63Mk33sqMyXUVdvOWfgUTG1/ZcgLaSPddoEdCNYWdSk71f8k9SaqqagubgJZNO9g7s97SSKO1U1D+7XgRLYGXvHbNYRgOVMdNnp6dviu3ehhxVK8ygAWX1+Nq/5Olz9yNQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768897774; c=relaxed/simple; bh=W9qdqjI867EXujfA1lB2A9WGNgOq4xDjQzueH0l+Gs8=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=h40WrBND9c0fq7rMlzvfcIAysaTAawxcqHMK5ptz2upMuBI2lgPzrMoUuoazLpjgToUseePnB1ITFktHaF7kgaYMnuM906bvmN34fiskhfSigMeh98A16T7ibHpglEjWeDaaG+R9+WW4V82LbijM3HJ/goTnd3J8SAe0g6fGMMA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=G43801pa; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="G43801pa" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-81f4dfa82edso2389321b3a.0 for ; Tue, 20 Jan 2026 00:29:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768897772; x=1769502572; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=xjDUsPk8fY36wyI2DKjFv73iBZj8W3INU7HTBWcMBpo=; b=G43801paBJ7nfzab5dHxkE3MEXtT+3hacC6g41/NODCSuZtdXR/cKOnyIzCxwPWtRr hW/kjSs4tVew/kq2bLfpohzzYJAjWrizXTIgm9UZS1vsptpi8u4c+JK699W242JImJwP uoXBXDqVdOnYuu3kOQxkEYORFS/G5GTOUX8hr5FTHF5OVCEg+VXHAqVMQn5uP9YcKPy1 NXOGBTAmLBF5h9ysOSxPEbiU8EulkiVw3NlEwrJSLvv4UIlf9641FBwXizha5yRD2j5x kthXV15EW5oUqoDMP3Wl5LnHTvyufrIJHxvzU9/lWuorlEc7yRYj0F5IyacIh1or4dbX /rqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768897772; x=1769502572; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xjDUsPk8fY36wyI2DKjFv73iBZj8W3INU7HTBWcMBpo=; b=xOKwNPhesMv26GGwqN/wij/aUgPecPMsjT30wGglHqhNX5m/YX+nC0RLEeEG2EXmKx njRaKp/YEi0fmPvUqe+MQ6O7APMzUyA8WhJdaJ276W776Lo9zscr1KjXsdJqjwkeeYuR CIEazVdRv5E8a1TyiOI2vdSyL3UvlzqOJVh1K0SVOR+ZuthIQ2ETuMssKOL/iQUmwzOf HSebMjezzx/P4LpuZdgh4RtbJ9sT/MzW8ZcbqALo1iu7qFf/6JCqAXpfIk4nKPEPbdYO ip/7iFbGy1dD7TvrjzTdCuaioZpoqsujLELtNZePOgAR5eoYkibmYT7kBqUcnzoYcxb7 mUHA== X-Forwarded-Encrypted: i=1; AJvYcCUVkyXAj7rfWd5c2B1CFFVfuvFAMQbueFrdNLAeCMFATTM7J2rfbc35XyZi9slic/wmI9IY6XbHRv+7dhs=@vger.kernel.org X-Gm-Message-State: AOJu0YxrymEtRQRahlTBcbF2JE7UMcCnvTjGrq8DJFZ26pmYJSab4FBr lixwsXe37kFWvE51jMENfDsqiJ8gbkzw5aD3rbrW/cTzyVPytres2uok X-Gm-Gg: AY/fxX6jDTaomlO//aMmAkxziguftq9z2BhcGA2VzYkHMlHktRdDvVQKrOAwOH8WQad BbyZyKVhCFgNnS6ApdEaWZ9dqV6JRSifpXTqggGRPwuRoaol5cCp/Z4JF2zWk7zAE5uUi1BIEg1 2ftvXx3+tdiDbwo5XMk+/Cj4xLgY401xPdcXV1WzfAZxludp2PLX1v3jUYcD5E+1sD9qaGawiug Nk+1aPESiZL2OOpY/1vtC52MXFp4C5vgbOXpcCvAFpZ9DYOlvPSMLc5WUEwocnPMikWpV0dwbWZ GPW1c4KJzH3sRzQx3R+a3cwZAlSMlAMKOrUHaHWFRVAN1uVMZgcvLuD9PMMe2jEgeuuWthiFGIU rrTpsRifm3YKqctsgyYXsAmHnQFwDKyGx5Gc3HMlcNpuCdvuyDLvcaK7GXaU4tLfZmKDx22NHo4 DXwK2UzHLh X-Received: by 2002:a05:6a00:139d:b0:81f:4999:ae46 with SMTP id d2e1a72fcca58-81fa1862010mr11150464b3a.48.1768897771925; Tue, 20 Jan 2026 00:29:31 -0800 (PST) Received: from [127.0.0.1] ([38.207.158.11]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-81fa12b51d9sm11282275b3a.65.2026.01.20.00.29.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Jan 2026 00:29:31 -0800 (PST) From: Zesen Liu Subject: [PATCH bpf-next v3 0/2] bpf: Fix memory access flags in helper prototypes Date: Tue, 20 Jan 2026 16:28:45 +0800 Message-Id: <20260120-helper_proto-v3-0-27b0180b4e77@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAL48b2kC/42Oy2rDMBBFfyVoXRXNyHq0q/5HKUUej2JBYhnZm JTgf69iKGShRZd3LueeuYuFS+JFvJ/uovCWlpSnGvTLSdAYpjPLNNQsUKEBRCVHvsxcvueS1yx jb9l24LGzTlRkLhzT7Zj7FP0c5cS3VXzVZkzLmsvP4dng6NuTG0gl69WyGt46xOHjfA3p8kr5+ jBUyCpQrgVBDAZ1JIr/h1h7x8qjA6In6PHyhn9vtmCscEfGYk8UTPAtI/gGFHodQGvHzphn477 vv4pbIx6OAQAA X-Change-ID: 20251220-helper_proto-fb6e64182467 To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Matt Bobrowski , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Daniel Xu Cc: bpf@vger.kernel.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, netdev@vger.kernel.org, Shuran Liu , Peili Gao , Haoran Ni , Zesen Liu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2372; i=ftyghome@gmail.com; h=from:subject:message-id; bh=W9qdqjI867EXujfA1lB2A9WGNgOq4xDjQzueH0l+Gs8=; b=owGbwMvMwCXWI1/u+8bXqJ3xtFoSQ2a+zeP2AzrqMZ+Od/UXpW0yPnTD7M9ON82K9WzirOE8B 9+/kT/bUcrCIMbFICumyNL7w/Duykxz4202Cw7CzGFlAhnCwMUpABMRfMPIcMRUIvi4Qm4SF5/b 9TBzzsW6ateP5/KXr323tiR+1+HbYowMW77VJD5x8Paoq5/0dP5Ki69VbzOVTlv1Pf09JVRJzWc LPwA= X-Developer-Key: i=ftyghome@gmail.com; a=openpgp; fpr=8DF831DDA9693733B63CA0C18C1F774DEC4D3287 Hi, This series adds missing memory access flags (MEM_RDONLY or MEM_WRITE) to several bpf helper function prototypes that use ARG_PTR_TO_MEM but lack the correct flag. It also adds a new check in verifier to ensure the flag is specified. Missing memory access flags in helper prototypes can lead to critical correctness issues when the verifier tries to perform code optimization. After commit 37cce22dbd51 ("bpf: verifier: Refactor helper access type tracking"), the verifier relies on the memory access flags, rather than treating all arguments in helper functions as potentially modifying the pointed-to memory. Using ARG_PTR_TO_MEM alone without flags does not make sense because: - If the helper does not change the argument, missing MEM_RDONLY causes the verifier to incorrectly reject a read-only buffer. - If the helper does change the argument, missing MEM_WRITE causes the verifier to incorrectly assume the memory is unchanged, leading to errors in code optimization. We have already seen several reports regarding this: - commit ac44dcc788b9 ("bpf: Fix verifier assumptions of bpf_d_path's output buffer") adds MEM_WRITE to bpf_d_path; - commit 2eb7648558a7 ("bpf: Specify access type of bpf_sysctl_get_name args") adds MEM_WRITE to bpf_sysctl_get_name. This series looks through all prototypes in the kernel and completes the flags. It also adds check_mem_arg_rw_flag_ok() and wires it into check_func_proto() to statically restrict ARG_PTR_TO_MEM from appearing without memory access flags. Changelog ========= v3: - Rebased to bpf-next to address check_func_proto() signature changes, as suggested by Eduard Zingerman. v2: - Add missing MEM_RDONLY flags to protos with ARG_PTR_TO_FIXED_SIZE_MEM. Thanks, Zesen Liu --- Zesen Liu (2): bpf: Fix memory access flags in helper prototypes bpf: Require ARG_PTR_TO_MEM with memory flag kernel/bpf/helpers.c | 2 +- kernel/bpf/syscall.c | 2 +- kernel/bpf/verifier.c | 17 +++++++++++++++++ kernel/trace/bpf_trace.c | 6 +++--- net/core/filter.c | 20 ++++++++++---------- 5 files changed, 32 insertions(+), 15 deletions(-) --- base-commit: efad162f5a840ae178e7761c176c49f433c7bb68 change-id: 20251220-helper_proto-fb6e64182467 Best regards, -- Zesen Liu