From patchwork Thu Dec 12 07:07:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduard Zingerman X-Patchwork-Id: 13904749 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) (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 E942B206278 for ; Thu, 12 Dec 2024 07:07:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733987250; cv=none; b=Bozoarmxoee1mQebFqZoCdps+bpmHeh7VUh45ma3cZlVJaePQWj46DDxIUxsNHMDX3Mq/txIj3GfiX81qLDwB5GmMFW2LnUZ6/tHVdDSDbfDjjdRAU2RGDfOt42wl6fkOs5M3jceMcosFPFMDLEEZq+rYe1cF3HaBjxexlgWNzQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733987250; c=relaxed/simple; bh=CNN1tzGSlWyQuHNjfFOip6+XNFd2pY7xASbPWiFfvvI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Qc8NYSMzb6R14XJDf0ouuW9sLRY2Hey0DY5Ccva/mDcbW2/a+Kwuhh2u+mDxbQ/pqJWlUpA9OINEMFQd3ZPI0ebinDyFTem6AjrVtkQyJLVpT+TnUhSJ3grguhEbLunSIkW+NNb1sjVR2rmf1q4/buWL6uxC+N3bADFDuuKJUsw= 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=hd0rBb7e; arc=none smtp.client-ip=209.85.215.177 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="hd0rBb7e" Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-7feb6871730so202379a12.2 for ; Wed, 11 Dec 2024 23:07:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733987246; x=1734592046; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=oo2HvqJfyyczUF61w4dstsX8Ca1IntU4zGLNKXpDkY8=; b=hd0rBb7e/WhpvxM3EdqicX7lCD5afynKP8WJqW37Ic8bL+/OvAxpsM/7Z7Pp65G8SY wcXWAt+kGzmFxL+SeNcWkagpxQFqLGdTyOlWY2eX95MAaJHHILxUEJfNWkG+x9pBSdRc oKmwBCn4wUPyAaF2a1zB2M6h87TUK+2iKBRkOSZx8AJoHb0T2ptKVpTXH6NzS0sTr9+m f5JUy4i6AKfl5+yYOhTGl4FoV6PU44JXYyd4jMc7Lpcg4JcJTS+nHiHMuunCh4WU2FRw J6QGzgg65B6hHHZT0rOLfIVDOYVIHeiuwKzr2sMkf6sKr/qcfLZma/PAXDiM2OXiFJrg W3UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733987246; x=1734592046; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=oo2HvqJfyyczUF61w4dstsX8Ca1IntU4zGLNKXpDkY8=; b=txMcDxPbHrly7HE7dvq9lp7hhCRFAWfk7HSFfzuX1bMPrajAo6F/sNQN1D5w6H316A U/sRPLf/qE60esvluN62Mr7Fj9VXwYCxyOb0RmtwoRJ7SRAR0Sl1RuwAJZLeFlfu8Rxf yR9s7nWtds3Ev01UzShbq9Mq9Ns/TWouXjBYPSxZqMRfec76T8dmkbJiw6tlcL7bDoWh x6wfwTi66gQHDtNZ/90+RwPLJvDFYvubvUEiKQGoU1MCYdLB68MSPpOdNjZmUcZkAJt+ z2z1Vy7G8m6tUg5tuXCOyCnsrJmnZD5+OxawJdUL7F4fsWoa8L70KlC0HWP06BcHme+M +3KQ== X-Gm-Message-State: AOJu0YyN7VrGKDAaDlLNJuEhCZqEThPpfe03fF6dB4ILhZIpfro18t36 6oMWvUftriSmjwSHcjxWZCTnkLytMXt5/Umas5N86QTCBVwbqpJUcryJhQ== X-Gm-Gg: ASbGncvoLW3uuFh/ZfVMlkx/gGZIY5goBit7gTRBQRzQ04aYdstyDDm2Scyx9NFi9vt shXLl3TdtJOulYdEbuUx8xkWgt+mz5tzQjcyDsoZyYvSx0V7t/KCnW/LMX0uYuBPaWzbMYUN7kW AqP4C2OOz63lJqkw7wbpbsnKoj99kIaw3Sm7UZxZjqiXM8r2jY4ww7bxm4ZibTqq+d4yajc8AqN dtVFNBmIRQaYE4TafteNNQHf5xVttKjnPuRH2lZz0XjXAR+ljGB X-Google-Smtp-Source: AGHT+IH9yMPudEk+qGCNfGKIGCOKbBLD1MCFmVJX05aqdOyLkCEQp99A6TYUDLIdlPg/m6vvT0O23A== X-Received: by 2002:a17:90b:3c44:b0:2ee:e113:815d with SMTP id 98e67ed59e1d1-2f127f7e1fdmr9056053a91.8.1733987245743; Wed, 11 Dec 2024 23:07:25 -0800 (PST) Received: from honey-badger.. ([38.34.87.7]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2f142d90bd8sm600217a91.10.2024.12.11.23.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Dec 2024 23:07:25 -0800 (PST) From: Eduard Zingerman To: bpf@vger.kernel.org, ast@kernel.org Cc: andrii@kernel.org, daniel@iogearbox.net, martin.lau@linux.dev, kernel-team@fb.com, yonghong.song@linux.dev, mejedi@gmail.com, Eduard Zingerman , kernel test robot , Dan Carpenter Subject: [PATCH bpf 1/2] bpf: fix NPE when computing changes_pkt_data of program w/o subprograms Date: Wed, 11 Dec 2024 23:07:10 -0800 Message-ID: <20241212070711.427443-1-eddyz87@gmail.com> X-Mailer: git-send-email 2.47.0 Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: bpf@iogearbox.net bpf_prog_aux->func field might be NULL if program does not have subprograms except for main sub-program. The fixed commit does bpf_prog_aux->func access unconditionally, which might lead to null pointer dereference. The bug could be triggered by replacing the following BPF program: SEC("tc") int main_changes(struct __sk_buff *sk) { bpf_skb_pull_data(sk, 0); return 0; } With the following BPF program: SEC("freplace") long changes_pkt_data(struct __sk_buff *sk) { return bpf_skb_pull_data(sk, 0); } bpf_prog_aux instance itself represents the main sub-program, use this property to fix the bug. Fixes: 81f6d0530ba0 ("bpf: check changes_pkt_data property for extension programs") Reported-by: kernel test robot Reported-by: Dan Carpenter Closes: https://lore.kernel.org/r/202412111822.qGw6tOyB-lkp@intel.com/ Signed-off-by: Eduard Zingerman --- kernel/bpf/verifier.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index c2e5d0e6e3d0..5e541339b2f6 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -22193,6 +22193,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log, } if (tgt_prog) { struct bpf_prog_aux *aux = tgt_prog->aux; + bool tgt_changes_pkt_data; if (bpf_prog_is_dev_bound(prog->aux) && !bpf_prog_dev_bound_match(prog, tgt_prog)) { @@ -22227,8 +22228,10 @@ int bpf_check_attach_target(struct bpf_verifier_log *log, "Extension programs should be JITed\n"); return -EINVAL; } - if (prog->aux->changes_pkt_data && - !aux->func[subprog]->aux->changes_pkt_data) { + tgt_changes_pkt_data = aux->func + ? aux->func[subprog]->aux->changes_pkt_data + : aux->changes_pkt_data; + if (prog->aux->changes_pkt_data && !tgt_changes_pkt_data) { bpf_log(log, "Extension program changes packet data, while original does not\n"); return -EINVAL; From patchwork Thu Dec 12 07:07:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduard Zingerman X-Patchwork-Id: 13904748 X-Patchwork-Delegate: bpf@iogearbox.net Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) (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 2AABD205E3E for ; Thu, 12 Dec 2024 07:07:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733987249; cv=none; b=TKTqyqK0WiTO6iL7Yq5Rs8ceEhbgllsDBC0E/3+lrWzZXbHU3ya5B0XXyBqok4y3fWc6vaTPU9xNv4XJGueFqywZFKXSogm7DHbuvMhoCvwrHRgBFIm9kfh6CYumMbkSWy+tnAPPA83GTJPMOmvyYPAoT5fdjNSsXvfbCzUr9Ew= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1733987249; c=relaxed/simple; bh=neiKh/ySd/jWshfjyWTkF9MB6iQ7j3Qdp2E1o6QAe5w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h8SNQONNqAt1MQtjztPeAnJu9+KbkcoWnBcCMaaywOnMG/KbwjvxjcC8vxCb7WspYawckVqixQ0sYgkRvgMGulVXRTFWs9l9RtBODKBZgw1nH782rvdKa9YVDyzsUigTjevIQsDzSgpJAbOrrpu4RwJ82BET1Sdob/iI1zNSOX4= 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=Q2a6+zli; arc=none smtp.client-ip=209.85.216.41 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="Q2a6+zli" Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-2ee67e9287fso234234a91.0 for ; Wed, 11 Dec 2024 23:07:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733987247; x=1734592047; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U1zGB1OOo8p1uJ3FThl0NA1SouwQd9pU+CVUXtc95bw=; b=Q2a6+zliet8RMb0meB0cZRwp03MDhxGLaHaOSeioQGS7HKvYDGA2+ejr0msQh8S7xC tSOnQAKkqRS0XhqsusGW5+e89UGF7FSt2W/UsAtyWnlgr0UzB/nXpRFeQA8aJxbHZgKl 5VCiZ90B2YL/wueoHX35w9zofJUKPciEEaeEGdGAueg+KSJ542oUg3w5tJv3A1sJL/eR NlZgtPBRUNF5kL1m3fp+r61+KNO1XCXbVXsNh0ET5L3wsDdLl9FIWhKi09QH7+Qqm8cD eGN9WW8b/TCi5ozxECYdHtLrD2lIB1GZktt6E8qhIpOiBLvKZxKQEE/tImehTedvbBXN 7Iaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733987247; x=1734592047; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U1zGB1OOo8p1uJ3FThl0NA1SouwQd9pU+CVUXtc95bw=; b=mCoK5kEZBXQJ4IORXer0nBA+9Vh6KfBFLw93Xh2m5zXKxFNuKME57xmgJEw2WmvNlz R06Nhx1bmX4mPyQrGI0ZIfsWVs+LvECrN4gySiaGFeUssyKFRyUCNf0FMAi2ZGl2yIeP 7o4F1ts7ZR7hV6IVfuH7burXeJLR/jn7WKKypqdy89k1/1MJ59WTRcExWMw0TivXq0qx CW0KcH0zBImTIj/0INarrHUqBdaJw1qlTma3QpZwUXFvUIOVMYI1edl4FgllARwSDONv a6NMq36aSzAUkYzTSv/TYH4Jf5tgq9fZJxrqTDc56JEbBqrjSq0U1JUzIea1SQg2G+9t CMuw== X-Gm-Message-State: AOJu0YyRitq+ZGNCfVsHCqzBvYz6TGUKqEj9HZ9IvDeqAk4FnF92eNAk rBriy7egO5wjFLdXjC8lT2BClNEKOrGaFBadtrbASbj5jnclTuC8AGsDwQ== X-Gm-Gg: ASbGncs008zID/qaTGFc3uPrDHG7LIBafkPMmltFlo9/n/dYeY+16MOiXXXpyx4fm9V cd7Nrk5EOm0wEUe+m4j9kKyFfxuFPkZv6UvMPrQ4MhDnZyvNrXQRiA3yj2Y6IyndZzjEWsjUB+S 2IpZ0MUL/2uSnq4WAi3cfJtPr6NcqaMHrJP0PKGBWeACzxTTUX66Yq0ldtXNTQ8O5QFBVYGT8+y WrnMhQMoa+9YTsTXhhiH/Ayp2sMrWH4ULiX0Ijwj7ccajY1amJQ X-Google-Smtp-Source: AGHT+IG6WA6X/FnjY+7ZBryToB4sosMJaRG16ozT4bn2cykp03BcBsBUGNNTBF9ItLdxhCHkjo8NCg== X-Received: by 2002:a17:90b:3803:b0:2ee:aed6:9ec2 with SMTP id 98e67ed59e1d1-2f139295908mr4808207a91.14.1733987247177; Wed, 11 Dec 2024 23:07:27 -0800 (PST) Received: from honey-badger.. ([38.34.87.7]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2f142d90bd8sm600217a91.10.2024.12.11.23.07.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Dec 2024 23:07:26 -0800 (PST) From: Eduard Zingerman To: bpf@vger.kernel.org, ast@kernel.org Cc: andrii@kernel.org, daniel@iogearbox.net, martin.lau@linux.dev, kernel-team@fb.com, yonghong.song@linux.dev, mejedi@gmail.com, Eduard Zingerman Subject: [PATCH bpf 2/2] selftests/bpf: extend changes_pkt_data with cases w/o subprograms Date: Wed, 11 Dec 2024 23:07:11 -0800 Message-ID: <20241212070711.427443-2-eddyz87@gmail.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241212070711.427443-1-eddyz87@gmail.com> References: <20241212070711.427443-1-eddyz87@gmail.com> Precedence: bulk X-Mailing-List: bpf@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: bpf@iogearbox.net Extend changes_pkt_data tests with test cases freplacing the main program that does not have subprograms. Try four combinations when both main program and replacement do and do not change packet data. Signed-off-by: Eduard Zingerman --- .../bpf/prog_tests/changes_pkt_data.c | 55 +++++++++++++++---- .../selftests/bpf/progs/changes_pkt_data.c | 27 ++++++--- .../bpf/progs/changes_pkt_data_freplace.c | 6 +- 3 files changed, 66 insertions(+), 22 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/changes_pkt_data.c b/tools/testing/selftests/bpf/prog_tests/changes_pkt_data.c index c0c7202f6c5c..7526de379081 100644 --- a/tools/testing/selftests/bpf/prog_tests/changes_pkt_data.c +++ b/tools/testing/selftests/bpf/prog_tests/changes_pkt_data.c @@ -10,10 +10,14 @@ static void print_verifier_log(const char *log) fprintf(stdout, "VERIFIER LOG:\n=============\n%s=============\n", log); } -static void test_aux(const char *main_prog_name, const char *freplace_prog_name, bool expect_load) +static void test_aux(const char *main_prog_name, + const char *to_be_replaced, + const char *replacement, + bool expect_load) { struct changes_pkt_data_freplace *freplace = NULL; struct bpf_program *freplace_prog = NULL; + struct bpf_program *main_prog = NULL; LIBBPF_OPTS(bpf_object_open_opts, opts); struct changes_pkt_data *main = NULL; char log[16*1024]; @@ -26,6 +30,10 @@ static void test_aux(const char *main_prog_name, const char *freplace_prog_name, main = changes_pkt_data__open_opts(&opts); if (!ASSERT_OK_PTR(main, "changes_pkt_data__open")) goto out; + main_prog = bpf_object__find_program_by_name(main->obj, main_prog_name); + if (!ASSERT_OK_PTR(main_prog, "main_prog")) + goto out; + bpf_program__set_autoload(main_prog, true); err = changes_pkt_data__load(main); print_verifier_log(log); if (!ASSERT_OK(err, "changes_pkt_data__load")) @@ -33,14 +41,14 @@ static void test_aux(const char *main_prog_name, const char *freplace_prog_name, freplace = changes_pkt_data_freplace__open_opts(&opts); if (!ASSERT_OK_PTR(freplace, "changes_pkt_data_freplace__open")) goto out; - freplace_prog = bpf_object__find_program_by_name(freplace->obj, freplace_prog_name); + freplace_prog = bpf_object__find_program_by_name(freplace->obj, replacement); if (!ASSERT_OK_PTR(freplace_prog, "freplace_prog")) goto out; bpf_program__set_autoload(freplace_prog, true); bpf_program__set_autoattach(freplace_prog, true); bpf_program__set_attach_target(freplace_prog, - bpf_program__fd(main->progs.dummy), - main_prog_name); + bpf_program__fd(main_prog), + to_be_replaced); err = changes_pkt_data_freplace__load(freplace); print_verifier_log(log); if (expect_load) { @@ -62,15 +70,38 @@ static void test_aux(const char *main_prog_name, const char *freplace_prog_name, * that either do or do not. It is only ok to freplace subprograms * that do not change packet data with those that do not as well. * The below tests check outcomes for each combination of such freplace. + * Also test a case when main subprogram itself is replaced and is a single + * subprogram in a program. */ void test_changes_pkt_data_freplace(void) { - if (test__start_subtest("changes_with_changes")) - test_aux("changes_pkt_data", "changes_pkt_data", true); - if (test__start_subtest("changes_with_doesnt_change")) - test_aux("changes_pkt_data", "does_not_change_pkt_data", true); - if (test__start_subtest("doesnt_change_with_changes")) - test_aux("does_not_change_pkt_data", "changes_pkt_data", false); - if (test__start_subtest("doesnt_change_with_doesnt_change")) - test_aux("does_not_change_pkt_data", "does_not_change_pkt_data", true); + struct { + const char *main; + const char *to_be_replaced; + bool changes; + } mains[] = { + { "main_with_subprogs", "changes_pkt_data", true }, + { "main_with_subprogs", "does_not_change_pkt_data", false }, + { "main_changes", "main_changes", true }, + { "main_does_not_change", "main_does_not_change", false }, + }; + struct { + const char *func; + bool changes; + } replacements[] = { + { "changes_pkt_data", true }, + { "does_not_change_pkt_data", false } + }; + char buf[64]; + + for (int i = 0; i < ARRAY_SIZE(mains); ++i) { + for (int j = 0; j < ARRAY_SIZE(replacements); ++j) { + snprintf(buf, sizeof(buf), "%s_with_%s", + mains[i].to_be_replaced, replacements[j].func); + if (!test__start_subtest(buf)) + continue; + test_aux(mains[i].main, mains[i].to_be_replaced, replacements[j].func, + mains[i].changes || !replacements[j].changes); + } + } } diff --git a/tools/testing/selftests/bpf/progs/changes_pkt_data.c b/tools/testing/selftests/bpf/progs/changes_pkt_data.c index f87da8e9d6b3..43cada48b28a 100644 --- a/tools/testing/selftests/bpf/progs/changes_pkt_data.c +++ b/tools/testing/selftests/bpf/progs/changes_pkt_data.c @@ -4,22 +4,35 @@ #include __noinline -long changes_pkt_data(struct __sk_buff *sk, __u32 len) +long changes_pkt_data(struct __sk_buff *sk) { - return bpf_skb_pull_data(sk, len); + return bpf_skb_pull_data(sk, 0); } __noinline __weak -long does_not_change_pkt_data(struct __sk_buff *sk, __u32 len) +long does_not_change_pkt_data(struct __sk_buff *sk) { return 0; } -SEC("tc") -int dummy(struct __sk_buff *sk) +SEC("?tc") +int main_with_subprogs(struct __sk_buff *sk) +{ + changes_pkt_data(sk); + does_not_change_pkt_data(sk); + return 0; +} + +SEC("?tc") +int main_changes(struct __sk_buff *sk) +{ + bpf_skb_pull_data(sk, 0); + return 0; +} + +SEC("?tc") +int main_does_not_change(struct __sk_buff *sk) { - changes_pkt_data(sk, 0); - does_not_change_pkt_data(sk, 0); return 0; } diff --git a/tools/testing/selftests/bpf/progs/changes_pkt_data_freplace.c b/tools/testing/selftests/bpf/progs/changes_pkt_data_freplace.c index 0e525beb8603..f9a622705f1b 100644 --- a/tools/testing/selftests/bpf/progs/changes_pkt_data_freplace.c +++ b/tools/testing/selftests/bpf/progs/changes_pkt_data_freplace.c @@ -4,13 +4,13 @@ #include SEC("?freplace") -long changes_pkt_data(struct __sk_buff *sk, __u32 len) +long changes_pkt_data(struct __sk_buff *sk) { - return bpf_skb_pull_data(sk, len); + return bpf_skb_pull_data(sk, 0); } SEC("?freplace") -long does_not_change_pkt_data(struct __sk_buff *sk, __u32 len) +long does_not_change_pkt_data(struct __sk_buff *sk) { return 0; }