Message ID | 20250203170201.1661703-4-ps.report@gmx.net (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Some pktgen fixes/improvments | expand |
On Mon, Feb 03, 2025 at 06:01:54PM +0100, Peter Seiderer wrote: > Fix hex32_arg parsing for short reads (here 7 hex digits instead of the > expected 8), shift result only on successful input parsing. > > - before the patch > > $ echo "mpls 0000123" > /proc/net/pktgen/lo\@0 > $ grep mpls /proc/net/pktgen/lo\@0 > mpls: 00001230 > Result: OK: mpls=00001230 > > - with patch applied > > $ echo "mpls 0000123" > /proc/net/pktgen/lo\@0 > $ grep mpls /proc/net/pktgen/lo\@0 > mpls: 00000123 > Result: OK: mpls=00000123 > > Signed-off-by: Peter Seiderer <ps.report@gmx.net> Reviewed-by: Simon Horman <horms@kernel.org>
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 4f8ec6c9bed4..28dbbf70e142 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -753,14 +753,15 @@ static int hex32_arg(const char __user *user_buffer, unsigned long maxlen, for (; i < maxlen; i++) { int value; char c; - *num <<= 4; if (get_user(c, &user_buffer[i])) return -EFAULT; value = hex_to_bin(c); - if (value >= 0) + if (value >= 0) { + *num <<= 4; *num |= value; - else + } else { break; + } } return i; }
Fix hex32_arg parsing for short reads (here 7 hex digits instead of the expected 8), shift result only on successful input parsing. - before the patch $ echo "mpls 0000123" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00001230 Result: OK: mpls=00001230 - with patch applied $ echo "mpls 0000123" > /proc/net/pktgen/lo\@0 $ grep mpls /proc/net/pktgen/lo\@0 mpls: 00000123 Result: OK: mpls=00000123 Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- Changes v1 -> v2: - no changes Changes v1 -> v2: - new patch --- net/core/pktgen.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)