|
|
d15d15 |
From 557a962ce519757cacb236fbbc819f9300d9d287 Mon Sep 17 00:00:00 2001
|
|
|
d15d15 |
From: Laszlo Ersek <lersek@redhat.com>
|
|
|
d15d15 |
Date: Mon, 26 Apr 2021 20:07:25 +0200
|
|
|
d15d15 |
Subject: [PATCH 02/10] NetworkPkg/IScsiDxe: simplify
|
|
|
d15d15 |
"ISCSI_CHAP_AUTH_DATA.InChallenge" size
|
|
|
d15d15 |
MIME-Version: 1.0
|
|
|
d15d15 |
Content-Type: text/plain; charset=UTF-8
|
|
|
d15d15 |
Content-Transfer-Encoding: 8bit
|
|
|
d15d15 |
|
|
|
d15d15 |
RH-Author: Laszlo Ersek <lersek@redhat.com>
|
|
|
d15d15 |
RH-MergeRequest: 3: NetworkPkg/IScsiDxe: fix IScsiHexToBin() security and functionality bugs [rhel-8.4.0.z]
|
|
|
d15d15 |
RH-Commit: [2/10] ce3d2f2f2e16c44a621ffbed70ff245a1ec473bd
|
|
|
d15d15 |
RH-Bugzilla: 1956676
|
|
|
d15d15 |
RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
|
|
d15d15 |
|
|
|
d15d15 |
The ISCSI_CHAP_AUTH_MAX_LEN macro is defined with value 1024.
|
|
|
d15d15 |
|
|
|
d15d15 |
The usage of this macro currently involves a semantic (not functional)
|
|
|
d15d15 |
bug, which we're going to fix in a subsequent patch, eliminating
|
|
|
d15d15 |
ISCSI_CHAP_AUTH_MAX_LEN altogether.
|
|
|
d15d15 |
|
|
|
d15d15 |
For now, remove the macro's usage from all
|
|
|
d15d15 |
"ISCSI_CHAP_AUTH_DATA.InChallenge" contexts. This is doable without
|
|
|
d15d15 |
duplicating open-coded constants.
|
|
|
d15d15 |
|
|
|
d15d15 |
No changes in functionality.
|
|
|
d15d15 |
|
|
|
d15d15 |
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
|
|
|
d15d15 |
Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
|
|
|
d15d15 |
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
|
|
|
d15d15 |
Cc: Siyuan Fu <siyuan.fu@intel.com>
|
|
|
d15d15 |
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3356
|
|
|
d15d15 |
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
d15d15 |
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
|
|
d15d15 |
Reviewed-by: Maciej Rabeda <maciej.rabeda@linux.intel.com>
|
|
|
d15d15 |
Upstream: https://bugzilla.tianocore.org/show_bug.cgi?id=3356, c#17...c#22
|
|
|
d15d15 |
---
|
|
|
d15d15 |
NetworkPkg/IScsiDxe/IScsiCHAP.c | 2 +-
|
|
|
d15d15 |
NetworkPkg/IScsiDxe/IScsiCHAP.h | 2 +-
|
|
|
d15d15 |
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
d15d15 |
|
|
|
d15d15 |
diff --git a/NetworkPkg/IScsiDxe/IScsiCHAP.c b/NetworkPkg/IScsiDxe/IScsiCHAP.c
|
|
|
d15d15 |
index cbbc56ae5b..df3c2eb120 100644
|
|
|
d15d15 |
--- a/NetworkPkg/IScsiDxe/IScsiCHAP.c
|
|
|
d15d15 |
+++ b/NetworkPkg/IScsiDxe/IScsiCHAP.c
|
|
|
d15d15 |
@@ -289,7 +289,7 @@ IScsiCHAPOnRspReceived (
|
|
|
d15d15 |
}
|
|
|
d15d15 |
|
|
|
d15d15 |
AuthData->InIdentifier = (UINT32) Result;
|
|
|
d15d15 |
- AuthData->InChallengeLength = ISCSI_CHAP_AUTH_MAX_LEN;
|
|
|
d15d15 |
+ AuthData->InChallengeLength = (UINT32) sizeof (AuthData->InChallenge);
|
|
|
d15d15 |
IScsiHexToBin (
|
|
|
d15d15 |
(UINT8 *) AuthData->InChallenge,
|
|
|
d15d15 |
&AuthData->InChallengeLength,
|
|
|
d15d15 |
diff --git a/NetworkPkg/IScsiDxe/IScsiCHAP.h b/NetworkPkg/IScsiDxe/IScsiCHAP.h
|
|
|
d15d15 |
index 5e59fb678b..1fc1d96ea3 100644
|
|
|
d15d15 |
--- a/NetworkPkg/IScsiDxe/IScsiCHAP.h
|
|
|
d15d15 |
+++ b/NetworkPkg/IScsiDxe/IScsiCHAP.h
|
|
|
d15d15 |
@@ -49,7 +49,7 @@ typedef struct _ISCSI_CHAP_AUTH_CONFIG_NVDATA {
|
|
|
d15d15 |
typedef struct _ISCSI_CHAP_AUTH_DATA {
|
|
|
d15d15 |
ISCSI_CHAP_AUTH_CONFIG_NVDATA *AuthConfig;
|
|
|
d15d15 |
UINT32 InIdentifier;
|
|
|
d15d15 |
- UINT8 InChallenge[ISCSI_CHAP_AUTH_MAX_LEN];
|
|
|
d15d15 |
+ UINT8 InChallenge[1024];
|
|
|
d15d15 |
UINT32 InChallengeLength;
|
|
|
d15d15 |
//
|
|
|
d15d15 |
// Calculated CHAP Response (CHAP_R) value.
|
|
|
d15d15 |
--
|
|
|
d15d15 |
2.27.0
|
|
|
d15d15 |
|