Commit c70ca389 authored by Bart Van Assche's avatar Bart Van Assche Committed by Doug Ledford
Browse files

IB/srpt: Do not accept invalid initiator port names



Make srpt_parse_i_port_id() return a negative value if hex2bin()
fails.

Fixes: commit a42d985b ("ib_srpt: Initial SRP Target merge for v3.3-rc1")
Signed-off-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 69abc735
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -2777,7 +2777,7 @@ static int srpt_parse_i_port_id(u8 i_port_id[16], const char *name)
{
	const char *p;
	unsigned len, count, leading_zero_bytes;
	int ret, rc;
	int ret;

	p = name;
	if (strncasecmp(p, "0x", 2) == 0)
@@ -2789,10 +2789,9 @@ static int srpt_parse_i_port_id(u8 i_port_id[16], const char *name)
	count = min(len / 2, 16U);
	leading_zero_bytes = 16 - count;
	memset(i_port_id, 0, leading_zero_bytes);
	rc = hex2bin(i_port_id + leading_zero_bytes, p, count);
	if (rc < 0)
		pr_debug("hex2bin failed for srpt_parse_i_port_id: %d\n", rc);
	ret = 0;
	ret = hex2bin(i_port_id + leading_zero_bytes, p, count);
	if (ret < 0)
		pr_debug("hex2bin failed for srpt_parse_i_port_id: %d\n", ret);
out:
	return ret;
}