Fixed a few bugs in network interface handling (code & test).

diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index 829ec76..2ef5b31 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -352,7 +352,7 @@
               toIPAddressString(getInterfaceMaskByIndex(table->indexes[ndx]),
                ptr->IpAddressList.IpMask.String);
               if (ndx < table->numIndexes + 1)
-                ptr->Next = &pAdapterInfo[ndx + 1];
+                ptr->Next = (ndx == table->numIndexes - 1) ? NULL : &pAdapterInfo[ndx + 1];
             }
             ret = NO_ERROR;
           }