X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Flib%2Fiphlpapi%2Fiphlpapi_main.c;h=c0a2bfec5491f7a69a9136a14b7f84743431d8aa;hp=3baddf6074d07706b035914f932fa2f5c662aa13;hb=1c7c9e87d1515c01d820d55984595e2979fffb92;hpb=6d5cdde45c5a5ea12c8f7e2acc76dc2be2c7d32b;ds=sidebyside diff --git a/reactos/lib/iphlpapi/iphlpapi_main.c b/reactos/lib/iphlpapi/iphlpapi_main.c index 3baddf6074d..c0a2bfec549 100644 --- a/reactos/lib/iphlpapi/iphlpapi_main.c +++ b/reactos/lib/iphlpapi/iphlpapi_main.c @@ -613,6 +613,7 @@ DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen) winsEnabled = TRUE; RegCloseKey(hKey); } + for (ndx = 0; ndx < table->numIndexes; ndx++) { PIP_ADAPTER_INFO ptr = &pAdapterInfo[ndx]; DWORD addrLen = sizeof(ptr->Address), type; @@ -935,8 +936,9 @@ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen) if (!dwOutBufLen) ret = ERROR_INVALID_PARAMETER; else { - DWORD numInterfaces = getNumInterfaces(); - ULONG size = sizeof(IP_INTERFACE_INFO) + (numInterfaces - 1) * + DWORD numNonLoopbackInterfaces = getNumNonLoopbackInterfaces(); + DPRINT("numNonLoopbackInterfaces == 0x%x\n", numNonLoopbackInterfaces); + ULONG size = sizeof(IP_INTERFACE_INFO) + (numNonLoopbackInterfaces) * sizeof(IP_ADAPTER_INDEX_MAP); if (!pIfTable || *dwOutBufLen < size) { @@ -944,10 +946,11 @@ DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen) ret = ERROR_INSUFFICIENT_BUFFER; } else { - InterfaceIndexTable *table = getInterfaceIndexTable(); + InterfaceIndexTable *table = getNonLoopbackInterfaceIndexTable(); + DPRINT("table->numIndexes == 0x%x\n", table->numIndexes); if (table) { - size = sizeof(IP_INTERFACE_INFO) + (table->numIndexes - 1) * + size = sizeof(IP_INTERFACE_INFO) + (table->numIndexes) * sizeof(IP_ADAPTER_INDEX_MAP); if (*dwOutBufLen < size) { *dwOutBufLen = size;