From patchwork Thu Feb 13 11:19:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13973135 X-Patchwork-Delegate: kuba@kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 E5040221568; Thu, 13 Feb 2025 11:19:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445574; cv=none; b=iWo6FlURZ7yeWvQJy88NEaci1qG8U3i3yQUlC1UpETrPdg2d39dbtm4Y+oGAu/gB1ROjOw6Fsk0sm8DdOjLcZgUkpXInIndQILepFXuWgnTKiQV4RA8wptneA7KqQxEccjSc+8cBWXmOUaAW5vpqDYOcJ1mGBctZfiIFnUH4Y1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739445574; c=relaxed/simple; bh=YLx+FFBcppnoQ5foXkrGLrrLX4IzH/DepVjtxekALF4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DIHaQDmH79bd92fVBnAz0d+t7q0hNyiD99123IYJEIPDu+EiaiOQHtq9q4zsqjiPWeYp8ALffgm48HNeFVRjLwfTjWaXhDZyHVKfqp9iCjcpUUyrMavOlaDsBil5ePVV3c4t0GE7GIfHJUngYfGLKmuPsXolqcEEYg52S0PVW5Q= 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=DxgT9iVb; arc=none smtp.client-ip=212.227.15.19 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="DxgT9iVb" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739445567; x=1740050367; i=ps.report@gmx.net; bh=YLx+FFBcppnoQ5foXkrGLrrLX4IzH/DepVjtxekALF4=; 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=DxgT9iVbmc/NJVtRvskXSckHbDS78aHBkO9lYFHUc/lMTvlFbjvch+dkfk91oTJV kjdDf1wFtKxLyDJzN5A6Hn4WJRhNDQ6seuofVr0KsIyrpiKwWedRwZh0/BFqA9LH4 kQ0cKCOgdbdr5K4T5yU4JYd6wm0kB4pXo2Xa5TRtPY/WR1Qp6mu07o/TIY1xXsHKM /wYkkf7zr26riIx2q/ZOCa0Kwy07cTyyT0h/Qucg/Me658O9bRPWnXBEgXU6ilTi/ vMepahejldEasDKFEblovvKWlZLTfBaBoT6s/ePsuPQTJs24QlBdUyEsYQtnNbyl2 /kLA6E9AJacOQ7bywQ== 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 1MuUj2-1tRHcD1670-00xIvZ; Thu, 13 Feb 2025 12:19:27 +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 6/8] net: pktgen: fix mpls reset parsing Date: Thu, 13 Feb 2025 12:19:18 +0100 Message-ID: <20250213111920.1439021-7-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: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:QYEnJf1FkFJvRU7GgyHEvjD4zzUM8mOi2DuD7IDEApu20zi/f7h 4t0QYMhW7dYIPKdcn950pb/Tq5sgcdAT2Wb0a1mouLSXt885JByFQOW4bvbxPRtpma1tLef S+WnOqpqz/RgIerYEyIW6V+OxdOJgU5s0SwOs+dZLhN5A2XBelSzcoi4hmsM1xi+D5cvUSZ TS4Kln6VyNCjYhBr6kDeQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:fxjYW0XhBcs=;XFY+YssHXIoEYxw11exGsUzGG0l yHdmOnAPrfJhLzqHE0y398djJLfkNKy8ukXROaA2M4rWQwBL18alMclHSlO3dLqZM8GWW997u wD0wbePKDAl8WoF10GbK2j34SKbu9kIl7t5BDz/IfLwZImTzZAQeFRLGqukZpsI0JU4NpE1sV pzuyFsLiQi83oHqBk3ezNJDJW34veyOSWB1FLFpCSgLYwMWVuS1woOsXaICTkql5DF5KMeVEB P8WaOMwOY2+oykaT9g9VODziPOnJ2NvoZo1g/9gzGr8dFBaScV7SwZ5Ur7scFnamRpsXC2LnN JxeS5bqSfXfGv55tozCpKipdNzkwEVUeGL6Qhr9x8bpu8hFyzSbTDs3AzV2AfHyhJIlZbZnwl jaLuLlz1wYNTSuU99bJ5i3PLDOaDAbN0bz+He0vQPra0lMIVLwijBptpgjXIXRbM+JWDrZ8c3 hp0STc+IXOFgbVaxIcNGgWEICOL+oxF6ofQl9j66lrEH/TD9/y846w0AKKGkJDBD3ipnG+pJQ HFvjk+bqk31SzAVH1iJ10PvC1Dgd5JYc4H6aDVUebXyZCjtHD8moLngwD8dRCNgt48i0U5f6F Uh1Gvj6BXqM6Cwb98ekB678eLxXjU/R0gY0lPip+yG24wqwM/ufwGLYwEiEeuVum8yI7EhGae G7Yn8az2Xhgd5pPGytWGDJ8vXfX/ug/Q3KMEGc7yFUnrNLOhURykT5vTx+i5S167AVVpjmsi+ voaePsXDy/fMYUx7vBc57nfdPhXxA8CDwOpKlLR+aJ9IY96VTooEpAU7GjFZ5HulocEjNM1Aj VVzKKamaYrxMWCPoLc+2g3uK9YhmDfAICzR75DEO8pD1PC00LA4E26gtmfA/WfsSqZh8zgXbY IeD5D1XRj5h/7os1mkRceloIFuauR0FlchYsQGGuagPTR6KWr8F2iMDgiBEi4JrJhsYGDc2lN hbli2EFy1JZdoVh5IzX3BIAW4fkhjypWB5ExiQM5AYzVsFO+rcqodSOxPgKPN3m/4PjpMV7iF riQcpOrWFPcqtn09McrjPHacUOyAv+G4vdKYreJOHChbfcru8jdg1a8DYAxkRoMsqAgKcKbGi n2M2F0ULOXKjagWtllyVlj7pRxAmZtPkNim6Mn8ChbFdHTldPwROFYHRWCH4YZzS5eRGX5i3G Zj3viijw5wJBacvEP/Xuk7HrZtD/hSxiUG4uOwfKLCQIrlY9qDHoz/yMCj74dziQXNjuUx3oi I7TfTRg29opd7hOKoGKrhJcqfdLRUmaj7Jx2XN0STwa0cyEH+OHo+ftwV11rn7HIfgvDKGOAf Gx486GM8k/Ad5qd+4bzFwq5jxOloQLfOb0M8fPF+ZqUzkZ3TEJroDt9taQ6jeiXytPaJCJmlG qj7En+NGLTrQ6CtU0gHqLlEjsGcAjF/hjc7gfq1Ap9R8a7ZsCeZu7b5RSC X-Patchwork-Delegate: kuba@kernel.org Fix mpls list reset parsing to work as describe in Documentation/networking/pktgen.rst: pgset "mpls 0" turn off mpls (or any invalid argument works too!) - before the patch $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000001, 00000002 Result: OK: mpls=00000001,00000002 $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls 0" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000000 Result: OK: mpls=00000000 $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls invalid" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 Result: OK: mpls= - after the patch $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000001, 00000002 Result: OK: mpls=00000001,00000002 $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls 0" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 Result: OK: mpls= $ echo "mpls 00000001,00000002" > /proc/net/pktgen/lo\@0 $ echo "mpls invalid" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 Result: OK: mpls= Signed-off-by: Peter Seiderer Reviewed-by: Simon Horman --- Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) Changes v3 -> v4 - add rev-by Simon Horman Changes v2 -> v3: - new patch --- net/core/pktgen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 780435a8e605..1a0cfff2f3d7 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -925,8 +925,13 @@ static ssize_t get_labels(const char __user *buffer, max = min(HEX_8_DIGITS, maxlen - i); len = hex32_arg(&buffer[i], max, &tmp); - if (len <= 0) + if (len < 0) return len; + + // return empty list in case of invalid input and/or zero value + if (len == 0 || tmp == 0) + return maxlen; + pkt_dev->labels[n] = htonl(tmp); if (pkt_dev->labels[n] & MPLS_STACK_BOTTOM) pkt_dev->flags |= F_MPLS_RND;