From 1dac9ab6f53fc71b5f53b2168637f11177ae2d94 Mon Sep 17 00:00:00 2001 From: ASemenchuk <59782501+Botinoc@users.noreply.github.com> Date: Thu, 21 Jul 2022 09:00:47 +0300 Subject: [PATCH] PAN-OS: fix the bug with infinite recursion --- PaloAltoMigration/PaloAltoConverter.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/PaloAltoMigration/PaloAltoConverter.cs b/PaloAltoMigration/PaloAltoConverter.cs index 29b36847..bf5ae4fa 100644 --- a/PaloAltoMigration/PaloAltoConverter.cs +++ b/PaloAltoMigration/PaloAltoConverter.cs @@ -4269,6 +4269,19 @@ public void AddCpServiceGroup(CheckPoint_ServiceGroup cpSrvGroup, } else if (cpSrvGroupsDict.ContainsKey(member)) { + //if cpSrvGroupsDict contains a member + //whose members have a copy of the original member, + //then we get an infinite recursion + //to fix the bug we are skipping the call of the same member + var infiniteRecursion = false; + foreach (string subMember in cpSrvGroupsDict[member].Members) + { + if (subMember == member) + { + infiniteRecursion = true; + } + } + if (!infiniteRecursion) AddCpServiceGroup(cpSrvGroupsDict[member], cpServicesDict, cpSrvGroupsDict); AddCheckPointObject(cpSrvGroupsDict[member]); }