Fixes IP address display in ipconfig.
svn path=/trunk/; revision=20597
IF_LIST_ITER(CurrentIF);
TDI_STATUS Status = TDI_INVALID_REQUEST;
KIRQL OldIrql;
IF_LIST_ITER(CurrentIF);
TDI_STATUS Status = TDI_INVALID_REQUEST;
KIRQL OldIrql;
- UINT Count = 1; /* Start adapter indices at 1 */
UINT IfCount = CountInterfaces();
PIPADDR_ENTRY IpAddress =
ExAllocatePool( NonPagedPool, sizeof( IPADDR_ENTRY ) * IfCount );
UINT IfCount = CountInterfaces();
PIPADDR_ENTRY IpAddress =
ExAllocatePool( NonPagedPool, sizeof( IPADDR_ENTRY ) * IfCount );
/* Locate the diffrent addresses and put them the right place */
GetInterfaceIPv4Address( CurrentIF,
ADE_UNICAST,
/* Locate the diffrent addresses and put them the right place */
GetInterfaceIPv4Address( CurrentIF,
ADE_UNICAST,
GetInterfaceIPv4Address( CurrentIF,
ADE_BROADCAST,
GetInterfaceIPv4Address( CurrentIF,
ADE_BROADCAST,
- &IpAddress->BcastAddr );
+ &IpCurrent->BcastAddr );
GetInterfaceIPv4Address( CurrentIF,
ADE_ADDRMASK,
GetInterfaceIPv4Address( CurrentIF,
ADE_ADDRMASK,
IpCurrent++;
Count++;
} EndFor(CurrentIF);
IpCurrent++;
Count++;
} EndFor(CurrentIF);
+ ASSERT( Count == IfCount );
TcpipReleaseSpinLock(&InterfaceListLock, OldIrql);
TcpipReleaseSpinLock(&InterfaceListLock, OldIrql);
- Status = InfoCopyOut( (PCHAR)IpAddress, sizeof(*IpAddress) * Count,
+ Status = InfoCopyOut( (PCHAR)IpAddress, sizeof(*IpAddress) * IfCount,
Buffer, BufferSize );
ExFreePool( IpAddress );
Buffer, BufferSize );
ExFreePool( IpAddress );