mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[TCPIP] Check for allocation failures in ReadIpConfiguration. CID 1411924
This commit is contained in:
parent
63a3a2cbb8
commit
d87786bf6c
1 changed files with 36 additions and 30 deletions
|
@ -638,13 +638,15 @@ BOOLEAN ReadIpConfiguration(PIP_INTERFACE Interface)
|
|||
{
|
||||
RegistryDataU.Length = KeyValueInfo->DataLength;
|
||||
|
||||
RtlUnicodeStringToAnsiString(&RegistryDataA,
|
||||
&RegistryDataU,
|
||||
TRUE);
|
||||
|
||||
AddrInitIPv4(&Interface->Unicast, inet_addr(RegistryDataA.Buffer));
|
||||
|
||||
RtlFreeAnsiString(&RegistryDataA);
|
||||
Status = RtlUnicodeStringToAnsiString(&RegistryDataA,
|
||||
&RegistryDataU,
|
||||
TRUE);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
AddrInitIPv4(&Interface->Unicast,
|
||||
inet_addr(RegistryDataA.Buffer));
|
||||
RtlFreeAnsiString(&RegistryDataA);
|
||||
}
|
||||
}
|
||||
|
||||
Status = ZwQueryValueKey(ParameterHandle,
|
||||
|
@ -657,13 +659,15 @@ BOOLEAN ReadIpConfiguration(PIP_INTERFACE Interface)
|
|||
{
|
||||
RegistryDataU.Length = KeyValueInfo->DataLength;
|
||||
|
||||
RtlUnicodeStringToAnsiString(&RegistryDataA,
|
||||
&RegistryDataU,
|
||||
TRUE);
|
||||
|
||||
AddrInitIPv4(&Interface->Netmask, inet_addr(RegistryDataA.Buffer));
|
||||
|
||||
RtlFreeAnsiString(&RegistryDataA);
|
||||
Status = RtlUnicodeStringToAnsiString(&RegistryDataA,
|
||||
&RegistryDataU,
|
||||
TRUE);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
AddrInitIPv4(&Interface->Netmask,
|
||||
inet_addr(RegistryDataA.Buffer));
|
||||
RtlFreeAnsiString(&RegistryDataA);
|
||||
}
|
||||
}
|
||||
|
||||
/* We have to wait until both IP address and subnet mask
|
||||
|
@ -684,16 +688,18 @@ BOOLEAN ReadIpConfiguration(PIP_INTERFACE Interface)
|
|||
{
|
||||
RegistryDataU.Length = KeyValueInfo->DataLength;
|
||||
|
||||
RtlUnicodeStringToAnsiString(&RegistryDataA,
|
||||
&RegistryDataU,
|
||||
TRUE);
|
||||
Status = RtlUnicodeStringToAnsiString(&RegistryDataA,
|
||||
&RegistryDataU,
|
||||
TRUE);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
AddrInitIPv4(&Router, inet_addr(RegistryDataA.Buffer));
|
||||
|
||||
AddrInitIPv4(&Router, inet_addr(RegistryDataA.Buffer));
|
||||
if (!AddrIsUnspecified(&Router))
|
||||
RouterCreateRoute(&DefaultMask, &DefaultMask, &Router, Interface, 1);
|
||||
|
||||
if (!AddrIsUnspecified(&Router))
|
||||
RouterCreateRoute(&DefaultMask, &DefaultMask, &Router, Interface, 1);
|
||||
|
||||
RtlFreeAnsiString(&RegistryDataA);
|
||||
RtlFreeAnsiString(&RegistryDataA);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue