diff options
| author | Dan Helfman <[email protected]> | 2011-04-16 11:35:45 -0700 |
|---|---|---|
| committer | Matt Corallo <[email protected]> | 2011-04-16 21:58:42 +0200 |
| commit | f285d4f4f395d7a69f182ddb35ec48c8b10da2d2 (patch) | |
| tree | f6b7c6a376cdde2538beafe848416f6b24bd3c89 /net.cpp | |
| parent | Exit when no UPnP router found and fUseUPnP gets set to 0. (diff) | |
| download | discoin-f285d4f4f395d7a69f182ddb35ec48c8b10da2d2.tar.xz discoin-f285d4f4f395d7a69f182ddb35ec48c8b10da2d2.zip | |
Fix for #156: UPnP segfault when no valid UPnP IGDs are found.
Diffstat (limited to 'net.cpp')
| -rw-r--r-- | net.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -906,7 +906,8 @@ void ThreadMapPort2(void* parg) struct IGDdatas data; int r; - if (UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)) == 1) + r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr)); + if (r == 1) { char intClient[16]; char intPort[6]; @@ -937,7 +938,8 @@ void ThreadMapPort2(void* parg) } else { printf("No valid UPnP IGDs found\n"); freeUPNPDevlist(devlist); devlist = 0; - FreeUPNPUrls(&urls); + if (r != 0) + FreeUPNPUrls(&urls); loop { if (fShutdown || !fUseUPnP) return; |