Blame SOURCES/9999-9cd642933d41a983c4cbdef6aa936151e89a05ef.patch

Pablo Greco 9b49ff
From 9cd642933d41a983c4cbdef6aa936151e89a05ef Mon Sep 17 00:00:00 2001
Pablo Greco 9b49ff
From: Eric Garver <eric@garver.life>
Pablo Greco 9b49ff
Date: Thu, 6 Jun 2019 12:25:08 -0400
Pablo Greco 9b49ff
Subject: [PATCH] fix: rich rule destination with services
Pablo Greco 9b49ff
Pablo Greco 9b49ff
Fixes: rhbz 1715977
Pablo Greco 9b49ff
(cherry picked from commit d3bd517c7deb44d42129017b3c471ccdf1c32b57)
Pablo Greco 9b49ff
---
Pablo Greco 9b49ff
 src/firewall/core/fw_zone.py | 7 ++++---
Pablo Greco 9b49ff
 1 file changed, 4 insertions(+), 3 deletions(-)
Pablo Greco 9b49ff
Pablo Greco 9b49ff
diff --git a/src/firewall/core/fw_zone.py b/src/firewall/core/fw_zone.py
Pablo Greco 9b49ff
index 90ae1036..1f33b550 100644
Pablo Greco 9b49ff
--- a/src/firewall/core/fw_zone.py
Pablo Greco 9b49ff
+++ b/src/firewall/core/fw_zone.py
Pablo Greco 9b49ff
@@ -1582,17 +1582,18 @@ def _rule_prepare(self, enable, zone, rule, mark_id, zone_transaction):
Pablo Greco 9b49ff
             if type(rule.element) == Rich_Service:
Pablo Greco 9b49ff
                 svc = self._fw.service.get_service(rule.element.name)
Pablo Greco 9b49ff
 
Pablo Greco 9b49ff
-                destinations = [rule.destination] if rule.destination else [None]
Pablo Greco 9b49ff
-
Pablo Greco 9b49ff
+                destinations = []
Pablo Greco 9b49ff
                 if len(svc.destination) > 0:
Pablo Greco 9b49ff
                     if rule.destination:
Pablo Greco 9b49ff
                         # we can not use two destinations at the same time
Pablo Greco 9b49ff
                         raise FirewallError(errors.INVALID_RULE,
Pablo Greco 9b49ff
                                             "Destination conflict with service.")
Pablo Greco 9b49ff
-                    destinations = []
Pablo Greco 9b49ff
                     for ipv in ipvs:
Pablo Greco 9b49ff
                         if ipv in svc.destination and backend.is_ipv_supported(ipv):
Pablo Greco 9b49ff
                             destinations.append(svc.destination[ipv])
Pablo Greco 9b49ff
+                else:
Pablo Greco 9b49ff
+                    # dummy for the following for loop
Pablo Greco 9b49ff
+                    destinations.append(None)
Pablo Greco 9b49ff
 
Pablo Greco 9b49ff
                 for destination in destinations:
Pablo Greco 9b49ff
                     if enable: