summaryrefslogtreecommitdiff
path: root/osdep
diff options
context:
space:
mode:
authorJoseph Henry <[email protected]>2023-03-29 15:44:19 -0700
committerTravis LaDuke <[email protected]>2023-07-13 16:34:14 -0700
commitfdc2e0f692166ae03bc042e67f342d5d8d48c4f8 (patch)
tree160bf8058cbe66dc37be9077ab9de118514bfe00 /osdep
parent2672d037a8a70623fa1d99833ed7b7feb02181ff (diff)
Release memory previously allocated by UPNP_GetValidIGD
Diffstat (limited to 'osdep')
-rw-r--r--osdep/PortMapper.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/osdep/PortMapper.cpp b/osdep/PortMapper.cpp
index 6418464d..0027ed69 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