SDL_net: winsock: Fix a potential memleak in GetAdaptersInfo calls. (666d9)

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);
     }