Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b06eef6e authored by Nicholas Bellinger's avatar Nicholas Bellinger
Browse files

iscsi-target: Convert chap_server_compute_md5 to use kstrtoul



This patch converts chap_server_compute_md5() from simple_strtoul() to
kstrtoul usage().

This addresses the case where a empty 'CHAP_I=' key value received during
mutual authentication would be converted to a '0' by simple_strtoul(),
instead of failing the login attempt.

Reported-by: default avatarTejas Vaykole <tejas.vaykole@calsoftinc.com>
Tested-by: default avatarTejas Vaykole <tejas.vaykole@calsoftinc.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent a497c3ba
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -174,7 +174,6 @@ static int chap_server_compute_md5(
	char *nr_out_ptr,
	unsigned int *nr_out_len)
{
	char *endptr;
	unsigned long id;
	unsigned char id_as_uchar;
	unsigned char digest[MD5_SIGNATURE_SIZE];
@@ -320,9 +319,14 @@ static int chap_server_compute_md5(
	}

	if (type == HEX)
		id = simple_strtoul(&identifier[2], &endptr, 0);
		ret = kstrtoul(&identifier[2], 0, &id);
	else
		id = simple_strtoul(identifier, &endptr, 0);
		ret = kstrtoul(identifier, 0, &id);

	if (ret < 0) {
		pr_err("kstrtoul() failed for CHAP identifier: %d\n", ret);
		goto out;
	}
	if (id > 255) {
		pr_err("chap identifier: %lu greater than 255\n", id);
		goto out;