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

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
...@@ -2777,7 +2777,7 @@ static int srpt_parse_i_port_id(u8 i_port_id[16], const char *name) ...@@ -2777,7 +2777,7 @@ static int srpt_parse_i_port_id(u8 i_port_id[16], const char *name)
{ {
const char *p; const char *p;
unsigned len, count, leading_zero_bytes; unsigned len, count, leading_zero_bytes;
int ret, rc; int ret;
p = name; p = name;
if (strncasecmp(p, "0x", 2) == 0) 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) ...@@ -2789,10 +2789,9 @@ static int srpt_parse_i_port_id(u8 i_port_id[16], const char *name)
count = min(len / 2, 16U); count = min(len / 2, 16U);
leading_zero_bytes = 16 - count; leading_zero_bytes = 16 - count;
memset(i_port_id, 0, leading_zero_bytes); memset(i_port_id, 0, leading_zero_bytes);
rc = hex2bin(i_port_id + leading_zero_bytes, p, count); ret = hex2bin(i_port_id + leading_zero_bytes, p, count);
if (rc < 0) if (ret < 0)
pr_debug("hex2bin failed for srpt_parse_i_port_id: %d\n", rc); pr_debug("hex2bin failed for srpt_parse_i_port_id: %d\n", ret);
ret = 0;
out: out:
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment