[PATCH 1/6] staging: r8188eu: Replace wrapper around _rtw_memcmp()

Dan Carpenter dan.carpenter at oracle.com
Wed Feb 12 13:36:15 UTC 2014


I dropped netdev from the mailing list.  Wireless patches generally
should go through linux-wireless instead of netdev anyway.  They get
picked up from there and forwarded on to Dave Miller.

I reviewed these patches when they were posted to the list but I missed
this style issue which Smatch complains about.

On Sun, Feb 09, 2014 at 03:15:54PM -0600, Larry Finger wrote:
>  int rtw_get_wpa_cipher_suite(u8 *s)
>  {
> -	if (_rtw_memcmp(s, WPA_CIPHER_SUITE_NONE, WPA_SELECTOR_LEN) == true)
> +	if (!memcmp(s, WPA_CIPHER_SUITE_NONE, WPA_SELECTOR_LEN) == true)
>  		return WPA_CIPHER_NONE;
> -	if (_rtw_memcmp(s, WPA_CIPHER_SUITE_WEP40, WPA_SELECTOR_LEN) == true)
> +	if (!memcmp(s, WPA_CIPHER_SUITE_WEP40, WPA_SELECTOR_LEN) == true)
>  		return WPA_CIPHER_WEP40;
> -	if (_rtw_memcmp(s, WPA_CIPHER_SUITE_TKIP, WPA_SELECTOR_LEN) == true)
> +	if (!memcmp(s, WPA_CIPHER_SUITE_TKIP, WPA_SELECTOR_LEN) == true)
>  		return WPA_CIPHER_TKIP;
> -	if (_rtw_memcmp(s, WPA_CIPHER_SUITE_CCMP, WPA_SELECTOR_LEN) == true)
> +	if (!memcmp(s, WPA_CIPHER_SUITE_CCMP, WPA_SELECTOR_LEN) == true)
>  		return WPA_CIPHER_CCMP;
> -	if (_rtw_memcmp(s, WPA_CIPHER_SUITE_WEP104, WPA_SELECTOR_LEN) == true)
> +	if (!memcmp(s, WPA_CIPHER_SUITE_WEP104, WPA_SELECTOR_LEN) == true)
>  		return WPA_CIPHER_WEP104;

The (!foo == bar) is harmless here, but more often than not that
formulation indicates a precedence bug.

For memcmp() and to a larger extent for strcmp() then my prefered way
of doing it is:

	if (memcmp(a, b, size) != 0) {

Normally, I rant and rave at code which does != 0 but for memcmp() it is
idiomatic *cmp() functions.  Think about it like this:

	if (a == b) {

Translates to:

	if (memcmp(a, b, size) == 0) {

In your head you move the == to the middle so it's obvious a == b.  Or
for strcmp():

	if (strcmp(a, b, size) < 0) {

means that a is less than b alphabetically.

regards,
dan carpenter



More information about the devel mailing list