wifi: ray_cs: Utilize strnlen() in parse_addr()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 3 Jun 2022 16:44:13 +0000 (19:44 +0300)
committerKalle Valo <kvalo@kernel.org>
Wed, 8 Jun 2022 08:08:34 +0000 (11:08 +0300)
Instead of doing simple operations and using an additional variable on stack,
utilize strnlen() and reuse len variable.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220603164414.48436-1-andriy.shevchenko@linux.intel.com
drivers/net/wireless/ray_cs.c

index 87e98ab..9ac371d 100644 (file)
@@ -1643,31 +1643,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;