[IPHLPAPI] Fix memory leak in getNumRoutes. CORE-14353
[reactos.git] / dll / win32 / iphlpapi / ipstats_reactos.c
index 656e00a..2b981c1 100644 (file)
@@ -366,7 +366,7 @@ DWORD getNumRoutes(void)
 
     TRACE("called.\n");
 
-    status = openTcpFile( &tcpFile );
+    status = openTcpFile( &tcpFile, FILE_READ_DATA );
 
     if( !NT_SUCCESS(status) ) {
         TRACE("failure: %08x\n", (int)status );
@@ -397,6 +397,7 @@ DWORD getNumRoutes(void)
 
     TRACE("numRoutes: %d\n", (int)numRoutes);
 
+    tdiFreeThingSet( entitySet );
     closeTcpFile( tcpFile );
 
     return numRoutes;
@@ -421,7 +422,7 @@ RouteTable *getRouteTable(void)
     DWORD numRoutes = getNumRoutes(), routesAdded = 0;
     TDIEntityID ent;
     HANDLE tcpFile;
-    NTSTATUS status = openTcpFile( &tcpFile );
+    NTSTATUS status = openTcpFile( &tcpFile, FILE_READ_DATA );
     int i;
 
     if( !NT_SUCCESS(status) )
@@ -498,7 +499,7 @@ DWORD getNumArpEntries(void)
 
     TRACE("called.\n");
 
-    status = openTcpFile( &tcpFile );
+    status = openTcpFile( &tcpFile, FILE_READ_DATA );
 
     if( !NT_SUCCESS(status) ) {
         TRACE("failure: %08x\n", (int)status );
@@ -550,7 +551,7 @@ PMIB_IPNETTABLE getArpTable(void)
 
     totalNumber = getNumArpEntries();
 
-    status = openTcpFile( &tcpFile );
+    status = openTcpFile( &tcpFile, FILE_READ_DATA );
 
     if( !NT_SUCCESS(status) ) {
         TRACE("failure: %08x\n", (int)status );