Message ID | 20240510232202.24051-1-a@unstable.cc (mailing list archive) |
---|---|
State | Accepted |
Commit | ec8c25746e3232634f7842755a0c4bc08def6a49 |
Headers | show |
Series | ynl: ensure exact-len value is resolved | expand |
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Sat, 11 May 2024 01:22:02 +0200 you wrote: > For type String and Binary we are currently usinig the exact-len > limit value as is without attempting any name resolution. > However, the spec may specify the name of a constant rather than an > actual value, which would result in using the constant name as is > and thus break the policy. > > Ensure the limit value is passed to get_limit(), which will always > attempt resolving the name before printing the policy rule. > > [...] Here is the summary with links: - ynl: ensure exact-len value is resolved https://git.kernel.org/netdev/net-next/c/ec8c25746e32 You are awesome, thank you!
diff --git a/tools/net/ynl/ynl-gen-c.py b/tools/net/ynl/ynl-gen-c.py index c0b90c104d92..a42d62b23ee0 100755 --- a/tools/net/ynl/ynl-gen-c.py +++ b/tools/net/ynl/ynl-gen-c.py @@ -413,7 +413,7 @@ class TypeString(Type): def _attr_policy(self, policy): if 'exact-len' in self.checks: - mem = 'NLA_POLICY_EXACT_LEN(' + str(self.checks['exact-len']) + ')' + mem = 'NLA_POLICY_EXACT_LEN(' + str(self.get_limit('exact-len')) + ')' else: mem = '{ .type = ' + policy if 'max-len' in self.checks: @@ -465,7 +465,7 @@ class TypeBinary(Type): def _attr_policy(self, policy): if 'exact-len' in self.checks: - mem = 'NLA_POLICY_EXACT_LEN(' + str(self.checks['exact-len']) + ')' + mem = 'NLA_POLICY_EXACT_LEN(' + str(self.get_limit('exact-len')) + ')' else: mem = '{ ' if len(self.checks) == 1 and 'min-len' in self.checks:
For type String and Binary we are currently usinig the exact-len limit value as is without attempting any name resolution. However, the spec may specify the name of a constant rather than an actual value, which would result in using the constant name as is and thus break the policy. Ensure the limit value is passed to get_limit(), which will always attempt resolving the name before printing the policy rule. Signed-off-by: Antonio Quartulli <a@unstable.cc> --- tools/net/ynl/ynl-gen-c.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)