[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170322092403.GF32449@mwanda>
Date: Wed, 22 Mar 2017 12:24:04 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: Robert Perry Hooker <perry.hooker@...il.com>
Cc: devel@...verdev.osuosl.org, gregkh@...uxfoundation.org,
ganesh.krishna@...rochip.com, linux-kernel@...r.kernel.org,
aditya.shankar@...rochip.com
Subject: Re: [PATCH] staging: wilc1000: use kernel define byte order macros
On Tue, Mar 21, 2017 at 03:40:10PM -0600, Robert Perry Hooker wrote:
> Thanks for taking a look, Dan. Sorry if I missed the mark here.
>
> Can you tell me a bit more about the bug this would introduce?
>
> I see that ieee80211_is_action is defined like this: static inline bool ieee80211_is_action(__le16 fc)
>
> ...and that buff[FRAME_TYPE_ID]is a u8 (since FRAME_TYPE_ID = 0).
>
> Is there an issue with calling cpu_to_le16 on a u8 that isn't encountered by implicitly casting a u8 to __le16? Or am I
> missing something else?
>
Oh... Hm. You're right. I just was thinking that since buff was a
little endian buffer but it's only reading a u8. It should probably
be reading a le16... The buff likely is just a regular ieee80211_hdr
struct.
So you're fixing a bug, but probably not in the right way. We should
instead just say "struct ieee80211_hdr *hdr = buff;" and instead of
treating it like an array of u8. Probably it requires testing...
regards,
dan carpenter
Powered by blists - more mailing lists