From 9ff06108cd44e84ba6c68bfa6737e793f117e303 Mon Sep 17 00:00:00 2001 
 | 
From: Nate Karstens <nate.karstens@garmin.com> 
 | 
Date: Thu, 10 Aug 2017 08:46:03 -0500 
 | 
Subject: [PATCH] Change a dynamic allocation to file-scope variable 
 | 
  
 | 
Changes a variable from being dynamically-allocated to being 
 | 
statically-allocated at the file scope. Addresses a Coverity 
 | 
issue where it appeared that the memory was being leaked. 
 | 
  
 | 
Upstream-Status: Submitted [dts@apple.com] 
 | 
  
 | 
Signed-off-by: Nate Karstens <nate.karstens@garmin.com> 
 | 
--- 
 | 
 mDNSPosix/mDNSPosix.c | 14 ++++---------- 
 | 
 1 file changed, 4 insertions(+), 10 deletions(-) 
 | 
  
 | 
diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c 
 | 
index 7aeee7b..2d25016 100755 
 | 
--- a/mDNSPosix/mDNSPosix.c 
 | 
+++ b/mDNSPosix/mDNSPosix.c 
 | 
@@ -81,6 +81,7 @@ static sigset_t gEventSignalSet;                // Signals which event loop list 
 | 
 static sigset_t gEventSignals;                  // Signals which were received while inside loop 
 | 
  
 | 
 static PosixNetworkInterface *gRecentInterfaces; 
 | 
+static IfChangeRec gChgRec; 
 | 
  
 | 
 // *************************************************************************** 
 | 
 // Globals (for debugging) 
 | 
@@ -1641,18 +1642,11 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context) 
 | 
 mDNSlocal mStatus WatchForInterfaceChange(mDNS *const m) 
 | 
 { 
 | 
     mStatus err; 
 | 
-    IfChangeRec *pChgRec; 
 | 
  
 | 
-    pChgRec = (IfChangeRec*) mDNSPlatformMemAllocateClear(sizeof *pChgRec); 
 | 
-    if (pChgRec == NULL) 
 | 
-        return mStatus_NoMemoryErr; 
 | 
- 
 | 
-    pChgRec->mDNS = m; 
 | 
-    err = OpenIfNotifySocket(&pChgRec->NotifySD); 
 | 
+    gChgRec.mDNS = m; 
 | 
+    err = OpenIfNotifySocket(&gChgRec.NotifySD); 
 | 
     if (err == 0) 
 | 
-        err = mDNSPosixAddFDToEventLoop(pChgRec->NotifySD, InterfaceChangeCallback, pChgRec); 
 | 
-    if (err) 
 | 
-        mDNSPlatformMemFree(pChgRec); 
 | 
+        err = mDNSPosixAddFDToEventLoop(gChgRec.NotifySD, InterfaceChangeCallback, &gChgRec); 
 | 
  
 | 
     return err; 
 | 
 } 
 | 
--  
 | 
2.20.1 
 |