From: corinna Date: Wed, 24 Jan 2007 15:55:50 +0000 (+0000) Subject: * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cf6c89a79560752fbf9d66e0528699120d2d835b;p=pf3gnuchains%2Fpf3gnuchains3x.git * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES memory. (if_indextoname): Ditto. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index fe75a1b81b..addb06f6aa 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,11 @@ 2007-01-24 Corinna Vinschen + * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES + memory. + (if_indextoname): Ditto. + +2007-01-24 Corinna Vinschen + * 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 338b504f90..a28a414f7a 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);