From 960e730bdde2f3561aa3cff8941e2f9db8eb32d8 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Thu, 28 May 2026 22:03:40 +0200 Subject: nat: T8939: fix KeyError: 'group' exception Prevent access to missing dictionary key by probing for availability. On removal of inbound-interface or outbound-interface name CLI node, there was a guard missing when accessing the CLI dictionary containing the config data. --- python/vyos/nat.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'python') diff --git a/python/vyos/nat.py b/python/vyos/nat.py index 7be957a0c..0a252bbd8 100644 --- a/python/vyos/nat.py +++ b/python/vyos/nat.py @@ -37,7 +37,7 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False): operator = '!=' iiface = iiface[1:] output.append(f'iifname {operator} {{{iiface}}}') - else: + elif 'group' in rule_conf['inbound_interface']: iiface = rule_conf['inbound_interface']['group'] if iiface[0] == '!': operator = '!=' @@ -52,7 +52,7 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False): operator = '!=' oiface = oiface[1:] output.append(f'oifname {operator} {{{oiface}}}') - else: + elif 'group' in rule_conf['outbound_interface']: oiface = rule_conf['outbound_interface']['group'] if oiface[0] == '!': operator = '!=' @@ -80,7 +80,6 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False): if redirect_port: translation_output.append(f'to {redirect_port}') else: - translation_prefix = nat_type[:1] translation_output = [f'{translation_prefix}nat'] -- cgit v1.2.3