summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOleksandr Kuchmystyi <o.kuchmystyi@vyos.io>2025-11-05 10:21:10 +0300
committerOleksandr Kuchmystyi <o.kuchmystyi@vyos.io>2025-11-05 10:30:31 +0300
commit909780c13714bcba488467165494af84bc7262cf (patch)
tree2c8ba9c2f88c69577fa9ff7d72cc7c2568dadc60 /src
parentcc60275ab0db2c45f2ad7387d6a91a96fa9d6337 (diff)
downloadvyos-1x-909780c13714bcba488467165494af84bc7262cf.tar.gz
vyos-1x-909780c13714bcba488467165494af84bc7262cf.zip
firewall: T7112: Default action drop fails
Prevent `KeyError` by safely handling missing 'member' dict in zone config. Add smoketest to verify commit fails gracefully when zone has no interfaces.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/firewall.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/conf_mode/firewall.py b/src/conf_mode/firewall.py
index 6630b811d..4a4212a0f 100755
--- a/src/conf_mode/firewall.py
+++ b/src/conf_mode/firewall.py
@@ -146,9 +146,10 @@ def get_config(config=None):
for local_zone, local_zone_conf in firewall['zone'].items():
if 'local_zone' not in local_zone_conf:
# Get physical interfaces assigned to the zone if vrf is used:
- if 'vrf' in local_zone_conf['member']:
+ local_zone_member = local_zone_conf.get('member', {})
+ if 'vrf' in local_zone_member:
local_zone_conf['vrf_interfaces'] = {}
- for vrf_name in local_zone_conf['member']['vrf']:
+ for vrf_name in local_zone_member['vrf']:
local_zone_conf['vrf_interfaces'][vrf_name] = ','.join(get_vrf_members(vrf_name))
continue