[RHEL7,COMMIT] ms/scsi: target: iscsi: Use bin2hex instead of a re-implementation

Submitted by Konstantin Khorenko on Oct. 16, 2018, 3:15 p.m.

Details

Message ID 201810161515.w9GFF6fV022155@finist-ce7.sw.ru
State New
Series "ms/scsi: target: iscsi: Use bin2hex instead of a re-implementation"
Headers show

Commit Message

Konstantin Khorenko Oct. 16, 2018, 3:15 p.m.
The commit is pushed to "branch-rh7-3.10.0-862.14.4.vz7.72.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-862.14.4.vz7.72.10
------>
commit f78b9c33e607b33b35b96b9bac0c05614b1969d3
Author: Vincent Pelletier <plr.vincent@gmail.com>
Date:   Tue Oct 16 18:15:05 2018 +0300

    ms/scsi: target: iscsi: Use bin2hex instead of a re-implementation
    
    [Commit 8c39e2699f8acb2e29782a834e56306da24937fe in the mainline kernel.]
    
    Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
    Reviewed-by: Mike Christie <mchristi@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    
    This patch is not strictly needed to fix CVE-2018-14633 but it is related
    and makes the code a bit cleaner.
    
    https://jira.sw.ru/browse/PSBM-89468
    
    Signed-off-by: Evgenii Shatokhin <eshatokhin@virtuozzo.com>
---
 drivers/target/iscsi/iscsi_target_auth.c | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c
index 6acb272db267..1f834a3b410f 100644
--- a/drivers/target/iscsi/iscsi_target_auth.c
+++ b/drivers/target/iscsi/iscsi_target_auth.c
@@ -26,15 +26,6 @@ 
 #include "iscsi_target_nego.h"
 #include "iscsi_target_auth.h"
 
-static void chap_binaryhex_to_asciihex(char *dst, char *src, int src_len)
-{
-	int i;
-
-	for (i = 0; i < src_len; i++) {
-		sprintf(&dst[i*2], "%02x", (int) src[i] & 0xff);
-	}
-}
-
 static void chap_gen_challenge(
 	struct iscsi_conn *conn,
 	int caller,
@@ -47,7 +38,7 @@  static void chap_gen_challenge(
 	memset(challenge_asciihex, 0, CHAP_CHALLENGE_LENGTH * 2 + 1);
 
 	get_random_bytes(chap->challenge, CHAP_CHALLENGE_LENGTH);
-	chap_binaryhex_to_asciihex(challenge_asciihex, chap->challenge,
+	bin2hex(challenge_asciihex, chap->challenge,
 				CHAP_CHALLENGE_LENGTH);
 	/*
 	 * Set CHAP_C, and copy the generated challenge into c_str.
@@ -281,7 +272,7 @@  static int chap_server_compute_md5(
 		goto out;
 	}
 
-	chap_binaryhex_to_asciihex(response, server_digest, MD5_SIGNATURE_SIZE);
+	bin2hex(response, server_digest, MD5_SIGNATURE_SIZE);
 	pr_debug("[server] MD5 Server Digest: %s\n", response);
 
 	if (memcmp(server_digest, client_digest, MD5_SIGNATURE_SIZE) != 0) {
@@ -403,7 +394,7 @@  static int chap_server_compute_md5(
 	/*
 	 * Convert response from binary hex to ascii hext.
 	 */
-	chap_binaryhex_to_asciihex(response, digest, MD5_SIGNATURE_SIZE);
+	bin2hex(response, digest, MD5_SIGNATURE_SIZE);
 	*nr_out_len += sprintf(nr_out_ptr + *nr_out_len, "CHAP_R=0x%s",
 			response);
 	*nr_out_len += 1;