Message ID | 20220603164414.48436-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 9e8e9187673cb24324f9165dd47b2b28f60b0b10 |
Delegated to: | Kalle Valo |
Headers | show |
Series | [v1,1/2] wireless: ray_cs: Utilize strnlen() in parse_addr() | expand |
On Fri, 2022-06-03 at 19:44 +0300, Andy Shevchenko wrote: > Instead of doing simple operations and using an additional variable on stack, > utilize strnlen() and reuse len variable. [] > diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c [] > + while (len > 0) { > + if ((k = hex_to_bin(in_str[len--])) != -1) > out[i] = k; > else > return 0; could be reversed and unindented > > - 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; and here
On Fri, Jun 03, 2022 at 09:50:55AM -0700, Joe Perches wrote: > On Fri, 2022-06-03 at 19:44 +0300, Andy Shevchenko wrote: > > Instead of doing simple operations and using an additional variable on stack, > > utilize strnlen() and reuse len variable. > [] > > diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c > [] > > + while (len > 0) { > > + if ((k = hex_to_bin(in_str[len--])) != -1) > > out[i] = k; > > else > > return 0; > > could be reversed and unindented > > > > > - 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; > > and here It might be done as a follow up. Thanks!
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > 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> 2 patches applied to wireless-next.git, thanks. 9e8e9187673c wifi: ray_cs: Utilize strnlen() in parse_addr() 4dfc63c002a5 wifi: ray_cs: Drop useless status variable in parse_addr()
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c index 87e98ab068ed..9ac371d6cd6c 100644 --- a/drivers/net/wireless/ray_cs.c +++ b/drivers/net/wireless/ray_cs.c @@ -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;
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> --- drivers/net/wireless/ray_cs.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)