From patchwork Thu Feb 13 11:19:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 864973 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 A9D5E221563; Thu, 13 Feb 2025 11:19:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445574; cv=none; b=GHnEUsPdHCTxkMWMcAjiKQ+zGhSn5OUxF8MoJGv6qM1s8eg382pDofdLp1bkfPOfym1ZA8BbFRxwNpNSkWtw46qSdMtFZQSjIdn+3VooJu9DkjV5ikr16k842fo05+vDU9jd8frH0mtJz87CYM/9A7RUW5ewDmkAWC9vISGmfYU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445574; c=relaxed/simple; bh=WBHymyYl/xHTKiR/7M7BV3X9wuHtayASAmHXzsQJio8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R6Q+mL6YQZ1U3wK4jJOa1iDmcX9euYEydsji5CQneztsTeXuSCwomPbIs3eSw3ANJMPsYzCTiRAMtwKWA+8RNNSCTipRvo1JhrTnOWkDF/jFLpu+pvuQ4L/aiEYwcm0sMnHPwqojlydCWvMWNvZ1z/O0M/IAatDxHB9vmyJx5b0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=muW3smP2; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="muW3smP2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739445566; x=1740050366; i=ps.report@gmx.net; bh=WBHymyYl/xHTKiR/7M7BV3X9wuHtayASAmHXzsQJio8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=muW3smP2wC52cI58Eef3y3Dq2HwAwutq1HA4/IlrcQDFD37/DX7g3FcIl6hC8MCk qxQmXrugQ7xnBVYR6Y+ZDQR6f9NXzs9ZS/tT6dOe6USbeLUpCMFD7W/UrNh760OT2 SAnoeIbK7300k8LGgNbwqtVKoU8cXdxzWYRY8a/6AciV3619c9Jzol7WP3MwADn+T TRAWAkPYGvbK4T1r8oyC1Oge2pwB4E1dzGvRkhCwshZ0WcuskitqWsOcvUtT4HKDr Kx3OoqkPPQ+GpRux2I5MkhQiaAksQCNFx7LB/h1wPlIncoAznyP7C1Zr5VAdnt2/b p8PSoTGGGo0ab1Dr7Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Md6Qr-1t9TcD27lL-00fUvY; Thu, 13 Feb 2025 12:19:26 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer , Thomas Gleixner , Artem Chernyshev , Nam Cao , Frederic Weisbecker Subject: [PATCH net-next v5 4/8] net: pktgen: fix mpls maximum labels list parsing Date: Thu, 13 Feb 2025 12:19:16 +0100 Message-ID: <20250213111920.1439021-5-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213111920.1439021-1-ps.report@gmx.net> References: <20250213111920.1439021-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:rZohbrT/94omkfb9gHvJ5Cq9DKJCfwJcYDXIx7VMMAnltyRH6r4 OTA390AdBuOxf/hyAjmvIdUzdUz+iqNdE+X5P3asabSaF9O+AjHWXsLNfHuaJ6ftNBS8Q5w nZAdmoTAnsNlUM4rlpgOYPk2zV6HxbPB6oD2yzqdkKz0VP5B6z0yLhF0tAaRWS0Psy/OcJT ZPm5DJEenc5DFqLyCbcfg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:uErfn1VJ54A=;MAUGuRLocDEeyqtFHVM4hNyTIbM EtXsd8fp/4GRlLLqjEhjNGh1OJLr5/5DQg3laTPV2F5Nu84qxgFGnWV/Fw9NteSyIjpsq1Qm0 ptrh/vxHmO31KpLJwP5tstX5DEAHmK93ARVXLCEh5LX1GZwp6ayCJP2owvRsVvEhpOpQEhIgD PwDYWYHY5BtKiyhJrHVj3iAZ4W86C38dh3U44cnvaZFnN5ymOYdcxdC9LCJj5UaxizQ5MTKm9 iJC7vWeqYXDecQbSeVKUXPf9K/T1Z2Wh66X+2H51wt0xzNW0AskShVhPMhsdbWQ4NqRe7IFdh lQproClYpngMDtZSp8okrApyxYi/9IFWBWfPqr9aCXy+aZBPuvcs1zZ/wDyZm37Cthv+lldJE wWYtgE/D7tHAE4U1P1BcD8rI04+MvUYdEoCAmkcsPtg16iJYJCezlpWZcebdkeP/T9d/yS9Wd AenzyaUa0iDtmNMmc6/LDAqG2TB60zGMYadXj+MWZQKudvaE2FlWg2bWx2SBqVw9Dp/r8iumX J8SNhz2FEV8dYmTnMptO8kEzgDspywlaQtL1LAbYi9uh8wVUBQszVn+FnDSGpnIkUtg4BxqoS yg5jrLgr/2SJPQYyrPD+1LE7PGlduJV/zClBu5EJ9UssKO04iJbBSXlFTgv6FrxY0QUYB2g5o jZPIJRNOoxxMN4cu2EQP99bzATQaAd/tpKsmRGQgQfbhtmc8xOaUaCZTe/jN5t40cimziesZ8 vUyah4bt8nF5AssPGMEGW/Zg/frAwqhh/ytLbsyrXIWhaujLHbcS/H3ywA7XUXi4iyh1slpJP oiPioXUc/cSg09HqWOrWHzf+mG2KC5nIY1iUKnTdlNVyS6jEBx1W9ddiTG7HCKNlZ/YYeeeFV /4rBB6Tz8zfoC3qtNCWDGYXFp7VEZd/UdxNvD7+SnglWFlWOCCDjN8p4rUivX15dFqXDGKQd0 C0Oj9tDDebgkZNhfh9grLvsJVpAZIWE6Q2LHzaLGajc4TfIJuvOm9/uNoIyM5W46ylMWXQdRo rHpAwfhdPHdzKRwG5SYZ65cV9BXQcS+r9ZuOO5XHGJTbeNJlI7t4alBxlsPx/+fGY8iFiaZeV B03EXRYysYYcVr/tpZxoi5B876uB0+wB8JQi3/bzg8bnjPqqhX1mjtPqJDJmI1d23rNMFylk7 7/NmdMOzIftU0XaM4JOp/YwVEsmP852Pfg2dV5EZD7mUC72CVDPa9ku8Vvwr5C0GXeApyRq+a 2FIZlR2yNax7ezpUTeP6on1Z+O6GdICL6N4h0ay5Jw3Lwu/roim5X38oDneAtuGDKF/0bX/f2 OmnA6SXNJwOksp3lo0ZXsVYnty+y/PDJyp+DGrWZSmXzbFDHEg4n4LpQep+oMLtOkEfSZ/Aw9 fBAbxpbLUBl/ZEsH+n6PGMI0s42Mm5mKIGBKyzgW05dAGbzq7/q2CXS7lx Fix mpls maximum labels list parsing up to MAX_MPLS_LABELS/16 entries (instead of up to MAX_MPLS_LABELS - 1). Addresses the following: $ echo "mpls 00000f00,00000f01,00000f02,00000f03,00000f04,00000f05,00000f06,00000f07,00000f08,00000f09,00000f0a,00000f0b,00000f0c,00000f0d,00000f0e,00000f0f" > /proc/net/pktgen/lo\@0 -bash: echo: write error: Argument list too long Signed-off-by: Peter Seiderer --- Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) - change patch description ('Fixes:' -> 'Addresses the following:', suggested by Simon Horman) Changes v3 -> v4 - new patch (factored out of patch 'net: pktgen: fix access outside of user given buffer in pktgen_if_write()') --- net/core/pktgen.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 436076a2ccb7..9b63feb8a33e 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -911,6 +911,10 @@ static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) pkt_dev->nr_labels = 0; do { __u32 tmp; + + if (n >= MAX_MPLS_LABELS) + return -E2BIG; + len = hex32_arg(&buffer[i], HEX_8_DIGITS, &tmp); if (len <= 0) return len; @@ -922,8 +926,6 @@ static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) return -EFAULT; i++; n++; - if (n >= MAX_MPLS_LABELS) - return -E2BIG; } while (c == ','); pkt_dev->nr_labels = n;