From 666d9c9e44d8108cdb677ebe917aa7c8aab389e7 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Sun, 22 Oct 2023 09:42:36 -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.
(cherry picked from commit 4f31a95cd8fd380e9e9b91ce016fe2ff288739f5)
---
SDLnet.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/SDLnet.c b/SDLnet.c
index 24eb05b..33aa031 100644
--- a/SDLnet.c
+++ b/SDLnet.c
@@ -270,10 +270,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);
}