//\r
// Check the Query type, do some buffer allocations.\r
//\r
- if (QuerySection->Type == DNS_TYPE_A) {\r
- Dns4TokenEntry->Token->RspData.H2AData = AllocatePool (sizeof (DNS_HOST_TO_ADDR_DATA));\r
- ASSERT (Dns4TokenEntry->Token->RspData.H2AData != NULL);\r
- Dns4TokenEntry->Token->RspData.H2AData->IpList = AllocatePool (DnsHeader->AnswersNum * sizeof (EFI_IPv4_ADDRESS));\r
- ASSERT (Dns4TokenEntry->Token->RspData.H2AData->IpList != NULL);\r
- } else if (QuerySection->Type == DNS_TYPE_AAAA) {\r
- Dns6TokenEntry->Token->RspData.H2AData = AllocatePool (sizeof (DNS6_HOST_TO_ADDR_DATA));\r
- ASSERT (Dns6TokenEntry->Token->RspData.H2AData != NULL);\r
- Dns6TokenEntry->Token->RspData.H2AData->IpList = AllocatePool (DnsHeader->AnswersNum * sizeof (EFI_IPv6_ADDRESS));\r
- ASSERT (Dns6TokenEntry->Token->RspData.H2AData->IpList != NULL);\r
+ if (Instance->Service->IpVersion == IP_VERSION_4) {\r
+ ASSERT (Dns4TokenEntry != NULL);\r
+ if (QuerySection->Type == DNS_TYPE_A) {\r
+ Dns4TokenEntry->Token->RspData.H2AData = AllocatePool (sizeof (DNS_HOST_TO_ADDR_DATA));\r
+ ASSERT (Dns4TokenEntry->Token->RspData.H2AData != NULL);\r
+ Dns4TokenEntry->Token->RspData.H2AData->IpList = AllocatePool (DnsHeader->AnswersNum * sizeof (EFI_IPv4_ADDRESS));\r
+ ASSERT (Dns4TokenEntry->Token->RspData.H2AData->IpList != NULL);\r
+ } else {\r
+ Status = EFI_UNSUPPORTED;\r
+ goto ON_EXIT;\r
+ }\r
} else {\r
- Status = EFI_UNSUPPORTED;\r
- goto ON_EXIT;\r
+ ASSERT (Dns6TokenEntry != NULL);\r
+ if (QuerySection->Type == DNS_TYPE_AAAA) {\r
+ Dns6TokenEntry->Token->RspData.H2AData = AllocatePool (sizeof (DNS6_HOST_TO_ADDR_DATA));\r
+ ASSERT (Dns6TokenEntry->Token->RspData.H2AData != NULL);\r
+ Dns6TokenEntry->Token->RspData.H2AData->IpList = AllocatePool (DnsHeader->AnswersNum * sizeof (EFI_IPv6_ADDRESS));\r
+ ASSERT (Dns6TokenEntry->Token->RspData.H2AData->IpList != NULL);\r
+ } else {\r
+ Status = EFI_UNSUPPORTED;\r
+ goto ON_EXIT;\r
+ }\r
}\r
\r
//\r
//\r
// This is address entry, get Data.\r
//\r
- ASSERT (AnswerSection->DataLength == 4);\r
+ ASSERT (Dns4TokenEntry != NULL && AnswerSection->DataLength == 4);\r
\r
HostAddr4 = Dns4TokenEntry->Token->RspData.H2AData->IpList;\r
AnswerData = (UINT8 *) AnswerSection + sizeof (*AnswerSection);\r
//\r
// This is address entry, get Data.\r
//\r
- ASSERT (AnswerSection->DataLength == 16);\r
+ ASSERT (Dns6TokenEntry != NULL && AnswerSection->DataLength == 16);\r
\r
HostAddr6 = Dns6TokenEntry->Token->RspData.H2AData->IpList;\r
AnswerData = (UINT8 *) AnswerSection + sizeof (*AnswerSection);\r
AnswerSectionNum ++;\r
}\r
\r
- if (QuerySection->Type == DNS_TYPE_A) {\r
- Dns4TokenEntry->Token->RspData.H2AData->IpCount = IpCount;\r
- } else if (QuerySection->Type == DNS_TYPE_AAAA) {\r
- Dns6TokenEntry->Token->RspData.H2AData->IpCount = IpCount;\r
+ if (Instance->Service->IpVersion == IP_VERSION_4) {\r
+ ASSERT (Dns4TokenEntry != NULL);\r
+ if (QuerySection->Type == DNS_TYPE_A) {\r
+ Dns4TokenEntry->Token->RspData.H2AData->IpCount = IpCount;\r
+ } else {\r
+ Status = EFI_UNSUPPORTED;\r
+ goto ON_EXIT;\r
+ }\r
+ } else {\r
+ ASSERT (Dns6TokenEntry != NULL);\r
+ if (QuerySection->Type == DNS_TYPE_AAAA) {\r
+ Dns6TokenEntry->Token->RspData.H2AData->IpCount = IpCount;\r
+ } else {\r
+ Status = EFI_UNSUPPORTED;\r
+ goto ON_EXIT;\r
+ }\r
}\r
\r
//\r
// Parsing is complete, SignalEvent here.\r
//\r
if (Instance->Service->IpVersion == IP_VERSION_4) {\r
+ ASSERT (Dns4TokenEntry != NULL);\r
Dns4RemoveTokenEntry (&Instance->Dns4TxTokens, Dns4TokenEntry);\r
Dns4TokenEntry->Token->Status = EFI_SUCCESS;\r
if (Dns4TokenEntry->Token->Event != NULL) {\r
DispatchDpc ();\r
}\r
} else {\r
+ ASSERT (Dns6TokenEntry != NULL);\r
Dns6RemoveTokenEntry (&Instance->Dns6TxTokens, Dns6TokenEntry);\r
Dns6TokenEntry->Token->Status = EFI_SUCCESS;\r
if (Dns6TokenEntry->Token->Event != NULL) {\r