\r
AuthData->InIdentifier = (UINT32) Result;\r
AuthData->InChallengeLength = (UINT32) sizeof (AuthData->InChallenge);\r
- IScsiHexToBin (\r
- (UINT8 *) AuthData->InChallenge,\r
- &AuthData->InChallengeLength,\r
- Challenge\r
- );\r
+ Status = IScsiHexToBin (\r
+ (UINT8 *) AuthData->InChallenge,\r
+ &AuthData->InChallengeLength,\r
+ Challenge\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ Status = EFI_PROTOCOL_ERROR;\r
+ goto ON_EXIT;\r
+ }\r
Status = IScsiCHAPCalculateResponse (\r
AuthData->InIdentifier,\r
AuthData->AuthConfig->CHAPSecret,\r
}\r
\r
RspLen = ISCSI_CHAP_RSP_LEN;\r
- IScsiHexToBin (TargetRsp, &RspLen, Response);\r
+ Status = IScsiHexToBin (TargetRsp, &RspLen, Response);\r
+ if (EFI_ERROR (Status) || RspLen != ISCSI_CHAP_RSP_LEN) {\r
+ Status = EFI_PROTOCOL_ERROR;\r
+ goto ON_EXIT;\r
+ }\r
\r
//\r
// Check the CHAP Name and Response replied by Target.\r