From nobody Sun Feb 8 22:35:16 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+76205+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+76205+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1623154408; cv=none; d=zohomail.com; s=zohoarc; b=bk+LQnKLoIIKJQS+05Sjsx9ORyHujfgEPS5jMlyb4T80u71uVujUsZ2GaUjkLuMMpMLlzEBIP+KuhRvszaQGXVKg53Ck1zemNgUla7u3rK3DZUBla71kewmMffm+v5HlLOfLwXK049Ceq5FgOoo+z8v8IliBOjU2ZRURSVsGaDE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1623154408; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=xX5XgbKJhGyrTNtkaEipf8esrWCSKsGgw2tvlOknzdc=; b=MzLTrKiiLWFTZ/JERVRL8nQy1Qtn3qU48azSpu/K32f/4e8+ZV9rLaeieQIwvyf5/RRiFVqF13xXjVupMxd6osUrvpUvN+BbmrF4OftNZHyj1CLHlgCfotTL8blyCQGMZDzbEmSiP/XQSxlWW+OsOXzdUZapjrdWXtj3ykxzuzw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+76205+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1623154408220694.6459101740367; Tue, 8 Jun 2021 05:13:28 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id x8zZYY1788612xj3IRGvhlOv; Tue, 08 Jun 2021 05:13:22 -0700 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web09.11416.1623154396997963767 for ; Tue, 08 Jun 2021 05:13:17 -0700 X-Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-127-DL52HgSDN4Cbbm_XlmNI9w-1; Tue, 08 Jun 2021 08:13:12 -0400 X-MC-Unique: DL52HgSDN4Cbbm_XlmNI9w-1 X-Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8958E106BAA7; Tue, 8 Jun 2021 12:13:11 +0000 (UTC) X-Received: from lacos-laptop-7.usersys.redhat.com (ovpn-113-27.ams2.redhat.com [10.36.113.27]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4D4CE620DE; Tue, 8 Jun 2021 12:13:10 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Jiaxin Wu , Maciej Rabeda , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Siyuan Fu Subject: [edk2-devel] [PUBLIC edk2 PATCH v2 06/10] NetworkPkg/IScsiDxe: assert that IScsiBinToHex() always succeeds Date: Tue, 8 Jun 2021 14:12:55 +0200 Message-Id: <20210608121259.32451-7-lersek@redhat.com> In-Reply-To: <20210608121259.32451-1-lersek@redhat.com> References: <20210608121259.32451-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,lersek@redhat.com X-Gm-Message-State: LbP3vClPg67LGzHugSLD2lUBx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1623154402; bh=xX5XgbKJhGyrTNtkaEipf8esrWCSKsGgw2tvlOknzdc=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=LTirNoMnHQeVu6iOuda1OJCObwA0zJWyJXycRKvJBcmbKjY9oxf5a7Sfi1Z/1b3Kt9q 6a0K5bV0fql2u3Ne7y4yVhGxLRANx2+ZB9TnOC+oK9PZGHzTZr1FvRi36I6M7JzEle4re 3tupPJw4n8I+IYDyL9Ek61eW1wTsCXDmQjU= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" IScsiBinToHex() is called for encoding: - the answer to the target's challenge; that is, CHAP_R; - the challenge for the target, in case mutual authentication is enabled; that is, CHAP_C. The initiator controls the size of both blobs, the sizes of their hex encodings are correctly calculated in "RspLen" and "ChallengeLen". Therefore the IScsiBinToHex() calls never fail; assert that. Cc: Jiaxin Wu Cc: Maciej Rabeda Cc: Philippe Mathieu-Daud=C3=A9 Cc: Siyuan Fu Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3356 Signed-off-by: Laszlo Ersek Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Maciej Rabeda --- NetworkPkg/IScsiDxe/IScsiCHAP.c | 27 +++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/NetworkPkg/IScsiDxe/IScsiCHAP.c b/NetworkPkg/IScsiDxe/IScsiCHA= P.c index 9e192ce292e8..dbe3c8ef46f9 100644 --- a/NetworkPkg/IScsiDxe/IScsiCHAP.c +++ b/NetworkPkg/IScsiDxe/IScsiCHAP.c @@ -375,38 +375,39 @@ IScsiCHAPOnRspReceived ( @retval EFI_PROTOCOL_ERROR Some kind of protocol error occurred. =20 **/ EFI_STATUS IScsiCHAPToSendReq ( IN ISCSI_CONNECTION *Conn, IN OUT NET_BUF *Pdu ) { EFI_STATUS Status; ISCSI_SESSION *Session; ISCSI_LOGIN_REQUEST *LoginReq; ISCSI_CHAP_AUTH_DATA *AuthData; CHAR8 *Value; CHAR8 ValueStr[256]; CHAR8 *Response; UINT32 RspLen; CHAR8 *Challenge; UINT32 ChallengeLen; + EFI_STATUS BinToHexStatus; =20 ASSERT (Conn->CurrentStage =3D=3D ISCSI_SECURITY_NEGOTIATION); =20 Session =3D Conn->Session; AuthData =3D &Session->AuthData.CHAP; LoginReq =3D (ISCSI_LOGIN_REQUEST *) NetbufGetByte (Pdu, 0, 0); if (LoginReq =3D=3D NULL) { return EFI_PROTOCOL_ERROR; } Status =3D EFI_SUCCESS; =20 RspLen =3D 2 * ISCSI_CHAP_RSP_LEN + 3; Response =3D AllocateZeroPool (RspLen); if (Response =3D=3D NULL) { return EFI_OUT_OF_RESOURCES; } =20 ChallengeLen =3D 2 * ISCSI_CHAP_RSP_LEN + 3; Challenge =3D AllocateZeroPool (ChallengeLen); @@ -455,63 +456,65 @@ IScsiCHAPToSendReq ( Conn->AuthStep =3D ISCSI_CHAP_STEP_TWO; break; =20 case ISCSI_CHAP_STEP_THREE: // // Third step, send the Login Request with CHAP_N=3D CHAP_R=3D or // CHAP_N=3D CHAP_R=3D CHAP_I=3D CHAP_C=3D if target authe= ntication is // required too. // // CHAP_N=3D // IScsiAddKeyValuePair ( Pdu, ISCSI_KEY_CHAP_NAME, (CHAR8 *) &AuthData->AuthConfig->CHAPName ); // // CHAP_R=3D // - IScsiBinToHex ( - (UINT8 *) AuthData->CHAPResponse, - ISCSI_CHAP_RSP_LEN, - Response, - &RspLen - ); + BinToHexStatus =3D IScsiBinToHex ( + (UINT8 *) AuthData->CHAPResponse, + ISCSI_CHAP_RSP_LEN, + Response, + &RspLen + ); + ASSERT_EFI_ERROR (BinToHexStatus); IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_RESPONSE, Response); =20 if (AuthData->AuthConfig->CHAPType =3D=3D ISCSI_CHAP_MUTUAL) { // // CHAP_I=3D // IScsiGenRandom ((UINT8 *) &AuthData->OutIdentifier, 1); AsciiSPrint (ValueStr, sizeof (ValueStr), "%d", AuthData->OutIdentif= ier); IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_IDENTIFIER, ValueStr); // // CHAP_C=3D // IScsiGenRandom ((UINT8 *) AuthData->OutChallenge, ISCSI_CHAP_RSP_LEN= ); - IScsiBinToHex ( - (UINT8 *) AuthData->OutChallenge, - ISCSI_CHAP_RSP_LEN, - Challenge, - &ChallengeLen - ); + BinToHexStatus =3D IScsiBinToHex ( + (UINT8 *) AuthData->OutChallenge, + ISCSI_CHAP_RSP_LEN, + Challenge, + &ChallengeLen + ); + ASSERT_EFI_ERROR (BinToHexStatus); IScsiAddKeyValuePair (Pdu, ISCSI_KEY_CHAP_CHALLENGE, Challenge); =20 Conn->AuthStep =3D ISCSI_CHAP_STEP_FOUR; } // // Set the stage transition flag. // ISCSI_SET_FLAG (LoginReq, ISCSI_LOGIN_REQ_PDU_FLAG_TRANSIT); break; =20 default: Status =3D EFI_PROTOCOL_ERROR; break; } =20 FreePool (Response); FreePool (Challenge); =20 return Status; --=20 2.19.1.3.g30247aa5d201 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#76205): https://edk2.groups.io/g/devel/message/76205 Mute This Topic: https://groups.io/mt/83394117/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-