Skip to content

Commit 758d29f

Browse files
donaldhkuba-moo
authored andcommitted
tools: ynl: Fix genlmsg header encoding formats
The pack strings use 'b' signed char for cmd and version but struct genlmsghdr defines them as unsigned char. Use 'B' instead. Fixes: 4e4480e ("tools: ynl: move the cli and netlink code around") Signed-off-by: Donald Hunter <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent c79493c commit 758d29f

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

tools/net/ynl/lib/ynl.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def _genl_msg(nl_type, nl_flags, genl_cmd, genl_version, seq=None):
200200
if seq is None:
201201
seq = random.randint(1, 1024)
202202
nlmsg = struct.pack("HHII", nl_type, nl_flags, seq, 0)
203-
genlmsg = struct.pack("bbH", genl_cmd, genl_version, 0)
203+
genlmsg = struct.pack("BBH", genl_cmd, genl_version, 0)
204204
return nlmsg + genlmsg
205205

206206

@@ -264,7 +264,7 @@ def __init__(self, nl_msg):
264264
self.hdr = nl_msg.raw[0:4]
265265
self.raw = nl_msg.raw[4:]
266266

267-
self.genl_cmd, self.genl_version, _ = struct.unpack("bbH", self.hdr)
267+
self.genl_cmd, self.genl_version, _ = struct.unpack("BBH", self.hdr)
268268

269269
self.raw_attrs = NlAttrs(self.raw)
270270

@@ -358,7 +358,7 @@ def _decode_enum(self, rsp, attr_spec):
358358
raw >>= 1
359359
i += 1
360360
else:
361-
value = enum['entries'][raw - i]
361+
value = enum.entries_by_val[raw - i].name
362362
rsp[attr_spec['name']] = value
363363

364364
def _decode(self, attrs, space):

0 commit comments

Comments
 (0)