]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tools: ynl: avoid print_field when there is no reply
authorHangbin Liu <liuhangbin@gmail.com>
Fri, 24 Oct 2025 12:58:53 +0000 (12:58 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 28 Oct 2025 01:16:49 +0000 (18:16 -0700)
When request a none support device operation, there will be no reply.
In this case, the len(desc) check will always be true, causing print_field
to enter an infinite loop and crash the program. Example reproducer:

  # ethtool.py -c veth0

To fix this, return immediately if there is no reply.

Fixes: f3d07b02b2b8 ("tools: ynl: ethtool testing tool")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://patch.msgid.link/20251024125853.102916-1-liuhangbin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/net/ynl/pyynl/ethtool.py

index 9b523cbb3568cc2a62109ff7f8373e95fd16db42..fd0f6b8d54d1a77f5eb6db18bc0a3403cfacc229 100755 (executable)
@@ -44,6 +44,9 @@ def print_field(reply, *desc):
     Pretty-print a set of fields from the reply. desc specifies the
     fields and the optional type (bool/yn).
     """
+    if not reply:
+        return
+
     if len(desc) == 0:
         return print_field(reply, *zip(reply.keys(), reply.keys()))