From 8a24574018dc4ac39ec5988b87aff797e22b187b Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 15 Oct 2025 23:11:58 -0700 Subject: Do not use Exit macros for control flow Fixes 9172 --- src/ext/Firewall/ca/firewall.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'src/ext') diff --git a/src/ext/Firewall/ca/firewall.cpp b/src/ext/Firewall/ca/firewall.cpp index f50ae409..dfe8ecf1 100644 --- a/src/ext/Firewall/ca/firewall.cpp +++ b/src/ext/Firewall/ca/firewall.cpp @@ -464,29 +464,30 @@ static HRESULT GetFwRuleInterfaces( } } - ExitOnNull(iInterfacesCount, hr, S_OK, "All interfaces are empty values"); - - vInterfaces.vt = VT_ARRAY | VT_VARIANT; - // this will be cleaned up by ReleaseVariant call of the calling function - vInterfaces.parray = SafeArrayCreateVector(VT_VARIANT, 0, iInterfacesCount); - - for (LPCWSTR pwzElement = bstrInterfaces; pwzElement < (bstrInterfaces + iLength); ++pwzElement) + if (iInterfacesCount > 0) { - if (*pwzElement) + vInterfaces.vt = VT_ARRAY | VT_VARIANT; + // this will be cleaned up by ReleaseVariant call of the calling function + vInterfaces.parray = SafeArrayCreateVector(VT_VARIANT, 0, iInterfacesCount); + + for (LPCWSTR pwzElement = bstrInterfaces; pwzElement < (bstrInterfaces + iLength); ++pwzElement) { - VARIANT vElement; - ::VariantInit(&vElement); + if (*pwzElement) + { + VARIANT vElement; + ::VariantInit(&vElement); - vElement.vt = VT_BSTR; - // this will be cleaned up by ReleaseVariant call of the calling function - vElement.bstrVal = ::SysAllocString(pwzElement); - ExitOnNull(vElement.bstrVal, hr, E_OUTOFMEMORY, "failed SysAllocString for interface element"); + vElement.vt = VT_BSTR; + // this will be cleaned up by ReleaseVariant call of the calling function + vElement.bstrVal = ::SysAllocString(pwzElement); + ExitOnNull(vElement.bstrVal, hr, E_OUTOFMEMORY, "failed SysAllocString for interface element"); - hr = SafeArrayPutElement(vInterfaces.parray, &iIndex, &vElement); - ExitOnFailure(hr, "failed to put interface '%ls' into safe array", pwzElement); + hr = SafeArrayPutElement(vInterfaces.parray, &iIndex, &vElement); + ExitOnFailure(hr, "failed to put interface '%ls' into safe array", pwzElement); - pwzElement += ::SysStringLen(vElement.bstrVal); - iIndex++; + pwzElement += ::SysStringLen(vElement.bstrVal); + iIndex++; + } } } -- cgit v1.2.3-55-g6feb