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

Commit 2d4e9a5e authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Greg Kroah-Hartman
Browse files

wifi: ray_cs: Utilize strnlen() in parse_addr()



[ Upstream commit 9e8e9187673cb24324f9165dd47b2b28f60b0b10 ]

Instead of doing simple operations and using an additional variable on stack,
utilize strnlen() and reuse len variable.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220603164414.48436-1-andriy.shevchenko@linux.intel.com


Stable-dep-of: 4f8d66a9fb2e ("wifi: ray_cs: Fix an error handling path in ray_probe()")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent cb9f8893
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -1651,31 +1651,29 @@ static void authenticate_timeout(struct timer_list *t)
/*===========================================================================*/
static int parse_addr(char *in_str, UCHAR *out)
{
	int i, k;
	int len;
	int i, j, k;
	int status;

	if (in_str == NULL)
		return 0;
	if ((len = strlen(in_str)) < 2)
	len = strnlen(in_str, ADDRLEN * 2 + 1) - 1;
	if (len < 1)
		return 0;
	memset(out, 0, ADDRLEN);

	status = 1;
	j = len - 1;
	if (j > 12)
		j = 12;
	i = 5;

	while (j > 0) {
		if ((k = hex_to_bin(in_str[j--])) != -1)
	while (len > 0) {
		if ((k = hex_to_bin(in_str[len--])) != -1)
			out[i] = k;
		else
			return 0;

		if (j == 0)
		if (len == 0)
			break;
		if ((k = hex_to_bin(in_str[j--])) != -1)
		if ((k = hex_to_bin(in_str[len--])) != -1)
			out[i] += k << 4;
		else
			return 0;