From nobody Mon Feb 9 16:18:09 2026 Received: from mail-4398.protonmail.ch (mail-4398.protonmail.ch [185.70.43.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8490341C30E for ; Wed, 21 Jan 2026 13:21:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769001665; cv=none; b=J/0VV16w0oUf0xy0IsikNeseyQb6StLsFVpo6ITcPyAZwaEFA2juBpKHVnAQmbGy1Ikd+XyzQJjn3j9Ftqttg5qCc+9FpHN11BQbinBEof+sb9RUmNNtjvRhz9hGYuNvC8nhL9zIGuC+Dp94v8NQUQaFfXNf2OxDkf1Si5t5veA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769001665; c=relaxed/simple; bh=TPdEcIfJbqvoBHnoEwlBnlyJ+FPShZCQQ5uzsnJd7n0=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CzUFxZ0mc4DBApHJKK4HaRDpJ3oX0QszaI2eTS68EZmNMBUesXFWxPSCeHmRNDJBOrXr0rhFmzqWekb82h+8/yXj/fkF7mwO4vNKZbRKpb6+20/oSApsRM894+HcK2bM/eQBALVADwqGPxDH0vk45HR8sdjoInJ11sxTJ5dCBjw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=1g4.org; spf=pass smtp.mailfrom=1g4.org; dkim=pass (2048-bit key) header.d=1g4.org header.i=@1g4.org header.b=g4k6poje; arc=none smtp.client-ip=185.70.43.98 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=1g4.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=1g4.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=1g4.org header.i=@1g4.org header.b="g4k6poje" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1g4.org; s=protonmail2; t=1769001661; x=1769260861; bh=TPdEcIfJbqvoBHnoEwlBnlyJ+FPShZCQQ5uzsnJd7n0=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=g4k6pojemtv1avJcQjJOb12NGsD6P71kYNK1XyAxg9oY0Tjg4ToGwCKXiev89NqdB jPqx2+zxqxTUWaWv9pMrJ7Btw+WlPtQlww7UMZfwynEV4JIPvpVa58UuUmcgjmD3dr pE6jdAAwrmT4XtelenZlaTXa0oFoE4cho7aLTZz3hjxXSyMCpp9hZi9kiNFQs/PT6j valIqdHgjCqt91gMRlP2ng2R3tjekZRpPU3wxLPyMi9RDG5Zl+IMzGfNLdcOuKGbMX K1T1CfrirRzuejchmKGHqltLwfQbN6uEGDyKy1RgOT7HMtI3OFDu+sbKmzI6OIhqBu 9K3k9fWTINlIQ== Date: Wed, 21 Jan 2026 13:20:59 +0000 To: netdev@vger.kernel.org From: Paul Moses Cc: Jamal Hadi Salim , Cong Wang , Jiri Pirko , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , linux-kernel@vger.kernel.org, Paul Moses , stable@vger.kernel.org Subject: [PATCH net v3 6/7] net/sched: act_gate: reject empty schedule list Message-ID: <20260121131954.2710459-7-p@1g4.org> In-Reply-To: <20260121131954.2710459-1-p@1g4.org> References: <20260121131954.2710459-1-p@1g4.org> Feedback-ID: 8253658:user:proton X-Pm-Message-ID: 7d60970e1245a4f9269fc3b9069c5a4c9c5c7552 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reject empty schedules (num_entries =3D=3D 0) so next_entry is always valid= and RCU readers/timer logic never walk an empty list. taprio enforces the same constraint on schedules (sch_taprio.c, commit 09dbdf28f9f9fa). Fixes: a51c328df310 ("net: qos: introduce a gate control flow action") Signed-off-by: Paul Moses Cc: stable@vger.kernel.org --- net/sched/act_gate.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/sched/act_gate.c b/net/sched/act_gate.c index 48ff378bb051a..e4134b9a4a314 100644 --- a/net/sched/act_gate.c +++ b/net/sched/act_gate.c @@ -509,6 +509,12 @@ static int tcf_gate_init(struct net *net, struct nlatt= r *nla, cycletime_ext =3D nla_get_u64(tb[TCA_GATE_CYCLE_TIME_EXT]); p->tcfg_cycletime_ext =3D cycletime_ext; =20 + if (p->num_entries =3D=3D 0) { + NL_SET_ERR_MSG(extack, "The entry list is empty"); + err =3D -EINVAL; + goto release_mem; + } + err =3D tcf_action_check_ctrlact(parm->action, tp, &goto_ch, extack); if (err < 0) goto release_mem; --=20 2.52.GIT