From patchwork Fri Feb 21 21:52:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13986349 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 2630E17CA17; Fri, 21 Feb 2025 21:52:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174778; cv=none; b=EPDrtvJ/GhHEjSKwKPlIzIT6NNnGSBINJS664STQIu0GhnBuYrX4ObohAicLjaBKjgRhSXTfP5CFqfwjkrWbjBgUvKnUCq2TdgA7BmSEcHSqlVf3s4fpM4w1xnRAIY1F9Ca5cHxloNO4ekhz2WgeISE3LnKS1T+T0ZEOA6y9vKE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174778; c=relaxed/simple; bh=+v3owkXmWRQyHjyf2WyeFFI0j1d1tsQI4XKQ/SEq5qg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iMMniYyqia3to19/y1DubosDy5Wo+F0cZ6mMev9kjgtTrzedPjBlvkwpMimmsnKCJpJlU1z3AkDr+nBN3VL00sh+lltuN1CaCluNQp440rinGkkkVLLr6CbB9pmCAO52RYUeWNi5HAQr2KaWJX3IJ0lpx0fNEEXRd1bsV4Tgu6U= 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=hwjIY/jy; arc=none smtp.client-ip=212.227.15.18 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="hwjIY/jy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740174771; x=1740779571; i=ps.report@gmx.net; bh=+v3owkXmWRQyHjyf2WyeFFI0j1d1tsQI4XKQ/SEq5qg=; 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=hwjIY/jyT30ZVM/0KDRhDkxH0XJuiLq+ZKpAeT/jU67sNFNyq2cBXcjN3Z+OkIyv rsiTZyrMgO8HlEndWdlRz98oH9mbOo16dFoMjARtihHTTyx41v8jGvclbdNXDvVC/ GA2+DDJBHkjHV8KX0NqbR9SxIoDfW8LluZ7asr/RLAjsGT/7m14FVJGTzGZLjvJpr fLYZYhLJQMOnfZyS3+Lenzcbr4Dy7qO8zNfQOgdPZKu7zwkNzG8pAZ73xiUL3GvZD 9TrwQv35+emvC7ex6rpLlLlsOwi1Eus5C8hBl2w7G4UHKydS9SvBY2DI1lP/uxdcC Gj6wzmMcsTfXjg7IuQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.92]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MQMyZ-1tyyxu2nZZ-00IlH3; Fri, 21 Feb 2025 22:52:51 +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 Subject: [PATCH net-next v6 4/8] net: pktgen: fix mpls maximum labels list parsing Date: Fri, 21 Feb 2025 22:52:42 +0100 Message-ID: <20250221215246.383373-5-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250221215246.383373-1-ps.report@gmx.net> References: <20250221215246.383373-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:ngtz56J2gKflZ3uR8gR2zcf7bmxMDUuDTOhend7Rllu4uv+8POZ zsbtqvp7juan4agOjEvvV2DfIjiGKbsPaWilgbO7SlujGdyZsyQSJBYYla4EaH+i/jljl14 2260VeWlWdjGjH6GdziQyolPtWNmoU9i/7jzYYAx1SdQrLH9qIxqm/6rgGBZv18gIoU4Z/Z oCj9XkqV1myQrYJ+XLdRg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:qTzHgP7fCyg=;CrYBsbp9IYvyWOSxhnKVlRoYYaK V9Dl7o1IRqcPy5/ijitsaDhfShp0stOZvvreewLDnD+BjJbR37jLBveHNRMVnktD7nV8aWGCO 0bsl5OOt9gknb3ypSIcg7/cbMsFiEIto4Dfa+h9MqLEy9OJA7ZCTqiHmJJQoyYWbLIRgMf4gn Z8IJlG5nClQcsP7S0H6+CkCAOaR65EVm+efUKi4ZVQe9lNIOav6fHsnB9qgi/Puq6Tt4AU214 WlvQe0V9vcr43UWsFWJzpdxW1eJ0RfCwnnvhSDrKouEZohxYLSfe+3N2o3MnPb/y6T3BCA0vW 5pJ/CphHnXz16kXosiGmfgOgFqbbJ2aM9lmwj9ekQXph04zdvknOhd+NLQAf+L9jh97h4uU/C 9MufH3DuXmO/KW4U29liigXF44wfHITc3RT2nGdSCPixJtRO05ERsx590Tu4tQ4wLFcoVpv7j ifZTCoERbsvON6y/Ba01sbtVMLx3EnBgAKqd51yDQ0W8iQJazLWFOLG1854E8yF3L1LlzPtRn nZljurIq22XJwyYCPvbn5VGEEFGU/4j+nsu/NMCn18ejwifqEPTpOyWlel3o9J5Onuzec+Qq6 uEyxZG2/fmbINqTVxRJipUHR6By7t7aD9wZXSgrRdekUdcthw941el9dE/mTOPm7Zl/8fczNE nTT86NEelY+VbLeNjPFlayee48ELWGaqqIx2etBNjcW9bBUaaH5TfiOG+kPUeB9XcN90aCO3J rQER3aQrC7lnxT6UqOHbUZBHdCQdeWa5jn5Ruu/oef0uGgAzFNZj5gnqaarNCCCyhSza8QtYN t10MBd3wUzFH2WP/eN7t11jhj4onUTFNgrGbFcm6nLQ/0pYc6TthUKlaMJCo4jNZ0CrZRf6ce CC8OpMHz65phognb/55WPdt9dsfjf14SCXeFtCakZ7WU4AjIai2KQD7HCULTTELcYEYhnJK/z W4FnUjajRwlsodSkFUD22srzzQFitNz03/NmbomuBqongrHk13ALtveaDHylgDkNvvEAA/7Ya mjwi/wbn+c1AaweAncV0fthOi/gtYoZj28Mva0iGglDWznuW7MJ2ugA23BYQQDmMSYaRw5edX yU/25PK/lbZdytN/Tu4BHa1VUE9wljMJWCVR+33pqcnw/iKdG+I0UudU1KNYQbSgtp5zHrpZe AZqFpeyW23X43pU2YfRpE1rvy+gDGnmCpEb0loOCx66I3j7CmKkVvBLag3fk0sG4wkKxju476 BNGBUiwsucfHmsvSoLfFrg2alWFYxboMrakT+fkgC02r1BjwiKHaq8sk5o4AMI/kL8mzMbjQ3 znvWgAdwWehBx4Bm8939Q4C6K1CyV1/Ve7dLbRXwJmDVTJHROQSi832FOZpFmuWmcRWA8+CE2 YjGsoIEnKo+FnPYM1Zo1Xhvd6JB+aXULjl36MAc+rG0LVfZcD9PPJLmMbL 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 Reviewed-by: Simon Horman --- Changes v5 -> v6 - adjust to dropped patch ''net: pktgen: use defines for the various dec/hex number parsing digits lengths' - add rev-by Simon Horman 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 204f93de03aa..03ea6b5db156 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -902,6 +902,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], 8, &tmp); if (len <= 0) return len; @@ -913,8 +917,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;