2012-08-23 06:40:33

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH] staging: r8712u: use is_zero_ether_addr() instead of memcmp()

From: Wei Yongjun <[email protected]>

Using is_zero_ether_addr() instead of directly use
memcmp(addr, "\x00\x00\x00\x00\x00\x00", ETH_ALEN)
to determine if the ethernet address is all zeros.

spatch with a semantic match is used to found this problem.
(http://coccinelle.lip6.fr/)

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/staging/rtl8712/rtl871x_recv.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c
index c9d1743..23ec684 100644
--- a/drivers/staging/rtl8712/rtl871x_recv.c
+++ b/drivers/staging/rtl8712/rtl871x_recv.c
@@ -32,6 +32,7 @@
#include <linux/slab.h>
#include <linux/if_ether.h>
#include <linux/kmemleak.h>
+#include <linux/etherdevice.h>

#include "osdep_service.h"
#include "drv_types.h"
@@ -331,8 +332,8 @@ static sint sta2sta_data_frame(struct _adapter *adapter,
return _FAIL;
if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast))
return _FAIL;
- if (!memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
- !memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
+ if (is_zero_ether_addr(pattrib->bssid) ||
+ is_zero_ether_addr(mybssid) ||
(memcmp(pattrib->bssid, mybssid, ETH_ALEN)))
return _FAIL;
sta_addr = pattrib->src;
@@ -409,8 +410,8 @@ static sint ap2sta_data_frame(struct _adapter *adapter,
if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast))
return _FAIL;
/* check BSSID */
- if (!memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
- !memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
+ if (is_zero_ether_addr(pattrib->bssid) ||
+ is_zero_ether_addr(mybssid) ||
(memcmp(pattrib->bssid, mybssid, ETH_ALEN)))
return _FAIL;
if (bmcast)


2012-08-23 15:19:32

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] staging: r8712u: use is_zero_ether_addr() instead of memcmp()

On 08/23/2012 01:40 AM, Wei Yongjun wrote:
> From: Wei Yongjun <[email protected]>
>
> Using is_zero_ether_addr() instead of directly use
> memcmp(addr, "\x00\x00\x00\x00\x00\x00", ETH_ALEN)
> to determine if the ethernet address is all zeros.
>
> spatch with a semantic match is used to found this problem.
> (http://coccinelle.lip6.fr/)
>
> Signed-off-by: Wei Yongjun <[email protected]>
> ---
> drivers/staging/rtl8712/rtl871x_recv.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)

ACKed-by: Larry Finger <[email protected]>

>
> diff --git a/drivers/staging/rtl8712/rtl871x_recv.c b/drivers/staging/rtl8712/rtl871x_recv.c
> index c9d1743..23ec684 100644
> --- a/drivers/staging/rtl8712/rtl871x_recv.c
> +++ b/drivers/staging/rtl8712/rtl871x_recv.c
> @@ -32,6 +32,7 @@
> #include <linux/slab.h>
> #include <linux/if_ether.h>
> #include <linux/kmemleak.h>
> +#include <linux/etherdevice.h>
>
> #include "osdep_service.h"
> #include "drv_types.h"
> @@ -331,8 +332,8 @@ static sint sta2sta_data_frame(struct _adapter *adapter,
> return _FAIL;
> if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast))
> return _FAIL;
> - if (!memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
> - !memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
> + if (is_zero_ether_addr(pattrib->bssid) ||
> + is_zero_ether_addr(mybssid) ||
> (memcmp(pattrib->bssid, mybssid, ETH_ALEN)))
> return _FAIL;
> sta_addr = pattrib->src;
> @@ -409,8 +410,8 @@ static sint ap2sta_data_frame(struct _adapter *adapter,
> if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast))
> return _FAIL;
> /* check BSSID */
> - if (!memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
> - !memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
> + if (is_zero_ether_addr(pattrib->bssid) ||
> + is_zero_ether_addr(mybssid) ||
> (memcmp(pattrib->bssid, mybssid, ETH_ALEN)))
> return _FAIL;
> if (bmcast)
>
>