Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2007-01-24 18:55:51 +0300
committerCorinna Vinschen <corinna@vinschen.de>2007-01-24 18:55:51 +0300
commite7fc99384e42754a610f66ae72ca201095d83595 (patch)
treec6d5e36e0be2de71793aba32e2e33f1ec332e310 /winsup
parentfd1bf882f586496e6738df441a116b4cd2a9e875 (diff)
* net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
memory. (if_indextoname): Ditto.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/net.cc14
2 files changed, 13 insertions, 7 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index fe75a1b81..addb06f6a 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,11 @@
2007-01-24 Corinna Vinschen <corinna@vinschen.de>
+ * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
+ memory.
+ (if_indextoname): Ditto.
+
+2007-01-24 Corinna Vinschen <corinna@vinschen.de>
+
* security.h (pop_thread_privilege): Revert to previous state, not
to token used for impersonation.
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index 338b504f9..a28a414f7 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -2091,7 +2091,7 @@ get_ifconf (SOCKET s, struct ifconf *ifc, int what)
extern "C" unsigned
if_nametoindex (const char *name)
{
- PIP_ADAPTER_ADDRESSES pap = NULL;
+ PIP_ADAPTER_ADDRESSES pa0 = NULL, pap;
unsigned index = 0;
myfault efault;
@@ -2107,13 +2107,13 @@ if_nametoindex (const char *name)
strncat (lname, name, IF_NAMESIZE - 1);
if (lname[0] == '{' && (c = strchr (lname, ':')))
*c = '\0';
- for (; pap; pap = pap->Next)
+ for (pap = pa0; pap; pap = pap->Next)
if (strcasematch (lname, pap->AdapterName))
{
index = pap->IfIndex;
break;
}
- free (pap);
+ free (pa0);
}
return index;
}
@@ -2121,7 +2121,7 @@ if_nametoindex (const char *name)
extern "C" char *
if_indextoname (unsigned ifindex, char *ifname)
{
- PIP_ADAPTER_ADDRESSES pap = NULL;
+ PIP_ADAPTER_ADDRESSES pa0 = NULL, pap;
char *name = NULL;
myfault efault;
@@ -2129,15 +2129,15 @@ if_indextoname (unsigned ifindex, char *ifname)
return NULL;
if (wincap.has_gaa_prefixes ()
- && get_adapters_addresses (&pap, AF_UNSPEC))
+ && get_adapters_addresses (&pa0, AF_UNSPEC))
{
- for (; pap; pap = pap->Next)
+ for (pap = pa0; pap; pap = pap->Next)
if (ifindex == pap->IfIndex)
{
name = strcpy (ifname, pap->AdapterName);
break;
}
- free (pap);
+ free (pa0);
}
else
set_errno (ENXIO);