From 83ba32df29225b0f29be1a6d66e678b1b1cb01ac Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Sun, 22 Oct 2023 09:49:27 -0400
Subject: [PATCH] winsock: Fix a potential memleak in GetAdaptersInfo calls.
Thanks to Jean-Baptiste Noblot, who submitted the original patch to our
Bugzilla in January 2015. Sorry for the delay! :)
Fixes #27.
---
SDLnet.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/SDLnet.c b/SDLnet.c
index f60c2c8..e0ec84c 100644
--- a/SDLnet.c
+++ b/SDLnet.c
@@ -224,10 +224,12 @@ int SDLNet_GetLocalAddresses(IPaddress *addresses, int maxcount)
}
if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == ERROR_BUFFER_OVERFLOW) {
- pAdapterInfo = (IP_ADAPTER_INFO *) SDL_realloc(pAdapterInfo, ulOutBufLen);
- if (pAdapterInfo == NULL) {
+ PIP_ADAPTER_INFO pAdapterInfoTmp = (PIP_ADAPTER_INFO) SDL_realloc(pAdapterInfo, ulOutBufLen);
+ if (pAdapterInfoTmp == NULL) {
+ SDL_free(pAdapterInfo);
return 0;
}
+ pAdapterInfo = pAdapterInfoTmp;
dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen);
}