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: Tejas Vaykole <tejas.vaykole@calsoftinc.com> Tested-by: Tejas Vaykole <tejas.vaykole@calsoftinc.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
a497c3ba1d
commit
b06eef6eab
|
@ -174,7 +174,6 @@ static int chap_server_compute_md5(
|
||||||
char *nr_out_ptr,
|
char *nr_out_ptr,
|
||||||
unsigned int *nr_out_len)
|
unsigned int *nr_out_len)
|
||||||
{
|
{
|
||||||
char *endptr;
|
|
||||||
unsigned long id;
|
unsigned long id;
|
||||||
unsigned char id_as_uchar;
|
unsigned char id_as_uchar;
|
||||||
unsigned char digest[MD5_SIGNATURE_SIZE];
|
unsigned char digest[MD5_SIGNATURE_SIZE];
|
||||||
|
@ -320,9 +319,14 @@ static int chap_server_compute_md5(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == HEX)
|
if (type == HEX)
|
||||||
id = simple_strtoul(&identifier[2], &endptr, 0);
|
ret = kstrtoul(&identifier[2], 0, &id);
|
||||||
else
|
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) {
|
if (id > 255) {
|
||||||
pr_err("chap identifier: %lu greater than 255\n", id);
|
pr_err("chap identifier: %lu greater than 255\n", id);
|
||||||
goto out;
|
goto out;
|
||||||
|
|
Loading…
Reference in New Issue