From fdc2e0f692166ae03bc042e67f342d5d8d48c4f8 Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Wed, 29 Mar 2023 15:44:19 -0700 Subject: [PATCH] Release memory previously allocated by UPNP_GetValidIGD --- osdep/PortMapper.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/osdep/PortMapper.cpp b/osdep/PortMapper.cpp index 6418464db..0027ed69c 100644 --- a/osdep/PortMapper.cpp +++ b/osdep/PortMapper.cpp @@ -207,7 +207,8 @@ public: memset(&data,0,sizeof(data)); OSUtils::ztsnprintf(inport,sizeof(inport),"%d",localPort); - if ((UPNP_GetValidIGD(devlist,&urls,&data,lanaddr,sizeof(lanaddr)))&&(lanaddr[0])) { + int foundValidIGD = 0; + if ((foundValidIGD = UPNP_GetValidIGD(devlist,&urls,&data,lanaddr,sizeof(lanaddr)))&&(lanaddr[0])) { #ifdef ZT_PORTMAPPER_TRACE PM_TRACE("PortMapper: UPnP: my LAN IP address: %s" ZT_EOL_S,lanaddr); #endif @@ -282,9 +283,11 @@ public: PM_TRACE("PortMapper: UPnP: UPNP_GetValidIGD failed, returning to NAT-PMP mode" ZT_EOL_S); #endif } - freeUPNPDevlist(devlist); + if(foundValidIGD) { + FreeUPNPUrls(&urls); + } } else { mode = 0; #ifdef ZT_PORTMAPPER_TRACE